only trigger the top-level updateVisibility on filter update

Every folder widget was connecting the filter update signals to their updateVisibility, but updateVisibility is already recursive.
That means a bunch of redundant updateVisibility calls happen every time a filter update signal is emitted
This commit is contained in:
RickyRister 2025-02-26 22:36:42 -08:00
parent e2990c9dff
commit 2da0deff62
2 changed files with 7 additions and 7 deletions

View file

@ -33,13 +33,6 @@ VisualDeckStorageFolderDisplayWidget::VisualDeckStorageFolderDisplayWidget(
flowWidget = new FlowWidget(this, Qt::Horizontal, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAlwaysOff);
containerLayout->addWidget(flowWidget);
connect(visualDeckStorageWidget, &VisualDeckStorageWidget::tagFilterUpdated, this,
&VisualDeckStorageFolderDisplayWidget::updateVisibility);
connect(visualDeckStorageWidget, &VisualDeckStorageWidget::colorFilterUpdated, this,
&VisualDeckStorageFolderDisplayWidget::updateVisibility);
connect(visualDeckStorageWidget, &VisualDeckStorageWidget::searchFilterUpdated, this,
&VisualDeckStorageFolderDisplayWidget::updateVisibility);
createWidgetsForFiles();
createWidgetsForFolders();
@ -104,6 +97,10 @@ void VisualDeckStorageFolderDisplayWidget::createWidgetsForFiles()
}
}
/**
* Updates the visibility of this folder and all its DeckPreviewWidgets, as well as all its subfolders and their
* DeckPreviewWidgets.
*/
void VisualDeckStorageFolderDisplayWidget::updateVisibility()
{
bool atLeastOneWidgetVisible = checkVisibility();

View file

@ -198,6 +198,7 @@ void VisualDeckStorageWidget::updateTagFilter()
{
if (folderWidget) {
tagFilterWidget->filterDecksBySelectedTags(folderWidget->findChildren<DeckPreviewWidget *>());
folderWidget->updateVisibility();
}
emit tagFilterUpdated();
}
@ -206,6 +207,7 @@ void VisualDeckStorageWidget::updateColorFilter()
{
if (folderWidget) {
deckPreviewColorIdentityFilterWidget->filterWidgets(folderWidget->findChildren<DeckPreviewWidget *>());
folderWidget->updateVisibility();
}
emit colorFilterUpdated();
}
@ -215,6 +217,7 @@ void VisualDeckStorageWidget::updateSearchFilter()
if (folderWidget) {
searchWidget->filterWidgets(folderWidget->findChildren<DeckPreviewWidget *>(), searchWidget->getSearchText(),
searchFolderNamesCheckBox->isChecked());
folderWidget->updateVisibility();
}
emit searchFilterUpdated();
}