diff --git a/YACReaderLibrary/grid_comics_view.cpp b/YACReaderLibrary/grid_comics_view.cpp index dd36ca08..e104e743 100644 --- a/YACReaderLibrary/grid_comics_view.cpp +++ b/YACReaderLibrary/grid_comics_view.cpp @@ -60,6 +60,7 @@ void GridComicsView::setModel(TableModel *model) ctxt->setContextProperty("comicsList", this->model); ctxt->setContextProperty("comicsSelection", _selectionModel); ctxt->setContextProperty("comicsSelectionHelper", this); + ctxt->setContextProperty("comicRatingHelper", this); ctxt->setContextProperty("dummyValue", true); } @@ -140,7 +141,7 @@ void GridComicsView::setViewActions(const QList &actions) this->addActions(actions); //TODO this is completely unsafe, but QActions can't be used directly in QML - if(actions.length()>17) + if(actions.length()>=19) { QQmlContext *ctxt = view->rootContext(); @@ -179,6 +180,12 @@ void GridComicsView::selectAll() QLOG_INFO() << "selectAll"; } +void GridComicsView::rate(int index, int rating) +{ + QLOG_INFO() << "Comic "<< index << "rated" << rating; + model->updateRating(rating,model->index(index,0)); +} + QSize GridComicsView::sizeHint() { QLOG_INFO() << "sizeHint"; diff --git a/YACReaderLibrary/grid_comics_view.h b/YACReaderLibrary/grid_comics_view.h index 137c9ab7..75d16e10 100644 --- a/YACReaderLibrary/grid_comics_view.h +++ b/YACReaderLibrary/grid_comics_view.h @@ -29,7 +29,6 @@ public: void setItemActions(const QList & actions); void setViewActions(const QList & actions); void enableFilterMode(bool enabled); - QSize sizeHint(); signals: signals: @@ -48,6 +47,10 @@ public slots: void setShowMarks(bool show); void selectAll(); + //rating + void rate(int index, int rating); + + private: QItemSelectionModel * _selectionModel; QQuickView *view; diff --git a/YACReaderLibrary/qml.qrc b/YACReaderLibrary/qml.qrc index a02ccead..5477ae08 100644 --- a/YACReaderLibrary/qml.qrc +++ b/YACReaderLibrary/qml.qrc @@ -4,5 +4,6 @@ qml/YACReaderScrollView.qml qml/tick.png qml/reading.png + qml/star_menu.png diff --git a/YACReaderLibrary/qml/GridComicsView.qml b/YACReaderLibrary/qml/GridComicsView.qml index d00894d6..6acabb26 100644 --- a/YACReaderLibrary/qml/GridComicsView.qml +++ b/YACReaderLibrary/qml/GridComicsView.qml @@ -77,7 +77,6 @@ Rectangle { comicsSelectionHelper.selectIndex(index) grid.currentIndex = index; - } } @@ -187,7 +186,30 @@ Rectangle { id: ratingImage anchors {bottom: realCell.bottom; right: pageImage.left; bottomMargin: 5; rightMargin: Math.floor(pages.width)+12} source: "star.png" + + MouseArea { + anchors.fill: parent + onClicked: { + console.log("rating"); + comicsSelectionHelper.clear(); + comicsSelectionHelper.selectIndex(index); + grid.currentIndex = index; + ratingConextMenu.popup(); + + } + } + + Menu { + id: ratingConextMenu + MenuItem { text: "1"; enabled: true; iconSource:"star_menu.png"; onTriggered: comicRatingHelper.rate(index,1) } + MenuItem { text: "2"; enabled: true; iconSource:"star_menu.png"; onTriggered: comicRatingHelper.rate(index,2) } + MenuItem { text: "3"; enabled: true; iconSource:"star_menu.png"; onTriggered: comicRatingHelper.rate(index,3) } + MenuItem { text: "4"; enabled: true; iconSource:"star_menu.png"; onTriggered: comicRatingHelper.rate(index,4) } + MenuItem { text: "5"; enabled: true; iconSource:"star_menu.png"; onTriggered: comicRatingHelper.rate(index,5) } + + } } + //comic rating Text { id: comicRating diff --git a/YACReaderLibrary/qml/star_menu.png b/YACReaderLibrary/qml/star_menu.png new file mode 100644 index 00000000..4472e5a3 Binary files /dev/null and b/YACReaderLibrary/qml/star_menu.png differ