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

#include <KisSmudgeLengthOptionWidget.h>

+ Inheritance diagram for KisSmudgeLengthOptionWidget:

Classes

struct  Private
 

Public Types

using data_type = KisSmudgeLengthOptionData
 
- Public Types inherited from KisCurveOptionWidget
using data_type = KisCurveOptionDataCommon
 
enum  Flag { None = 0x0 , SupportsCommonCurve = 0x1 , SupportsCurveMode = 0x2 , UseFloatingPointStrength = 0x4 }
 
- Public Types inherited from KisPaintOpOption
using OptionalLodLimitationsReader = std::optional<lager::reader<KisPaintopLodLimitations>>
 
enum  PaintopCategory {
  GENERAL , COLOR , TEXTURE , FILTER ,
  MASKING_BRUSH
}
 

Public Member Functions

 KisSmudgeLengthOptionWidget (lager::cursor< KisSmudgeLengthOptionData > optionData, lager::reader< bool > isBrushPierced, lager::reader< bool > forceNewEngine)
 
void readOptionSetting (const KisPropertiesConfigurationSP setting) override
 
lager::reader< bool > useNewEngine () const
 
void writeOptionSetting (KisPropertiesConfigurationSP setting) const override
 
 ~KisSmudgeLengthOptionWidget ()
 
- Public Member Functions inherited from KisCurveOptionWidget
bool isCheckable () const override
 
 KisCurveOptionWidget (lager::cursor< KisCurveOptionDataCommon > optionData, KisPaintOpOption::PaintopCategory category, const QString &curveMinLabel, const QString &curveMaxLabel, int curveMinValue, int curveMaxValue, const QString &curveValueSuffix, lager::reader< bool > enabledLink=lager::make_constant(true), std::optional< lager::reader< std::tuple< qreal, qreal > > > strengthRangeReader=std::nullopt)
 
 KisCurveOptionWidget (lager::cursor< KisCurveOptionDataCommon > optionData, KisPaintOpOption::PaintopCategory category, const QString &curveMinLabel, const QString &curveMaxLabel, lager::reader< bool > enabledLink=lager::make_constant(true), std::optional< lager::reader< std::tuple< qreal, qreal > > > strengthRangeReader=std::nullopt)
 
 KisCurveOptionWidget (lager::cursor< KisCurveOptionDataCommon > optionData, KisPaintOpOption::PaintopCategory category, lager::reader< bool > enabledLink=lager::make_constant(true), std::optional< lager::reader< std::tuple< qreal, qreal > > > strengthRangeReader=std::nullopt)
 
 KisCurveOptionWidget (lager::cursor< KisCurveOptionDataCommon > optionData, PaintopCategory category, const QString &curveMinLabel, const QString &curveMaxLabel, int curveMinValue, int curveMaxValue, const QString &curveValueSuffix, const QString &strengthPrefix, const QString &strengthSuffix, qreal strengthDisplayMultiplier, lager::reader< bool > enabledLink=lager::make_constant(true), std::optional< lager::reader< std::tuple< qreal, qreal > > > strengthRangeReader=std::nullopt)
 
void show ()
 
 ~KisCurveOptionWidget () override
 
- Public Member Functions inherited from KisPaintOpOption
KisPaintOpOption::PaintopCategory category () const
 
QWidget * configurationPage () const
 
OptionalLodLimitationsReader effectiveLodLimitations () const
 
virtual bool isChecked () const
 
bool isEnabled () const
 
bool isLocked () const
 
 KisPaintOpOption (const QString &label, KisPaintOpOption::PaintopCategory category, bool checked)
 
 KisPaintOpOption (const QString &label, KisPaintOpOption::PaintopCategory category, lager::cursor< bool > checkedCursor)
 
 KisPaintOpOption (const QString &label, KisPaintOpOption::PaintopCategory category, lager::cursor< bool > checkedCursor, lager::reader< bool > externallyEnabledLink)
 
QString label () const
 
virtual void lodLimitations (KisPaintopLodLimitations *l) const
 
virtual void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
virtual void setChecked (bool checked)
 
virtual void setImage (KisImageWSP image)
 
void setLocked (bool value)
 
virtual void setNode (KisNodeWSP node)
 
virtual void setResourcesInterface (KisResourcesInterfaceSP resourcesInterface)
 
void startReadOptionSetting (const KisPropertiesConfigurationSP setting)
 
void startWriteOptionSetting (KisPropertiesConfigurationSP setting) const
 
 ~KisPaintOpOption () override
 

Private Member Functions

void updateBrushPierced (bool pierced)
 

