mirror of
https://github.com/YACReader/yacreader
synced 2026-02-13 02:22:57 -05:00
better approach to avoid comic model problems after switching views
This commit is contained in:
@ -156,6 +156,8 @@ void GridComicsView::setToolBar(QToolBar *toolBar)
|
|||||||
|
|
||||||
void GridComicsView::setModel(ComicModel *model)
|
void GridComicsView::setModel(ComicModel *model)
|
||||||
{
|
{
|
||||||
|
BOOL setModel = model != this->model;
|
||||||
|
|
||||||
if(model == NULL)
|
if(model == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -168,8 +170,8 @@ void GridComicsView::setModel(ComicModel *model)
|
|||||||
|
|
||||||
_selectionModel = new QItemSelectionModel(model);
|
_selectionModel = new QItemSelectionModel(model);
|
||||||
|
|
||||||
//TODO fix crash in the following line on comics views switch
|
if(setModel)
|
||||||
ctxt->setContextProperty("comicsList", model);
|
ctxt->setContextProperty("comicsList", model);
|
||||||
ctxt->setContextProperty("comicsSelection", _selectionModel);
|
ctxt->setContextProperty("comicsSelection", _selectionModel);
|
||||||
ctxt->setContextProperty("contextMenuHelper",this);
|
ctxt->setContextProperty("contextMenuHelper",this);
|
||||||
ctxt->setContextProperty("comicsSelectionHelper", this);
|
ctxt->setContextProperty("comicsSelectionHelper", this);
|
||||||
|
|||||||
@ -47,6 +47,8 @@ void InfoComicsView::setToolBar(QToolBar *toolBar)
|
|||||||
|
|
||||||
void InfoComicsView::setModel(ComicModel *model)
|
void InfoComicsView::setModel(ComicModel *model)
|
||||||
{
|
{
|
||||||
|
BOOL setModel = model != this->model;
|
||||||
|
|
||||||
if(model == NULL)
|
if(model == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -62,7 +64,9 @@ void InfoComicsView::setModel(ComicModel *model)
|
|||||||
//TODO fix crash in the following line on comics views switch
|
//TODO fix crash in the following line on comics views switch
|
||||||
|
|
||||||
int row = currentIndex().row();
|
int row = currentIndex().row();
|
||||||
ctxt->setContextProperty("comicsList", model);
|
|
||||||
|
if(setModel)
|
||||||
|
ctxt->setContextProperty("comicsList", model);
|
||||||
ctxt->setContextProperty("backgroundImage", this->model->data(this->model->index(0, 0), ComicModel::CoverPathRole));
|
ctxt->setContextProperty("backgroundImage", this->model->data(this->model->index(0, 0), ComicModel::CoverPathRole));
|
||||||
|
|
||||||
/*ctxt->setContextProperty("comicsSelection", _selectionModel);
|
/*ctxt->setContextProperty("comicsSelection", _selectionModel);
|
||||||
|
|||||||
@ -404,7 +404,7 @@ void LibraryWindow::doModels()
|
|||||||
foldersModelProxy = new FolderModelProxy();
|
foldersModelProxy = new FolderModelProxy();
|
||||||
//foldersModelProxy->setSourceModel(foldersModel);
|
//foldersModelProxy->setSourceModel(foldersModel);
|
||||||
//comics
|
//comics
|
||||||
comicsModel = new ComicModel();
|
comicsModel = new ComicModel(this);
|
||||||
//lists
|
//lists
|
||||||
listsModel = new ReadingListModel();
|
listsModel = new ReadingListModel();
|
||||||
listsModelProxy = new ReadingListModelProxy();
|
listsModelProxy = new ReadingListModelProxy();
|
||||||
@ -1265,12 +1265,8 @@ void LibraryWindow::loadLibrary(const QString & name)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "classic_comics_view.h"
|
|
||||||
void LibraryWindow::loadCoversFromCurrentModel()
|
void LibraryWindow::loadCoversFromCurrentModel()
|
||||||
{
|
{
|
||||||
//TODO this is a workaround for the crash in setModel, crash on views switching (QML)
|
|
||||||
if(typeid(*comicsViewsManager->comicsView) != typeid(ClassicComicsView))
|
|
||||||
comicsViewsManager->comicsView->setModel(new ComicModel());
|
|
||||||
comicsViewsManager->comicsView->setModel(comicsModel);
|
comicsViewsManager->comicsView->setModel(comicsModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user