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

#include <kis_change_frame_action.h>

+ Inheritance diagram for KisChangeFrameAction:

Classes

struct  Private
 

Public Types

enum  Shortcuts { NextFrameShortcut , PreviousFrameShortcut }
 

Public Member Functions

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

Private Attributes

const QScopedPointer< Private > m_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 15 of file kis_change_frame_action.h.

Member Enumeration Documentation

◆ Shortcuts

Enumerator
NextFrameShortcut 
PreviousFrameShortcut 

Definition at line 18 of file kis_change_frame_action.h.

Constructor & Destructor Documentation

◆ KisChangeFrameAction()

KisChangeFrameAction::KisChangeFrameAction ( )

Definition at line 23 of file kis_change_frame_action.cpp.

24 : KisAbstractInputAction("Switch Time"),
25 m_d(new Private)
26{
27 setName(i18n("Switch Time"));
28 setDescription(i18n("The <i>Switch Time</i> action changes the current time of the animation."));
29
30 QHash< QString, int > shortcuts;
31 shortcuts.insert(i18n("Next Frame"), NextFrameShortcut);
32 shortcuts.insert(i18n("Previous Frame"), PreviousFrameShortcut);
33 setShortcutIndexes(shortcuts);
34}
KisAbstractInputAction(const QString &id)
void setShortcutIndexes(const QHash< QString, int > &indexes)
void setName(const QString &name)
void setDescription(const QString &description)
const QScopedPointer< Private > m_d

References NextFrameShortcut, PreviousFrameShortcut, KisAbstractInputAction::setDescription(), KisAbstractInputAction::setName(), and KisAbstractInputAction::setShortcutIndexes().

◆ ~KisChangeFrameAction()

KisChangeFrameAction::~KisChangeFrameAction ( )
override

Definition at line 36 of file kis_change_frame_action.cpp.

37{
38}

Member Function Documentation

◆ begin()

void KisChangeFrameAction::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 70 of file kis_change_frame_action.cpp.

71{
72 KisAbstractInputAction::begin(shortcut, event);
73
74 switch(shortcut) {
75 case NextFrameShortcut: {
76 KisAction *action = inputManager()->canvas()->viewManager()->actionManager()->actionByName("next_frame");
77 if (action) {
78 action->trigger();
79 }
80 break;
81 }
83 KisAction *action = inputManager()->canvas()->viewManager()->actionManager()->actionByName("previous_frame");
84 if (action) {
85 action->trigger();
86 }
87 break;
88 }
89 }
90}
static KisInputManager * inputManager
virtual void begin(int shortcut, QEvent *event)
KisAction * actionByName(const QString &name) const
KisViewManager * viewManager() const
KisCanvas2 * canvas() const
KisActionManager * actionManager() const

References KisActionManager::actionByName(), KisViewManager::actionManager(), KisAbstractInputAction::begin(), KisInputManager::canvas(), KisAbstractInputAction::inputManager, NextFrameShortcut, PreviousFrameShortcut, and KisCanvas2::viewManager().

◆ isAvailable()

bool KisChangeFrameAction::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 40 of file kis_change_frame_action.cpp.

41{
43 if (!im) return false;
44
45 KisCanvas2 *canvas = im->canvas();
46 if (!canvas) return false;
47
48 KisImageWSP image = canvas->image();
49 if (!bool(image)) return false;
50
51 // Only works when this image has animation
52 if (!image->animationInterface()->hasAnimation()) {
53 return false;
54 }
55
56 // Prevents when in Edit Selection
57 KisNodeSP activeNode = canvas->viewManager()->activeNode();
58 if (activeNode && activeNode->inherits("KisSelectionMask")) {
59 return false;
60 }
61
62 // Prevents when a shape is selected
64 return false;
65 }
66
67 return true;
68}
KisImageWSP image() const
KisToolProxy toolProxy
KisImageAnimationInterface * animationInterface() const
Central object to manage canvas input.
KisNodeSP activeNode()
bool hasSelection() const
returns true if the current tool holds a selection
KisCanvas2 * canvas

References KisViewManager::activeNode(), KisImage::animationInterface(), Private::canvas, KisInputManager::canvas(), KisImageAnimationInterface::hasAnimation(), KoToolProxy::hasSelection(), KisCanvas2::image(), KisAbstractInputAction::inputManager, KisCanvas2::toolProxy, and KisCanvas2::viewManager().

Member Data Documentation

◆ m_d

const QScopedPointer<Private> KisChangeFrameAction::m_d
private

Definition at line 32 of file kis_change_frame_action.h.


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