X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/011fe5b1e89b6e509165bc0551e164f3432aaa94..refs/heads/master:/src/views/dolphinviewactionhandler.h diff --git a/src/views/dolphinviewactionhandler.h b/src/views/dolphinviewactionhandler.h index 6e9b4a432..a589be9ea 100644 --- a/src/views/dolphinviewactionhandler.h +++ b/src/views/dolphinviewactionhandler.h @@ -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 @@ -20,6 +20,10 @@ class QActionGroup; class DolphinView; class KActionCollection; class KFileItemList; +namespace SelectionMode +{ +class ActionTextHelper; +} /** * @short Handles all actions for DolphinView @@ -40,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(DolphinView* view); + void setCurrentView(DolphinView *view); /** * Returns the view that this action handler should work on. */ - DolphinView* currentView(); + DolphinView *currentView(); /** * Returns the name of the action for the current viewmode @@ -60,7 +64,7 @@ public: /** * Returns m_actionCollection */ - KActionCollection* actionCollection(); + KActionCollection *actionCollection(); public Q_SLOTS: /** @@ -83,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 @@ -119,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(); @@ -149,7 +163,17 @@ private Q_SLOTS: /** * 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. @@ -160,19 +184,23 @@ private Q_SLOTS: * Switches on or off the displaying of additional information * as specified by \a action. */ - void toggleVisibleRole(QAction* action); + 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& current, - const QList& previous); + void slotVisibleRolesChanged(const QList ¤t, const QList &previous); + /** + * Changes the grouping of the current view. + */ + void slotGroupTriggered(QAction *); + /** * Switches between sorting by groups or not. */ @@ -227,14 +255,14 @@ private Q_SLOTS: * 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); + 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. @@ -244,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(); */ - KToggleAction* iconsModeAction(); + KToggleAction *iconsModeAction(); /** * Returns the "switch to compact mode" action. * Helper method for createActions(); */ - KToggleAction* compactModeAction(); + KToggleAction *compactModeAction(); /** * Returns the "switch to details mode" action. * Helper method for createActions(); */ - KToggleAction* detailsModeAction(); + KToggleAction *detailsModeAction(); - KActionCollection* m_actionCollection; - DolphinView* m_currentView; + KActionCollection *m_actionCollection; + DolphinView *m_currentView; - QHash m_sortByActions; - QHash m_visibleRoles; + QHash m_sortByActions; + QHash m_groupByActions; + QHash m_visibleRoles; }; #endif /* DOLPHINVIEWACTIONHANDLER_H */