summaryrefslogtreecommitdiff
path: root/src/bookmarks/bookmarksproxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bookmarks/bookmarksproxy.cpp')
-rw-r--r--src/bookmarks/bookmarksproxy.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/bookmarks/bookmarksproxy.cpp b/src/bookmarks/bookmarksproxy.cpp
new file mode 100644
index 00000000..87d1ce71
--- /dev/null
+++ b/src/bookmarks/bookmarksproxy.cpp
@@ -0,0 +1,29 @@
+#include "bookmarksproxy.h"
+
+BookmarksProxy::BookmarksProxy( QObject *parent ):
+ QSortFilterProxyModel( parent )
+{
+}
+
+bool BookmarksProxy::filterAcceptsRow( int source_row, const QModelIndex &source_parent ) const
+{
+ QModelIndex idx = sourceModel()->index( source_row, 0, source_parent );
+
+// return idx.data().toString().contains( filterRegExp() );
+ return recursiveMatch( idx );
+}
+
+bool BookmarksProxy::recursiveMatch( const QModelIndex &index ) const
+{
+ if( index.data().toString().contains( filterRegExp() ) ) {
+ return true;
+ }
+
+ for( int childRow = 0; childRow < sourceModel()->rowCount( index ); ++childRow ) {
+ if( recursiveMatch( sourceModel()->index( childRow, 0, index ) ) ) {
+ return true;
+ }
+ }
+
+ return false;
+}