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

A customized titlebar for the Animation Curves Docker that's packed with useful widgets and menus. More...

#include <KisAnimCurvesDocker.h>

+ Inheritance diagram for KisAnimCurvesDockerTitlebar:

Public Member Functions

 KisAnimCurvesDockerTitlebar (QWidget *parent=nullptr)
 
- Public Member Functions inherited from KisUtilityTitleBar
void dockWidgetTitleChanged (const QString &title)
 
void featuresChanged (QDockWidget::DockWidgetFeatures features)
 
 KisUtilityTitleBar (QLabel *title, QWidget *parent=nullptr)
 
 KisUtilityTitleBar (QWidget *parent=nullptr)
 
 Private (KisUtilityTitleBar *thePublic)
 
void setWidgetArea (QWidget *widgetArea)
 
QSize sizeHint () const override
 
void toggleFloating ()
 
void topLevelChanged (bool topLevel)
 
void updateButtonSizes ()
 
void updateIcons ()
 
QWidget * widgetArea ()
 
 ~KisUtilityTitleBar ()
 

Public Attributes

QToolButton * btnAddKey
 
QToolButton * btnAudioMenu
 
QToolButton * btnDropFrames
 
KisCollapsibleButtonGroupbtnGroupInterpolation
 
KisCollapsibleButtonGroupbtnGroupTangents
 
KisCollapsibleButtonGroupbtnGroupZoomFit
 
QToolButton * btnOnionSkinsMenu
 
QToolButton * btnRemoveKey
 
QToolButton * btnSettingsMenu
 
KisZoomButtonbtnZoomHori
 
KisZoomButtonbtnZoomVert
 
KisIntParseSpinBoxsbEndFrame
 
KisIntParseSpinBoxsbFrameRate
 
KisIntParseSpinBoxsbFrameRegister
 
KisSliderSpinBoxsbSpeed
 
KisIntParseSpinBoxsbStartFrame
 
KisDoubleParseSpinBoxsbValueRegister
 
KisTransportControlstransport
 
- Public Attributes inherited from KisUtilityTitleBar
QPushButton * closeButton {nullptr}
 
QDockWidget::DockWidgetFeatures features
 
QPushButton * floatButton {nullptr}
 
QIcon floatIcon
 
QAbstractButton * lockButton {nullptr}
 
bool locked {false}
 
QIcon lockIcon
 
QHBoxLayout * mainLayout
 
QIcon removeIcon
 
KisUtilityTitleBarthePublic {nullptr}
 
KSqueezedTextLabel * titleLabel {nullptr}
 

Private Attributes

const int MAX_FRAMES = 9999
 

Additional Inherited Members

- Public Slots inherited from KisUtilityTitleBar
void setLocked (bool locked)
 
- Protected Attributes inherited from KisUtilityTitleBar
Private *const d
 
const int SPACING_UNIT = 16
 
QHBoxLayout * widgetAreaLayout
 

Detailed Description

A customized titlebar for the Animation Curves Docker that's packed with useful widgets and menus.

To avoid cluttering the UI, elements that are important to the animator's workflow should be available at a glace, while set-and-forget types of things should be hidden inside of menus.

Definition at line 35 of file KisAnimCurvesDocker.h.

Constructor & Destructor Documentation

◆ KisAnimCurvesDockerTitlebar()

KisAnimCurvesDockerTitlebar::KisAnimCurvesDockerTitlebar ( QWidget * parent = nullptr)

Definition at line 60 of file KisAnimCurvesDocker.cpp.