Private Attributes

const QScopedPointer< Privatem_d
 

Additional Inherited Members

- Signals inherited from KisPaintOpOption
void sigCheckedChanged (bool value)
 
void sigEnabledChanged (bool value)
 
void sigSettingChanged ()
 
- Protected Slots inherited from KisCurveOptionWidget
void changeCurveArchShape ()
 
void changeCurveJShape ()
 
void changeCurveLinear ()
 
void changeCurveLShape ()
 
void changeCurveReverseLinear ()
 
void changeCurveReverseSShape ()
 
void changeCurveSShape ()
 
void changeCurveUShape ()
 
void updateThemedIcons ()
 
- Protected Slots inherited from KisPaintOpOption
void emitCheckedChanged (bool checked)
 
void emitEnabledChanged (bool enabled)
 
void emitSettingChanged ()
 
- Protected Member Functions inherited from KisCurveOptionWidget
QWidget * curveWidget ()
 
 KisCurveOptionWidget (lager::cursor< KisCurveOptionDataCommon > optionData, KisPaintOpOption::PaintopCategory category, const QString &strengthPrefix, const QString &strengthSuffix, qreal strengthDisplayMultiplier, lager::reader< bool > enabledLink, std::optional< lager::reader< std::tuple< qreal, qreal > > > strengthRangeReader, KisCurveRangeModelFactory curveRangeModelFactory, KisCurveOptionInputControlsStrategyFactory inputControlsFactory, KisCurveOptionRangeControlsStrategyFactory rangeControlsFactory, Flags flags)
 
void setCurveWidgetsEnabled (bool value)
 
lager::cursor< qreal > strengthValueDenorm ()
 
- Protected Member Functions inherited from KisPaintOpOption
KoCanvasResourcesInterfaceSP canvasResourcesInterface () const
 
virtual OptionalLodLimitationsReader lodLimitationsReader () const
 
KisResourcesInterfaceSP resourcesInterface () const
 
void setConfigurationPage (QWidget *page)
 
- Protected Attributes inherited from KisCurveOptionWidget
QScopedPointer< KisCurveOptionInputControlsStrategyInterfacem_curveInputControlsStrategy
 
QComboBox * m_curveMode {nullptr}
 
Ui_WdgCurveOption2 * m_curveOptionWidget {nullptr}
 
QScopedPointer< KisCurveOptionRangeControlsStrategyInterfacem_curveRangeControlsStrategy
 
const QScopedPointer< Privatem_d
 
QWidget * m_widget {nullptr}
 
- Protected Attributes inherited from KisPaintOpOption
bool m_checkable {false}
 
bool m_locked {false}
 

Detailed Description

Definition at line 13 of file KisSmudgeLengthOptionWidget.h.

Member Typedef Documentation

◆ data_type

Constructor & Destructor Documentation

◆ KisSmudgeLengthOptionWidget()

KisSmudgeLengthOptionWidget::KisSmudgeLengthOptionWidget ( lager::cursor< KisSmudgeLengthOptionData > optionData,
lager::reader< bool > isBrushPierced,
lager::reader< bool > forceNewEngine )

Definition at line 39 of file KisSmudgeLengthOptionWidget.cpp.

