From 7b8fbf737496e44e7676a437f000377d737dfd9c Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Wed, 30 Nov 2011 00:18:22 +0100 Subject: Reimplement name-filtering The filtering of items has not been implemented yet in the KFileItemModel of the new view-engine. The patch brings back this functionality again, but some minor issues are open: - When filtering trees expanded directories should only get hidden if no child is visible - Regular expressions are not supported yet (they have not been supported in Dolphin 1.x but it is now quite simple to implement). - When filtering previews and removing the filter it might be possible that the preview is not shown (is most probably an an already existing bug in KFileItemModelRolesUpdater). BUG: 287642 FIXED-IN: 4.8.0 --- src/kitemviews/kfileitemmodel.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/kitemviews/kfileitemmodel.h') diff --git a/src/kitemviews/kfileitemmodel.h b/src/kitemviews/kfileitemmodel.h index 8cbcb1216..a83d57ba8 100644 --- a/src/kitemviews/kfileitemmodel.h +++ b/src/kitemviews/kfileitemmodel.h @@ -134,6 +134,9 @@ public: */ void setExpanded(const QSet& urls); + void setNameFilter(const QString& nameFilter); + QString nameFilter() const; + signals: void loadingCompleted(); @@ -271,6 +274,11 @@ private: */ bool isChildItem(int index) const; + /** + * @return True if the given item matches with the name filter. + */ + static bool matchesNameFilter(const KFileItem& item, const QString& nameFilter); + private: QWeakPointer m_dirLister; @@ -284,6 +292,9 @@ private: QList m_itemData; QHash m_items; // Allows O(1) access for KFileItemModel::index(const KFileItem& item) + QString m_nameFilter; + KFileItemList m_filteredItems; // Items that got hidden by KFileItemModel::setNameFilter() + bool m_requestRole[RolesCount]; QTimer* m_minimumUpdateIntervalTimer; -- cgit v1.3.1