mirror of
https://github.com/YACReader/yacreader
synced 2025-07-18 21:14:33 -04: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)
|
||||
{
|
||||
BOOL setModel = model != this->model;
|
||||
|
||||
if(model == NULL)
|
||||
return;
|
||||
|
||||
@ -168,8 +170,8 @@ void GridComicsView::setModel(ComicModel *model)
|
||||
|
||||
_selectionModel = new QItemSelectionModel(model);
|
||||
|
||||
//TODO fix crash in the following line on comics views switch
|
||||
ctxt->setContextProperty("comicsList", model);
|
||||
if(setModel)
|
||||
ctxt->setContextProperty("comicsList", model);
|
||||
ctxt->setContextProperty("comicsSelection", _selectionModel);
|
||||
ctxt->setContextProperty("contextMenuHelper",this);
|
||||
ctxt->setContextProperty("comicsSelectionHelper", this);
|
||||
|
@ -47,6 +47,8 @@ void InfoComicsView::setToolBar(QToolBar *toolBar)
|
||||
|
||||
void InfoComicsView::setModel(ComicModel *model)
|
||||
{
|
||||
BOOL setModel = model != this->model;
|
||||
|
||||
if(model == NULL)
|
||||
return;
|
||||
|
||||
@ -62,7 +64,9 @@ void InfoComicsView::setModel(ComicModel *model)
|
||||
//TODO fix crash in the following line on comics views switch
|
||||
|
||||
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("comicsSelection", _selectionModel);
|
||||
|
@ -404,7 +404,7 @@ void LibraryWindow::doModels()
|
||||
foldersModelProxy = new FolderModelProxy();
|
||||
//foldersModelProxy->setSourceModel(foldersModel);
|
||||
//comics
|
||||
comicsModel = new ComicModel();
|
||||
comicsModel = new ComicModel(this);
|
||||
//lists
|
||||
listsModel = new ReadingListModel();
|
||||
listsModelProxy = new ReadingListModelProxy();
|
||||
@ -1265,12 +1265,8 @@ void LibraryWindow::loadLibrary(const QString & name)
|
||||
}
|
||||
}
|
||||
|
||||
#include "classic_comics_view.h"
|
||||
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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user