Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_change_frame_action.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
9#include <klocalizedstring.h>
10#include "kis_action.h"
11#include "kis_input_manager.h"
12#include "kis_canvas2.h"
13#include "KisViewManager.h"
14#include "kis_action_manager.h"
15#include "kis_node.h"
16
17
21
23 : KisAbstractInputAction("Switch Time"),
24 m_d(new Private)
25{
26 setName(i18n("Switch Time"));
27 setDescription(i18n("The <i>Switch Time</i> action changes the current time of the animation."));
28
29 QHash< QString, int > shortcuts;
30 shortcuts.insert(i18n("Next Frame"), NextFrameShortcut);
31 shortcuts.insert(i18n("Previous Frame"), PreviousFrameShortcut);
32 setShortcutIndexes(shortcuts);
33}
34
38
40{
42
43 return node ? node->isAnimated() : false;
44}
45
46void KisChangeFrameAction::begin(int shortcut, QEvent *event)
47{
48 KisAbstractInputAction::begin(shortcut, event);
49
50 switch(shortcut) {
51 case NextFrameShortcut: {
52 KisAction *action = inputManager()->canvas()->viewManager()->actionManager()->actionByName("next_frame");
53 if (action) {
54 action->trigger();
55 }
56 break;
57 }
59 KisAction *action = inputManager()->canvas()->viewManager()->actionManager()->actionByName("previous_frame");
60 if (action) {
61 action->trigger();
62 }
63 break;
64 }
65 }
66}
Abstract base class for input actions.
static KisInputManager * inputManager
void setShortcutIndexes(const QHash< QString, int > &indexes)
void setName(const QString &name)
void setDescription(const QString &description)
virtual void begin(int shortcut, QEvent *event)
KisAction * actionByName(const QString &name) const
KisViewManager * viewManager() const
void begin(int shortcut, QEvent *event) override
bool isAvailable() const override
KisCanvas2 * canvas() const
KisActionManager * actionManager() const
KisNodeSP activeNode()
bool isAnimated() const