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

#include <kis_temporary_straight_ruler_action.h>

+ Inheritance diagram for KisTemporaryStraightRulerAction:

Classes

class  Private
 

Public Types

enum  Shortcut { NormalShortcut , SnapToAngleShortcut }
 

Public Member Functions

void activate (int shortcut) override
 
void begin (int shortcut, QEvent *event) override
 
void deactivate (int shortcut) override
 
void end (QEvent *event) override
 
KisInputActionGroup inputActionGroup (int shortcut) const override
 
void inputEvent (QEvent *event) override
 
bool isAvailable () const override
 
 KisTemporaryStraightRulerAction ()
 
int priority () const override
 
bool supportsHiResInputEvents (int shortcut) const override
 
bool trySwitchShortcut (int oldShortcut, int newShortcut) override
 
 ~KisTemporaryStraightRulerAction () override
 
- Public Member Functions inherited from KisAbstractInputAction
virtual bool canIgnoreModifiers () const
 
virtual QString description () const
 
virtual QString id () const
 
virtual bool isShortcutRequired (int shortcut) const
 
 KisAbstractInputAction (const QString &id)
 
virtual QString name () const
 
virtual QHash< QString, int > shortcutIndexes () const
 
virtual ~KisAbstractInputAction ()
 

Private Attributes

Private *const d
 

Additional Inherited Members

- Public Attributes inherited from KisAbstractInputAction
QString description
 
QString id
 
QHash< QString, int > indexes
 
QPointF lastCursorPosition
 
QString name
 
QPointF startCursorPosition
 
- Static Public Attributes inherited from KisAbstractInputAction
static KisInputManager * inputManager
 
- Protected Member Functions inherited from KisAbstractInputAction
virtual void cursorMoved (const QPointF &lastPos, const QPointF &pos)
 
virtual void cursorMovedAbsolute (const QPointF &startPos, const QPointF &pos)
 
QPoint eventPos (const QEvent *event)
 
QPointF eventPosF (const QEvent *event)
 
KisInputManager * inputManager () const
 
void setDescription (const QString &description)
 
void setName (const QString &name)
 
void setShortcutIndexes (const QHash< QString, int > &indexes)
 

Detailed Description

Definition at line 11 of file kis_temporary_straight_ruler_action.h.

Member Enumeration Documentation

◆ Shortcut

Constructor & Destructor Documentation

◆ KisTemporaryStraightRulerAction()

KisTemporaryStraightRulerAction::KisTemporaryStraightRulerAction ( )

Definition at line 54 of file kis_temporary_straight_ruler_action.cpp.

55 : KisAbstractInputAction("Temporary Straight Ruler")
56 , d(new Private)
57{
58 setName(i18n("Temporary Straight Ruler"));
59 setDescription(i18n("The <i>Temporary Straight Ruler</i> action creates a transient ruler for constrained painting."));
60
61 QHash<QString, int> shortcuts;
62 shortcuts.insert(i18n("Normal"), NormalShortcut);
63 shortcuts.insert(i18n("Snapped Angle"), SnapToAngleShortcut);
64 setShortcutIndexes(shortcuts);
65}
KisAbstractInputAction(const QString &id)
void setShortcutIndexes(const QHash< QString, int > &indexes)
void setName(const QString &name)
void setDescription(const QString &description)

References NormalShortcut, KisAbstractInputAction::setDescription(), KisAbstractInputAction::setName(), KisAbstractInputAction::setShortcutIndexes(), and SnapToAngleShortcut.

◆ ~KisTemporaryStraightRulerAction()

KisTemporaryStraightRulerAction::~KisTemporaryStraightRulerAction ( )
override

Definition at line 67 of file kis_temporary_straight_ruler_action.cpp.

68{
69 delete d;
70}

References d.

Member Function Documentation

◆ activate()

void KisTemporaryStraightRulerAction::activate ( int shortcut)
overridevirtual

The method is called when the action is yet to be started, that is, e.g. the user has pressed all the modifiers for the action but hasn't started painting yet. This method is a right place to show the user what is going to happen, e.g. change the cursor.

Reimplemented from KisAbstractInputAction.

Definition at line 77 of file kis_temporary_straight_ruler_action.cpp.

78{
80 if (decoration) {
82 decoration->temporaryConstraint().value_or(KisTemporaryPaintConstraint());
83 constraint.setInteractionMode(Private::interactionMode(shortcut));
84 decoration->setTemporaryConstraint(constraint);
85 }
86}
static KisInputManager * inputManager
std::optional< KisTemporaryPaintConstraint > temporaryConstraint() const
void setTemporaryConstraint(std::optional< KisTemporaryPaintConstraint > constraint)
void setInteractionMode(InteractionMode mode)
static KisTemporaryPaintConstraint::InteractionMode interactionMode(int shortcut)
KisPaintingAssistantsDecorationSP decoration(KisInputManager *inputManager) const

References d, KisTemporaryStraightRulerAction::Private::decoration(), KisAbstractInputAction::inputManager, KisTemporaryStraightRulerAction::Private::interactionMode(), KisTemporaryPaintConstraint::setInteractionMode(), KisPaintingAssistantsDecoration::setTemporaryConstraint(), and KisPaintingAssistantsDecoration::temporaryConstraint().

◆ begin()

void KisTemporaryStraightRulerAction::begin ( int shortcut,
QEvent * event )
overridevirtual

Begin the action.

Parameters
shortcutThe index of the behaviour to trigger.
eventThe mouse event that has triggered this action. Is null for keyboard-activated actions.

Reimplemented from KisAbstractInputAction.

Definition at line 117 of file kis_temporary_straight_ruler_action.cpp.

