Revert "Thread ping pong"

This commit is contained in:
Luis Ángel San Martín 2019-09-24 12:00:21 +02:00 committed by GitHub
parent b906bf964f
commit 0b83764734
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 70 deletions

View File

@ -381,8 +381,8 @@ Render::Render()
Render::~Render() Render::~Render()
{ {
if (comic != 0) { if (comic != nullptr) {
//comic->moveToThread(QApplication::instance()->thread()); comic->moveToThread(QApplication::instance()->thread());
comic->deleteLater(); comic->deleteLater();
} }
@ -607,8 +607,8 @@ void Render::setRotation(int degrees)
void Render::setComic(Comic *c) void Render::setComic(Comic *c)
{ {
if (comic != 0) { if (comic != nullptr) {
//comic->moveToThread(QApplication::instance()->thread()); comic->moveToThread(QApplication::instance()->thread());
comic->disconnect(); comic->disconnect();
comic->deleteLater(); comic->deleteLater();
} }

View File

@ -57,10 +57,9 @@ void ComicController::service(HttpRequest &request, HttpResponse &response)
comicFile->moveToThread(thread); comicFile->moveToThread(thread);
//connect(comicFile, SIGNAL(errorOpening()), thread, SLOT(quit())); connect(comicFile, SIGNAL(errorOpening()), thread, SLOT(quit()));
//connect(comicFile, SIGNAL(errorOpening(QString)), thread, SLOT(quit())); connect(comicFile, SIGNAL(errorOpening(QString)), thread, SLOT(quit()));
//connect(comicFile, SIGNAL(imagesLoaded()), thread, SLOT(quit())); connect(comicFile, SIGNAL(imagesLoaded()), thread, SLOT(quit()));
connect(comicFile, SIGNAL(destroyed()), thread, SLOT(quit()));
connect(thread, SIGNAL(started()), comicFile, SLOT(process())); connect(thread, SIGNAL(started()), comicFile, SLOT(process()));
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater())); connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));

View File

