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

#include <kis_uniform_paintop_property_widget.h>

+ Inheritance diagram for KisUniformPaintOpPropertyIntSlider:

Public Member Functions

 KisUniformPaintOpPropertyIntSlider (KisUniformPaintOpPropertySP property, QWidget *parent)
 
void setValue (const QVariant &value) override
 
- Public Member Functions inherited from KisUniformPaintOpPropertyWidget
 KisUniformPaintOpPropertyWidget (KisUniformPaintOpPropertySP property, QWidget *parent)
 
void slotThemeChanged (QPalette pal)
 
 ~KisUniformPaintOpPropertyWidget () override
 

Private Slots

void slotRangeChanged ()
 
void slotSliderChanged (int value)
 

Private Attributes

QWidget * m_slider
 

Additional Inherited Members

- Signals inherited from KisUniformPaintOpPropertyWidget
void valueChanged (const QVariant &value)
 
- Protected Slots inherited from KisUniformPaintOpPropertyWidget
- Protected Member Functions inherited from KisUniformPaintOpPropertyWidget
KisUniformPaintOpPropertySP property () const
 

Detailed Description

Definition at line 40 of file kis_uniform_paintop_property_widget.h.

Constructor & Destructor Documentation

◆ KisUniformPaintOpPropertyIntSlider()

KisUniformPaintOpPropertyIntSlider::KisUniformPaintOpPropertyIntSlider ( KisUniformPaintOpPropertySP property,
QWidget * parent )

Definition at line 68 of file kis_uniform_paintop_property_widget.cpp.

70{
71 const QString prefix = QString("%1: ").arg(property->name());
72 QVBoxLayout *layout = new QVBoxLayout(this);
73
74 KisIntSliderBasedPaintOpProperty *sliderProperty =
75 dynamic_cast<KisIntSliderBasedPaintOpProperty*>(property.data());
76 KIS_ASSERT_RECOVER_RETURN(sliderProperty);
77
80
82 KisAngleSelector *slider = new KisAngleSelector(this);
83 slider->setPrefix(prefix);
84 slider->setDecimals(0);
85 slider->setRange(static_cast<qreal>(sliderProperty->min()), static_cast<qreal>(sliderProperty->max()));
87
88 slider->setAngle(static_cast<qreal>(sliderProperty->value().toInt()));
89 connect(slider, &KisAngleSelector::angleChanged, this, [this](qreal angle) { slotSliderChanged(static_cast<int>(angle)); });
90
91 m_slider = slider;
92 } else {
93 KisSliderSpinBox *slider = new KisSliderSpinBox(this);
94 slider->setBlockUpdateSignalOnDrag(true);
95 slider->setRange(sliderProperty->min(), sliderProperty->max());
96 slider->setSingleStep(sliderProperty->singleStep());
97 slider->setPageStep(sliderProperty->pageStep());
98 slider->setPrefix(prefix);
99 slider->setSuffix(sliderProperty->suffix());
100 slider->setExponentRatio(sliderProperty->exponentRatio());
101
102 slider->setValue(sliderProperty->value().toInt());
103 connect(slider, SIGNAL(valueChanged(int)), SLOT(slotSliderChanged(int)));
104
105 m_slider = slider;
106 }
107
108 layout->addWidget(m_slider);
109}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
A widget with several options to select an angle.
@ FlipOptionsMode_MenuButton
The flip options are shown as a menu accessible via a options button.
void setPrefix(const QString &newPrefix)
Sets the prefix shown in the spin box.
void setFlipOptionsMode(FlipOptionsMode newMode)
Sets the mode in which the flip options should be shown.
void setAngle(qreal newAngle)
Sets the current angle.
void setRange(qreal newMinimum, qreal newMaximum)
Sets the minimum and maximum values for the angle.
void setDecimals(int newNumberOfDecimals)
Sets the number of decimals (precision) used by the angle.
void angleChanged(qreal angle)
This class is a spinbox in which you can click and drag to set the value. A slider like bar is displa...
void setBlockUpdateSignalOnDrag(bool newBlockUpdateSignalOnDrag)
Set if the spinbox should not Q_EMIT signals when dragging the slider.
void setExponentRatio(qreal newExponentRatio)
Set the exponent used by a power function to modify the values as a function of the horizontal positi...
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 ...
void setPageStep(int newPageStep)
Does nothing currently.
void valueChanged(const QVariant &value)
KisUniformPaintOpPropertyWidget(KisUniformPaintOpPropertySP property, QWidget *parent)
#define KIS_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:75