118{
119 Q_UNUSED(shortcut);
120
122 action->begin(KisToolInvocationAction::ActivateShortcut, event);
123 }
124}
KisToolInvocationAction * defaultInputAction(KisInputManager *inputManager) const
Tool Invocation action of KisAbstractInputAction.

References KisToolInvocationAction::ActivateShortcut, d, KisTemporaryStraightRulerAction::Private::defaultInputAction(), and KisAbstractInputAction::inputManager.

◆ deactivate()

void KisTemporaryStraightRulerAction::deactivate ( int shortcut)
overridevirtual

The method is called when the action is not a candidate for the starting anymore. The action should revert everything that was done in activate() method.

See also
activate()

Reimplemented from KisAbstractInputAction.

Definition at line 88 of file kis_temporary_straight_ruler_action.cpp.

89{
90 Q_UNUSED(shortcut);
91
93 if (decoration) {
94 decoration->setTemporaryConstraint(std::nullopt);
95 }
96}

References d, KisTemporaryStraightRulerAction::Private::decoration(), KisAbstractInputAction::inputManager, and KisPaintingAssistantsDecoration::setTemporaryConstraint().

◆ end()

void KisTemporaryStraightRulerAction::end ( QEvent * event)
overridevirtual

End the action.

Parameters
eventThe mouse event that has finished this action. Is null for keyboard-activated actions.

Reimplemented from KisAbstractInputAction.

Definition at line 133 of file kis_temporary_straight_ruler_action.cpp.

134{
136 action->end(event);
137 }
138}

References d, KisTemporaryStraightRulerAction::Private::defaultInputAction(), and KisAbstractInputAction::inputManager.

◆ inputActionGroup()

KisInputActionGroup KisTemporaryStraightRulerAction::inputActionGroup ( int shortcut) const
overridevirtual
Returns
the group of the action the specified shortcut belongs to

Reimplemented from KisAbstractInputAction.

Definition at line 153 of file kis_temporary_straight_ruler_action.cpp.

154{
155 Q_UNUSED(shortcut);
157}
@ ToolInvoactionActionGroup

References ToolInvoactionActionGroup.

◆ inputEvent()

void KisTemporaryStraightRulerAction::inputEvent ( QEvent * event)
overridevirtual

Process an input event.

By default handles MouseMove events and passes the data to a convenience cursorMoved() method

Parameters
eventAn event to process.

Reimplemented from KisAbstractInputAction.

Definition at line 126 of file kis_temporary_straight_ruler_action.cpp.

127{
129 action->inputEvent(event);
130 }
131}

References d, KisTemporaryStraightRulerAction::Private::defaultInputAction(), and KisAbstractInputAction::inputManager.

◆ isAvailable()

bool KisTemporaryStraightRulerAction::isAvailable ( ) const
overridevirtual

Some of the actions are available in particular situations only. E.g. switch frame action is available iff an animated layer is selected. If isAvailable() returns true then the action will not be triggered by the shortcut matcher.

Reimplemented from KisAbstractInputAction.

Definition at line 148 of file kis_temporary_straight_ruler_action.cpp.

149{
150 return true;
151}

◆ priority()

int KisTemporaryStraightRulerAction::priority ( ) const
overridevirtual

The priority for this action.

Priority determines how "important" the action is and is used to resolve conflicts when multiple actions can be activated.

Reimplemented from KisAbstractInputAction.

Definition at line 72 of file kis_temporary_straight_ruler_action.cpp.

73{
74 return 100;
75}

◆ supportsHiResInputEvents()

bool KisTemporaryStraightRulerAction::supportsHiResInputEvents ( int shortcut) const
overridevirtual

Returns true if the action can handle HiRes flow of move events which is generated by the tablet. If the function returns false, some of the events will be dropped or postponed. For most of the actions in Krita (except of real painting) it is perfectly acceptable, so 'false' is the default value.

Reimplemented from KisAbstractInputAction.

Definition at line 140 of file kis_temporary_straight_ruler_action.cpp.

141{
142 Q_UNUSED(shortcut);
143
146}
bool supportsHiResInputEvents(int shortcut) const override

References KisToolInvocationAction::ActivateShortcut, d, KisTemporaryStraightRulerAction::Private::defaultInputAction(), KisAbstractInputAction::inputManager, and KisToolInvocationAction::supportsHiResInputEvents().

◆ trySwitchShortcut()

bool KisTemporaryStraightRulerAction::trySwitchShortcut ( int oldShortcut,
int newShortcut )
overridevirtual

Switch the active shortcut mode without deactivating the action.

Called when modifier keys change while the action is active. Override this to update action state in-place without resetting ongoing interaction.

Returns
true if the switch was handled and the action remains active; false to fall back to standard deactivate() / activate().

Reimplemented from KisAbstractInputAction.

Definition at line 98 of file kis_temporary_straight_ruler_action.cpp.

99{
100 Q_UNUSED(oldShortcut);
101
103 if (!decoration) {
104 return false;
105 }
106
107 std::optional<KisTemporaryPaintConstraint> constraint = decoration->temporaryConstraint();
108 if (!constraint) {
109 return false;
110 }
111
112 constraint->setInteractionMode(Private::interactionMode(newShortcut));
113 decoration->setTemporaryConstraint(constraint);
114 return true;
115}

References d, KisTemporaryStraightRulerAction::Private::decoration(), KisAbstractInputAction::inputManager, KisTemporaryStraightRulerAction::Private::interactionMode(), KisPaintingAssistantsDecoration::setTemporaryConstraint(), and KisPaintingAssistantsDecoration::temporaryConstraint().

Member Data Documentation

◆ d

Private* const KisTemporaryStraightRulerAction::d
private

Definition at line 37 of file kis_temporary_straight_ruler_action.h.


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