@ -53,21 +53,23 @@ void ComicControllerV2::service(HttpRequest &request, HttpResponse &response)
Comic *comicFile = FactoryComic::newComic(libraries.getPath(libraryId) + comic.path); Comic *comicFile = FactoryComic::newComic(libraries.getPath(libraryId) + comic.path);
if (comicFile != NULL) { if (comicFile != nullptr) {
QThread *thread = new QThread(); QThread *thread = nullptr;
thread = new QThread();
comicFile->moveToThread(thread); comicFile->moveToThread(thread);
//connect(comicFile, SIGNAL(errorOpening()), thread, SLOT(quit())); connect(comicFile, SIGNAL(errorOpening()), thread, SLOT(quit()));
//connect(comicFile, SIGNAL(errorOpening(QString)), thread, SLOT(quit())); connect(comicFile, SIGNAL(errorOpening(QString)), thread, SLOT(quit()));
//connect(comicFile, SIGNAL(imagesLoaded()), thread, SLOT(quit())); connect(comicFile, SIGNAL(imagesLoaded()), thread, SLOT(quit()));
connect(comicFile, SIGNAL(destroyed()), thread, SLOT(quit()));
connect(thread, SIGNAL(started()), comicFile, SLOT(process())); connect(thread, SIGNAL(started()), comicFile, SLOT(process()));
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater())); connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
comicFile->load(libraries.getPath(libraryId) + comic.path); comicFile->load(libraries.getPath(libraryId) + comic.path);
thread->start(); if (thread != nullptr)
thread->start();
if (remoteComic) { if (remoteComic) {
QLOG_TRACE() << "remote comic requested"; QLOG_TRACE() << "remote comic requested";

View File

@ -234,21 +234,6 @@ void Comic::updateBookmarkImage(int index)
emit bookmarksUpdated(); emit bookmarksUpdated();
//emit bookmarksLoaded(*bm); //emit bookmarksLoaded(*bm);
} }
if (bm->isBookmark(index)) {
QImage p;
p.loadFromData(_pages[index]);
bm->setBookmark(index, p);
emit bookmarksUpdated();
//emit bookmarksLoaded(*bm);
}
if (bm->getLastPage() == index) {
QImage p;
p.loadFromData(_pages[index]);
bm->setLastPage(index, p);
emit bookmarksUpdated();
//emit bookmarksLoaded(*bm);
}
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void Comic::setPageLoaded(int page) void Comic::setPageLoaded(int page)
@ -393,7 +378,7 @@ bool FileComic::load(const QString &path, const ComicDB &comic)
return true; return true;
} else { } else {
//QMessageBox::critical(NULL,tr("Not found"),tr("Comic not found")+" : " + path); //QMessageBox::critical(NULL,tr("Not found"),tr("Comic not found")+" : " + path);
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit errorOpening(); emit errorOpening();
return false; return false;
} }
@ -534,32 +519,11 @@ QList<QVector<quint32>> FileComic::getSections(int &sectionIndex)
sections.append(section2); sections.append(section2);
//out << "SPLIT" << endl; //out << "SPLIT" << endl;
idx++;
}
if (sectionIndex == sectionCount) //found
{
if (section.indexOf(realIdx) != 0) {
QVector<quint32> section1;
QVector<quint32> section2;
foreach (quint32 si, section) {
if (si < realIdx) {
section1.append(si);
} else {
section2.append(si);
}
}
sectionIndex++;
sections.append(section1);
sections.append(section2);
//out << "SPLIT" << endl;
} else {
sections.append(section);
}
} else { } else {
sections.append(section); sections.append(section);
} }
} else {
sections.append(section);
} }
//out << "se han encontrado : " << sections.count() << " sectionIndex : " << sectionIndex << endl; //out << "se han encontrado : " << sections.count() << " sectionIndex : " << sectionIndex << endl;
@ -570,13 +534,13 @@ void FileComic::process()
{ {
CompressedArchive archive(_path); CompressedArchive archive(_path);
if (!archive.toolsLoaded()) { if (!archive.toolsLoaded()) {
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit errorOpening(tr("7z not found")); emit errorOpening(tr("7z not found"));
return; return;
} }
if (!archive.isValid()) { if (!archive.isValid()) {
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit errorOpening(tr("Format not supported")); emit errorOpening(tr("Format not supported"));
return; return;
} }
@ -587,7 +551,7 @@ void FileComic::process()
if (_fileNames.size() == 0) { if (_fileNames.size() == 0) {
//QMessageBox::critical(NULL,tr("File error"),tr("File not found or not images in file")); //QMessageBox::critical(NULL,tr("File error"),tr("File not found or not images in file"));
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit errorOpening(); emit errorOpening();
return; return;
} }
@ -623,14 +587,14 @@ void FileComic::process()
for (int i = sectionIndex; i < sections.count(); i++) { for (int i = sectionIndex; i < sections.count(); i++) {
if (_invalidated) { if (_invalidated) {
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
return; return;
} }
archive.getAllData(sections.at(i), this); archive.getAllData(sections.at(i), this);
} }
for (int i = 0; i < sectionIndex; i++) { for (int i = 0; i < sectionIndex; i++) {
if (_invalidated) { if (_invalidated) {
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
return; return;
} }
archive.getAllData(sections.at(i), this); archive.getAllData(sections.at(i), this);
@ -645,7 +609,7 @@ void FileComic::process()
emit imageLoaded(sortedIndex); emit imageLoaded(sortedIndex);
emit imageLoaded(sortedIndex,_pages[sortedIndex]); emit imageLoaded(sortedIndex,_pages[sortedIndex]);
}*/ }*/
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit imagesLoaded(); emit imagesLoaded();
} }
@ -700,7 +664,7 @@ void FolderComic::process()
if (nPages == 0) { if (nPages == 0) {
//TODO emitir este mensaje en otro sitio //TODO emitir este mensaje en otro sitio
//QMessageBox::critical(NULL,QObject::tr("No images found"),QObject::tr("There are not images on the selected folder")); //QMessageBox::critical(NULL,QObject::tr("No images found"),QObject::tr("There are not images on the selected folder"));
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit errorOpening(); emit errorOpening();
} else { } else {
if (_firstPage == -1) { if (_firstPage == -1) {
@ -723,7 +687,7 @@ void FolderComic::process()
int i = _firstPage; int i = _firstPage;
while (count < nPages) { while (count < nPages) {
if (_invalidated) { if (_invalidated) {
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
return; return;
} }
@ -739,7 +703,7 @@ void FolderComic::process()
count++; count++;
} }
} }
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit imagesLoaded(); emit imagesLoaded();
} }
@ -778,7 +742,7 @@ bool PDFComic::load(const QString &path, int atPage)
//emit bookmarksLoaded(*bm); //emit bookmarksLoaded(*bm);
return true; return true;
} else { } else {
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit errorOpening(); emit errorOpening();
return false; return false;
} }
@ -799,7 +763,7 @@ bool PDFComic::load(const QString &path, const ComicDB &comic)
return true; return true;
} else { } else {
//QMessageBox::critical(NULL,tr("Not found"),tr("Comic not found")+" : " + path); //QMessageBox::critical(NULL,tr("Not found"),tr("Comic not found")+" : " + path);
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit errorOpening(); emit errorOpening();
return false; return false;
} }
@ -826,12 +790,12 @@ void PDFComic::process()
if (!pdfComic) { if (!pdfComic) {
//delete pdfComic; //delete pdfComic;
//pdfComic = 0; //pdfComic = 0;
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit errorOpening(); emit errorOpening();
return; return;
} }
if (pdfComic->isLocked()) { if (pdfComic->isLocked()) {
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit errorOpening(); emit errorOpening();
return; return;
} }
@ -866,7 +830,7 @@ void PDFComic::process()
for (int i = buffered_index; i < nPages; i++) { for (int i = buffered_index; i < nPages; i++) {
if (_invalidated) { if (_invalidated) {
delete pdfComic; delete pdfComic;
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
return; return;
} }
@ -875,14 +839,14 @@ void PDFComic::process()
for (int i = 0; i < buffered_index; i++) { for (int i = 0; i < buffered_index; i++) {
if (_invalidated) { if (_invalidated) {
delete pdfComic; delete pdfComic;
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
return; return;
} }
renderPage(i); renderPage(i);
} }
delete pdfComic; delete pdfComic;
//moveToThread(QCoreApplication::instance()->thread()); moveToThread(QCoreApplication::instance()->thread());
emit imagesLoaded(); emit imagesLoaded();
} }