diff options
| author | Peter Penz <[email protected]> | 2011-11-30 00:18:22 +0100 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2011-11-30 00:24:33 +0100 |
| commit | 7b8fbf737496e44e7676a437f000377d737dfd9c (patch) | |
| tree | 5b64891095993e59b268e04dc44db77ded1fd030 /src/kitemviews/kfileitemmodel.h | |
| parent | 3719ce7d2a7f4ee6a0585763139eea8f7786630c (diff) | |
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
Diffstat (limited to 'src/kitemviews/kfileitemmodel.h')
| -rw-r--r-- | src/kitemviews/kfileitemmodel.h | 11 |
1 files changed, 11 insertions, 0 deletions
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<KUrl>& 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<KDirLister> m_dirLister; @@ -284,6 +292,9 @@ private: QList<ItemData*> m_itemData; QHash<KUrl, int> 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; |
