LeechCraft  0.6.70-10870-g558588d6ec
Modular cross-platform feature rich live environment.
LeechCraft::Util::ShortcutManager Class Reference

Aids in providing configurable shortcuts. More...

#include "shortcutmanager.h"

+ Inheritance diagram for LeechCraft::Util::ShortcutManager:
+ Collaboration diagram for LeechCraft::Util::ShortcutManager:

Public Types

typedef QPair< QString, QAction * > IDPair_t
 

Public Member Functions

 ShortcutManager (ICoreProxy_ptr proxy, QObject *parent=nullptr)
 Creates the shortcut manager. More...
 
void SetObject (QObject *pluginObj)
 Sets the plugin instance object of this manager. More...
 
void RegisterAction (const QString &id, QAction *action)
 Registers the given QAction by the given id. More...
 
void RegisterShortcut (const QString &id, const ActionInfo &info, QShortcut *shortcut)
 Registers the given QShortcut with the given id. More...
 
void RegisterActionInfo (const QString &id, const ActionInfo &info)
 Registers the given action info with the given id. More...
 
void RegisterGlobalShortcut (const QString &id, QObject *target, const QByteArray &method, const ActionInfo &info)
 Registers the given global shortcut with the given id. More...
 
void AnnounceGlobalShorcuts ()
 Announces the global shortcuts. More...
 
void SetShortcut (const QString &id, const QKeySequences_t &sequences)
 Sets the key sequence for the given action. More...
 
QMap< QString, ActionInfoGetActionInfo () const
 Returns the map with information about actions. More...
 
ShortcutManageroperator<< (const QPair< QString, QAction *> &pair)
 Utility function equivalent to RegisterAction(). More...
 

Detailed Description

Aids in providing configurable shortcuts.

This class serves as a "collector" for different QActions and QShortcuts. One typically instantiates an object of this class as a per-plugin global object (via a singleton, for example), registers all required actions via the RegisterShortcut(), RegisterAction() and RegisterActionInfo() functions and relays calls to the IHaveShortcuts::SetShortcut() and IHaveShortcuts::GetActionInfo() functions to this class.

Though one can register actions at arbitrary points of time, only those "kinds" of actions registered during the IInfo::Init() will be visible to the LeechCraft core. Actions added later will still have customized shortcuts (if any), but only if another action with the same ID has been added during IInfo::Init().

ShortcutManager also supports global shortcuts via the RegisterGlobalShortcut() and AnnounceGlobalShorcuts() methods.

See the documentation for IHaveShortcuts for more information about actions and their IDs.

See also
IHaveShortcuts

Definition at line 75 of file shortcutmanager.h.

Member Typedef Documentation

◆ IDPair_t

typedef QPair<QString, QAction*> LeechCraft::Util::ShortcutManager::IDPair_t

Definition at line 200 of file shortcutmanager.h.

Constructor & Destructor Documentation

◆ ShortcutManager()

LeechCraft::Util::ShortcutManager::ShortcutManager ( ICoreProxy_ptr  proxy,
QObject *  parent = nullptr 
)

Creates the shortcut manager.

Parameters
[in]proxyThe proxy object passed to IInfo::Init() of your plugin.
[in]parentThe parent object of this object.

Definition at line 44 of file shortcutmanager.cpp.

Member Function Documentation

◆ AnnounceGlobalShorcuts()

void LeechCraft::Util::ShortcutManager::AnnounceGlobalShorcuts ( )

Announces the global shortcuts.

This function announces global shortcuts registered via RegisterGlobalShortcut() method. Because global shortcuts are handled by a special plugin like GActs, this function needs to be called in IInfo::SecondInit() of your plugin.

See also
RegisterGlobalShortcut()

Definition at line 126 of file shortcutmanager.cpp.

◆ GetActionInfo()

QMap< QString, ActionInfo > LeechCraft::Util::ShortcutManager::GetActionInfo ( ) const

Returns the map with information about actions.

The return result is suitable to be returned from IHaveShortcuts::GetActionInfo().

Returns
Action info map.

Definition at line 166 of file shortcutmanager.cpp.

◆ operator<<()

ShortcutManager & LeechCraft::Util::ShortcutManager::operator<< ( const QPair< QString, QAction *> &  pair)

