]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinview.h
Merge remote-tracking branch 'fork/work/zakharafoniam/useful-groups'
[dolphin.git] / src / views / dolphinview.h
index d1667334e30d39336dd7dd05284f599ff735e409..d50c932df409b67cd7460732864879dfe4d0aa7d 100644 (file)
@@ -51,6 +51,8 @@ class QRegularExpression;
  * - show hidden files
  * - show previews
  * - enable grouping
+ * - grouping order
+ * - grouping type
  */
 class DOLPHIN_EXPORT DolphinView : public QWidget
 {
@@ -219,6 +221,20 @@ public:
     void setSortOrder(Qt::SortOrder order);
     Qt::SortOrder sortOrder() const;
 
+    /**
+     * Updates the view properties of the current URL to the
+     * grouping given by \a role.
+     */
+    void setGroupRole(const QByteArray &role);
+    QByteArray groupRole() const;
+
+    /**
+     * Updates the view properties of the current URL to the
+     * sort order given by \a order.
+     */
+    void setGroupOrder(Qt::SortOrder order);
+    Qt::SortOrder groupOrder() const;
+
     /** Sets a separate sorting with folders first (true) or a mixed sorting of files and folders (false). */
     void setSortFoldersFirst(bool foldersFirst);
     bool sortFoldersFirst() const;
@@ -357,6 +373,18 @@ public:
      */
     bool isFolderWritable() const;
 
+    /**
+     * @returns the height of the scrollbar at the bottom of the view or zero if no such scroll bar is visible.
+     */
+    int horizontalScrollBarHeight() const;
+
+    /**
+     * Set the offset for any view items that small statusbar would otherwise
+     * cover. For example, in compact view this is used to make sure no
+     * item is covered by statusbar.
+     */
+    void setStatusBarOffset(int offset);
+
 public Q_SLOTS:
 
     void reload();
@@ -522,6 +550,12 @@ Q_SIGNALS:
     /** Is emitted if the sort order (ascending or descending) has been changed. */
     void sortOrderChanged(Qt::SortOrder order);
 
+    /** Is emitted if the grouping by name, size or date has been changed. */
+    void groupRoleChanged(const QByteArray &role);
+
+    /** Is emitted if the group order (ascending or descending) has been changed. */
+    void groupOrderChanged(Qt::SortOrder order);
+
     /**
      * Is emitted if the sorting of files and folders (separate with folders
      * first or mixed) has been changed.
@@ -855,6 +889,11 @@ private:
      */
     void applyModeToView();
 
+    /**
+     * Changes the current view based on the content of the directory.
+     */
+    void applyDynamicView();
+
     enum Selection { HasSelection, NoSelection };
     /**
      * Helper method for DolphinView::requestStatusBarText().