]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.h
InformationPanel: fix potential glitches with gifs
[dolphin.git] / src / dolphinmainwindow.h
index 9a1582c1fef903b949f9a84ec614e016db4c22e2..ceda3cb73f9fb8ed417f935f33536dbe665aca7d 100644 (file)
@@ -42,14 +42,19 @@ class KFileItem;
 class KFileItemList;
 class KJob;
 class KNewFileMenu;
+class KRecentFilesAction;
 class KToolBarPopupAction;
 class QToolButton;
 class PlacesPanel;
 class TerminalPanel;
 
+/** Used to identify that a custom command should be triggered on a view background double-click.*/
+constexpr QLatin1String customCommand{"CUSTOM_COMMAND"};
+
 namespace KIO
 {
 class OpenUrlJob;
+class CommandLauncherJob;
 }
 namespace SelectionMode
 {
@@ -131,6 +136,11 @@ public:
     bool isInformationPanelEnabled() const;
     bool isSplitViewEnabledInCurrentTab() const;
 
+    /**
+     * Activates a user set action when double clicking the view's background.
+     */
+    void slotDoubleClickViewBackground(Qt::MouseButton button);
+
 public Q_SLOTS:
     /**
      * Opens each directory in \p dirs in a separate tab. If \a splitView is set,
@@ -199,8 +209,9 @@ public Q_SLOTS:
 
     /**
      * Opens a new tab in the background showing the URL \a url.
+     * @return A pointer to the opened DolphinTabPage.
      */
-    void openNewTab(const QUrl &url);
+    DolphinTabPage *openNewTab(const QUrl &url);
 
     /**
      * Opens a new tab  showing the URL \a url and activate it.
@@ -393,10 +404,21 @@ private Q_SLOTS:
     void togglePanelLockState();
 
     /**
-     * Is invoked if the Terminal panel got visible/invisible and takes care
-     * that the active view has the focus if the Terminal panel is invisible.
+     * Is invoked whenever the Terminal panel visibility is changed by the user and then moves the focus
+     * to the active view if the panel was hidden.
+     * @note The opposite action (putting focus to the Terminal) is not handled
+     *       here but in TerminalPanel::showEvent().
+     * @param visible the new visibility state of the terminal panel
+     */
+    void slotTerminalPanelVisibilityChanged(bool visible);
+
+    /**
+     * Is invoked whenever the Places panel visibility is changed by the user and then either moves the focus
+     * - to the Places panel if it was made visible, or
+     * - to the active view if the panel was hidden.
+     * @param visible the new visibility state of the Places panel
      */
-    void slotTerminalPanelVisibilityChanged();
+    void slotPlacesPanelVisibilityChanged(bool visible);
 
     /** Goes back one step of the URL history. */
     void goBack();
@@ -446,8 +468,11 @@ private Q_SLOTS:
     /** Opens a terminal window for the URL. */
     void openTerminalJob(const QUrl &url);
 
-    /** Focus a Terminal Panel. */
-    void focusTerminalPanel();
+    /** Toggles focus to/from a Terminal Panel. */
+    void toggleTerminalPanelFocus();
+
+    /** Toggles focus to/from the Places Panel. */
+    void togglePlacesPanelFocus();
 
     /** Opens the settings dialog for Dolphin. */
     void editSettings();
@@ -748,6 +773,10 @@ private:
     QFutureWatcher<void> *m_sessionSaveWatcher;
     bool m_sessionSaveScheduled;
 
+    KIO::CommandLauncherJob *m_job;
+
+    KRecentFilesAction *m_recentFiles = nullptr;
+
     friend class DolphinMainWindowTest;
 };