connect(buttonInfo, SIGNAL(clicked()), this, SLOT(showInfoPanel()));
connect(m_effectsList, SIGNAL(itemSelectionChanged()), this, SLOT(slotUpdateInfo()));
connect(m_effectsList, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(slotEffectSelected()));
-
+ connect(search_effect, SIGNAL(hiddenChanged(QTreeWidgetItem *, bool)), this, SLOT(slotUpdateSearch(QTreeWidgetItem *, bool)));
//m_effectsList->setCurrentRow(0);
}
-void EffectsListView::focusInEvent(QFocusEvent * event)
+void EffectsListView::focusInEvent(QFocusEvent * /*event*/)
{
- kDebug() << "// got foc";
search_effect->setFocus();
}
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) {
+ // make sure we don't show anything not matching the search expression
+ search_effect->updateSearch();
+
+ /*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
emit reloadEffects();
}
+void EffectsListView::slotUpdateSearch(QTreeWidgetItem *item, bool hidden)
+{
+ if (!hidden) {
+ if (item->data(0, Qt::UserRole).toInt() == type_combo->currentIndex()) {
+ item->parent()->setHidden(false);
+ } else {
+ if (type_combo->currentIndex() != 0)
+ item->setHidden(true);
+ }
+ }
+}
+
#include "effectslistview.moc"