42 : KisCurveOptionWidget(optionData.zoom(kislager::lenses::to_base<KisCurveOptionDataCommon>), KisPaintOpOption::GENERAL)
43 , m_d(new Private(optionData, isBrushPierced, forceNewEngine))
44{
45 using namespace KisWidgetConnectionUtils;
46
47 setObjectName("KisSmudgeOptionWidget");
48
49 QWidget *page = new QWidget();
50
51 m_d->cmbSmudgeMode = new QComboBox(page);
52 m_d->cmbSmudgeMode->addItem(i18n("Smearing"), KisSmudgeLengthOptionData::SMEARING_MODE);
53 m_d->cmbSmudgeMode->addItem("dulling-placeholder" , KisSmudgeLengthOptionData::DULLING_MODE);
54
55 QCheckBox *chkSmearAlpha = new QCheckBox(page);
56 QCheckBox *chkUseNewEngine = new QCheckBox(page);
57
58 QFormLayout *formLayout = new QFormLayout();
59 formLayout->addRow(i18n("Smudge mode:"), m_d->cmbSmudgeMode);
60 formLayout->addRow(i18n("Smear alpha:"), chkSmearAlpha);
61 formLayout->addRow(i18n("Use new smudge algorithm:"), chkUseNewEngine);
62 formLayout->addRow(new QLabel(i18n("(required for Color Image, Lightness Map, and Gradient Map brushes)")));
63
64 QVBoxLayout *pageLayout = new QVBoxLayout(page);
65 pageLayout->setContentsMargins(0, 0, 0, 0);
66
67 pageLayout->addLayout(formLayout);
68 pageLayout->addWidget(configurationPage());
69
71
72 connectControl(m_d->cmbSmudgeMode, &m_d->model, "mode");
73 connectControl(chkSmearAlpha, &m_d->model, "smearAlpha");
74 connectControlState(chkUseNewEngine, &m_d->model, "useNewEngineState", "useNewEngine");
75
76 m_d->isBrushPierced.bind(std::bind(&KisSmudgeLengthOptionWidget::updateBrushPierced, this, std::placeholders::_1));
77 m_d->model.optionData.bind(std::bind(&KisSmudgeLengthOptionWidget::emitSettingChanged, this));
78}
KisCurveOptionWidget(lager::cursor< KisCurveOptionDataCommon > optionData, KisPaintOpOption::PaintopCategory category, lager::reader< bool > enabledLink=lager::make_constant(true), std::optional< lager::reader< std::tuple< qreal, qreal > > > strengthRangeReader=std::nullopt)
void setConfigurationPage(QWidget *page)
QWidget * configurationPage() const
const QScopedPointer< Private > m_d
void connectControl(KisCompositeOpListWidget *widget, QObject *source, const char *property)
void connectControlState(QSpinBox *spinBox, QObject *source, const char *readStateProperty, const char *writeProperty)

References KisPaintOpOption::configurationPage(), KisPaintOpOption::emitSettingChanged(), m_d, KisPaintOpOption::setConfigurationPage(), and updateBrushPierced().

◆ ~KisSmudgeLengthOptionWidget()

KisSmudgeLengthOptionWidget::~KisSmudgeLengthOptionWidget ( )

Definition at line 80 of file KisSmudgeLengthOptionWidget.cpp.

81{
82
83}

Member Function Documentation

◆ readOptionSetting()

void KisSmudgeLengthOptionWidget::readOptionSetting ( const KisPropertiesConfigurationSP setting)
overridevirtual

Re-implement this to set the widgets with the values in setting.

Reimplemented from KisCurveOptionWidget.

Definition at line 91 of file KisSmudgeLengthOptionWidget.cpp.

92{
93 KisSmudgeLengthOptionMixIn data = *m_d->model.optionData;
94 data.read(setting.data());
95 m_d->model.optionData.set(data);
96
98}
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
bool read(const KisPropertiesConfiguration *setting)

References KisSharedPtr< T >::data(), m_d, KisPrefixedOptionDataWrapper< T >::read(), and KisCurveOptionWidget::readOptionSetting().

◆ updateBrushPierced()

void KisSmudgeLengthOptionWidget::updateBrushPierced ( bool pierced)
private

Definition at line 105 of file KisSmudgeLengthOptionWidget.cpp.

106{
107 QString dullingText = i18n("Dulling");
108 QString toolTip;
109
110 if (pierced) {
111 dullingText += i18n(" (caution, pierced brush!)");
112 toolTip = i18nc("@info:tooltip", "This brush has transparent pixels in its center. \"Dulling\" mode may give unstable results. Consider using \"Smearing\" mode instead.");
113 }
114
115 m_d->cmbSmudgeMode->setItemText(1, dullingText);
116 m_d->cmbSmudgeMode->setToolTip(toolTip);
117}

References m_d.

◆ useNewEngine()

lager::reader< bool > KisSmudgeLengthOptionWidget::useNewEngine ( ) const

Definition at line 100 of file KisSmudgeLengthOptionWidget.cpp.

101{
102 return m_d->model.LAGER_QT(useNewEngineState)[&CheckBoxState::value];
103}

References m_d.

◆ writeOptionSetting()

void KisSmudgeLengthOptionWidget::writeOptionSetting ( KisPropertiesConfigurationSP setting) const
overridevirtual

Re-implement this to save the configuration to the paint configuration.

Reimplemented from KisCurveOptionWidget.

Definition at line 85 of file KisSmudgeLengthOptionWidget.cpp.

86{
88 m_d->model.backedOptionData().write(setting.data());
89}
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override

References KisSharedPtr< T >::data(), m_d, and KisCurveOptionWidget::writeOptionSetting().

Member Data Documentation

◆ m_d

const QScopedPointer<Private> KisSmudgeLengthOptionWidget::m_d
private

Definition at line 34 of file KisSmudgeLengthOptionWidget.h.


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