Krita Source Code Documentation
Loading...
Searching...
No Matches
KisAction Class Reference

#include <kis_action.h>

+ Inheritance diagram for KisAction:

Public Types

enum  ActivationCondition {
  NO_CONDITION = 0 , ACTIVE_NODE_EDITABLE = 0x1 , ACTIVE_NODE_EDITABLE_PAINT_DEVICE = 0x2 , SELECTION_EDITABLE = 0x4 ,
  OPENGL_ENABLED = 0x8
}
 
enum  ActivationFlag {
  NONE = 0x0000 , ACTIVE_IMAGE = 0x0001 , MULTIPLE_IMAGES = 0x0002 , CURRENT_IMAGE_MODIFIED = 0x0004 ,
  ACTIVE_NODE = 0x0008 , ACTIVE_DEVICE = 0x0010 , ACTIVE_LAYER = 0x0020 , ACTIVE_TRANSPARENCY_MASK = 0x0040 ,
  ACTIVE_SHAPE_LAYER = 0x0080 , PIXELS_SELECTED = 0x0100 , SHAPES_SELECTED = 0x0200 , ANY_SELECTION_WITH_PIXELS = 0x0400 ,
  PIXELS_IN_CLIPBOARD = 0x0800 , SHAPES_IN_CLIPBOARD = 0x1000 , NEVER_ACTIVATE = 0x2000 , LAYERS_IN_CLIPBOARD = 0x4000 ,
  IMAGE_HAS_ANIMATION = 0x8000 , SHAPE_SELECTION_WITH_SHAPES = 0x10000 , PIXEL_SELECTION_WITH_PIXELS = 0x20000 , IMAGE_CAN_RESELECT = 0x40000 ,
  IMAGE_IS_WRITABLE = 0x80000
}
 

Signals

void sigEnableSlaves (bool value)
 

Public Member Functions

ActivationConditions activationConditions ()
 
ActivationFlags activationFlags ()
 
QKeySequence defaultShortcut () const
 
const QStringListexcludedNodeTypes () const
 
 KisAction (const QIcon &icon, const QString &text, QObject *parent=0)
 
 KisAction (const QString &text, QObject *parent=0)
 
 KisAction (QObject *parent=0)
 
 Private ()
 
virtual void setActionEnabled (bool enabled)
 
void setActivationConditions (ActivationConditions conditions)
 
void setActivationFlags (ActivationFlags flags)
 
void setDefaultShortcut (const QKeySequence &shortcut)
 
void setExcludedNodeTypes (const QStringList &nodeTypes)
 
void setOperationID (const QString &id)
 
 ~KisAction () override
 

Public Attributes

KisActionManageractionManager
 
ActivationConditions conditions
 
QStringList excludedNodeTypes
 
ActivationFlags flags
 
QString operationID
 

Private Slots

void slotChanged ()
 
void slotTriggered ()
 

Private Member Functions

void setActionManager (KisActionManager *actionManager)
 
- Private Member Functions inherited from Private
 Private (KisCanvas2 *c)
 

Private Attributes

Private *const d
 
- Private Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Friends

class KisActionManager
 

Detailed Description

KisAction, inheriting from QWidgetAction, is a convenience class for GUI actions, with Krita's configuration system and GUI states. A widget like a "save" button may be enabled/disabled, hidden or shown depending on the state of the application, e.g. whether the image currently being viewed was modified since it was opened.

Copies of these actions are created for each MainWindow instance. They are owned by a KisActionManager, of which there is one for each MainWindow. Most of these instantiations happen inside the constructor for KisMainWindow as well as the various functions called in KisViewManager::setupManagers().

Definition at line 12 of file kis_action.cpp.

Member Enumeration Documentation

◆ ActivationCondition

Enumerator
NO_CONDITION 
ACTIVE_NODE_EDITABLE 
ACTIVE_NODE_EDITABLE_PAINT_DEVICE 
SELECTION_EDITABLE 
OPENGL_ENABLED 

