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

#include <kis_multi_integer_filter_widget.h>

+ Inheritance diagram for KisMultiIntegerFilterWidget:

Public Member Functions

KisPropertiesConfigurationSP configuration () const override
 
 KisMultiIntegerFilterWidget (const QString &filterid, QWidget *parent, const QString &caption, vKisIntegerWidgetParam iwparam)
 
void setConfiguration (const KisPropertiesConfigurationSP config) override
 
 ~KisMultiIntegerFilterWidget () override
 
- Public Member Functions inherited from KisConfigWidget
virtual KoCanvasResourcesInterfaceSP canvasResourcesInterface () const
 
virtual void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
virtual void setView (KisViewManager *view)
 
 ~KisConfigWidget () override
 

Private Member Functions

qint32 nbValues () const
 
qint32 valueAt (qint32 i)
 

Private Attributes

QVector< KoAspectButton * > m_aspectButtons
 
KisPropertiesConfigurationSP m_config
 
QString m_filterid
 
QVector< KisDelayedActionIntegerInput * > m_integerWidgets
 

Additional Inherited Members

- Signals inherited from KisConfigWidget
void sigConfigurationItemChanged ()
 
void sigConfigurationUpdated ()
 
void sigDropLockedConfig (KisPropertiesConfigurationSP p)
 
void sigSaveLockedConfig (KisPropertiesConfigurationSP p)
 
- Protected Member Functions inherited from KisConfigWidget
 KisConfigWidget (QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags(), int delay=200)
 

Detailed Description

Definition at line 55 of file kis_multi_integer_filter_widget.h.

Constructor & Destructor Documentation

◆ KisMultiIntegerFilterWidget()

KisMultiIntegerFilterWidget::KisMultiIntegerFilterWidget ( const QString & filterid,
QWidget * parent,
const QString & caption,
vKisIntegerWidgetParam iwparam )

Definition at line 56 of file kis_multi_integer_filter_widget.cc.

60 : KisConfigWidget(parent)
61 , m_filterid(filterid)
63{
64 this->setWindowTitle(caption);
65
66 QGridLayout *widgetLayout = new QGridLayout(this);
67 widgetLayout->setColumnStretch(1, 1);
68 widgetLayout->setContentsMargins(0,0,0,0);
69 widgetLayout->setHorizontalSpacing(0);
70
71 for (uint i = 0; i < iwparam.size(); ++i) {
72 KisDelayedActionIntegerInput *widget = new KisDelayedActionIntegerInput(this, iwparam[i].name);
73
74 widget->setRange(iwparam[i].min, iwparam[i].max);
75 widget->setValue(iwparam[i].initvalue);
76 widget->cancelDelayedSignal();
77
78 connect(widget, SIGNAL(valueChangedDelayed(int)), SIGNAL(sigConfigurationItemChanged()));
79
80 QLabel* lbl = new QLabel(iwparam[i].label + ':', this);
81 widgetLayout->addWidget(lbl, i , 0);
82
83 widgetLayout->addWidget(widget, i , 1);
84
85 m_integerWidgets.append(widget);
86
87 // Add an aspect ratio locker if requested;
88 // it must be requested by the second paired spinbox only.
89 if (!iwparam[i].lockerName.isEmpty()) {
90 KoAspectButton *aspectButton = new KoAspectButton(this);
91 aspectButton->setObjectName(iwparam[i].lockerName);
92 widgetLayout->addWidget(aspectButton, i-1, 2, 2, 1);
93 KisAspectRatioLocker *aspectLocker = new KisAspectRatioLocker(this);
94 aspectLocker->connectSpinBoxes(dynamic_cast<KisSliderSpinBox*>(m_integerWidgets[i-1]), dynamic_cast<KisSliderSpinBox*>(widget), aspectButton);
95
96 m_aspectButtons.append(aspectButton);
97 }
98
99
100 }
101 widgetLayout->setRowStretch(iwparam.size(),1);
102
103 QSpacerItem * sp = new QSpacerItem(1, 1);
104 widgetLayout->addItem(sp, iwparam.size(), 0);
105}
unsigned int uint
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void connectSpinBoxes(SpinBoxType *spinOne, SpinBoxType *spinTwo, KoAspectButton *aspectButton)
void sigConfigurationItemChanged()
KisConfigWidget(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags(), int delay=200)
static KisResourcesInterfaceSP instance()
QVector< KoAspectButton * > m_aspectButtons
QVector< KisDelayedActionIntegerInput * > m_integerWidgets
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 ...

