diff --git a/YACReader/goto_flow.cpp b/YACReader/goto_flow.cpp index 167074de..57cb718a 100644 --- a/YACReader/goto_flow.cpp +++ b/YACReader/goto_flow.cpp @@ -260,6 +260,8 @@ PageLoader::PageLoader(QMutex * m): PageLoader::~PageLoader() { + //TODO this destructor never runs. If it is ever called, it will hang, because + //the implementation is broken due to the absolutely endless loop in run(). mutex->lock(); condition.wakeOne(); mutex->unlock(); @@ -284,9 +286,11 @@ void PageLoader::generate(int index, QSize size,const QByteArray & rImage) start(); else { + mutex->lock(); // already running, wake up whenever ready restart = true; condition.wakeOne(); + mutex->unlock(); } } @@ -314,7 +318,7 @@ void PageLoader::run() // put to sleep mutex->lock(); - if (!this->restart) + while (!this->restart) condition.wait(mutex); restart = false; mutex->unlock(); diff --git a/YACReaderLibrary/comic_flow_widget.cpp b/YACReaderLibrary/comic_flow_widget.cpp index e96dc684..6c114a54 100644 --- a/YACReaderLibrary/comic_flow_widget.cpp +++ b/YACReaderLibrary/comic_flow_widget.cpp @@ -105,7 +105,7 @@ void ComicFlowWidgetSW::keyPressEvent(QKeyEvent* event) } void ComicFlowWidgetSW::paintEvent(QPaintEvent *event) { - flow->paintEvent(event); + ComicFlowWidget::paintEvent(event); } void ComicFlowWidgetSW::mousePressEvent(QMouseEvent* event) { diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index 182894c2..8dc5892b 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -1798,8 +1798,6 @@ void LibraryWindow::checkEmptyFolder() void LibraryWindow::openComic(const ComicDB &comic) { if(!importedCovers) { - QList siblings = comicsModel->getAllComics(); - //TODO generate IDS for libraries... quint64 libraryId = libraries.getId(selectedLibrary->currentText()); bool yacreaderFound = false; diff --git a/common/pictureflow.cpp b/common/pictureflow.cpp index edb5149c..ac99f9a0 100644 --- a/common/pictureflow.cpp +++ b/common/pictureflow.cpp @@ -1421,7 +1421,6 @@ void PictureFlow::markSlide(int index, YACReaderComicReadStatus readStatus) void PictureFlow::updateMarks() { d->renderer->init(); - d->renderer->paint(); repaint(); }