diff --git a/YACReaderLibrary/classic_comics_view.cpp b/YACReaderLibrary/classic_comics_view.cpp index 2da9845a..90a3736a 100644 --- a/YACReaderLibrary/classic_comics_view.cpp +++ b/YACReaderLibrary/classic_comics_view.cpp @@ -88,8 +88,6 @@ ClassicComicsView::ClassicComicsView(QWidget *parent) sVertical->restoreState(settings->value(COMICS_VIEW_FLOW_SPLITTER_STATUS).toByteArray()); //hide flow widgets - toolBarStretch = new YACReaderToolBarStretch(this); - hideFlowViewAction = new QAction(this); hideFlowViewAction->setText(tr("Hide comic flow")); hideFlowViewAction->setData(HIDE_COMIC_VIEW_ACTION_YL); @@ -127,6 +125,8 @@ void ClassicComicsView::setToolBar(QToolBar *toolBar) static_cast(comics->layout())->insertWidget(0,toolBar); this->toolbar = toolBar; + toolBarStretch = new YACReaderToolBarStretch(this); + toolBarStretchAction = toolBar->addWidget(toolBarStretch); toolBar->addAction(hideFlowViewAction); } diff --git a/YACReaderLibrary/comics_view.cpp b/YACReaderLibrary/comics_view.cpp index d23dcc53..f743fd8f 100644 --- a/YACReaderLibrary/comics_view.cpp +++ b/YACReaderLibrary/comics_view.cpp @@ -1,11 +1,14 @@ #include "comics_view.h" #include "comic.h" #include "comic_files_manager.h" +#include "comic_db.h" #include "QsLog.h" +#include + ComicsView::ComicsView(QWidget *parent) : - QWidget(parent),model(NULL) + QWidget(parent),model(NULL),comicDB(nullptr) { setAcceptDrops(true); } @@ -15,6 +18,18 @@ void ComicsView::setModel(ComicModel *m) model = m; } +void ComicsView::updateInfoForIndex(int index) +{ + QQmlContext *ctxt = view->rootContext(); + + if(comicDB != nullptr) delete comicDB; + + comicDB = new ComicDB(model->getComic(this->model->index(index, 0))); + ComicInfo *comicInfo = &(comicDB->info); + ctxt->setContextProperty("comic", comicDB); + ctxt->setContextProperty("comicInfo", comicInfo); +} + void ComicsView::dragEnterEvent(QDragEnterEvent *event) { if(model->canDropMimeData(event->mimeData(),event->proposedAction(),0,0,QModelIndex())) diff --git a/YACReaderLibrary/comics_view.h b/YACReaderLibrary/comics_view.h index 7c47a012..1876343c 100644 --- a/YACReaderLibrary/comics_view.h +++ b/YACReaderLibrary/comics_view.h @@ -10,6 +10,8 @@ class QSplitter; class ComicFlowWidget; class QToolBar; class ComicModel; +class QQuickView; + class ComicsView : public QWidget { Q_OBJECT @@ -28,6 +30,7 @@ public: virtual void selectIndex(int index) = 0; public slots: + virtual void updateInfoForIndex(int index); virtual void setShowMarks(bool show) = 0; virtual void selectAll() = 0; @@ -50,6 +53,11 @@ protected: void dragEnterEvent(QDragEnterEvent *event); void dropEvent(QDropEvent *event); + QQuickView *view; + QWidget *container; + + ComicDB *comicDB; + private: }; diff --git a/YACReaderLibrary/grid_comics_view.cpp b/YACReaderLibrary/grid_comics_view.cpp index 1a197580..549be416 100644 --- a/YACReaderLibrary/grid_comics_view.cpp +++ b/YACReaderLibrary/grid_comics_view.cpp @@ -43,13 +43,6 @@ GridComicsView::GridComicsView(QWidget *parent) : container->setMinimumSize(200, 200); container->setFocusPolicy(Qt::TabFocus); - createCoverSizeSliderWidget(); - - int coverSize = settings->value(COMICS_GRID_COVER_SIZES, YACREADER_MIN_COVER_WIDTH).toInt(); - - coverSizeSlider->setValue(coverSize); - setCoversSize(coverSize); - QQmlContext *ctxt = view->rootContext(); #ifdef Q_OS_MAC @@ -99,8 +92,13 @@ GridComicsView::GridComicsView(QWidget *parent) : ctxt->setContextProperty("dragManager", this); ctxt->setContextProperty("dropManager", this); + ctxt->setContextProperty("showInfo", false); + view->setSource(QUrl("qrc:/qml/GridComicsView.qml")); + showInfoAction = new QAction("Show info",this); + showInfoAction->setCheckable(true); + connect(showInfoAction, &QAction::toggled, this, &GridComicsView::showInfo); setShowMarks(true);//TODO save this in settings @@ -144,6 +142,11 @@ void GridComicsView::createCoverSizeSliderWidget() //TODO add shortcuts (ctrl-+ and ctrl-- for zooming in out, + ctrl-0 for reseting the zoom) connect(coverSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(setCoversSize(int))); + + int coverSize = settings->value(COMICS_GRID_COVER_SIZES, YACREADER_MIN_COVER_WIDTH).toInt(); + + coverSizeSlider->setValue(coverSize); + setCoversSize(coverSize); } void GridComicsView::setToolBar(QToolBar *toolBar) @@ -151,8 +154,11 @@ void GridComicsView::setToolBar(QToolBar *toolBar) static_cast(this->layout())->insertWidget(1,toolBar); this->toolbar = toolBar; - toolBarStretchAction = toolBar->addWidget(toolBarStretch); - coverSizeSliderAction = toolBar->addWidget(coverSizeSliderWidget); + createCoverSizeSliderWidget(); + + toolBarStretchAction = toolBar->addWidget(toolBarStretch); + toolBar->addAction(showInfoAction); + coverSizeSliderAction = toolBar->addWidget(coverSizeSliderWidget); } void GridComicsView::setModel(ComicModel *model) @@ -223,6 +229,12 @@ void GridComicsView::updateBackgroundConfig() #endif } +void GridComicsView::showInfo() +{ + QQmlContext *ctxt = view->rootContext(); + ctxt->setContextProperty("showInfo", showInfoAction->isChecked()); +} + void GridComicsView::setCurrentIndex(const QModelIndex &index) { _selectionModel->clear(); diff --git a/YACReaderLibrary/grid_comics_view.h b/YACReaderLibrary/grid_comics_view.h index 93295b02..ff930309 100644 --- a/YACReaderLibrary/grid_comics_view.h +++ b/YACReaderLibrary/grid_comics_view.h @@ -38,6 +38,8 @@ public slots: void updateBackgroundConfig(); + void showInfo(); + protected slots: //QML - selection helper void selectIndex(int index); @@ -71,6 +73,7 @@ private: QWidget * coverSizeSliderWidget; QSlider * coverSizeSlider; QAction * coverSizeSliderAction; + QAction * showInfoAction; QItemSelectionModel * _selectionModel; QQuickView *view; QWidget *container; diff --git a/YACReaderLibrary/info_comics_view.cpp b/YACReaderLibrary/info_comics_view.cpp index 7313f36d..8b35047f 100644 --- a/YACReaderLibrary/info_comics_view.cpp +++ b/YACReaderLibrary/info_comics_view.cpp @@ -8,7 +8,7 @@ #include "QsLog.h" InfoComicsView::InfoComicsView(QWidget *parent) - :ComicsView(parent), comicDB(0) + :ComicsView(parent) { qmlRegisterType("com.yacreader.ComicModel",1,0,"ComicModel"); qmlRegisterType("com.yacreader.ComicDB",1,0,"ComicDB"); @@ -94,19 +94,6 @@ void InfoComicsView::setCurrentIndex(const QModelIndex &index) QQmlProperty(list, "currentIndex").write(index.row()); } - -void InfoComicsView::updateInfoForIndex(int index) -{ - QQmlContext *ctxt = view->rootContext(); - - if(comicDB) delete comicDB; - - comicDB = new ComicDB(model->getComic(this->model->index(index, 0))); - ComicInfo *comicInfo = &(comicDB->info); - ctxt->setContextProperty("comic", comicDB); - ctxt->setContextProperty("comicInfo", comicInfo); -} - QModelIndex InfoComicsView::currentIndex() { int FIXME; diff --git a/YACReaderLibrary/info_comics_view.h b/YACReaderLibrary/info_comics_view.h index b0b3037e..99ee9301 100644 --- a/YACReaderLibrary/info_comics_view.h +++ b/YACReaderLibrary/info_comics_view.h @@ -28,17 +28,13 @@ public: void selectIndex(int index); public slots: - void updateInfoForIndex(int index); void setShowMarks(bool show); void selectAll(); protected: QToolBar * toolbar; - QQuickView *view; - QWidget *container; QObject *flow; QObject *list; - ComicDB *comicDB; }; #endif // INFOCOMICSVIEW_H