Definition at line 66 of file kis_action.h.

66 {
67 NO_CONDITION = 0,
71 OPENGL_ENABLED = 0x8,
72 };
@ ACTIVE_NODE_EDITABLE_PAINT_DEVICE
Definition kis_action.h:69
@ OPENGL_ENABLED
Definition kis_action.h:71
@ SELECTION_EDITABLE
Definition kis_action.h:70
@ ACTIVE_NODE_EDITABLE
Definition kis_action.h:68

◆ ActivationFlag

If you re-order these, you must change the associated values in krita.action and kritamenu.action!

Enumerator
NONE 

Always activate.

ACTIVE_IMAGE 

Activate if there is at least one image.

MULTIPLE_IMAGES 

Activate if there is more than one image open.

CURRENT_IMAGE_MODIFIED 

Activate if the current image is modified.

ACTIVE_NODE 

Activate if there's an active node (layer or mask)

ACTIVE_DEVICE 

Activate if the active node has a paint device, i.e. there are pixels to be modified.

ACTIVE_LAYER 

Activate if the current node is a layer (vector or pixel)

ACTIVE_TRANSPARENCY_MASK 

Activate if the current node is a transparency mask.

ACTIVE_SHAPE_LAYER 

Activate if the current node is a vector layer.

PIXELS_SELECTED 

Activate if any pixels are selected (with any kind of selection)

SHAPES_SELECTED 

Activate if any vector shape is selected.

ANY_SELECTION_WITH_PIXELS 

???

PIXELS_IN_CLIPBOARD 

Activate if the clipboard contains pixels.

SHAPES_IN_CLIPBOARD 

Activate if the clipboard contains vector data.

NEVER_ACTIVATE 

???

LAYERS_IN_CLIPBOARD 

???

IMAGE_HAS_ANIMATION 

Activate if the image has an animation.

SHAPE_SELECTION_WITH_SHAPES 

Activate there is a vector selection active.

PIXEL_SELECTION_WITH_PIXELS 

Activate there is a raster selection active.

IMAGE_CAN_RESELECT 

Activate there is a deselected selection in the image.

IMAGE_IS_WRITABLE 

Activate KisDocument::isReadWrite() is active.

Definition at line 41 of file kis_action.h.

41 {
42 NONE = 0x0000,
43 ACTIVE_IMAGE = 0x0001,
44 MULTIPLE_IMAGES = 0x0002,
45 CURRENT_IMAGE_MODIFIED = 0x0004,
46 ACTIVE_NODE = 0x0008,
47 ACTIVE_DEVICE = 0x0010,
48 ACTIVE_LAYER = 0x0020,
50 ACTIVE_SHAPE_LAYER = 0x0080,
51 PIXELS_SELECTED = 0x0100,
52 SHAPES_SELECTED = 0x0200,
54 PIXELS_IN_CLIPBOARD = 0x0800,
55 SHAPES_IN_CLIPBOARD = 0x1000,
56 NEVER_ACTIVATE = 0x2000,
57 LAYERS_IN_CLIPBOARD = 0x4000,
58 IMAGE_HAS_ANIMATION = 0x8000,
61 IMAGE_CAN_RESELECT = 0x40000,
62 IMAGE_IS_WRITABLE = 0x80000,
63 };
@ PIXELS_IN_CLIPBOARD
Activate if the clipboard contains pixels.
Definition kis_action.h:54
@ NONE
Always activate.
Definition kis_action.h:42
@ SHAPES_IN_CLIPBOARD
Activate if the clipboard contains vector data.
Definition kis_action.h:55
@ CURRENT_IMAGE_MODIFIED
Activate if the current image is modified.
Definition kis_action.h:45
@ ACTIVE_IMAGE
Activate if there is at least one image.
Definition kis_action.h:43
@ ACTIVE_NODE
Activate if there's an active node (layer or mask)
Definition kis_action.h:46
@ SHAPE_SELECTION_WITH_SHAPES
Activate there is a vector selection active.
Definition kis_action.h:59
@ IMAGE_IS_WRITABLE
Activate KisDocument::isReadWrite() is active.
Definition kis_action.h:62
@ ANY_SELECTION_WITH_PIXELS
???
Definition kis_action.h:53
@ ACTIVE_TRANSPARENCY_MASK
Activate if the current node is a transparency mask.
Definition kis_action.h:49
@ IMAGE_HAS_ANIMATION
Activate if the image has an animation.
Definition kis_action.h:58
@ NEVER_ACTIVATE
???
Definition kis_action.h:56
@ SHAPES_SELECTED
Activate if any vector shape is selected.
Definition kis_action.h:52
@ PIXELS_SELECTED
Activate if any pixels are selected (with any kind of selection)
Definition kis_action.h:51
@ ACTIVE_SHAPE_LAYER
Activate if the current node is a vector layer.
Definition kis_action.h:50
@ IMAGE_CAN_RESELECT
Activate there is a deselected selection in the image.
Definition kis_action.h:61
@ PIXEL_SELECTION_WITH_PIXELS
Activate there is a raster selection active.
Definition kis_action.h:60
@ LAYERS_IN_CLIPBOARD
???
Definition kis_action.h:57
@ ACTIVE_LAYER
Activate if the current node is a layer (vector or pixel)
Definition kis_action.h:48
@ MULTIPLE_IMAGES
Activate if there is more than one image open.
Definition kis_action.h:44
@ ACTIVE_DEVICE
Activate if the active node has a paint device, i.e. there are pixels to be modified.
Definition kis_action.h:47

Constructor & Destructor Documentation

◆ KisAction() [1/3]

KisAction::KisAction ( QObject * parent = 0)
explicit

Definition at line 24 of file kis_action.cpp.

25 : QWidgetAction(parent)
26 , d(new Private)
27{
28 connect(this, SIGNAL(changed()), SLOT(slotChanged()));
29}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
Private *const d
Definition kis_action.h:117
void slotChanged()

References connect(), and slotChanged().

◆ KisAction() [2/3]

KisAction::KisAction ( const QString & text,
QObject * parent = 0 )

Definition at line 31 of file kis_action.cpp.

32 : QWidgetAction(parent)
34{
35 QAction::setText(text);
36 connect(this, SIGNAL(changed()), SLOT(slotChanged()));
37}

References connect(), and slotChanged().

◆ KisAction() [3/3]

KisAction::KisAction ( const QIcon & icon,
const QString & text,
QObject * parent = 0 )

Definition at line 39 of file kis_action.cpp.

40 : QWidgetAction(parent)
41 , d(new Private)
42{
43 QAction::setIcon(icon);
44 QAction::setText(text);
45 connect(this, SIGNAL(changed()), SLOT(slotChanged()));
46}

References connect(), and slotChanged().

◆ ~KisAction()

KisAction::~KisAction ( )
override

Definition at line 48 of file kis_action.cpp.

49{
50 delete d;
51}

References d.

Member Function Documentation

◆ activationConditions()

KisAction::ActivationConditions KisAction::activationConditions ( )

Definition at line 94 of file kis_action.cpp.

95{
96 return d->conditions;
97}

References d.

◆ activationFlags()

KisAction::ActivationFlags KisAction::activationFlags ( )

Definition at line 84 of file kis_action.cpp.

85{
86 return d->flags;
87}

References d.

◆ defaultShortcut()

QKeySequence KisAction::defaultShortcut ( ) const

Definition at line 69 of file kis_action.cpp.

70{
71 auto listifiedShortcut = property("defaultShortcuts").value<QList<QKeySequence> >();
72 if (listifiedShortcut.isEmpty()) {
73 return QKeySequence();
74 } else {
75 return listifiedShortcut.first();
76 }
77}

◆ excludedNodeTypes()

const QStringList & KisAction::excludedNodeTypes ( ) const

◆ Private()

KisAction::Private ( )
inline

Definition at line 15 of file kis_action.cpp.

KisActionManager * actionManager
ActivationFlags flags
ActivationConditions conditions

◆ setActionEnabled()

void KisAction::setActionEnabled ( bool enabled)
virtual

Definition at line 109 of file kis_action.cpp.

110{
111 setEnabled(enabled);
112}

◆ setActionManager()

void KisAction::setActionManager ( KisActionManager * actionManager)
private

Set the action manager. Only used by KisActionManager

Definition at line 114 of file kis_action.cpp.

115{
116 d->actionManager = actionManager;
117}

References actionManager, and d.

◆ setActivationConditions()

void KisAction::setActivationConditions ( ActivationConditions conditions)

Definition at line 89 of file kis_action.cpp.

90{
91 d->conditions = conditions;
92}

References conditions, and d.

◆ setActivationFlags()

void KisAction::setActivationFlags ( ActivationFlags flags)

Definition at line 79 of file kis_action.cpp.

80{
81 d->flags = flags;
82}

References d, and flags.

◆ setDefaultShortcut()

void KisAction::setDefaultShortcut ( const QKeySequence & shortcut)

Definition at line 59 of file kis_action.cpp.

60{
61 QList<QKeySequence> listifiedShortcut;
62 // Use the empty list to represent no shortcut
63 if (shortcut != QKeySequence("")) {
64 listifiedShortcut.append(shortcut);
65 }
66 setProperty("defaultShortcuts", QVariant::fromValue(listifiedShortcut));
67}

◆ setExcludedNodeTypes()

void KisAction::setExcludedNodeTypes ( const QStringList & nodeTypes)

Definition at line 99 of file kis_action.cpp.

100{
101 d->excludedNodeTypes = nodeTypes;
102}

References d.

◆ setOperationID()

void KisAction::setOperationID ( const QString & id)

Set operation id. This will used to run an operation in the KisActionManager

Definition at line 119 of file kis_action.cpp.

120{
121 d->operationID = id;
122 connect(this, SIGNAL(triggered()), this, SLOT(slotTriggered()));
123}
void slotTriggered()

References connect(), d, and slotTriggered().

◆ sigEnableSlaves

void KisAction::sigEnableSlaves ( bool value)
signal

◆ slotChanged

void KisAction::slotChanged ( )
privateslot

Definition at line 132 of file kis_action.cpp.

133{
134 Q_EMIT sigEnableSlaves(isEnabled());
135}
void sigEnableSlaves(bool value)

References sigEnableSlaves().

◆ slotTriggered

void KisAction::slotTriggered ( )
privateslot

Definition at line 125 of file kis_action.cpp.

126{
127 if (d->actionManager && !d->operationID.isEmpty()) {
128 d->actionManager->runOperation(d->operationID);
129 }
130}

References d.

Friends And Related Symbol Documentation

◆ KisActionManager

friend class KisActionManager
friend

Definition at line 108 of file kis_action.h.

Member Data Documentation

◆ actionManager

KisActionManager* KisAction::actionManager

Definition at line 21 of file kis_action.cpp.

◆ conditions

ActivationConditions KisAction::conditions

Definition at line 18 of file kis_action.cpp.

◆ d

Private* const KisAction::d
private

Definition at line 117 of file kis_action.h.

◆ excludedNodeTypes

const QStringList & KisAction::excludedNodeTypes

Definition at line 19 of file kis_action.cpp.

◆ flags

ActivationFlags KisAction::flags

Definition at line 17 of file kis_action.cpp.

◆ operationID

QString KisAction::operationID

Definition at line 20 of file kis_action.cpp.


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