Utility function equivalent to RegisterAction().

This function is equivalent to calling RegisterAction (pair.first, pair.second);.

Parameters
[in]pairThe pair of action ID and the action itself.
Returns
The shortcut manager object.

Definition at line 171 of file shortcutmanager.cpp.

◆ RegisterAction()

void LeechCraft::Util::ShortcutManager::RegisterAction ( const QString &  id,
QAction *  action 
)

Registers the given QAction by the given id.

This function registers the given action at the given id and updates it if necessary. The ActionInfo structure is created automatically, and ActionIcon property of the action is used to fetch its icon.

Parameters
[in]idThe ID of action to register.
[in]actionThe action to register.
See also
RegisterShortcut(), RegisterActionInfo()

Definition at line 55 of file shortcutmanager.cpp.

References RegisterActionInfo(), and SetShortcut().

+ Here is the call graph for this function:

◆ RegisterActionInfo()

void LeechCraft::Util::ShortcutManager::RegisterActionInfo ( const QString &  id,
const ActionInfo info 
)

Registers the given action info with the given id.

This function can be used to register an action info with the given ID before any actions or shortcuts with this ID are really created. This function can be used, for example, to register shortcuts that will be available during some time after IInfo::Init(), like a reload action in a web page (as there are no web pages during plugin initialization).

Parameters
[in]idThe ID of an action or QShortcut to register.
[in]infoThe ActionInfo about this shortcut.
See also
RegisterAction(), RegisterShortcut()

Definition at line 105 of file shortcutmanager.cpp.

Referenced by RegisterAction(), and RegisterShortcut().

+ Here is the caller graph for this function:

◆ RegisterGlobalShortcut()

void LeechCraft::Util::ShortcutManager::RegisterGlobalShortcut ( const QString &  id,
QObject *  target,
const QByteArray &  method,
const ActionInfo info 
)

Registers the given global shortcut with the given id.

Registered global shortcuts need to be announced during SecondInit() of your plugin by calling the AnnounceGlobalShorcuts() method.

Parameters
[in]idThe ID of the global shortcut to register.
[in]targetThe object whose method will be invoked on shortcut activation.
[in]methodThe method of the object which will be invoked on shortcut activation.
[in]infoThe ActionInfo about this global shortcut.
See also
AnnounceGlobalShorcuts()

Definition at line 111 of file shortcutmanager.cpp.

References LeechCraft::Entity::Additional_, LeechCraft::Util::MakeEntity(), LeechCraft::Util::Map(), and LeechCraft::ActionInfo::Seqs_.

+ Here is the call graph for this function:

◆ RegisterShortcut()

void LeechCraft::Util::ShortcutManager::RegisterShortcut ( const QString &  id,
const ActionInfo info,
QShortcut *  shortcut 
)

Registers the given QShortcut with the given id.

Parameters
[in]idThe ID of QShortcut to register.
[in]infoThe additional ActionInfo about this shortcut.
[in]shortcutThe QShortcut to register.
See also
RegisterAction(), RegisterActionInfo()

Definition at line 90 of file shortcutmanager.cpp.

References RegisterActionInfo(), and SetShortcut().

+ Here is the call graph for this function:

◆ SetObject()

void LeechCraft::Util::ShortcutManager::SetObject ( QObject *  pluginObj)

Sets the plugin instance object of this manager.

The plugin instance object serves as a kind of "context" for the shortcut manager.

Parameters
[in]pluginObjThe plugin instance object.

Definition at line 50 of file shortcutmanager.cpp.

◆ SetShortcut()

void LeechCraft::Util::ShortcutManager::SetShortcut ( const QString &  id,
const QKeySequences_t sequences 
)

Sets the key sequence for the given action.

This function updates all the registered actions with the given ID. It is intended to be called only from IHaveShortcuts::SetShortcut(), user code should hardly ever need to call it elsewhere.

Parameters
[in]idThe ID of the action to update.
[in]sequencesThe list of sequences to for the action.

Definition at line 132 of file shortcutmanager.cpp.

References LeechCraft::Util::Map().

Referenced by RegisterAction(), and RegisterShortcut().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following files: