| | |
The ActionManager class provides a management system for relating QAction and QKeySequence. More...
| Header: | #include <ActionManager.hpp> |
| Inherits: | QObject |
| ActionManager(QObject *parent = nullptr) | |
| virtual | ~ActionManager() |
| QAction * | getAction(const MsXpS::libXpertMassGui::ActionId &action_id) const |
| QAction * | installAction(const MsXpS::libXpertMassGui::ActionId &action_id, const QKeySequence &key_sequence = QKeySequence()) |
| bool | isInConflict(const QKeySequence &key_sequence, const MsXpS::libXpertMassGui::ActionId &exclude_action_id = {}, bool *was_found_p = nullptr) const |
| void | loadActionData() |
| void | saveActionData() const |
| void | setShortcut(const MsXpS::libXpertMassGui::ActionId &action_id, const QKeySequence &key_sequence) |
The QAction-based operations are associated to an ActionId that identifies the action and relates it to a QKeySequence keyboard key combination. This class is used to let the user define the shortcuts to actions.
[explicit] ActionManager::ActionManager(QObject *parent = nullptr)Constructs an ActionManager using parent for parentship.
[virtual noexcept] ActionManager::~ActionManager()Destructs the ActionManager.
Returns the action that is mapped to action_id.
Installs an action according to action_id, text (the label) and key_sequence.
Installing an action encompasses multiple steps. The general idea is that this function is called in code that is setting up a QAction and that QAction might benefit from a shortcut (a QKeySequence) as defined by the user and stored in the settings of this program.
The first step is thus to check if action_id is found in the member map of <ActionId, QAction *> pairs. If found, then the corresponding QAction pointer is returned (with no modification, if its shortcut is empty, that shortcut was meant by the user to stay empty).
If no action_id is found in the member map, then a new QAction is allocated and the key_sequence is set to it as shortcut.
text is the description of the created QAction. action_id is mapped to the QAction that is returned.
Returns the QAction.
Checks if key_sequence is in conflic with any item in the member map.
Iterates in all the items of the member m_actions map and checks if any of the corresponding action has a shortcut identical to key_sequence. Whenever a map item relates to exclude_action_id, that item is skipped.
Loads the action data from the QSettings-based settings.
The action data are read from the file referenced by static datum libXpertMassCore::Utils::configSettingsFilePath in QSettings::IniFormat format.
The member m_actions map's items are iterated into and for each map item, the shortcut is loaded from the settings and set to the corresponding action.
Saves the action data to the QSettings-based settings.
The action data are written to in the file referenced by static datum libXpertMassCore::Utils::configSettingsFilePath in QSettings::IniFormat format.
The member m_actions map's items are iterated into and for each map item, the corresponding ActionId and QAction shortcut are written to the settings.
Sets key_sequence as the shortcut for action_id.
A QAction must have been created already and must be found as an item mapped to action_id.