diff --git a/YACReaderLibrary/info_comics_view.cpp b/YACReaderLibrary/info_comics_view.cpp index e781ce39..3893e226 100644 --- a/YACReaderLibrary/info_comics_view.cpp +++ b/YACReaderLibrary/info_comics_view.cpp @@ -81,8 +81,9 @@ void InfoComicsView::setModel(ComicModel *model) ctxt->setContextProperty("backgroundImage", QUrl()); ctxt->setContextProperty("comicsSelection", selectionHelper->selectionModel()); - /*ctxt->setContextProperty("contextMenuHelper",this); - ctxt->setContextProperty("comicsSelectionHelper", this); + ctxt->setContextProperty("contextMenuHelper",this); + ctxt->setContextProperty("currentIndexHelper", this); + /*ctxt->setContextProperty("comicsSelectionHelper", this); ctxt->setContextProperty("comicRatingHelper", this); ctxt->setContextProperty("dummyValue", true); ctxt->setContextProperty("dragManager", this);*/ @@ -188,3 +189,13 @@ void InfoComicsView::droppedFiles(const QList &urls, Qt::DropAction action emit copyComicsToCurrentFolder(droppedFiles); } } + +void InfoComicsView::requestedContextMenu(const QPoint &point) +{ + emit customContextMenuViewRequested(point); +} + +void InfoComicsView::selectedItem(int index) +{ + emit selected(index); +} diff --git a/YACReaderLibrary/info_comics_view.h b/YACReaderLibrary/info_comics_view.h index f22a9bdd..0180600a 100644 --- a/YACReaderLibrary/info_comics_view.h +++ b/YACReaderLibrary/info_comics_view.h @@ -39,6 +39,10 @@ protected slots: bool canDropUrls(const QList & urls, Qt::DropAction action); void droppedFiles(const QList & urls, Qt::DropAction action); + void requestedContextMenu(const QPoint & point); + + void selectedItem(int index); + protected: QToolBar * toolbar; QObject *flow; diff --git a/YACReaderLibrary/qml/FlowView.qml b/YACReaderLibrary/qml/FlowView.qml index e10505e2..c0858f04 100644 --- a/YACReaderLibrary/qml/FlowView.qml +++ b/YACReaderLibrary/qml/FlowView.qml @@ -6,6 +6,8 @@ import QtGraphicalEffects 1.0 import com.yacreader.ComicModel 1.0 Rectangle { + id: main + property url backgroundImageURL; property real backgroundBlurRadius : 100; //85; @@ -163,8 +165,23 @@ Rectangle { anchors.fill: parent acceptedButtons: Qt.LeftButton | Qt.RightButton - onClicked: { + hoverEnabled: true + + onDoubleClicked: { list.currentIndex = index; + currentIndexHelper.selectedItem(index); + } + + onReleased: { + list.currentIndex = index; + + if(mouse.button === Qt.RightButton) // context menu is requested + { + var coordinates = main.mapFromItem(coverElement,mouseX,mouseY) + contextMenuHelper.requestedContextMenu(Qt.point(coordinates.x,coordinates.y)); + } + + mouse.accepted = true; } } }