References KisAngleSelector::angleChanged(), connect(), KisSliderBasedPaintOpProperty< T >::exponentRatio(), KisAngleSelector::FlipOptionsMode_MenuButton, KIS_ASSERT_RECOVER_RETURN, m_slider, KisSliderBasedPaintOpProperty< T >::max(), KisSliderBasedPaintOpProperty< T >::min(), KisSliderBasedPaintOpProperty< T >::pageStep(), KisUniformPaintOpPropertyWidget::property(), KisAngleSelector::setAngle(), KisSliderSpinBox::setBlockUpdateSignalOnDrag(), KisAngleSelector::setDecimals(), KisSliderSpinBox::setExponentRatio(), KisAngleSelector::setFlipOptionsMode(), KisSliderSpinBox::setPageStep(), KisAngleSelector::setPrefix(), KisSliderSpinBox::setRange(), KisAngleSelector::setRange(), KisSliderSpinBox::setValue(), KisSliderBasedPaintOpPropertyBase::sigRangeChanged(), KisSliderBasedPaintOpProperty< T >::singleStep(), slotRangeChanged(), slotSliderChanged(), KisUniformPaintOpProperty::SubType_Angle, KisSliderBasedPaintOpProperty< T >::suffix(), KisUniformPaintOpProperty::value(), and KisUniformPaintOpPropertyWidget::valueChanged().

Member Function Documentation

◆ setValue()

void KisUniformPaintOpPropertyIntSlider::setValue ( const QVariant & value)
overridevirtual

Implements KisUniformPaintOpPropertyWidget.

Definition at line 111 of file kis_uniform_paintop_property_widget.cpp.

112{
113 if (dynamic_cast<KisAngleSelector*>(m_slider)) {
114 dynamic_cast<KisAngleSelector*>(m_slider)->setAngle(static_cast<qreal>(value.toInt()));
115 } else {
117 dynamic_cast<KisSliderSpinBox*>(m_slider)->setValue(value.toInt());
118 }
119}
float value(const T *src, size_t ch)
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128

References KIS_SAFE_ASSERT_RECOVER_RETURN, m_slider, setValue(), and value().

◆ slotRangeChanged

void KisUniformPaintOpPropertyIntSlider::slotRangeChanged ( )
privateslot

Definition at line 126 of file kis_uniform_paintop_property_widget.cpp.

127{
128 KisIntSliderBasedPaintOpProperty *sliderProperty =
129 dynamic_cast<KisIntSliderBasedPaintOpProperty*>(property().data());
130 KIS_ASSERT_RECOVER_RETURN(sliderProperty);
131
132 if (KisAngleSelector *slider = dynamic_cast<KisAngleSelector*>(m_slider)) {
133 slider->setRange(sliderProperty->min(), sliderProperty->max());
134 } else if (KisSliderSpinBox *slider = dynamic_cast<KisSliderSpinBox*>(m_slider)) {
135 slider->setRange(sliderProperty->min(), sliderProperty->max());
136 }
137}

References KIS_ASSERT_RECOVER_RETURN, m_slider, KisSliderBasedPaintOpProperty< T >::max(), KisSliderBasedPaintOpProperty< T >::min(), and KisUniformPaintOpPropertyWidget::property().

◆ slotSliderChanged

void KisUniformPaintOpPropertyIntSlider::slotSliderChanged ( int value)
privateslot

Member Data Documentation

◆ m_slider

QWidget* KisUniformPaintOpPropertyIntSlider::m_slider
private

Definition at line 53 of file kis_uniform_paintop_property_widget.h.


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