From 08bb18cefe635f5a77a517a487aabb2b0d5e4662 Mon Sep 17 00:00:00 2001 From: RickyRister <42636155+RickyRister@users.noreply.github.com> Date: Tue, 4 Mar 2025 16:57:28 -0800 Subject: [PATCH] Fix VDS filters not applying after refresh (#5662) * reapply sort and filters after each reset * fix unflatten folder still not applying afterwards --- .../deck_preview/deck_preview_widget.cpp | 5 +---- .../deck_preview/deck_preview_widget.h | 1 - .../visual_deck_storage_widget.cpp | 17 ++++++++++++++--- .../visual_deck_storage_widget.h | 2 ++ 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp index f15c0e6b7..4522e64d8 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.cpp @@ -105,10 +105,7 @@ void DeckPreviewWidget::initializeUi(const bool deckLoadSuccess) void DeckPreviewWidget::updateVisibility() { - if (isVisible() != checkVisibility()) { - setHidden(!checkVisibility()); - emit visibilityUpdated(); - } + setHidden(!checkVisibility()); } bool DeckPreviewWidget::checkVisibility() const diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h index f8aac59fa..4dc5c5aa6 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/deck_preview/deck_preview_widget.h @@ -43,7 +43,6 @@ public: signals: void deckLoadRequested(const QString &filePath); void openDeckEditor(const DeckLoader *deck); - void visibilityUpdated(); public slots: void setFilePath(const QString &filePath); 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 76967c784..8ac228410 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 @@ -164,6 +164,17 @@ void VisualDeckStorageWidget::retranslateUi() searchFolderNamesCheckBox->setText(tr("Include Folder Names in Search")); } +/** + * Reapplies all sort and filter options by calling the appropriate update methods. + */ +void VisualDeckStorageWidget::reapplySortAndFilters() +{ + updateSortOrder(); + updateTagFilter(); + updateColorFilter(); + updateSearchFilter(); +} + void VisualDeckStorageWidget::createRootFolderWidget() { folderWidget = new VisualDeckStorageFolderDisplayWidget(this, this, SettingsCache::instance().getDeckPath(), false, @@ -172,14 +183,14 @@ void VisualDeckStorageWidget::createRootFolderWidget() scrollArea->setWidget(folderWidget); // this automatically destroys the old folderWidget scrollArea->widget()->setMaximumWidth(scrollArea->viewport()->width()); scrollArea->widget()->adjustSize(); - updateSortOrder(); + reapplySortAndFilters(); } void VisualDeckStorageWidget::updateShowFolders(bool enabled) { if (folderWidget) { folderWidget->updateShowFolders(enabled); - updateSortOrder(); + reapplySortAndFilters(); } } @@ -227,4 +238,4 @@ void VisualDeckStorageWidget::updateTagsVisibility(const bool visible) } else { tagFilterWidget->setHidden(true); } -} +} \ No newline at end of file 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 2a09f6736..adfff06cb 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 @@ -66,6 +66,8 @@ private: QCheckBox *searchFolderNamesCheckBox; QScrollArea *scrollArea; VisualDeckStorageFolderDisplayWidget *folderWidget; + + void reapplySortAndFilters(); }; #endif // VISUAL_DECK_STORAGE_WIDGET_H