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());
|
sVertical->restoreState(settings->value(COMICS_VIEW_FLOW_SPLITTER_STATUS).toByteArray());
|
||||||
|
|
||||||
//hide flow widgets
|
//hide flow widgets
|
||||||
toolBarStretch = new YACReaderToolBarStretch(this);
|
|
||||||
|
|
||||||
hideFlowViewAction = new QAction(this);
|
hideFlowViewAction = new QAction(this);
|
||||||
hideFlowViewAction->setText(tr("Hide comic flow"));
|
hideFlowViewAction->setText(tr("Hide comic flow"));
|
||||||
hideFlowViewAction->setData(HIDE_COMIC_VIEW_ACTION_YL);
|
hideFlowViewAction->setData(HIDE_COMIC_VIEW_ACTION_YL);
|
||||||
@ -127,6 +125,8 @@ void ClassicComicsView::setToolBar(QToolBar *toolBar)
|
|||||||
static_cast<QVBoxLayout *>(comics->layout())->insertWidget(0,toolBar);
|
static_cast<QVBoxLayout *>(comics->layout())->insertWidget(0,toolBar);
|
||||||
this->toolbar = toolBar;
|
this->toolbar = toolBar;
|
||||||
|
|
||||||
|
toolBarStretch = new YACReaderToolBarStretch(this);
|
||||||
|
|
||||||
toolBarStretchAction = toolBar->addWidget(toolBarStretch);
|
toolBarStretchAction = toolBar->addWidget(toolBarStretch);
|
||||||
toolBar->addAction(hideFlowViewAction);
|
toolBar->addAction(hideFlowViewAction);
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
#include "comics_view.h"
|
#include "comics_view.h"
|
||||||
#include "comic.h"
|
#include "comic.h"
|
||||||
#include "comic_files_manager.h"
|
#include "comic_files_manager.h"
|
||||||
|
#include "comic_db.h"
|
||||||
|
|
||||||
#include "QsLog.h"
|
#include "QsLog.h"
|
||||||
|
|
||||||
|
#include <QtQuick>
|
||||||
|
|
||||||
ComicsView::ComicsView(QWidget *parent) :
|
ComicsView::ComicsView(QWidget *parent) :
|
||||||
QWidget(parent),model(NULL)
|
QWidget(parent),model(NULL),comicDB(nullptr)
|
||||||
{
|
{
|
||||||
setAcceptDrops(true);
|
setAcceptDrops(true);
|
||||||
}
|
}
|
||||||
@ -15,6 +18,18 @@ void ComicsView::setModel(ComicModel *m)
|
|||||||
model = 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)
|
void ComicsView::dragEnterEvent(QDragEnterEvent *event)
|
||||||
{
|
{
|
||||||
if(model->canDropMimeData(event->mimeData(),event->proposedAction(),0,0,QModelIndex()))
|
if(model->canDropMimeData(event->mimeData(),event->proposedAction(),0,0,QModelIndex()))
|
||||||
|
@ -10,6 +10,8 @@ class QSplitter;
|
|||||||
class ComicFlowWidget;
|
class ComicFlowWidget;
|
||||||
class QToolBar;
|
class QToolBar;
|
||||||
class ComicModel;
|
class ComicModel;
|
||||||
|
class QQuickView;
|
||||||
|
|
||||||
class ComicsView : public QWidget
|
class ComicsView : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -28,6 +30,7 @@ public:
|
|||||||
virtual void selectIndex(int index) = 0;
|
virtual void selectIndex(int index) = 0;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
virtual void updateInfoForIndex(int index);
|
||||||
virtual void setShowMarks(bool show) = 0;
|
virtual void setShowMarks(bool show) = 0;
|
||||||
virtual void selectAll() = 0;
|
virtual void selectAll() = 0;
|
||||||
|
|
||||||
@ -50,6 +53,11 @@ protected:
|
|||||||
void dragEnterEvent(QDragEnterEvent *event);
|
void dragEnterEvent(QDragEnterEvent *event);
|
||||||
void dropEvent(QDropEvent *event);
|
void dropEvent(QDropEvent *event);
|
||||||
|
|
||||||
|
QQuickView *view;
|
||||||
|
QWidget *container;
|
||||||
|
|
||||||
|
ComicDB *comicDB;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -43,13 +43,6 @@ GridComicsView::GridComicsView(QWidget *parent) :
|
|||||||
container->setMinimumSize(200, 200);
|
container->setMinimumSize(200, 200);
|
||||||
container->setFocusPolicy(Qt::TabFocus);
|
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();
|
QQmlContext *ctxt = view->rootContext();
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
@ -99,8 +92,13 @@ GridComicsView::GridComicsView(QWidget *parent) :
|
|||||||
ctxt->setContextProperty("dragManager", this);
|
ctxt->setContextProperty("dragManager", this);
|
||||||
ctxt->setContextProperty("dropManager", this);
|
ctxt->setContextProperty("dropManager", this);
|
||||||
|
|
||||||
|
ctxt->setContextProperty("showInfo", false);
|
||||||
|
|
||||||
view->setSource(QUrl("qrc:/qml/GridComicsView.qml"));
|
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
|
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)
|
//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)));
|
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)
|
void GridComicsView::setToolBar(QToolBar *toolBar)
|
||||||
@ -151,8 +154,11 @@ void GridComicsView::setToolBar(QToolBar *toolBar)
|
|||||||
static_cast<QVBoxLayout *>(this->layout())->insertWidget(1,toolBar);
|
static_cast<QVBoxLayout *>(this->layout())->insertWidget(1,toolBar);
|
||||||
this->toolbar = toolBar;
|
this->toolbar = toolBar;
|
||||||
|
|
||||||
toolBarStretchAction = toolBar->addWidget(toolBarStretch);
|
createCoverSizeSliderWidget();
|
||||||
coverSizeSliderAction = toolBar->addWidget(coverSizeSliderWidget);
|
|
||||||
|
toolBarStretchAction = toolBar->addWidget(toolBarStretch);
|
||||||
|
toolBar->addAction(showInfoAction);
|
||||||
|
coverSizeSliderAction = toolBar->addWidget(coverSizeSliderWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GridComicsView::setModel(ComicModel *model)
|
void GridComicsView::setModel(ComicModel *model)
|
||||||
@ -223,6 +229,12 @@ void GridComicsView::updateBackgroundConfig()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GridComicsView::showInfo()
|
||||||
|
{
|
||||||
|
QQmlContext *ctxt = view->rootContext();
|
||||||
|
ctxt->setContextProperty("showInfo", showInfoAction->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
void GridComicsView::setCurrentIndex(const QModelIndex &index)
|
void GridComicsView::setCurrentIndex(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
_selectionModel->clear();
|
_selectionModel->clear();
|
||||||
|
@ -38,6 +38,8 @@ public slots:
|
|||||||
|
|
||||||
void updateBackgroundConfig();
|
void updateBackgroundConfig();
|
||||||
|
|
||||||
|
void showInfo();
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
//QML - selection helper
|
//QML - selection helper
|
||||||
void selectIndex(int index);
|
void selectIndex(int index);
|
||||||
@ -71,6 +73,7 @@ private:
|
|||||||
QWidget * coverSizeSliderWidget;
|
QWidget * coverSizeSliderWidget;
|
||||||
QSlider * coverSizeSlider;
|
QSlider * coverSizeSlider;
|
||||||
QAction * coverSizeSliderAction;
|
QAction * coverSizeSliderAction;
|
||||||
|
QAction * showInfoAction;
|
||||||
QItemSelectionModel * _selectionModel;
|
QItemSelectionModel * _selectionModel;
|
||||||
QQuickView *view;
|
QQuickView *view;
|
||||||
QWidget *container;
|
QWidget *container;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include "QsLog.h"
|
#include "QsLog.h"
|
||||||
|
|
||||||
InfoComicsView::InfoComicsView(QWidget *parent)
|
InfoComicsView::InfoComicsView(QWidget *parent)
|
||||||
:ComicsView(parent), comicDB(0)
|
:ComicsView(parent)
|
||||||
{
|
{
|
||||||
qmlRegisterType<ComicModel>("com.yacreader.ComicModel",1,0,"ComicModel");
|
qmlRegisterType<ComicModel>("com.yacreader.ComicModel",1,0,"ComicModel");
|
||||||
qmlRegisterType<ComicDB>("com.yacreader.ComicDB",1,0,"ComicDB");
|
qmlRegisterType<ComicDB>("com.yacreader.ComicDB",1,0,"ComicDB");
|
||||||
@ -94,19 +94,6 @@ void InfoComicsView::setCurrentIndex(const QModelIndex &index)
|
|||||||
QQmlProperty(list, "currentIndex").write(index.row());
|
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()
|
QModelIndex InfoComicsView::currentIndex()
|
||||||
{
|
{
|
||||||
int FIXME;
|
int FIXME;
|
||||||
|
@ -28,17 +28,13 @@ public:
|
|||||||
void selectIndex(int index);
|
void selectIndex(int index);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void updateInfoForIndex(int index);
|
|
||||||
void setShowMarks(bool show);
|
void setShowMarks(bool show);
|
||||||
void selectAll();
|
void selectAll();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QToolBar * toolbar;
|
QToolBar * toolbar;
|
||||||
QQuickView *view;
|
|
||||||
QWidget *container;
|
|
||||||
QObject *flow;
|
QObject *flow;
|
||||||
QObject *list;
|
QObject *list;
|
||||||
ComicDB *comicDB;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // INFOCOMICSVIEW_H
|
#endif // INFOCOMICSVIEW_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user