From 9c16d1ad81609fd5e8cf35787e91d4f699380383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20A=CC=81ngel=20San=20Marti=CC=81n=20Rodri=CC=81guez?= Date: Sat, 28 Dec 2024 11:25:05 +0100 Subject: [PATCH] Don't override the finished QThread signal in LibraryCreator This should fix a crash in LibrariesUpdateCoordinator because the QThread can be destroyed before it finishes running. --- YACReaderLibrary/library_creator.cpp | 10 +++++----- YACReaderLibrary/library_creator.h | 2 +- YACReaderLibrary/library_window.cpp | 5 +---- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/YACReaderLibrary/library_creator.cpp b/YACReaderLibrary/library_creator.cpp index 8a8281aa..e8fc10cc 100644 --- a/YACReaderLibrary/library_creator.cpp +++ b/YACReaderLibrary/library_creator.cpp @@ -96,7 +96,7 @@ void LibraryCreator::updateFolder(const QString &source, const QString &target, QString error = "Unable to find database at: " + _target; QLOG_ERROR() << error; emit failedOpeningDB(error); - emit finished(); + emit completed(); return; } @@ -164,7 +164,7 @@ void LibraryCreator::run() if (!_database.isOpen()) { QLOG_ERROR() << "Unable to create data base" << _database.lastError().databaseText() + "-" + _database.lastError().driverText(); emit failedCreatingDB(_database.lastError().databaseText() + "-" + _database.lastError().driverText()); - emit finished(); + emit completed(); creation = false; return; } @@ -193,7 +193,7 @@ void LibraryCreator::run() QString error = "Unable to find database at: " + _target; QLOG_ERROR() << error; emit failedOpeningDB(error); - emit finished(); + emit completed(); return; } @@ -203,7 +203,7 @@ void LibraryCreator::run() if (!_database.open()) { QLOG_ERROR() << "Unable to open database" << _database.lastError().databaseText() + "-" + _database.lastError().driverText(); emit failedOpeningDB(_database.lastError().databaseText() + "-" + _database.lastError().driverText()); - emit finished(); + emit completed(); creation = false; return; } @@ -255,7 +255,7 @@ void LibraryCreator::run() emit updatedCurrentFolder(folderDestinationModelIndex); } - emit finished(); + emit completed(); creation = false; } diff --git a/YACReaderLibrary/library_creator.h b/YACReaderLibrary/library_creator.h index 0d7c3757..e09ef17f 100644 --- a/YACReaderLibrary/library_creator.h +++ b/YACReaderLibrary/library_creator.h @@ -62,7 +62,7 @@ private: void cleanup(QSqlDatabase &db, const QString &target); signals: - void finished(); + void completed(); void coverExtracted(QString); void folderUpdated(QString); void comicAdded(QString, QString); diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index e71d36b1..907d61ca 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -706,12 +706,9 @@ void LibraryWindow::createConnections() connect(createLibraryDialog, &CreateLibraryDialog::libraryExists, this, &LibraryWindow::libraryAlreadyExists); connect(importComicsInfoDialog, &QDialog::finished, this, &LibraryWindow::reloadCurrentLibrary); - // connect(libraryCreator,SIGNAL(coverExtracted(QString)),createLibraryDialog,SLOT(showCurrentFile(QString))); - // connect(libraryCreator,SIGNAL(coverExtracted(QString)),updateLibraryDialog,SLOT(showCurrentFile(QString))); - connect(libraryCreator, &LibraryCreator::finished, this, &LibraryWindow::showRootWidget); + connect(libraryCreator, &LibraryCreator::completed, this, &LibraryWindow::showRootWidget); connect(libraryCreator, &LibraryCreator::updated, this, &LibraryWindow::reloadCurrentLibrary); connect(libraryCreator, &LibraryCreator::created, this, &LibraryWindow::openLastCreated); - // connect(libraryCreator,SIGNAL(updatedCurrentFolder()), this, SLOT(showRootWidget())); connect(libraryCreator, &LibraryCreator::updatedCurrentFolder, this, &LibraryWindow::reloadAfterCopyMove); connect(libraryCreator, &LibraryCreator::comicAdded, importWidget, &ImportWidget::newComic); // libraryCreator errors