]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinview.h
Merge remote-tracking branch 'upstream/master' into work/zakharafoniam/useful-groups
[dolphin.git] / src / views / dolphinview.h
index f851724c238a8bccda45dd703dcb90f798e51d8c..2c772ad9034bcc32347b1e2df88243f53df1cabd 100644 (file)
@@ -14,7 +14,7 @@
 
 #include "config-dolphin.h"
 #include <KFileItem>
-#include <KIO/Job>
+#include <KIO/StatJob>
 #include <kio/fileundomanager.h>
 #include <kparts/part.h>
 
@@ -51,6 +51,8 @@ class QRegularExpression;
  * - show hidden files
  * - show previews
  * - enable grouping
+ * - grouping order
+ * - grouping type
  */
 class DOLPHIN_EXPORT DolphinView : public QWidget
 {
@@ -205,12 +207,34 @@ public:
      */
     void resetZoomLevel();
 
+    /**
+     * Updates the view properties of the current URL to the
+     * sorting given by \a role.
+     */
     void setSortRole(const QByteArray &role);
     QByteArray sortRole() const;
 
+    /**
+     * Updates the view properties of the current URL to the
+     * sort order given by \a order.
+     */
     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;
@@ -344,6 +368,11 @@ public:
     /** Activates the view if the item list container gets focus. */
     bool eventFilter(QObject *watched, QEvent *event) override;
 
+    /**
+     * Returns whether the folder represented by the current URL is writable.
+     */
+    bool isFolderWritable() const;
+
 public Q_SLOTS:
 
     void reload();
@@ -509,6 +538,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.
@@ -554,7 +589,7 @@ Q_SIGNALS:
      * Is emitted if an error message with the content \a msg
      * should be shown.
      */
-    void errorMessage(const QString &msg);
+    void errorMessage(const QString &message, const int kioErrorCode);
 
     /**
      * Is emitted if an "operation completed" message with the content \a msg
@@ -652,6 +687,12 @@ Q_SIGNALS:
      */
     void currentDirectoryRemoved();
 
+    /**
+     * Emitted when the view's background is double-clicked.
+     * Used to trigger an user configured action.
+     */
+    void doubleClickViewBackground(Qt::MouseButton button);
+
 protected:
     /** Changes the zoom level if Control is pressed during a wheel event. */
     void wheelEvent(QWheelEvent *event) override;
@@ -682,6 +723,7 @@ private Q_SLOTS:
     void slotRenameDialogRenamingFinished(const QList<QUrl> &urls);
     void slotSelectedItemTextPressed(int index);
     void slotItemCreatedFromJob(KIO::Job *, const QUrl &, const QUrl &to);
+    void slotItemLinkCreatedFromJob(KIO::Job *, const QUrl &, const QString &, const QUrl &to);
     void slotIncreaseZoom();
     void slotDecreaseZoom();
     void slotSwipeUp();
@@ -719,18 +761,6 @@ private Q_SLOTS:
      */
     void slotStatJobResult(KJob *job);
 
-    /**
-     * Updates the view properties of the current URL to the
-     * sorting given by \a role.
-     */
-    void updateSortRole(const QByteArray &role);
-
-    /**
-     * Updates the view properties of the current URL to the
-     * sort order given by \a order.
-     */
-    void updateSortOrder(Qt::SortOrder order);
-
     /**
      * Updates the view properties of the current URL to the
      * sorting of files and folders (separate with folders first or mixed) given by \a foldersFirst.
@@ -824,6 +854,8 @@ private Q_SLOTS:
 
     void slotTwoClicksRenamingTimerTimeout();
 
+    void onDirectoryLoadingCompletedAfterJob();
+
 private:
     void loadDirectory(const QUrl &url, bool reload = false);
 
@@ -878,7 +910,7 @@ private:
     /**
      * Updates m_isFolderWritable dependent on whether the folder represented by
      * the current URL is writable. If the state has changed, the signal
-     * writeableStateChanged() will be emitted.
+     * writeStateChanged() will be emitted.
      */
     void updateWritableState();