diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_sort_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_sort_widget.cpp index 773e80768..f19131407 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_sort_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_sort_widget.cpp @@ -21,15 +21,18 @@ VisualDeckStorageSortWidget::VisualDeckStorageSortWidget(VisualDeckStorageWidget sortComboBox = new QComboBox(this); layout->addWidget(sortComboBox); + // Need to retranslateUi first so that the sortComboBox actually has entries and doesn't get its currentIndex + // immediately capped to 0 when we try to set it + retranslateUi(); + // Set the current sort order sortComboBox->setCurrentIndex(SettingsCache::instance().getVisualDeckStorageSortingOrder()); + sortOrder = static_cast(sortComboBox->currentIndex()); // Connect sorting change signal to refresh the file list connect(sortComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &VisualDeckStorageSortWidget::updateSortOrder); connect(this, &VisualDeckStorageSortWidget::sortOrderChanged, parent, &VisualDeckStorageWidget::updateSortOrder); - - retranslateUi(); } void VisualDeckStorageSortWidget::retranslateUi() @@ -37,6 +40,8 @@ void VisualDeckStorageSortWidget::retranslateUi() // Block signals to avoid triggering unnecessary updates while changing text sortComboBox->blockSignals(true); + int oldIndex = sortComboBox->currentIndex(); + // Clear and repopulate the ComboBox with translated items sortComboBox->clear(); sortComboBox->addItem(tr("Sort Alphabetically (Deck Name)"), ByName); @@ -45,19 +50,12 @@ void VisualDeckStorageSortWidget::retranslateUi() sortComboBox->addItem(tr("Sort by Last Loaded"), ByLastLoaded); // Restore the current index - sortComboBox->setCurrentIndex(SettingsCache::instance().getVisualDeckStorageSortingOrder()); + sortComboBox->setCurrentIndex(oldIndex); // Re-enable signals sortComboBox->blockSignals(false); } -void VisualDeckStorageSortWidget::showEvent(QShowEvent *event) -{ - QWidget::showEvent(event); - sortComboBox->setCurrentIndex(SettingsCache::instance().getVisualDeckStorageSortingOrder()); - updateSortOrder(); -} - void VisualDeckStorageSortWidget::updateSortOrder() { sortOrder = static_cast(sortComboBox->currentIndex()); diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_sort_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_sort_widget.h index 25dccdca7..58838f3ac 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_sort_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_sort_widget.h @@ -19,9 +19,6 @@ public: QString getSearchText(); QList &filterFiles(QList &widgets); -public slots: - void showEvent(QShowEvent *event) override; - signals: void sortOrderChanged(); diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp index 5fde3639d..650c1abe1 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.cpp @@ -46,12 +46,11 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFinished, this, &VisualDeckStorageWidget::refreshBannerCards); -} -void VisualDeckStorageWidget::showEvent(QShowEvent *event) -{ - QWidget::showEvent(event); - updateSortOrder(); + // Don't waste time processing the cards if they're going to get refreshed anyway once the db finishes loading + if (CardDatabaseManager::getInstance()->getLoadStatus() == LoadStatus::Ok) { + refreshBannerCards(); + } } void VisualDeckStorageWidget::updateSortOrder() diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h index 6bd6edec0..552b151d6 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_widget.h @@ -29,7 +29,6 @@ public slots: void refreshBannerCards(); // Refresh the display of cards based on the current sorting option QStringList gatherAllTagsFromFlowWidget() const; QStringList gatherAllTags(const QList &allDecks); - void showEvent(QShowEvent *event) override; void updateSortOrder(); signals: