|
Krita Source Code Documentation
|
A KisActionManager class keeps track of KisActions. These actions are always associated with the GUI. That means each MainWindow will create its own duplicate of these actions. More...
#include <kis_action_manager.h>
Inheritance diagram for KisActionManager:Public Member Functions | |
| KisAction * | actionByName (const QString &name) const |
| void | addAction (const QString &name, KisAction *action) |
| KisAction * | createAction (const QString &name) |
| KisAction * | createStandardAction (KStandardAction::StandardAction, const QObject *receiver, const char *member) |
| KisActionManager (KisViewManager *viewManager, KisKActionCollection *actionCollection) | |
| Private () | |
| void | registerOperation (KisOperation *operation) |
| void | registerOperationUIFactory (KisOperationUIFactory *factory) |
| void | runOperation (const QString &id) |
| void | runOperationFromConfiguration (KisOperationConfigurationSP config) |
| void | setView (QPointer< KisView > imageView) |
| void | takeAction (KisAction *action) |
| void | updateGUI () |
| ~KisActionManager () override | |
| ~Private () | |
Static Public Member Functions | |
| static void | safePopulateMenu (QMenu *menu, const QString &actionId, KisActionManager *actionManager) |
Public Attributes | |
| KisKActionCollection * | actionCollection {nullptr} |
| QList< QPointer< KisAction > > | actions |
| KisOperationRegistry | operationRegistry |
| KoGenericRegistry< KisOperationUIFactory * > | uiRegistry |
| KisViewManager * | viewManager {nullptr} |
Private Slots | |
| void | slotActionAddedToCollection (QAction *action) |
Private Member Functions | |
| void | dumpActionFlags () |
Private Member Functions inherited from Private | |
| Private (KisCanvas2 *c) | |
Private Attributes | |
| Private *const | d |
Private Attributes inherited from Private | |
| KisCanvas2 * | canvas |
| int | displayedFrame |
| int | intendedFrame |
A KisActionManager class keeps track of KisActions. These actions are always associated with the GUI. That means each MainWindow will create its own duplicate of these actions.
KisActionManager enables and disables actions, to grey out buttons according to the state of the application.
Some of the primitive actions (load/save and so on) are not defined as KisActions, but instead KActions, automatically registered through KisKXMLGUI. It tracks these actions through the KisKActionCollection owned by the window. Ultimately it would be nice to unify these things more fully.
Definition at line 32 of file kis_action_manager.cpp.
|
inline |
Definition at line 37 of file kis_action_manager.cpp.
| KisActionManager::KisActionManager | ( | KisViewManager * | viewManager, |
| KisKActionCollection * | actionCollection ) |
Definition at line 51 of file kis_action_manager.cpp.
References actionCollection, connect(), d, slotActionAddedToCollection(), and viewManager.
|
override |
Definition at line 61 of file kis_action_manager.cpp.
References KisAction::activationConditions(), KisAction::activationFlags(), d, and KisAction::defaultShortcut().
| KisAction * KisActionManager::actionByName | ( | const QString & | name | ) | const |
Look up an action by name.
Definition at line 147 of file kis_action_manager.cpp.
References d.
Add an existing action to the action manager.
Definition at line 123 of file kis_action_manager.cpp.
References d, and KisAction::setActionManager().
| KisAction * KisActionManager::createAction | ( | const QString & | name | ) |
Create a new KisAction. Looks up data from the .action data files.
Definition at line 158 of file kis_action_manager.cpp.
References actionByName(), addAction(), dbgAction, KisActionRegistry::getActionProperty(), KisActionRegistry::instance(), KisActionRegistry::propertizeAction(), KisAction::setActivationConditions(), and KisAction::setActivationFlags().
| KisAction * KisActionManager::createStandardAction | ( | KStandardAction::StandardAction | actionType, |
| const QObject * | receiver, | ||
| const char * | member ) |
Create a KisAction based on a KStandardAction. The KStandardAction is deleted.
Definition at line 339 of file kis_action_manager.cpp.
References addAction(), KStandardAction::ConfigureToolbars, KStandardAction::create(), KisActionRegistry::instance(), KStandardAction::OpenRecent, KisActionRegistry::propertizeAction(), KStandardAction::SaveAs, and KisAction::setDefaultShortcut().
|
private |
Definition at line 422 of file kis_action_manager.cpp.
References KisAction::activationConditions(), KisAction::activationFlags(), KisAction::ACTIVE_DEVICE, KisAction::ACTIVE_IMAGE, KisAction::ACTIVE_LAYER, KisAction::ACTIVE_NODE, KisAction::ACTIVE_NODE_EDITABLE, KisAction::ACTIVE_NODE_EDITABLE_PAINT_DEVICE, KisAction::ACTIVE_SHAPE_LAYER, KisAction::ACTIVE_TRANSPARENCY_MASK, KisAction::ANY_SELECTION_WITH_PIXELS, KisAction::CURRENT_IMAGE_MODIFIED, d, KisAction::IMAGE_HAS_ANIMATION, KisAction::MULTIPLE_IMAGES, KisAction::OPENGL_ENABLED, KisAction::PIXELS_IN_CLIPBOARD, KisAction::PIXELS_SELECTED, KisAction::SELECTION_EDITABLE, KisPortingUtils::setUtf8OnStream(), KisAction::SHAPES_IN_CLIPBOARD, and KisAction::SHAPES_SELECTED.
|
inline |
Definition at line 35 of file kis_action_manager.cpp.
| void KisActionManager::registerOperation | ( | KisOperation * | operation | ) |
Definition at line 395 of file kis_action_manager.cpp.
References d.
| void KisActionManager::registerOperationUIFactory | ( | KisOperationUIFactory * | factory | ) |
Definition at line 390 of file kis_action_manager.cpp.
References d.
| void KisActionManager::runOperation | ( | const QString & | id | ) |
Definition at line 400 of file kis_action_manager.cpp.
References d, KisOperationUIFactory::fetchConfiguration(), and runOperationFromConfiguration().
| void KisActionManager::runOperationFromConfiguration | ( | KisOperationConfigurationSP | config | ) |
Definition at line 415 of file kis_action_manager.cpp.
References d, and KisOperation::runFromXML().
|
static |
Definition at line 380 of file kis_action_manager.cpp.
References actionByName(), and KIS_SAFE_ASSERT_RECOVER_RETURN.
Definition at line 107 of file kis_action_manager.cpp.
|
privateslot |
Small hack alert: not all the actions are still created by the manager and immediately added to the action collection. Some plugins add actions directly to the action collection when a document is created. Here we catch these cases
Definition at line 112 of file kis_action_manager.cpp.
References KisActionRegistry::instance(), and KisActionRegistry::updateShortcut().
Stop managing an action.
Definition at line 137 of file kis_action_manager.cpp.
References d, and KIS_ASSERT_RECOVER_RETURN.
| void KisActionManager::updateGUI | ( | ) |
Update actions handled by kis_action_manager to set enabled. This is used to grey out buttons that can't be pressed.
Definition at line 187 of file kis_action_manager.cpp.
References KisAction::ACTIVE_DEVICE, KisAction::ACTIVE_IMAGE, KisAction::ACTIVE_LAYER, KisAction::ACTIVE_NODE, KisAction::ACTIVE_NODE_EDITABLE, KisAction::ACTIVE_NODE_EDITABLE_PAINT_DEVICE, KisAction::ACTIVE_SHAPE_LAYER, KisAction::ACTIVE_TRANSPARENCY_MASK, KisImage::animationInterface(), KisAction::ANY_SELECTION_WITH_PIXELS, KisSelectionManager::canReselectDeactivatedSelection(), KisAction::CURRENT_IMAGE_MODIFIED, d, KisSharedPtr< T >::data(), KisImageAnimationInterface::hasAnimation(), KisBaseNode::hasEditablePaintDevice(), KisSelectionManager::haveAnySelectionWithPixels(), KisSelectionManager::havePixelsInClipboard(), KisSelectionManager::havePixelsSelected, KisSelectionManager::haveRasterSelectionWithPixels(), KisSelectionManager::haveShapeSelectionWithShapes(), KisSelectionManager::haveShapesInClipboard(), KisSelectionManager::haveShapesSelected(), KisAction::IMAGE_CAN_RESELECT, KisAction::IMAGE_HAS_ANIMATION, KisAction::IMAGE_IS_WRITABLE, KisClipboard::instance(), KisBaseNode::isEditable(), KisAction::LAYERS_IN_CLIPBOARD, KisAction::MULTIPLE_IMAGES, KisAction::NO_CONDITION, KisAction::NONE, KisAction::OPENGL_ENABLED, KisAction::PIXEL_SELECTION_WITH_PIXELS, KisAction::PIXELS_IN_CLIPBOARD, KisAction::PIXELS_SELECTED, KisAction::SELECTION_EDITABLE, KisAction::SHAPE_SELECTION_WITH_SHAPES, KisAction::SHAPES_IN_CLIPBOARD, KisAction::SHAPES_SELECTED, and KisConfig::useOpenGL().
| KisKActionCollection* KisActionManager::actionCollection {nullptr} |
Definition at line 43 of file kis_action_manager.cpp.
Definition at line 45 of file kis_action_manager.cpp.
|
private |
Definition at line 95 of file kis_action_manager.h.
| KisOperationRegistry KisActionManager::operationRegistry |
Definition at line 47 of file kis_action_manager.cpp.
| KoGenericRegistry<KisOperationUIFactory*> KisActionManager::uiRegistry |
Definition at line 46 of file kis_action_manager.cpp.
| KisViewManager* KisActionManager::viewManager {nullptr} |
Definition at line 42 of file kis_action_manager.cpp.