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

#include <kis_brush_option_widget.h>

+ Inheritance diagram for KisBrushOptionWidget:

Classes

struct  Private
 

Public Member Functions

lager::reader< KisBrushModel::BrushDatabakedBrushData () const
 
KisBrushSP brush () const
 
lager::reader< qreal > effectiveBrushSize () const
 
void hideOptions (const QStringList &options)
 
 KisBrushOptionWidget (KisBrushOptionWidgetFlags flags)
 
lager::reader< bool > lightnessModeEnabled () const
 
void readOptionSetting (const KisPropertiesConfigurationSP setting) override
 
void setImage (KisImageWSP image) override
 
void writeOptionSetting (KisPropertiesConfigurationSP setting) const override
 
 ~KisBrushOptionWidget () override
 
- Public Member Functions inherited from KisPaintOpOption
KisPaintOpOption::PaintopCategory category () const
 
QWidget * configurationPage () const
 
OptionalLodLimitationsReader effectiveLodLimitations () const
 
virtual bool isCheckable () 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)
 
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
 

Protected Member Functions

OptionalLodLimitationsReader lodLimitationsReader () const override
 
- Protected Member Functions inherited from KisPaintOpOption
KoCanvasResourcesInterfaceSP canvasResourcesInterface () const
 
KisResourcesInterfaceSP resourcesInterface () const
 
void setConfigurationPage (QWidget *page)
 

Private Attributes

KisBrushSelectionWidgetm_brushSelectionWidget
 
const QScopedPointer< Privatem_d
 

Additional Inherited Members

- Public Types inherited from KisPaintOpOption
using OptionalLodLimitationsReader = std::optional<lager::reader<KisPaintopLodLimitations>>
 
enum  PaintopCategory {
  GENERAL , COLOR , TEXTURE , FILTER ,
  MASKING_BRUSH
}
 
- Signals inherited from KisPaintOpOption
void sigCheckedChanged (bool value)
 
void sigEnabledChanged (bool value)
 
void sigSettingChanged ()
 
- Protected Slots inherited from KisPaintOpOption
void emitCheckedChanged (bool checked)
 
void emitEnabledChanged (bool enabled)
 
void emitSettingChanged ()
 
- Protected Attributes inherited from KisPaintOpOption
bool m_checkable {false}
 
bool m_locked {false}
 

Detailed Description

The brush option allows the user to select a particular brush footprint for suitable paintops

Definition at line 24 of file kis_brush_option_widget.h.

Constructor & Destructor Documentation

◆ KisBrushOptionWidget()

KisBrushOptionWidget::KisBrushOptionWidget ( KisBrushOptionWidgetFlags flags)

Definition at line 51 of file kis_brush_option_widget.cpp.

52 : KisPaintOpOption(i18n("Brush Tip"), KisPaintOpOption::GENERAL, true),
53 m_d(new Private(flags))
54{
55 m_d->flags = flags;
56
57 m_checkable = false;
58
60 &m_d->autoBrushModel,
61 &m_d->predefinedBrushModel,
62 &m_d->textBrushModel,
63 m_d->brushData[&BrushData::type],
64 m_d->brushPrecisionData,
65 flags);
68
69 setObjectName("KisBrushOptionWidget");
70
71 // TODO: merge them into a single struct to avoid double updates
72 lager::watch(m_d->brushData, std::bind(&KisBrushOptionWidget::emitSettingChanged, this));
73 lager::watch(m_d->brushPrecisionData, std::bind(&KisBrushOptionWidget::emitSettingChanged, this));
74 lager::watch(m_d->commonBrushSizeData, std::bind(&KisBrushOptionWidget::emitSettingChanged, this));
75}
const QScopedPointer< Private > m_d
KisBrushSelectionWidget * m_brushSelectionWidget
void setConfigurationPage(QWidget *page)
KisPaintOpOption(const QString &label, KisPaintOpOption::PaintopCategory category, bool checked)

References KisPaintOpOption::emitSettingChanged(), m_brushSelectionWidget, KisPaintOpOption::m_checkable, m_d, KisPaintOpOption::setConfigurationPage(), and KisBrushModel::BrushData::type.

◆ ~KisBrushOptionWidget()

KisBrushOptionWidget::~KisBrushOptionWidget ( )
overridedefault

Member Function Documentation

◆ bakedBrushData()

lager::reader< BrushData > KisBrushOptionWidget::bakedBrushData ( ) const

Definition at line 138 of file kis_brush_option_widget.cpp.

139{
140 return lager::with(m_d->brushData, m_d->commonBrushSizeData)
141 .map([this] (BrushData data, qreal commonBrushSize) {
142
143 Q_UNUSED(commonBrushSize); // we keep it as a dep only for updates!
144
145 data.autoBrush = m_d->autoBrushModel.bakedOptionData();
146 data.predefinedBrush = m_d->predefinedBrushModel.bakedOptionData();
147
148 return data;
149 });
150}
PredefinedBrushData predefinedBrush

