From: Alberto Villa Date: Tue, 30 Mar 2010 11:35:38 +0000 (+0000) Subject: - Hide empty effects folders when filtering by effect type. X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=a3fbdc78bc5f2c2837c156124dd87e17834f9580;p=kdenlive - Hide empty effects folders when filtering by effect type. Submitted by: Till Theato svn path=/trunk/kdenlive/; revision=4362 --- diff --git a/src/effectslistview.cpp b/src/effectslistview.cpp index 6593c8e9..a9d37762 100644 --- a/src/effectslistview.cpp +++ b/src/effectslistview.cpp @@ -65,19 +65,25 @@ void EffectsListView::focusInEvent(QFocusEvent * /*event*/) void EffectsListView::filterList(int pos) { - QTreeWidgetItem *item; - QTreeWidgetItem *folder; for (int i = 0; i < m_effectsList->topLevelItemCount(); i++) { - folder = m_effectsList->topLevelItem(i); + QTreeWidgetItem *folder = m_effectsList->topLevelItem(i); + bool hideFolder = true; for (int j = 0; j < folder->childCount(); j++) { - item = folder->child(j); - if (pos == 0) item->setHidden(false); - else if (item->data(0, Qt::UserRole).toInt() == pos) item->setHidden(false); - else item->setHidden(true); + QTreeWidgetItem *item = folder->child(j); + if (pos == 0 || pos == item->data(0, Qt::UserRole).toInt()) { + item->setHidden(false); + hideFolder = false; + } else { + item->setHidden(true); + } } + // do not hide the folder if it's empty but "All" is selected + if (pos == 0) + hideFolder = false; + folder->setHidden(hideFolder); } - item = m_effectsList->currentItem(); - /*if (item) { + /*item = m_effectsList->currentItem(); + if (item) { if (item->isHidden()) { int i; for (i = 0; i < m_effectsList->count() && m_effectsList->item(i)->isHidden(); i++); //do nothing