X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/6dcbb8127c5a1da644f2927521ccac40bea54614..41f7f4e4e89b97b5c7f31452774c37ce953dd125:/src/kitemviews/kfileitemmodel.h diff --git a/src/kitemviews/kfileitemmodel.h b/src/kitemviews/kfileitemmodel.h index 9814ae55d..c2dfd0167 100644 --- a/src/kitemviews/kfileitemmodel.h +++ b/src/kitemviews/kfileitemmodel.h @@ -21,14 +21,17 @@ #define KFILEITEMMODEL_H #include "dolphin_export.h" +#include "kitemviews/kitemmodelbase.h" +#include "kitemviews/private/kfileitemmodelfilter.h" + #include -#include -#include -#include #include #include #include +#include + +#include class KFileItemModelDirLister; class QTimer; @@ -48,8 +51,8 @@ class DOLPHIN_EXPORT KFileItemModel : public KItemModelBase Q_OBJECT public: - explicit KFileItemModel(QObject* parent = 0); - virtual ~KFileItemModel(); + explicit KFileItemModel(QObject* parent = nullptr); + ~KFileItemModel() override; /** * Loads the directory specified by \a url. The signals @@ -71,7 +74,7 @@ public: * the root-parent of all items. * @see rootItem() */ - QUrl directory() const; + QUrl directory() const override; /** * Cancels the loading of a directory which has been started by either @@ -79,9 +82,9 @@ public: */ void cancelDirectoryLoading(); - virtual int count() const Q_DECL_OVERRIDE; - virtual QHash data(int index) const Q_DECL_OVERRIDE; - virtual bool setData(int index, const QHash& values) Q_DECL_OVERRIDE; + int count() const override; + QHash data(int index) const override; + bool setData(int index, const QHash& values) override; /** * Sets a separate sorting with directories first (true) or a mixed @@ -100,15 +103,15 @@ public: void setShowDirectoriesOnly(bool enabled); bool showDirectoriesOnly() const; - virtual QMimeData* createMimeData(const KItemSet& indexes) const Q_DECL_OVERRIDE; + QMimeData* createMimeData(const KItemSet& indexes) const override; - virtual int indexForKeyboardSearch(const QString& text, int startFromIndex = 0) const Q_DECL_OVERRIDE; + int indexForKeyboardSearch(const QString& text, int startFromIndex = 0) const override; - virtual bool supportsDropping(int index) const Q_DECL_OVERRIDE; + bool supportsDropping(int index) const override; - virtual QString roleDescription(const QByteArray& role) const Q_DECL_OVERRIDE; + QString roleDescription(const QByteArray& role) const override; - virtual QList > groups() const Q_DECL_OVERRIDE; + QList > groups() const override; /** * @return The file-item for the index \a index. If the index is in a valid @@ -154,10 +157,10 @@ public: void setRoles(const QSet& roles); QSet roles() const; - virtual bool setExpanded(int index, bool expanded) Q_DECL_OVERRIDE; - virtual bool isExpanded(int index) const Q_DECL_OVERRIDE; - virtual bool isExpandable(int index) const Q_DECL_OVERRIDE; - virtual int expandedParentsCount(int index) const Q_DECL_OVERRIDE; + bool setExpanded(int index, bool expanded) override; + bool isExpanded(int index) const override; + bool isExpandable(int index) const override; + int expandedParentsCount(int index) const override; QSet expandedDirectories() const; @@ -256,9 +259,9 @@ signals: void urlIsFileError(const QUrl& url); protected: - virtual void onGroupedSortingChanged(bool current) Q_DECL_OVERRIDE; - virtual void onSortRoleChanged(const QByteArray& current, const QByteArray& previous) Q_DECL_OVERRIDE; - virtual void onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) Q_DECL_OVERRIDE; + void onGroupedSortingChanged(bool current) override; + void onSortRoleChanged(const QByteArray& current, const QByteArray& previous, bool resortItems = true) override; + void onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) override; private slots: /** @@ -280,12 +283,12 @@ private slots: private: enum RoleType { // User visible roles: - NoRole, NameRole, SizeRole, ModificationTimeRole, AccessTimeRole, PermissionsRole, OwnerRole, - GroupRole, TypeRole, DestinationRole, PathRole, + NoRole, NameRole, SizeRole, ModificationTimeRole, CreationTimeRole, AccessTimeRole, PermissionsRole, OwnerRole, + GroupRole, TypeRole, DestinationRole, PathRole, DeletionTimeRole, // User visible roles available with Baloo: - CommentRole, TagsRole, RatingRole, ImageSizeRole, OrientationRole, - WordCountRole, TitleRole, LineCountRole, ArtistRole, AlbumRole, DurationRole, TrackRole, - OriginUrlRole, + CommentRole, TagsRole, RatingRole, WidthRole, HeightRole, ImageDateTimeRole, OrientationRole, + WordCountRole, TitleRole, LineCountRole, ArtistRole, GenreRole, AlbumRole, DurationRole, TrackRole, ReleaseYearRole, + BitrateRole, OriginUrlRole, AspectRatioRole, FrameRateRole, // Non-visible roles: IsDirRole, IsLinkRole, IsHiddenRole, IsExpandedRole, IsExpandableRole, ExpandedParentsCountRole, // Mandatory last entry: @@ -368,7 +371,7 @@ private: * Sorts the items between \a begin and \a end using the comparison * function lessThan(). */ - void sort(QList::iterator begin, QList::iterator end) const; + void sort(const QList::iterator &begin, const QList::iterator &end) const; /** * Helper method for lessThan() and expandedParentsCountCompare(): Compares @@ -379,11 +382,9 @@ private: int stringCompare(const QString& a, const QString& b, const QCollator& collator) const; - bool useMaximumUpdateInterval() const; - QList > nameRoleGroups() const; QList > sizeRoleGroups() const; - QList > timeRoleGroups(KFileItem::FileTimes which) const; + QList > timeRoleGroups(const std::function &fileTimeCb) const; QList > permissionRoleGroups() const; QList > ratingRoleGroups() const; QList > genericStringRoleGroups(const QByteArray& typeForRole) const; @@ -496,7 +497,6 @@ private: // and done step after step in slotCompleted(). QSet m_urlsToExpand; - friend class KFileItemModelLessThan; // Accesses lessThan() method friend class KFileItemModelRolesUpdater; // Accesses emitSortProgress() method friend class KFileItemModelTest; // For unit testing friend class KFileItemModelBenchmark; // For unit testing