diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp index e3054890b..b198d06bd 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.cpp @@ -98,10 +98,11 @@ void VisualDeckStorageFolderDisplayWidget::createWidgetsForFiles() } /** - * Updates the visibility of this folder and all its DeckPreviewWidgets, as well as all its subfolders and their - * DeckPreviewWidgets. + * Updates the visibility of this folder and all its DeckPreviewWidgets + * + * @param recursive Also update the visibility of all subfolders and their DeckPreviewWidgets. */ -void VisualDeckStorageFolderDisplayWidget::updateVisibility() +void VisualDeckStorageFolderDisplayWidget::updateVisibility(bool recursive) { bool atLeastOneWidgetVisible = checkVisibility(); if (atLeastOneWidgetVisible) { @@ -109,8 +110,10 @@ void VisualDeckStorageFolderDisplayWidget::updateVisibility() for (DeckPreviewWidget *display : flowWidget->findChildren()) { display->updateVisibility(); } - for (VisualDeckStorageFolderDisplayWidget *subFolder : findChildren()) { - subFolder->updateVisibility(); + if (recursive) { + for (auto *subFolder : findChildren()) { + subFolder->updateVisibility(false); + } } } else { setVisible(false); diff --git a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.h index d149e4d27..747bcf8bd 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_storage/visual_deck_storage_folder_display_widget.h @@ -28,7 +28,7 @@ public: }; public slots: - void updateVisibility(); + void updateVisibility(bool recursive = true); bool checkVisibility(); void updateShowFolders(bool enabled);