Extract to method, also notify on "Reload db" and "new sets found"

Took 3 minutes

Took 4 seconds
This commit is contained in:
Lukas Brübach 2026-04-30 08:54:09 +02:00
parent 3f030fe2dc
commit 808f51a61b
4 changed files with 18 additions and 10 deletions

View file

@ -254,15 +254,9 @@ void WndSets::actSave()
model->save(CardDatabaseManager::getInstance()); model->save(CardDatabaseManager::getInstance());
SettingsCache::instance().setIncludeRebalancedCards(includeRebalancedCards); SettingsCache::instance().setIncludeRebalancedCards(includeRebalancedCards);
CardPictureLoader::clearPixmapCache(); CardPictureLoader::clearPixmapCache();
const auto reloadOk1 = QtConcurrent::run([this] { const auto reloadOk1 = QtConcurrent::run([] {
CardDatabaseManager::getInstance()->loadCardDatabases(); CardDatabaseManager::getInstance()->reloadCardDatabasesAndNotify();
QMetaObject::Connection conn;
conn = connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFinished, this,
[conn]() mutable {
CardDatabaseManager::getInstance()->notifyEnabledSetsChanged();
QObject::disconnect(conn);
});
SettingsCache::instance().downloads().sync(); SettingsCache::instance().downloads().sync();
}); });
close(); close();

View file

@ -1191,7 +1191,8 @@ void MainWindow::cardDatabaseNewSetsFound(int numUnknownSets, QStringList unknow
if (msgBox.clickedButton() == yesButton) { if (msgBox.clickedButton() == yesButton) {
CardDatabaseManager::getInstance()->enableAllUnknownSets(); CardDatabaseManager::getInstance()->enableAllUnknownSets();
const auto reloadOk1 = QtConcurrent::run([] { CardDatabaseManager::getInstance()->loadCardDatabases(); }); const auto reloadOk1 =
QtConcurrent::run([] { CardDatabaseManager::getInstance()->reloadCardDatabasesAndNotify(); });
} else if (msgBox.clickedButton() == noButton) { } else if (msgBox.clickedButton() == noButton) {
CardDatabaseManager::getInstance()->markAllSetsAsKnown(); CardDatabaseManager::getInstance()->markAllSetsAsKnown();
} else if (msgBox.clickedButton() == settingsButton) { } else if (msgBox.clickedButton() == settingsButton) {
@ -1473,7 +1474,7 @@ int MainWindow::getNextCustomSetPrefix(QDir dataDir)
void MainWindow::actReloadCardDatabase() void MainWindow::actReloadCardDatabase()
{ {
const auto reloadOk1 = QtConcurrent::run([] { const auto reloadOk1 = QtConcurrent::run([] {
CardDatabaseManager::getInstance()->loadCardDatabases(); CardDatabaseManager::getInstance()->reloadCardDatabasesAndNotify();
SettingsCache::instance().downloads().sync(); SettingsCache::instance().downloads().sync();
}); });
} }

View file

@ -1,6 +1,7 @@
#include "card_database.h" #include "card_database.h"
#include "../relation/card_relation.h" #include "../relation/card_relation.h"
#include "card_database_manager.h"
#include "parser/cockatrice_xml_4.h" #include "parser/cockatrice_xml_4.h"
#include <QCryptographicHash> #include <QCryptographicHash>
@ -60,6 +61,17 @@ void CardDatabase::loadCardDatabases()
loadStatus = loader->loadCardDatabases(); loadStatus = loader->loadCardDatabases();
} }
void CardDatabase::reloadCardDatabasesAndNotify()
{
loadCardDatabases();
QMetaObject::Connection conn;
conn = connect(this, &CardDatabase::cardDatabaseLoadingFinished, this, [conn, this]() mutable {
notifyEnabledSetsChanged();
QObject::disconnect(conn);
});
}
bool CardDatabase::saveCustomTokensToFile() bool CardDatabase::saveCustomTokensToFile()
{ {
return loader->saveCustomTokensToFile(); return loader->saveCustomTokensToFile();

View file

@ -147,6 +147,7 @@ public slots:
/** @brief Loads card databases from configured paths. */ /** @brief Loads card databases from configured paths. */
void loadCardDatabases(); void loadCardDatabases();
void reloadCardDatabasesAndNotify();
/** @brief Saves custom tokens to file. /** @brief Saves custom tokens to file.
* @return True if successful. * @return True if successful.