60 :
61 KisUtilityTitleBar(new QLabel(i18n("Animation Curves"), parent), parent)
62{
63 // Transport Controls...
65 widgetAreaLayout->addWidget(transport);
66 widgetAreaLayout->addSpacing(SPACING_UNIT);
67
68 // Frame Register...
70 sbFrameRegister->setToolTip(i18n("Frame register"));
71 sbFrameRegister->setPrefix("# ");
72 sbFrameRegister->setRange(0, MAX_FRAMES);
74 widgetAreaLayout->addSpacing(SPACING_UNIT);
75
76 { // Drop Frames..
77 btnDropFrames = new QToolButton(this);
78 btnDropFrames->setAutoRaise(true);
80
81 // Playback Speed..
82 sbSpeed = new KisSliderSpinBox(this);
83 sbSpeed->setRange(25, 200);
84 sbSpeed->setSingleStep(5);
85 sbSpeed->setValue(100);
86 sbSpeed->setPrefix(i18nc("preview playback speed percentage prefix", "Speed: "));
87 sbSpeed->setSuffix(" %");
88 sbSpeed->setToolTip(i18n("Preview playback speed"));
89 widgetAreaLayout->addWidget(sbSpeed);
90 }
91
92 widgetAreaLayout->addSpacing(SPACING_UNIT);
93
94 { // Frame ops...
95 QWidget *widget = new QWidget(this);
96 QHBoxLayout *layout = new QHBoxLayout(widget);
97 layout->setSpacing(0);
98 layout->setContentsMargins(0,0,0,0);
99
100 // Add/Remove Key..
101 btnAddKey = new QToolButton(this);
102 btnAddKey->setAutoRaise(true);
103 layout->addWidget(btnAddKey);
104
105 btnRemoveKey = new QToolButton(this);
106 btnRemoveKey->setAutoRaise(true);
107 layout->addWidget(btnRemoveKey);
108
109 layout->addSpacing(SPACING_UNIT);
110
111 // Interpolation Modes..
114 btnGroupInterpolation->setIconSize(QSize(22, 22));
115 layout->addWidget(btnGroupInterpolation);
116
117 layout->addSpacing(SPACING_UNIT);
118
119 // Tangent Modes..
122 btnGroupTangents->setIconSize(QSize(22, 22));
123 layout->addWidget(btnGroupTangents);
124
125 widgetAreaLayout->addWidget(widget);
126 }
127
128 widgetAreaLayout->addSpacing(SPACING_UNIT);
129
131 sbValueRegister->setPrefix(i18nc("Value (Keep short!)", "Val:"));
132 sbValueRegister->setToolTip(i18n("Value register"));
133 sbValueRegister->setRange(-99000.f, 99000.f);
135
136 widgetAreaLayout->addSpacing(SPACING_UNIT);
137
138 // Zoom buttons..
141 btnGroupZoomFit->setIconSize(QSize(22,22));
143
144 btnZoomHori = new KisZoomButton(this);
145 btnZoomHori->setAutoRaise(true);
146 btnZoomHori->setIcon(KisIconUtils::loadIcon("zoom-horizontal"));
147 btnZoomHori->setToolTip(i18n("Zoom horizontally"));
148 btnZoomHori->setIconSize(QSize(22, 22));
149 widgetAreaLayout->addWidget(btnZoomHori);
150
151 btnZoomVert = new KisZoomButton(this);
152 btnZoomVert->setAutoRaise(true);
153 btnZoomVert->setIcon(KisIconUtils::loadIcon("zoom-vertical"));
154 btnZoomVert->setToolTip(i18n("Zoom vertically"));
155 btnZoomVert->setIconSize(QSize(22, 22));
156 widgetAreaLayout->addWidget(btnZoomVert);
157
158 widgetAreaLayout->addStretch();
159
160 { // Menus..
161 QWidget *widget = new QWidget(this);
162
163 QHBoxLayout *layout = new QHBoxLayout(widget);
164 layout->setSpacing(0);
165 layout->setContentsMargins(SPACING_UNIT,0,0,0);
166
167 // Onion skins menu.
168 btnOnionSkinsMenu = new QToolButton(this);
169 btnOnionSkinsMenu->setAutoRaise(true);
170 btnOnionSkinsMenu->setIcon(KisIconUtils::loadIcon("onion_skin_options"));
171 btnOnionSkinsMenu->setToolTip(i18n("Onion skins menu"));
172 btnOnionSkinsMenu->setIconSize(QSize(22, 22));
173 layout->addWidget(btnOnionSkinsMenu);
174
175 // Audio menu..
176 btnAudioMenu = new QToolButton(this);
177 btnAudioMenu->setAutoRaise(true);
178 btnAudioMenu->setIcon(KisIconUtils::loadIcon("audio-none"));
179 btnAudioMenu->setToolTip(i18n("Audio menu"));
180 btnAudioMenu->setIconSize(QSize(22, 22));
181 btnAudioMenu->hide(); // (NOTE: Hidden for now while audio features develop.)
182 layout->addWidget(btnAudioMenu);
183
184 { // Settings menu..
185 btnSettingsMenu = new QToolButton(this);
186 btnSettingsMenu->setIcon(KisIconUtils::loadIcon("view-choose-22"));
187 btnSettingsMenu->setToolTip(i18n("Animation settings menu"));
188 btnSettingsMenu->setIconSize(QSize(22, 22));
189 btnSettingsMenu->setAutoRaise(true);
190
191 QWidget *settingsMenuWidget = new QWidget(this);
192 QHBoxLayout *settingsMenuLayout = new QHBoxLayout(settingsMenuWidget);
193
194 QWidget *fields = new QWidget(settingsMenuWidget);
195 QFormLayout *fieldsLayout = new QFormLayout(fields);
196
197 sbStartFrame = new KisIntParseSpinBox(settingsMenuWidget);
198 sbStartFrame->setMaximum(10000);
199 fieldsLayout->addRow(i18n("Clip Start: "), sbStartFrame);
200
201 sbEndFrame = new KisIntParseSpinBox(settingsMenuWidget);
202 sbEndFrame->setMaximum(10000);
203 fieldsLayout->addRow(i18n("Clip End: "), sbEndFrame);
204
205 sbFrameRate = new KisIntParseSpinBox(settingsMenuWidget);
206 sbFrameRate->setMinimum(0);
207 sbFrameRate->setMaximum(180);
208 fieldsLayout->addRow(i18n("Frame Rate: "), sbFrameRate);
209
210 QWidget *buttons = new QWidget(settingsMenuWidget);
211 QVBoxLayout *buttonsLayout = new QVBoxLayout(buttons);
212 buttonsLayout->setAlignment(Qt::AlignTop);
213
214 settingsMenuLayout->addWidget(fields);
215 settingsMenuLayout->addWidget(buttons);
216
217 layout->addWidget(btnSettingsMenu);
218
219 QMenu *settingsPopMenu = new QMenu(this);
220 QWidgetAction *settingsMenuAction = new QWidgetAction(this);
221 settingsMenuAction->setDefaultWidget(settingsMenuWidget);
222 settingsPopMenu->addAction(settingsMenuAction);
223
224 btnSettingsMenu->setPopupMode(QToolButton::InstantPopup);
225 btnSettingsMenu->setMenu(settingsPopMenu);
226 }
227
228 widgetAreaLayout->addWidget(widget);
229 }
230}
KisIntParseSpinBox * sbStartFrame
KisIntParseSpinBox * sbFrameRate
KisCollapsibleButtonGroup * btnGroupTangents
KisCollapsibleButtonGroup * btnGroupZoomFit
KisIntParseSpinBox * sbFrameRegister
KisTransportControls * transport
KisDoubleParseSpinBox * sbValueRegister
KisIntParseSpinBox * sbEndFrame
KisCollapsibleButtonGroup * btnGroupInterpolation
The KisDoubleParseSpinBox class is a cleverer doubleSpinBox, able to parse arithmetic expressions.
The KisIntParseSpinBox class is a cleverer SpinBox, able to parse arithmetic expressions.
This class is a spinbox in which you can click and drag to set the value. A slider like bar is displa...
void setValue(int newValue)
void setRange(int newMinimum, int newMaximum, bool computeNewFastSliderStep=true)
Set the minimum and the maximum values of the range, computing a new "fast slider step" based on the ...
The KisTransportControls class provides a simple, reusable widget for common transport controls,...
KisUtilityTitleBar(QWidget *parent=nullptr)
QString buttons(const T &ev)
QIcon loadIcon(const QString &name)

