mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
Added a new action for showing, hiding QML ComicInfo view into the GridView.
This commit is contained in:
parent
ba5dfc0807
commit
28b5a29da9
@ -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<QVBoxLayout *>(comics->layout())->insertWidget(0,toolBar);
|
||||
this->toolbar = toolBar;
|
||||
|
||||
toolBarStretch = new YACReaderToolBarStretch(this);
|
||||
|
||||
toolBarStretchAction = toolBar->addWidget(toolBarStretch);
|
||||
toolBar->addAction(hideFlowViewAction);
|
||||
}
|
||||
|
@ -1,11 +1,14 @@
|
||||
#include "comics_view.h"
|
||||
#include "comic.h"
|
||||
#include "comic_files_manager.h"
|
||||
#include "comic_db.h"
|
||||
|
||||
#include "QsLog.h"
|
||||
|
||||
#include <QtQuick>
|
||||
|
||||
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()))
|
||||
|
@ -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:
|
||||
|
||||
};
|
||||
|
@ -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<QVBoxLayout *>(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();
|
||||
|
@ -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;
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "QsLog.h"
|
||||
|
||||
InfoComicsView::InfoComicsView(QWidget *parent)
|
||||
:ComicsView(parent), comicDB(0)
|
||||
:ComicsView(parent)
|
||||
{
|
||||
qmlRegisterType<ComicModel>("com.yacreader.ComicModel",1,0,"ComicModel");
|
||||
qmlRegisterType<ComicDB>("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;
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user