From b7d009d2ba676c136ef7163b74341da9e18985df Mon Sep 17 00:00:00 2001 From: Stephane Albert <stephane.albert@c-s.fr> Date: Tue, 8 Apr 2014 10:18:36 +0200 Subject: [PATCH] ENH: Database-browser search filter. --- Code/Common/Gui/mvdDatabaseBrowserWidget.cxx | 37 +++++++++++++------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/Code/Common/Gui/mvdDatabaseBrowserWidget.cxx b/Code/Common/Gui/mvdDatabaseBrowserWidget.cxx index 828f70266b..163a65da1d 100644 --- a/Code/Common/Gui/mvdDatabaseBrowserWidget.cxx +++ b/Code/Common/Gui/mvdDatabaseBrowserWidget.cxx @@ -324,27 +324,40 @@ void DatabaseBrowserWidget ::on_m_SearchLine_textChanged( const QString& search ) { - // + // qDebug() << this << "on_m_SearchLine_textChanged(" << search << ")"; + + // // get the search text m_SearchText = search; - /* - // - // Obsolete code: it is kept to help re-implement this method. - // - for( int i=0; i<m_DatasetRootItem->childCount(); ++i ) + typedef QList< QTreeWidgetItem* > QTreeWidgetItemList; + + QTreeWidgetItemList items( + m_UI->databaseTreeWidget->findItems( + "*", + Qt::MatchWildcard | Qt::MatchRecursive, + 0 + ) + ); + + // qDebug() << items; + + for( QTreeWidgetItemList::iterator it( items.begin() ); + it!=items.end(); + ++it ) { - QTreeWidgetItem* item = m_DatasetRootItem->child( i ); + assert( *it==dynamic_cast< TreeWidgetItem* >( *it ) ); + TreeWidgetItem* item = dynamic_cast< TreeWidgetItem* >( *it ); assert( item!=NULL ); - // Item is visible if search is empty or if alias contains - // search-text. item->setHidden( - !search.isEmpty() && - !item->text( 0 ).contains( search, Qt::CaseInsensitive ) + item->GetType()==TreeWidgetItem::ITEM_TYPE_LEAF && + !item->GetText().contains( search, Qt::CaseInsensitive ) ); + + // qDebug() + // << item->text( 0 ) << ":" << ( item->isHidden() ? "HIDDEN" : "VISIBLE" ); } - */ } } // end namespace 'mvd' -- GitLab