References btnAddKey, btnAudioMenu, btnDropFrames, btnGroupInterpolation, btnGroupTangents, btnGroupZoomFit, btnOnionSkinsMenu, btnRemoveKey, btnSettingsMenu, btnZoomHori, btnZoomVert, buttons(), KisIconUtils::loadIcon(), MAX_FRAMES, sbEndFrame, sbFrameRate, sbFrameRegister, sbSpeed, sbStartFrame, sbValueRegister, KisCollapsibleButtonGroup::setAutoRaise(), KisCollapsibleButtonGroup::setIconSize(), KisSliderSpinBox::setRange(), KisSliderSpinBox::setValue(), KisUtilityTitleBar::SPACING_UNIT, transport, and KisUtilityTitleBar::widgetAreaLayout.

Member Data Documentation

◆ btnAddKey

QToolButton* KisAnimCurvesDockerTitlebar::btnAddKey

Definition at line 46 of file KisAnimCurvesDocker.h.

◆ btnAudioMenu

QToolButton* KisAnimCurvesDockerTitlebar::btnAudioMenu

Definition at line 56 of file KisAnimCurvesDocker.h.

◆ btnDropFrames

QToolButton* KisAnimCurvesDockerTitlebar::btnDropFrames

Definition at line 64 of file KisAnimCurvesDocker.h.

