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());
SettingsCache::instance().setIncludeRebalancedCards(includeRebalancedCards);
CardPictureLoader::clearPixmapCache();
const auto reloadOk1 = QtConcurrent::run([this] {
CardDatabaseManager::getInstance()->loadCardDatabases();
QMetaObject::Connection conn;
const auto reloadOk1 = QtConcurrent::run([] {
CardDatabaseManager::getInstance()->reloadCardDatabasesAndNotify();
conn = connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFinished, this,
[conn]() mutable {
CardDatabaseManager::getInstance()->notifyEnabledSetsChanged();
QObject::disconnect(conn);
});
SettingsCache::instance().downloads().sync();
});
close();

View file

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

View file

@ -1,6 +1,7 @@
#include "card_database.h"
#include "../relation/card_relation.h"
#include "card_database_manager.h"
#include "parser/cockatrice_xml_4.h"
#include <QCryptographicHash>
@ -60,6 +61,17 @@ void CardDatabase::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()
{
return loader->saveCustomTokensToFile();

View file

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