From a4e26922446e6ef193fe6d8587489d38409c85ce Mon Sep 17 00:00:00 2001 From: RickyRister Date: Sun, 2 Mar 2025 03:28:02 -0800 Subject: [PATCH] reduce redundant recursion --- .../visual_deck_storage_folder_display_widget.cpp | 14 +++++++++----- .../visual_deck_storage_folder_display_widget.h | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) 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 8725b8bd7..c2e4408a5 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 @@ -181,12 +181,14 @@ void VisualDeckStorageFolderDisplayWidget::updateShowFolders(bool enabled) } /** - * Sorts the DeckPreviewWidgets in this folder and all subfolders + * Sorts the DeckPreviewWidgets in this folder * * @param comparator The comparator to use for sorting + * @param recursive Also sort all nested subfolders */ void VisualDeckStorageFolderDisplayWidget::sortBy( - const std::function &comparator) + const std::function &comparator, + bool recursive) { auto deckPreviewWidgets = flowWidget->findChildren(); @@ -200,9 +202,11 @@ void VisualDeckStorageFolderDisplayWidget::sortBy( flowWidget->addWidget(previewWidget); } - // also sort all subfolders - for (auto *subFolder : findChildren()) { - subFolder->sortBy(comparator); + if (recursive) { + // also sort all subfolders + for (auto *subFolder : findChildren()) { + subFolder->sortBy(comparator, 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 7c7bf9556..bd72fc0c3 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 @@ -20,7 +20,7 @@ public: void refreshUi(); void createWidgetsForFiles(); void createWidgetsForFolders(); - void sortBy(const std::function &comparator); + void sortBy(const std::function &comparator, bool recursive = true); void flattenFolderStructure(); QStringList gatherAllTagsFromFlowWidget() const; FlowWidget *getFlowWidget() const