diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_manage_sets.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_manage_sets.cpp index a4f54564f..28091585c 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_manage_sets.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_manage_sets.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -253,6 +254,17 @@ 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; + + conn = connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFinished, this, + [conn]() mutable { + CardDatabaseManager::getInstance()->notifyEnabledSetsChanged(); + QObject::disconnect(conn); + }); + SettingsCache::instance().downloads().sync(); + }); close(); } diff --git a/libcockatrice_models/libcockatrice/models/database/card_database_display_model.cpp b/libcockatrice_models/libcockatrice/models/database/card_database_display_model.cpp index 5ce63a939..826bec581 100644 --- a/libcockatrice_models/libcockatrice/models/database/card_database_display_model.cpp +++ b/libcockatrice_models/libcockatrice/models/database/card_database_display_model.cpp @@ -15,6 +15,24 @@ CardDatabaseDisplayModel::CardDatabaseDisplayModel(QObject *parent) loadedRowCount = 0; } +void CardDatabaseDisplayModel::setSourceModel(QAbstractItemModel *model) +{ + QSortFilterProxyModel::setSourceModel(model); + + connect(model, &QAbstractItemModel::rowsInserted, this, [this]() { + dirty(); + }); + + connect(model, &QAbstractItemModel::rowsRemoved, this, [this]() { + dirty(); + }); + + connect(model, &QAbstractItemModel::modelReset, this, [this]() { + loadedRowCount = 0; + dirty(); + }); +} + QMap CardDatabaseDisplayModel::characterTranslation = {{L'“', L'\"'}, {L'”', L'\"'}, {L'‘', L'\''}, diff --git a/libcockatrice_models/libcockatrice/models/database/card_database_display_model.h b/libcockatrice_models/libcockatrice/models/database/card_database_display_model.h index 0c5994a3a..b1d3c0f22 100644 --- a/libcockatrice_models/libcockatrice/models/database/card_database_display_model.h +++ b/libcockatrice_models/libcockatrice/models/database/card_database_display_model.h @@ -38,6 +38,7 @@ private: public: explicit CardDatabaseDisplayModel(QObject *parent = nullptr); + void setSourceModel(QAbstractItemModel *model) override; void setFilterTree(FilterTree *_filterTree); void setIsToken(FilterBool _isToken) {