]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kfileitemmodel.h
Merge remote-tracking branch 'origin/Applications/17.12'
[dolphin.git] / src / kitemviews / kfileitemmodel.h
index 717afb9a7f9a49c81c7083af34e02bc14e6574d8..8d721aa56caf7784d6d8a9a48be20984a5e5bd0a 100644 (file)
@@ -30,6 +30,8 @@
 #include <QHash>
 #include <QSet>
 
+#include <functional>
+
 class KFileItemModelDirLister;
 class QTimer;
 
@@ -48,8 +50,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 +73,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 +81,9 @@ public:
      */
     void cancelDirectoryLoading();
 
-    virtual int count() const Q_DECL_OVERRIDE;
-    virtual QHash<QByteArray, QVariant> data(int index) const Q_DECL_OVERRIDE;
-    virtual bool setData(int index, const QHash<QByteArray, QVariant>& values) Q_DECL_OVERRIDE;
+    int count() const override;
+    QHash<QByteArray, QVariant> data(int index) const override;
+    bool setData(int index, const QHash<QByteArray, QVariant>& values) override;
 
     /**
      * Sets a separate sorting with directories first (true) or a mixed
@@ -100,15 +102,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<QPair<int, QVariant> > groups() const Q_DECL_OVERRIDE;
+    QList<QPair<int, QVariant> > groups() const override;
 
     /**
      * @return The file-item for the index \a index. If the index is in a valid
@@ -154,10 +156,10 @@ public:
     void setRoles(const QSet<QByteArray>& roles);
     QSet<QByteArray> 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<QUrl> expandedDirectories() const;
 
@@ -256,9 +258,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) override;
+    void onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) override;
 
 private slots:
     /**
@@ -280,14 +282,14 @@ private slots:
 private:
     enum RoleType {
         // User visible roles:
-        NoRole, NameRole, SizeRole, DateRole, 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,
+        WordCountRole, TitleRole, LineCountRole, ArtistRole, GenreRole, AlbumRole, DurationRole, TrackRole, ReleaseYearRole,
+        BitrateRole, OriginUrlRole,
         // Non-visible roles:
-        IsDirRole, IsLinkRole, IsExpandedRole, IsExpandableRole, ExpandedParentsCountRole,
+        IsDirRole, IsLinkRole, IsHiddenRole, IsExpandedRole, IsExpandableRole, ExpandedParentsCountRole,
         // Mandatory last entry:
         RolesCount
     };
@@ -383,7 +385,7 @@ private:
 
     QList<QPair<int, QVariant> > nameRoleGroups() const;
     QList<QPair<int, QVariant> > sizeRoleGroups() const;
-    QList<QPair<int, QVariant> > dateRoleGroups() const;
+    QList<QPair<int, QVariant> > timeRoleGroups(std::function<QDateTime(const ItemData *)> fileTimeCb) const;
     QList<QPair<int, QVariant> > permissionRoleGroups() const;
     QList<QPair<int, QVariant> > ratingRoleGroups() const;
     QList<QPair<int, QVariant> > genericStringRoleGroups(const QByteArray& typeForRole) const;