]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinview.h
Do not rely on KIO source-code compat code
[dolphin.git] / src / views / dolphinview.h
index dbb304f379a94b86faa6eea3d65f6c30cc777a2d..b6b3aa4a9667b0e15175b4cf6be1604f26a616e7 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>
 
@@ -225,8 +225,6 @@ public:
     /** Returns the additional information which should be shown for the items. */
     QList<QByteArray> visibleRoles() const;
 
-    void reload();
-
     /**
      * Refreshes the view to get synchronized with the settings (e.g. icons size,
      * font, ...).
@@ -335,7 +333,26 @@ public:
      */
     void hideToolTip(const ToolTipManager::HideBehavior behavior = ToolTipManager::HideBehavior::Later);
 
+    /**
+     * Check if the space key should be handled as a normal key, even if it's
+     * used as a keyboard shortcut.
+     *
+     * See BUG 465489
+     */
+    bool handleSpaceAsNormalKey() const;
+
+    /** 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();
+
     /**
      * Changes the directory to \a url. If the current directory is equal to
      * \a url, nothing will be done (use DolphinView::reload() instead).
@@ -426,9 +443,6 @@ public Q_SLOTS:
      */
     void updateViewState();
 
-    /** Activates the view if the item list container gets focus. */
-    bool eventFilter(QObject *watched, QEvent *event) override;
-
 Q_SIGNALS:
     /**
      * Is emitted if the view has been activated by e. g. a mouse click.
@@ -443,6 +457,12 @@ Q_SIGNALS:
      */
     void itemActivated(const KFileItem &item);
 
+    /**
+     * Is emitted when clicking on a file with the middle mouse button.
+     * @note: This will not be emitted for folders or file archives that will/can be opened like folders.
+     */
+    void fileMiddleClickActivated(const KFileItem &item);
+
     /**
      * Is emitted when multiple items have been activated by e. g.
      * context menu open with.
@@ -666,7 +686,7 @@ private Q_SLOTS:
     void slotMouseButtonPressed(int itemIndex, Qt::MouseButtons buttons);
     void slotRenameDialogRenamingFinished(const QList<QUrl> &urls);
     void slotSelectedItemTextPressed(int index);
-    void slotCopyingDone(KIO::Job *, const QUrl &, const QUrl &to);
+    void slotItemCreatedFromJob(KIO::Job *, const QUrl &, const QUrl &to);
     void slotIncreaseZoom();
     void slotDecreaseZoom();
     void slotSwipeUp();
@@ -809,6 +829,8 @@ private Q_SLOTS:
 
     void slotTwoClicksRenamingTimerTimeout();
 
+    void onDirectoryLoadingCompletedAfterJob();
+
 private:
     void loadDirectory(const QUrl &url, bool reload = false);
 
@@ -863,7 +885,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();
 
@@ -928,9 +950,11 @@ private:
     // resolution scroll wheels)
     int m_controlWheelAccumulatedDelta;
 
-    QList<QUrl> m_selectedUrls; // Used for making the view to remember selections after F5
+    QList<QUrl> m_selectedUrls; // Used for making the view to remember selections after F5 and file operations
     bool m_clearSelectionBeforeSelectingNewItems;
     bool m_markFirstNewlySelectedItemAsCurrent;
+    /// Decides whether items created by jobs should automatically be selected.
+    bool m_selectJobCreatedItems;
 
     VersionControlObserver *m_versionControlObserver;
 
@@ -940,7 +964,7 @@ private:
     QTimer *m_showLoadingPlaceholderTimer;
 
     /// The information roleIndex of the list column header currently hovered
-    std::optional<int> m_hoveredColumnHearderRoleIndex;
+    std::optional<int> m_hoveredColumnHeaderIndex;
 
     /// Used for selection mode. @see setSelectionMode()
     std::unique_ptr<QProxyStyle> m_proxyStyle;
@@ -950,6 +974,7 @@ private:
     friend class DolphinDetailsViewTest;
     friend class DolphinMainWindowTest;
     friend class DolphinPart; // Accesses m_model
+    void updateSelectionState();
 };
 
 /// Allow using DolphinView::Mode in QVariant