Krita Source Code Documentation
Loading...
Searching...
No Matches
KisAnimCurvesDocker.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Jouni Pentikäinen <joupent@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef _KIS_ANIMATION_CURVE_DOCKER_H_
8#define _KIS_ANIMATION_CURVE_DOCKER_H_
9
10#include <QDockWidget>
12#include <QScopedPointer>
13#include <kis_types.h>
14#include <KisKineticScroller.h>
16
17class QToolButton;
18class KisCanvas2;
19class KisAction;
24class KisZoomButton;
27
73
77class KisAnimCurvesDocker : public QDockWidget, public KisMainwindowObserver
78{
79 Q_OBJECT
80public:
82 ~KisAnimCurvesDocker() override;
83
84 QString observerName() override { return "AnimationCurveDocker"; }
85 void setCanvas(KoCanvasBase *canvas) override;
86 void unsetCanvas() override;
87 void setViewManager(KisViewManager *kisview) override;
88 void setPlaybackEngine(KisPlaybackEngine *playbackEngine);
89
90public Q_SLOTS:
91 void slotScrollerStateChanged(QScroller::State state);
94
96
97private Q_SLOTS:
98 void slotUpdateIcons();
99
101 void slotAddOpacityKey();
104
105 void slotListRowsInserted(const QModelIndex &parentIndex, int first, int last);
106
107 void slotValueRegisterChanged(double value);
108
109 void slotActiveNodeUpdate(const QModelIndex index);
110
111 void requestChannelMenuAt(const QPoint& point);
113private:
114 // Used for adding multiple keyframes as a batch under one undo command.
115 void addKeyframeCommandToParent(const QString &channelIdentity, KUndo2Command* parentCMD);
116
117 // Used to quickly add one type of specific key automatically, e.g. Opacity.
118 void addKeyframeQuick(const QString &channelIdentity);
119
120 void removeKeyframe(const QString &channel);
121
122 struct Private;
123 const QScopedPointer<Private> m_d;
124};
125
126
127#endif
float value(const T *src, size_t ch)
A customized titlebar for the Animation Curves Docker that's packed with useful widgets and menus.
KisIntParseSpinBox * sbStartFrame
KisIntParseSpinBox * sbFrameRate
KisCollapsibleButtonGroup * btnGroupTangents
KisCollapsibleButtonGroup * btnGroupZoomFit
KisIntParseSpinBox * sbFrameRegister
KisTransportControls * transport
KisDoubleParseSpinBox * sbValueRegister
KisAnimCurvesDockerTitlebar(QWidget *parent=nullptr)
KisIntParseSpinBox * sbEndFrame
KisCollapsibleButtonGroup * btnGroupInterpolation
Krita's Animation Curves Docker. This is the GUI heart of Krita's scalar animation workflow.
void setCanvas(KoCanvasBase *canvas) override
void slotListRowsInserted(const QModelIndex &parentIndex, int first, int last)
const QScopedPointer< Private > m_d
void setViewManager(KisViewManager *kisview) override
void slotActiveNodeUpdate(const QModelIndex index)
void addKeyframeQuick(const QString &channelIdentity)
void setPlaybackEngine(KisPlaybackEngine *playbackEngine)
void removeKeyframe(const QString &channel)
void requestChannelMenuAt(const QPoint &point)
void slotNodeActivated(KisNodeSP node)
void addKeyframeCommandToParent(const QString &channelIdentity, KUndo2Command *parentCMD)
void slotScrollerStateChanged(QScroller::State state)
void slotValueRegisterChanged(double value)
QString observerName() override
The KisDoubleParseSpinBox class is a cleverer doubleSpinBox, able to parse arithmetic expressions.
The KisIntParseSpinBox class is a cleverer SpinBox, able to parse arithmetic expressions.
The KisMainwindowObserver class is an interface for dock widgets that want to keep track of the main ...
Krita's base animation playback engine for producing image frame changes and associated audio.
This class is a spinbox in which you can click and drag to set the value. A slider like bar is displa...
The KisTransportControls class provides a simple, reusable widget for common transport controls,...
A special utility titlebar with a title and controls, as well as a central area for adding frequently...