References KisDelayedActionIntegerInput::cancelDelayedSignal(), connect(), KisAspectRatioLocker::connectSpinBoxes(), m_aspectButtons, m_integerWidgets, KisSliderSpinBox::setRange(), KisSliderSpinBox::setValue(), and KisConfigWidget::sigConfigurationItemChanged().

◆ ~KisMultiIntegerFilterWidget()

KisMultiIntegerFilterWidget::~KisMultiIntegerFilterWidget ( )
override

Definition at line 107 of file kis_multi_integer_filter_widget.cc.

108{
109}

Member Function Documentation

◆ configuration()

KisPropertiesConfigurationSP KisMultiIntegerFilterWidget::configuration ( ) const
overridevirtual
Returns
the configuration

Implements KisConfigWidget.

Definition at line 146 of file kis_multi_integer_filter_widget.cc.

147{
149 if (m_config) {
150 config->fromXML(m_config->toXML());
151 }
152
153 for (int i = 0; i < nbValues(); ++i) {
155 if (w) {
156 config->setProperty(w->objectName(), w->value());
157 }
158 }
159
160 Q_FOREACH(KoAspectButton *aspectButton, m_aspectButtons) {
161 config->setProperty(aspectButton->objectName(), aspectButton->keepAspectRatio());
162 }
163
164 return config;
165}
bool keepAspectRatio() const
Returns of keeping aspect ratio is on or off.

References KisGlobalResourcesInterface::instance(), KoAspectButton::keepAspectRatio(), m_aspectButtons, m_config, m_filterid, m_integerWidgets, and nbValues().

◆ nbValues()

qint32 KisMultiIntegerFilterWidget::nbValues ( ) const
private

Definition at line 167 of file kis_multi_integer_filter_widget.cc.

167 {
168 return m_integerWidgets.size();
169}

References m_integerWidgets.

◆ setConfiguration()

void KisMultiIntegerFilterWidget::setConfiguration ( const KisPropertiesConfigurationSP config)
overridevirtual
Parameters
configthe configuration for this configuration widget.

Implements KisConfigWidget.

Definition at line 111 of file kis_multi_integer_filter_widget.cc.

112{
113 if (!config) return;
114
115 if (!m_config) {
117 }
118
119 m_config->fromXML(config->toXML());
120 for (int i = 0; i < nbValues(); ++i) {
121
122 // Keep aspect must be unset first if false, to not interfere with the values
123 Q_FOREACH(KoAspectButton *aspectButton, m_aspectButtons) {
124 if (!config->getBool(aspectButton->objectName(), true)) {
125 aspectButton->setKeepAspectRatio(false);
126 }
127 }
128
130 if (w) {
131 int val = config->getInt(m_integerWidgets[i]->objectName());
132 m_integerWidgets[i]->setValue(val);
133 m_integerWidgets[i]->cancelDelayedSignal();
134 }
135 }
136
137 // Keep aspect must be set last if true, to not interfere with the values
138 Q_FOREACH(KoAspectButton *aspectButton, m_aspectButtons) {
139 if (config->getBool(aspectButton->objectName(), true)) {
140 aspectButton->setKeepAspectRatio(true);
141 }
142 }
143
144}
void setKeepAspectRatio(bool keep)

References KisGlobalResourcesInterface::instance(), m_aspectButtons, m_config, m_filterid, m_integerWidgets, nbValues(), and KoAspectButton::setKeepAspectRatio().

◆ valueAt()

qint32 KisMultiIntegerFilterWidget::valueAt ( qint32 i)
private

Definition at line 171 of file kis_multi_integer_filter_widget.cc.

171 {
172 if (i < m_integerWidgets.size()) {
173 return m_integerWidgets[i]->value();
174 }
175 else {
176 warnKrita << "Trying to access integer widget" << i << "but there are only" << m_integerWidgets.size() << "widgets";
177 return 0;
178 }
179}
#define warnKrita
Definition kis_debug.h:87

References m_integerWidgets, and warnKrita.

Member Data Documentation

◆ m_aspectButtons

QVector<KoAspectButton*> KisMultiIntegerFilterWidget::m_aspectButtons
private

Definition at line 71 of file kis_multi_integer_filter_widget.h.

◆ m_config

KisPropertiesConfigurationSP KisMultiIntegerFilterWidget::m_config
private

Definition at line 73 of file kis_multi_integer_filter_widget.h.

◆ m_filterid

QString KisMultiIntegerFilterWidget::m_filterid
private

Definition at line 72 of file kis_multi_integer_filter_widget.h.

◆ m_integerWidgets

QVector<KisDelayedActionIntegerInput*> KisMultiIntegerFilterWidget::m_integerWidgets
private

Definition at line 70 of file kis_multi_integer_filter_widget.h.


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