mirror of
https://github.com/YACReader/yacreader
synced 2025-07-18 04:54:29 -04:00
added full functional context menu to GridComcisView (ugly solution for the QAction/QML issue)
This commit is contained in:
@ -138,6 +138,34 @@ void GridComicsView::setViewActions(const QList<QAction *> &actions)
|
|||||||
//TODO generate QML Menu from actions
|
//TODO generate QML Menu from actions
|
||||||
QLOG_INFO() << "setViewActions";
|
QLOG_INFO() << "setViewActions";
|
||||||
this->addActions(actions);
|
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()
|
QSize GridComicsView::sizeHint()
|
||||||
|
@ -496,9 +496,9 @@ void LibraryWindow::createActions()
|
|||||||
editSelectedComicsAction->setText(tr("Edit"));
|
editSelectedComicsAction->setText(tr("Edit"));
|
||||||
editSelectedComicsAction->setIcon(QIcon(":/images/editComic.png"));
|
editSelectedComicsAction->setIcon(QIcon(":/images/editComic.png"));
|
||||||
|
|
||||||
asignOrderActions = new QAction(this);
|
asignOrderAction = new QAction(this);
|
||||||
asignOrderActions->setText(tr("Asign current order to comics"));
|
asignOrderAction->setText(tr("Asign current order to comics"));
|
||||||
asignOrderActions->setIcon(QIcon(":/images/asignNumber.png"));
|
asignOrderAction->setIcon(QIcon(":/images/asignNumber.png"));
|
||||||
|
|
||||||
forceConverExtractedAction = new QAction(this);
|
forceConverExtractedAction = new QAction(this);
|
||||||
forceConverExtractedAction->setText(tr("Update cover"));
|
forceConverExtractedAction->setText(tr("Update cover"));
|
||||||
@ -530,7 +530,7 @@ void LibraryWindow::disableComicsActions(bool disabled)
|
|||||||
openComicAction->setDisabled(disabled);
|
openComicAction->setDisabled(disabled);
|
||||||
editSelectedComicsAction->setDisabled(disabled);
|
editSelectedComicsAction->setDisabled(disabled);
|
||||||
selectAllComicsAction->setDisabled(disabled);
|
selectAllComicsAction->setDisabled(disabled);
|
||||||
asignOrderActions->setDisabled(disabled);
|
asignOrderAction->setDisabled(disabled);
|
||||||
setAsReadAction->setDisabled(disabled);
|
setAsReadAction->setDisabled(disabled);
|
||||||
setAsNonReadAction->setDisabled(disabled);
|
setAsNonReadAction->setDisabled(disabled);
|
||||||
//setAllAsReadAction->setDisabled(disabled);
|
//setAllAsReadAction->setDisabled(disabled);
|
||||||
@ -635,7 +635,7 @@ void LibraryWindow::createToolBars()
|
|||||||
editInfoToolBar->addSeparator();
|
editInfoToolBar->addSeparator();
|
||||||
editInfoToolBar->addAction(editSelectedComicsAction);
|
editInfoToolBar->addAction(editSelectedComicsAction);
|
||||||
editInfoToolBar->addAction(getInfoAction);
|
editInfoToolBar->addAction(getInfoAction);
|
||||||
editInfoToolBar->addAction(asignOrderActions);
|
editInfoToolBar->addAction(asignOrderAction);
|
||||||
|
|
||||||
editInfoToolBar->addSeparator();
|
editInfoToolBar->addSeparator();
|
||||||
|
|
||||||
@ -661,21 +661,19 @@ void LibraryWindow::createToolBars()
|
|||||||
|
|
||||||
void LibraryWindow::createMenus()
|
void LibraryWindow::createMenus()
|
||||||
{
|
{
|
||||||
QList<QAction *> itemActions;
|
|
||||||
itemActions << openContainingFolderComicAction
|
itemActions << openContainingFolderComicAction
|
||||||
<< YACReader::createSeparator()
|
<< YACReader::createSeparator()
|
||||||
<< resetComicRatingAction
|
<< resetComicRatingAction
|
||||||
<< YACReader::createSeparator()
|
<< YACReader::createSeparator()
|
||||||
<< editSelectedComicsAction
|
<< editSelectedComicsAction
|
||||||
<< getInfoAction
|
<< getInfoAction
|
||||||
<< asignOrderActions
|
<< asignOrderAction
|
||||||
<< YACReader::createSeparator()
|
<< YACReader::createSeparator()
|
||||||
<< setAsReadAction
|
<< setAsReadAction
|
||||||
<< setAsNonReadAction
|
<< setAsNonReadAction
|
||||||
<< YACReader::createSeparator()
|
<< YACReader::createSeparator()
|
||||||
<< deleteComicsAction;
|
<< deleteComicsAction;
|
||||||
|
|
||||||
QList<QAction *> viewActions;
|
|
||||||
viewActions << openComicAction
|
viewActions << openComicAction
|
||||||
<< YACReader::createSeparator()
|
<< YACReader::createSeparator()
|
||||||
<< openContainingFolderComicAction
|
<< openContainingFolderComicAction
|
||||||
@ -684,7 +682,7 @@ void LibraryWindow::createMenus()
|
|||||||
<< YACReader::createSeparator()
|
<< YACReader::createSeparator()
|
||||||
<< editSelectedComicsAction
|
<< editSelectedComicsAction
|
||||||
<< getInfoAction
|
<< getInfoAction
|
||||||
<< asignOrderActions
|
<< asignOrderAction
|
||||||
<< YACReader::createSeparator()
|
<< YACReader::createSeparator()
|
||||||
<< selectAllComicsAction
|
<< selectAllComicsAction
|
||||||
<< YACReader::createSeparator()
|
<< YACReader::createSeparator()
|
||||||
@ -878,7 +876,7 @@ void LibraryWindow::createConnections()
|
|||||||
//connect(dm,SIGNAL(directoryLoaded(QString)),this,SLOT(updateFoldersView(QString)));
|
//connect(dm,SIGNAL(directoryLoaded(QString)),this,SLOT(updateFoldersView(QString)));
|
||||||
//Comicts edition
|
//Comicts edition
|
||||||
connect(editSelectedComicsAction,SIGNAL(triggered()),this,SLOT(showProperties()));
|
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()));
|
connect(deleteComicsAction,SIGNAL(triggered()),this,SLOT(deleteComics()));
|
||||||
|
|
||||||
@ -1516,6 +1514,8 @@ void LibraryWindow::switchToComicsView(ComicsView * from, ComicsView * to)
|
|||||||
|
|
||||||
comicsView = to;
|
comicsView = to;
|
||||||
doComicsViewConnections();
|
doComicsViewConnections();
|
||||||
|
to->setItemActions(itemActions);
|
||||||
|
to->setViewActions(viewActions);
|
||||||
|
|
||||||
comicsView->setToolBar(editInfoToolBar);
|
comicsView->setToolBar(editInfoToolBar);
|
||||||
|
|
||||||
|
@ -162,11 +162,14 @@ private:
|
|||||||
//edit info actions
|
//edit info actions
|
||||||
QAction * selectAllComicsAction;
|
QAction * selectAllComicsAction;
|
||||||
QAction * editSelectedComicsAction;
|
QAction * editSelectedComicsAction;
|
||||||
QAction * asignOrderActions;
|
QAction * asignOrderAction;
|
||||||
QAction * forceConverExtractedAction;
|
QAction * forceConverExtractedAction;
|
||||||
QAction * deleteComicsAction;
|
QAction * deleteComicsAction;
|
||||||
QAction * hideComicViewAction;
|
QAction * hideComicViewAction;
|
||||||
|
|
||||||
|
QList<QAction *> itemActions;
|
||||||
|
QList<QAction *> viewActions;
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
QToolBar * libraryToolBar;
|
QToolBar * libraryToolBar;
|
||||||
#else
|
#else
|
||||||
|
@ -81,21 +81,28 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Menu emits the 'main' signals
|
||||||
Menu {
|
Menu {
|
||||||
id: myContextMenu
|
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{}
|
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{}
|
MenuSeparator{}
|
||||||
MenuItem { text: "Edit"; onTriggered: model1.removeRows(index, 1) }
|
MenuItem { text: "Reset comic rating"; onTriggered: resetComicRatingAction.trigger() }
|
||||||
MenuItem { text: "Download tags from Comic Vine"; onTriggered: model1.removeRows(index, 1) }
|
|
||||||
MenuItem { text: "Asign current order to comics"; onTriggered: model1.removeRows(index, 1) }
|
|
||||||
MenuSeparator{}
|
MenuSeparator{}
|
||||||
MenuItem { text: "Set as read"; onTriggered: model1.removeRows(index, 1) }
|
MenuItem { text: "Edit"; enabled: true; iconSource:"qrc:///images/editComic.png"; onTriggered: editSelectedComicsAction.trigger() }
|
||||||
MenuItem { text: "Set as unread"; onTriggered: model1.removeRows(index, 1) }
|
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{}
|
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';
|
//MenuItem { text: "Show details"; onTriggered: cell.state = 'Details';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user