◆ btnGroupInterpolation

KisCollapsibleButtonGroup* KisAnimCurvesDockerTitlebar::btnGroupInterpolation

Definition at line 49 of file KisAnimCurvesDocker.h.

◆ btnGroupTangents

KisCollapsibleButtonGroup* KisAnimCurvesDockerTitlebar::btnGroupTangents

Definition at line 50 of file KisAnimCurvesDocker.h.

◆ btnGroupZoomFit

KisCollapsibleButtonGroup* KisAnimCurvesDockerTitlebar::btnGroupZoomFit

Definition at line 51 of file KisAnimCurvesDocker.h.

◆ btnOnionSkinsMenu

QToolButton* KisAnimCurvesDockerTitlebar::btnOnionSkinsMenu

Definition at line 55 of file KisAnimCurvesDocker.h.

◆ btnRemoveKey

QToolButton* KisAnimCurvesDockerTitlebar::btnRemoveKey

Definition at line 47 of file KisAnimCurvesDocker.h.

◆ btnSettingsMenu

QToolButton* KisAnimCurvesDockerTitlebar::btnSettingsMenu

Definition at line 57 of file KisAnimCurvesDocker.h.

◆ btnZoomHori

KisZoomButton* KisAnimCurvesDockerTitlebar::btnZoomHori

Definition at line 66 of file KisAnimCurvesDocker.h.

◆ btnZoomVert

KisZoomButton* KisAnimCurvesDockerTitlebar::btnZoomVert

Definition at line 67 of file KisAnimCurvesDocker.h.

◆ MAX_FRAMES

const int KisAnimCurvesDockerTitlebar::MAX_FRAMES = 9999
private

Definition at line 71 of file KisAnimCurvesDocker.h.

◆ sbEndFrame

KisIntParseSpinBox* KisAnimCurvesDockerTitlebar::sbEndFrame

Definition at line 60 of file KisAnimCurvesDocker.h.

◆ sbFrameRate

KisIntParseSpinBox* KisAnimCurvesDockerTitlebar::sbFrameRate

Definition at line 61 of file KisAnimCurvesDocker.h.

◆ sbFrameRegister

KisIntParseSpinBox* KisAnimCurvesDockerTitlebar::sbFrameRegister

Definition at line 44 of file KisAnimCurvesDocker.h.

◆ sbSpeed

KisSliderSpinBox* KisAnimCurvesDockerTitlebar::sbSpeed

Definition at line 62 of file KisAnimCurvesDocker.h.

◆ sbStartFrame

KisIntParseSpinBox* KisAnimCurvesDockerTitlebar::sbStartFrame

Definition at line 59 of file KisAnimCurvesDocker.h.

◆ sbValueRegister

KisDoubleParseSpinBox* KisAnimCurvesDockerTitlebar::sbValueRegister

Definition at line 53 of file KisAnimCurvesDocker.h.

◆ transport

KisTransportControls* KisAnimCurvesDockerTitlebar::transport

Definition at line 42 of file KisAnimCurvesDocker.h.


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