Krita Source Code Documentation
Loading...
Searching...
No Matches
timeline_insert_keyframe_dialog.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2018 Emmet O 'Neill <emmetoneill.pdx@gmail.com>
3 * SPDX-FileCopyrightText: 2018 Eoin O 'Neill <eoinoneill1991@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
10
11#include <QGroupBox>
12#include <QSpinBox>
13#include <QRadioButton>
14#include <QDialogButtonBox>
15#include <QVBoxLayout>
16#include <QFormLayout>
17#include <klocalizedstring.h>
18#include <kstandardguiitem.h>
19
20#include "KSharedConfig"
21#include "KConfigGroup"
22
23
25 QDialog(parent)
26{
27 setWindowTitle(i18nc("@title:window","Insert Keyframes"));
28 setModal(true);
29
30 QVBoxLayout *layout = new QVBoxLayout(this);
31
32 { // Count and Spacing Forms.
33 QWidget *forms = new QWidget(this);
34 layout->addWidget(forms);
35
36 frameCountSpinbox.setMinimum(1);
37 frameCountSpinbox.setValue(1);
38
39 frameTimingSpinbox.setMinimum(1);
40 frameTimingSpinbox.setValue(1);
41
42 QFormLayout *LO = new QFormLayout(forms);
43
44 LO->addRow(QString(i18nc("@label:spinbox", "Number of frames:")), &frameCountSpinbox);
45 LO->addRow(QString(i18nc("@label:spinbox", "Frame timing:")), &frameTimingSpinbox);
46 }
47 { // Side Buttons.
48 QGroupBox *sideRadioButtons = new QGroupBox(i18nc("@label:group","Side:"), this);
49 layout->addWidget(sideRadioButtons);
50
51 leftBefore = new QRadioButton(i18nc("@label:radio", "Left / Before"), sideRadioButtons);
52 rightAfter = new QRadioButton(i18nc("@label:radio", "Right / After"), sideRadioButtons);
53 leftBefore->setChecked(true);
54
55 QVBoxLayout *LO = new QVBoxLayout(sideRadioButtons);
56
57 LO->addWidget(leftBefore);
58 LO->addWidget(rightAfter);
59 }
60 { // Cancel / OK Buttons.
61 QDialogButtonBox *buttonbox = new QDialogButtonBox(QDialogButtonBox::Cancel | QDialogButtonBox::Ok);
62 layout->addWidget(buttonbox);
63
64 KGuiItem::assign(buttonbox->button(QDialogButtonBox::Ok), KStandardGuiItem::ok());
65 KGuiItem::assign(buttonbox->button(QDialogButtonBox::Cancel), KStandardGuiItem::cancel());
66
67 connect(buttonbox, SIGNAL(accepted()), this, SLOT(accept()));
68 connect(buttonbox, SIGNAL(rejected()), this, SLOT(reject()));
69 }
70}
71
72bool TimelineInsertKeyframeDialog::promptUserSettings(int &out_count, int &out_timing, TimelineDirection &out_direction)
73{
74 KConfigGroup cfg = KSharedConfig::openConfig()->group("FrameActionsDefaultValues");
75 frameCountSpinbox.setValue(cfg.readEntry("defaultNumberOfFramesToAdd", 1));
77 rightAfter->setChecked(cfg.readEntry("addNewFramesToTheRight", true));
78
79 if (exec() == QDialog::Accepted) {
80 out_count = frameCountSpinbox.value();
81 out_timing = frameTimingSpinbox.value();
82
83 out_direction = TimelineDirection::LEFT; // Default
84 if (rightAfter && rightAfter->isChecked()) {
85 out_direction = TimelineDirection::RIGHT;
86 }
87
88 cfg.writeEntry("defaultNumberOfFramesToAdd", out_count);
90 cfg.writeEntry("addNewFramesToTheRight", rightAfter->isChecked());
91
92 return true;
93 }
94 return false;
95}
96
98{
99 KConfigGroup cfg = KSharedConfig::openConfig()->group("FrameActionsDefaultValues");
100 return cfg.readEntry("defaultTimingOfAddedFrames", 1);
101}
102
104{
105 KConfigGroup cfg = KSharedConfig::openConfig()->group("FrameActionsDefaultValues");
106 cfg.writeEntry("defaultTimingOfAddedFrames", value);
107}
108
110{
111 KConfigGroup cfg = KSharedConfig::openConfig()->group("FrameActionsDefaultValues");
112 return cfg.readEntry("defaultNumberOfHoldFramesToRemove", 1);
113}
114
116{
117 KConfigGroup cfg = KSharedConfig::openConfig()->group("FrameActionsDefaultValues");
118 cfg.writeEntry("defaultNumberOfHoldFramesToRemove", value);
119}
float value(const T *src, size_t ch)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
bool promptUserSettings(int &count, int &timing, TimelineDirection &out_direction)