mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
added full functional context menu to GridComcisView (ugly solution for the QAction/QML issue)
This commit is contained in:
parent
673deee27c
commit
b860d8776a
@ -138,6 +138,34 @@ void GridComicsView::setViewActions(const QList<QAction *> &actions)
|
||||
//TODO generate QML Menu from actions
|
||||
QLOG_INFO() << "setViewActions";
|
||||
this->addActions(actions);
|
||||
|
||||
//TODO this is completely unsafe, but QActions can't be used directly in QML
|
||||
if(actions.length()>17)
|
||||
{
|
||||
QQmlContext *ctxt = view->rootContext();
|
||||
|
||||
ctxt->setContextProperty("openComicAction",actions[0]);
|
||||
|
||||
ctxt->setContextProperty("openContainingFolderComicAction",actions[2]);
|
||||
|
||||
ctxt->setContextProperty("resetComicRatingAction",actions[4]);
|
||||
|
||||
ctxt->setContextProperty("editSelectedComicsAction",actions[6]);
|
||||
ctxt->setContextProperty("getInfoAction",actions[7]);
|
||||
ctxt->setContextProperty("asignOrderAction",actions[8]);
|
||||
|
||||
ctxt->setContextProperty("selectAllComicsAction",actions[10]);
|
||||
|
||||
ctxt->setContextProperty("setAsReadAction",actions[12]);
|
||||
ctxt->setContextProperty("setAsNonReadAction",actions[13]);
|
||||
ctxt->setContextProperty("showHideMarksAction",actions[14]);
|
||||
|
||||
ctxt->setContextProperty("deleteComicsAction",actions[16]);
|
||||
|
||||
ctxt->setContextProperty("toggleFullScreenAction",actions[18]);
|
||||
}
|
||||
else
|
||||
QLOG_ERROR() << "setViewActions invoked with the wrong number of actions";
|
||||
}
|
||||
|
||||
QSize GridComicsView::sizeHint()
|
||||
|
@ -496,9 +496,9 @@ void LibraryWindow::createActions()
|
||||
editSelectedComicsAction->setText(tr("Edit"));
|
||||
editSelectedComicsAction->setIcon(QIcon(":/images/editComic.png"));
|
||||
|
||||
asignOrderActions = new QAction(this);
|
||||
asignOrderActions->setText(tr("Asign current order to comics"));
|
||||
asignOrderActions->setIcon(QIcon(":/images/asignNumber.png"));
|
||||
asignOrderAction = new QAction(this);
|
||||
asignOrderAction->setText(tr("Asign current order to comics"));
|
||||
asignOrderAction->setIcon(QIcon(":/images/asignNumber.png"));
|
||||
|
||||
forceConverExtractedAction = new QAction(this);
|
||||
forceConverExtractedAction->setText(tr("Update cover"));
|
||||
@ -530,7 +530,7 @@ void LibraryWindow::disableComicsActions(bool disabled)
|
||||
openComicAction->setDisabled(disabled);
|
||||
editSelectedComicsAction->setDisabled(disabled);
|
||||
selectAllComicsAction->setDisabled(disabled);
|
||||
asignOrderActions->setDisabled(disabled);
|
||||
asignOrderAction->setDisabled(disabled);
|
||||
setAsReadAction->setDisabled(disabled);
|
||||
setAsNonReadAction->setDisabled(disabled);
|
||||
//setAllAsReadAction->setDisabled(disabled);
|
||||
@ -635,7 +635,7 @@ void LibraryWindow::createToolBars()
|
||||
editInfoToolBar->addSeparator();
|
||||
editInfoToolBar->addAction(editSelectedComicsAction);
|
||||
editInfoToolBar->addAction(getInfoAction);
|
||||
editInfoToolBar->addAction(asignOrderActions);
|
||||
editInfoToolBar->addAction(asignOrderAction);
|
||||
|
||||
editInfoToolBar->addSeparator();
|
||||
|
||||
@ -661,21 +661,19 @@ void LibraryWindow::createToolBars()
|
||||
|
||||
void LibraryWindow::createMenus()
|
||||
{
|
||||
QList<QAction *> itemActions;
|
||||
itemActions << openContainingFolderComicAction
|
||||
<< YACReader::createSeparator()
|
||||
<< resetComicRatingAction
|
||||
<< YACReader::createSeparator()
|
||||
<< editSelectedComicsAction
|
||||
<< getInfoAction
|
||||
<< asignOrderActions
|
||||
<< asignOrderAction
|
||||
<< YACReader::createSeparator()
|
||||
<< setAsReadAction
|
||||
<< setAsNonReadAction
|
||||
<< YACReader::createSeparator()
|
||||
<< deleteComicsAction;
|
||||
|
||||
QList<QAction *> viewActions;
|
||||
viewActions << openComicAction
|
||||
<< YACReader::createSeparator()
|
||||
<< openContainingFolderComicAction
|
||||
@ -684,7 +682,7 @@ void LibraryWindow::createMenus()
|
||||
<< YACReader::createSeparator()
|
||||
<< editSelectedComicsAction
|
||||
<< getInfoAction
|
||||
<< asignOrderActions
|
||||
<< asignOrderAction
|
||||
<< YACReader::createSeparator()
|
||||
<< selectAllComicsAction
|
||||
<< YACReader::createSeparator()
|
||||
@ -878,7 +876,7 @@ void LibraryWindow::createConnections()
|
||||
//connect(dm,SIGNAL(directoryLoaded(QString)),this,SLOT(updateFoldersView(QString)));
|
||||
//Comicts edition
|
||||
connect(editSelectedComicsAction,SIGNAL(triggered()),this,SLOT(showProperties()));
|
||||
connect(asignOrderActions,SIGNAL(triggered()),this,SLOT(asignNumbers()));
|
||||
connect(asignOrderAction,SIGNAL(triggered()),this,SLOT(asignNumbers()));
|
||||
|
||||
connect(deleteComicsAction,SIGNAL(triggered()),this,SLOT(deleteComics()));
|
||||
|
||||
@ -1516,6 +1514,8 @@ void LibraryWindow::switchToComicsView(ComicsView * from, ComicsView * to)
|
||||
|
||||
comicsView = to;
|
||||
doComicsViewConnections();
|
||||
to->setItemActions(itemActions);
|
||||
to->setViewActions(viewActions);
|
||||
|
||||
comicsView->setToolBar(editInfoToolBar);
|
||||
|
||||
|
@ -162,11 +162,14 @@ private:
|
||||
//edit info actions
|
||||
QAction * selectAllComicsAction;
|
||||
QAction * editSelectedComicsAction;
|
||||
QAction * asignOrderActions;
|
||||
QAction * asignOrderAction;
|
||||
QAction * forceConverExtractedAction;
|
||||
QAction * deleteComicsAction;
|
||||
QAction * hideComicViewAction;
|
||||
|
||||
QList<QAction *> itemActions;
|
||||
QList<QAction *> viewActions;
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
QToolBar * libraryToolBar;
|
||||
#else
|
||||
|
@ -81,21 +81,28 @@ Rectangle {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Menu emits the 'main' signals
|
||||
Menu {
|
||||
id: myContextMenu
|
||||
MenuItem { text: "Open containing folder..."; onTriggered: display.setRandomName() }
|
||||
MenuItem { text: "Open comic"; enabled: true; iconSource:"qrc:///images/openInYACReader.png"; onTriggered: openComicAction.trigger() }
|
||||
MenuSeparator{}
|
||||
MenuItem { text: "Reset comic rating"; onTriggered: model1.removeRows(index, 1) }
|
||||
MenuItem { text: "Open containing folder..."; enabled: true; iconSource: "qrc:///images/open.png"; onTriggered: openContainingFolderComicAction.trigger() }
|
||||
MenuSeparator{}
|
||||
MenuItem { text: "Edit"; onTriggered: model1.removeRows(index, 1) }
|
||||
MenuItem { text: "Download tags from Comic Vine"; onTriggered: model1.removeRows(index, 1) }
|
||||
MenuItem { text: "Asign current order to comics"; onTriggered: model1.removeRows(index, 1) }
|
||||
MenuItem { text: "Reset comic rating"; onTriggered: resetComicRatingAction.trigger() }
|
||||
MenuSeparator{}
|
||||
MenuItem { text: "Set as read"; onTriggered: model1.removeRows(index, 1) }
|
||||
MenuItem { text: "Set as unread"; onTriggered: model1.removeRows(index, 1) }
|
||||
MenuItem { text: "Edit"; enabled: true; iconSource:"qrc:///images/editComic.png"; onTriggered: editSelectedComicsAction.trigger() }
|
||||
MenuItem { text: "Download tags from Comic Vine"; enabled: true; iconSource:"qrc:///images/getInfo.png"; onTriggered: getInfoAction.trigger() }
|
||||
MenuItem { text: "Asign current order to comics"; enabled: true; iconSource:"qrc:///images/asignNumber.png"; onTriggered: asignOrderAction.trigger() }
|
||||
MenuSeparator{}
|
||||
MenuItem { text: "Delete selected comics"; onTriggered: model1.removeRows(index, 1) }
|
||||
MenuItem { text: "Select all comics"; enabled: true; iconSource:"qrc:///images/selectAll.png"; onTriggered: selectAllComicsAction.trigger() }
|
||||
MenuSeparator{}
|
||||
MenuItem { text: "Set as read"; enabled: true; iconSource:"qrc:///images/setReadButton.png"; onTriggered: setAsReadAction.trigger() }
|
||||
MenuItem { text: "Set as unread"; enabled: true; iconSource:"qrc:///images/setUnread.png"; onTriggered: setAsNonReadAction.trigger() }
|
||||
MenuItem { text: "Show or hide read marks"; enabled: true; iconSource:"qrc:///images/showMarks.png"; onTriggered: showHideMarksAction.trigger() }
|
||||
MenuSeparator{}
|
||||
MenuItem { text: "Delete selected comics"; enabled: true; iconSource:"qrc:///images/trash.png"; onTriggered: deleteComicsAction.trigger() }
|
||||
MenuSeparator{}
|
||||
MenuItem { text: "Fullscreen mode on/off"; onTriggered: toggleFullScreenAction.trigger() }
|
||||
//MenuItem { text: "Show details"; onTriggered: cell.state = 'Details';
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user