]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinviewactionhandler.h
Merge remote-tracking branch 'fork/work/zakharafoniam/useful-groups'
[dolphin.git] / src / views / dolphinviewactionhandler.h
index 23b4e5f1ada5114b69e2d11f6e8ee82c524a5148..a589be9eaac7eb8e41efd7bd20b49fe75552a1b4 100644 (file)
@@ -5,11 +5,11 @@
  * SPDX-License-Identifier: GPL-2.0-or-later
  */
 
-
 #ifndef DOLPHINVIEWACTIONHANDLER_H
 #define DOLPHINVIEWACTIONHANDLER_H
 
 #include "dolphin_export.h"
+#include "selectionmode/bottombar.h"
 #include "views/dolphinview.h"
 
 #include <QObject>
@@ -19,6 +19,11 @@ class QAction;
 class QActionGroup;
 class DolphinView;
 class KActionCollection;
+class KFileItemList;
+namespace SelectionMode
+{
+class ActionTextHelper;
+}
 
 /**
  * @short Handles all actions for DolphinView
@@ -39,17 +44,17 @@ class DOLPHIN_EXPORT DolphinViewActionHandler : public QObject
     Q_OBJECT
 
 public:
-    explicit DolphinViewActionHandler(KActionCollection* collection, QObject* parent);
+    explicit DolphinViewActionHandler(KActionCollection *collection, SelectionMode::ActionTextHelper *actionTextHelper, QObject *parent);
 
     /**
      * Sets the view that this action handler should work on.
      */
-    void setCurrentView(DolphinViewview);
+    void setCurrentView(DolphinView *view);
 
     /**
      * Returns the view that this action handler should work on.
      */
-    DolphinViewcurrentView();
+    DolphinView *currentView();
 
     /**
      * Returns the name of the action for the current viewmode
@@ -59,7 +64,7 @@ public:
     /**
      * Returns m_actionCollection
      */
-    KActionCollectionactionCollection();
+    KActionCollection *actionCollection();
 
 public Q_SLOTS:
     /**
@@ -82,11 +87,21 @@ Q_SIGNALS:
      */
     void createDirectoryTriggered();
 
+    /**
+     * Emitted if the user requested creating a new file.
+     * The receiver of the signal (DolphinMainWindow or DolphinPart) invokes
+     * the method createFile of their KNewFileMenu instance.
+     */
+    void createFileTriggered();
+
+    /** Used to request either entering or leaving of selection mode */
+    void selectionModeChangeTriggered(bool enabled, SelectionMode::BottomBar::Contents bottomBarContents = SelectionMode::BottomBar::Contents::GeneralContents);
+
 private Q_SLOTS:
     /**
      * Emitted when the user requested a change of view mode
      */
-    void slotViewModeActionTriggered(QAction*);
+    void slotViewModeActionTriggered(QAction *);
 
     /**
      * Let the user input a name for the selected item(s) and trigger
@@ -118,7 +133,7 @@ private Q_SLOTS:
 
     /** Decreases the size of the current set view mode. */
     void zoomOut();
-    
+
     /** Resets the size of the current set view mode to default. */
     void zoomReset();
 
@@ -135,10 +150,30 @@ private Q_SLOTS:
      */
     void slotSortFoldersFirstChanged(bool foldersFirst);
 
+    /**
+     * Switches between showing hidden files last or not.
+     */
+    void toggleSortHiddenLast();
+
+    /**
+     * Updates the state of the 'Sort Hidden Last' action.
+     */
+    void slotSortHiddenLastChanged(bool hiddenLast);
+
     /**
      * Updates the state of the 'Sort by' actions.
      */
-    void slotSortRoleChanged(const QByteArray& role);
+    void slotSortRoleChanged(const QByteArray &role);
+
+    /**
+     * Updates the state of the 'Group Ascending/Descending' action.
+     */
+    void slotGroupOrderChanged(Qt::SortOrder order);
+
+    /**
+     * Updates the state of the 'Group by' actions.
+     */
+    void slotGroupRoleChanged(const QByteArray &role);
 
     /**
      * Updates the state of the 'Zoom In' and 'Zoom Out' actions.
@@ -149,19 +184,23 @@ private Q_SLOTS:
      * Switches on or off the displaying of additional information
      * as specified by \a action.
      */
-    void toggleVisibleRole(QActionaction);
+    void toggleVisibleRole(QAction *action);
 
     /**
      * Changes the sorting of the current view.
      */
-    void slotSortTriggered(QAction*);
+    void slotSortTriggered(QAction *);
 
     /**
      * Updates the state of the 'Additional Information' actions.
      */
-    void slotVisibleRolesChanged(const QList<QByteArray>& current,
-                                 const QList<QByteArray>& previous);
+    void slotVisibleRolesChanged(const QList<QByteArray> &current, const QList<QByteArray> &previous);
 
+    /**
+     * Changes the grouping of the current view.
+     */
+    void slotGroupTriggered(QAction *);
+    
     /**
      * Switches between sorting by groups or not.
      */
@@ -211,12 +250,19 @@ private Q_SLOTS:
      */
     void slotCopyPath();
 
+    /**
+     * Changes the name of the menu that contains basic actions like "Copy", "Rename", ...
+     * The name is changed to something like "Actions for 3 Selected Items" to be extra
+     * explicit of how these basic actions are used.
+     */
+    void slotSelectionChanged(const KFileItemList &selection);
+
 private:
     /**
      * Create all the actions.
      * This is called only once (by the constructor)
      */
-    void createActions();
+    void createActions(SelectionMode::ActionTextHelper *actionTextHelper);
 
     /**
      * Creates an action-group out of all roles from KFileItemModel.
@@ -226,31 +272,32 @@ private:
      * The changes of actions are reported to slotSortTriggered() or
      * toggleAdditionalInfo().
      */
-    QActionGroup* createFileItemRolesActionGroup(const QString& groupPrefix);
+    QActionGroup *createFileItemRolesActionGroup(const QString &groupPrefix);
 
     /**
      * Returns the "switch to icons mode" action.
      * Helper method for createActions();
      */
-    KToggleActioniconsModeAction();
+    KToggleAction *iconsModeAction();
 
     /**
      * Returns the "switch to compact mode" action.
      * Helper method for createActions();
      */
-    KToggleActioncompactModeAction();
+    KToggleAction *compactModeAction();
 
     /**
      * Returns the "switch to details mode" action.
      * Helper method for createActions();
      */
-    KToggleActiondetailsModeAction();
+    KToggleAction *detailsModeAction();
 
-    KActionCollectionm_actionCollection;
-    DolphinViewm_currentView;
+    KActionCollection *m_actionCollection;
+    DolphinView *m_currentView;
 
-    QHash<QByteArray, KToggleAction*> m_sortByActions;
-    QHash<QByteArray, KToggleAction*> m_visibleRoles;
+    QHash<QByteArray, KToggleAction *> m_sortByActions;
+    QHash<QByteArray, KToggleAction *> m_groupByActions;
+    QHash<QByteArray, KToggleAction *> m_visibleRoles;
 };
 
 #endif /* DOLPHINVIEWACTIONHANDLER_H */