References KisBrushModel::BrushData::autoBrush, m_d, and KisBrushModel::BrushData::predefinedBrush.

◆ brush()

KisBrushSP KisBrushOptionWidget::brush ( ) const
Returns
the currently selected brush

Definition at line 79 of file kis_brush_option_widget.cpp.

80{
82}

References KisBrushSelectionWidget::brush(), and m_brushSelectionWidget.

◆ effectiveBrushSize()

lager::reader< qreal > KisBrushOptionWidget::effectiveBrushSize ( ) const

Definition at line 133 of file kis_brush_option_widget.cpp.

134{
135 return m_d->commonBrushSizeData;
136}

References m_d.

◆ hideOptions()

void KisBrushOptionWidget::hideOptions ( const QStringList & options)

Definition at line 123 of file kis_brush_option_widget.cpp.

124{
126}
void hideOptions(const QStringList &options)

References KisBrushSelectionWidget::hideOptions(), and m_brushSelectionWidget.

◆ lightnessModeEnabled()

lager::reader< bool > KisBrushOptionWidget::lightnessModeEnabled ( ) const

◆ lodLimitationsReader()

KisPaintOpOption::OptionalLodLimitationsReader KisBrushOptionWidget::lodLimitationsReader ( ) const
overrideprotectedvirtual

Reimplemented from KisPaintOpOption.

Definition at line 152 of file kis_brush_option_widget.cpp.

153{
154 return m_d->brushData.map(&KisBrushModel::brushLodLimitations);
155}
KisPaintopLodLimitations brushLodLimitations(const BrushData &data)

References KisBrushModel::brushLodLimitations(), and m_d.

◆ readOptionSetting()

void KisBrushOptionWidget::readOptionSetting ( const KisPropertiesConfigurationSP setting)
overridevirtual

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

Reimplemented from KisPaintOpOption.

Definition at line 106 of file kis_brush_option_widget.cpp.

107{
108 using namespace KisBrushModel;
109
110 std::optional<BrushData> data = BrushData::read(setting.data(), resourcesInterface());
111 if (!data) {
112 qWarning() << "WARNING: failed to load brush object for the a paintop preset";
113 return;
114 }
115 m_d->brushData.set(*data);
116 m_d->commonBrushSizeData.set(effectiveSizeForBrush(data->type, data->autoBrush, data->predefinedBrush, data->textBrush));
117
119 m_d->brushPrecisionData.set(KisBrushModel::PrecisionData::read(setting.data()));
120 }
121}
KisResourcesInterfaceSP resourcesInterface() const
qreal effectiveSizeForBrush(BrushType type, const AutoBrushData &autoBrush, const PredefinedBrushData &predefinedBrush, const TextBrushData &textBrush)
static std::optional< BrushData > read(const KisPropertiesConfiguration *settings, KisResourcesInterfaceSP resourcesInterface)
static PrecisionData read(const KisPropertiesConfiguration *config)

References KisSharedPtr< T >::data(), KisBrushModel::effectiveSizeForBrush(), m_d, KisBrushModel::PrecisionData::read(), KisBrushModel::BrushData::read(), KisPaintOpOption::resourcesInterface(), and SupportsPrecision.

◆ setImage()

void KisBrushOptionWidget::setImage ( KisImageWSP image)
overridevirtual

Reimplement this to use the image in the option widget

Reimplemented from KisPaintOpOption.

Definition at line 85 of file kis_brush_option_widget.cpp.

86{
88}

References m_brushSelectionWidget, and KisBrushSelectionWidget::setImage().

◆ writeOptionSetting()

void KisBrushOptionWidget::writeOptionSetting ( KisPropertiesConfigurationSP setting) const
overridevirtual

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

Reimplemented from KisPaintOpOption.

Definition at line 90 of file kis_brush_option_widget.cpp.

91{
92 using namespace KisBrushModel;
93
94 BrushData data = m_d->brushData.get();
95
96 data.autoBrush = m_d->autoBrushModel.bakedOptionData();
97 data.predefinedBrush = m_d->predefinedBrushModel.bakedOptionData();
98
99 data.write(settings.data());
100
102 m_d->brushPrecisionData->write(settings.data());
103 }
104}
void write(KisPropertiesConfiguration *settings) const

References KisBrushModel::BrushData::autoBrush, KisSharedPtr< T >::data(), m_d, KisBrushModel::BrushData::predefinedBrush, SupportsPrecision, and KisBrushModel::BrushData::write().

Member Data Documentation

◆ m_brushSelectionWidget

KisBrushSelectionWidget* KisBrushOptionWidget::m_brushSelectionWidget
private

Definition at line 54 of file kis_brush_option_widget.h.

◆ m_d

const QScopedPointer<Private> KisBrushOptionWidget::m_d
private

Definition at line 57 of file kis_brush_option_widget.h.


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