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

#include <KisHalftoneConfigPageWidget.h>

+ Inheritance diagram for KisHalftoneConfigPageWidget:

Signals

void signal_configurationUpdated ()
 

Public Member Functions

void configuration (KisHalftoneFilterConfigurationSP config, const QString &prefix) const
 
void hideColors ()
 
 KisHalftoneConfigPageWidget (QWidget *parent, const KisPaintDeviceSP dev)
 
void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
void setColorsVisible (bool show)
 
void setConfiguration (const KisHalftoneFilterConfigurationSP config, const QString &prefix)
 
void setView (KisViewManager *view)
 
void showColors ()
 
 ~KisHalftoneConfigPageWidget ()
 

Private Slots

void slot_comboBoxGenerator_currentIndexChanged (int index)
 

Private Member Functions

void setGenerator (const QString &generatorId, const KisFilterConfigurationSP config)
 
Ui_HalftoneConfigPageWidget * ui ()
 
const Ui_HalftoneConfigPageWidget * ui () const
 

Private Attributes

KoCanvasResourcesInterfaceSP m_canvasResourcesInterface
 
QString m_currentGeneratorId
 
QStringList m_generatorIds
 
KisConfigWidgetm_generatorWidget
 
const KisPaintDeviceSP m_paintDevice
 
Ui_HalftoneConfigPageWidget m_ui
 
KisViewManagerm_view
 

Detailed Description

Definition at line 26 of file KisHalftoneConfigPageWidget.h.

Constructor & Destructor Documentation

◆ KisHalftoneConfigPageWidget()

KisHalftoneConfigPageWidget::KisHalftoneConfigPageWidget ( QWidget * parent,
const KisPaintDeviceSP dev )

Definition at line 23 of file KisHalftoneConfigPageWidget.cpp.

24 : QWidget(parent)
25 , m_paintDevice(dev)
26 , m_generatorWidget(nullptr)
27 , m_view(nullptr)
28{
29 Q_ASSERT(m_paintDevice);
30
31 ui()->setupUi(this);
32
34 m_generatorIds.sort();
35
36 ui()->comboBoxGenerator->addItem(i18n("None"));
37 for (const QString &generatorId : m_generatorIds) {
38 KisGeneratorSP generator = KisGeneratorRegistry::instance()->get(generatorId);
39 ui()->comboBoxGenerator->addItem(generator->name());
40 }
41
42 QVBoxLayout *generatorContainerLayout = new QVBoxLayout(ui()->widgetGeneratorContainer);
43 generatorContainerLayout->setContentsMargins(0, 0, 0, 0);
44
45 ui()->sliderHardness->setRange(0.0, 100.0, 2);
46 ui()->sliderHardness->setSingleStep(1.0);
47 KisSpinBoxI18nHelper::setText(ui()->sliderHardness,
48 i18nc("{n} is the number value, % is the percent sign", "{n}%"));
49
50 ui()->sliderForegroundOpacity->setRange(0, 100);
51 KisSpinBoxI18nHelper::setText(ui()->sliderForegroundOpacity,
52 i18nc("{n} is the number value, % is the percent sign", "Opacity: {n}%"));
53 ui()->sliderBackgroundOpacity->setRange(0, 100);
54 KisSpinBoxI18nHelper::setText(ui()->sliderBackgroundOpacity,
55 i18nc("{n} is the number value, % is the percent sign", "Opacity: {n}%"));
56
57 connect(ui()->comboBoxGenerator, SIGNAL(currentIndexChanged(int)), this, SLOT(slot_comboBoxGenerator_currentIndexChanged(int)));
58 connect(ui()->sliderHardness, SIGNAL(valueChanged(qreal)), this, SIGNAL(signal_configurationUpdated()));
59 connect(ui()->checkBoxInvert, SIGNAL(toggled(bool)), this, SIGNAL(signal_configurationUpdated()));
60 connect(ui()->buttonForegroundColor, SIGNAL(changed(const KoColor&)), this, SIGNAL(signal_configurationUpdated()));
61 connect(ui()->sliderForegroundOpacity, SIGNAL(valueChanged(int)), this, SIGNAL(signal_configurationUpdated()));
62 connect(ui()->buttonBackgroundColor, SIGNAL(changed(const KoColor&)), this, SIGNAL(signal_configurationUpdated()));
63 connect(ui()->sliderBackgroundOpacity, SIGNAL(valueChanged(int)), this, SIGNAL(signal_configurationUpdated()));
64}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
static KisGeneratorRegistry * instance()
const Ui_HalftoneConfigPageWidget * ui() const
T get(const QString &id) const
QList< QString > keys() const
void setText(QSpinBox *spinBox, const QStringView textTemplate)

References connect(), KoGenericRegistry< T >::get(), KisGeneratorRegistry::instance(), KoGenericRegistry< T >::keys(), m_generatorIds, m_paintDevice, KisBaseProcessor::name(), KisSpinBoxI18nHelper::setText(), signal_configurationUpdated(), slot_comboBoxGenerator_currentIndexChanged(), and ui().

◆ ~KisHalftoneConfigPageWidget()

KisHalftoneConfigPageWidget::~KisHalftoneConfigPageWidget ( )

Definition at line 66 of file KisHalftoneConfigPageWidget.cpp.

67{}

Member Function Documentation

◆ configuration()

void KisHalftoneConfigPageWidget::configuration ( KisHalftoneFilterConfigurationSP config,
const QString & prefix ) const

Definition at line 125 of file KisHalftoneConfigPageWidget.cpp.

126{
127 if (ui()->comboBoxGenerator->currentIndex() == 0) {
128 config->setGeneratorId(prefix, "");
129 } else {
130 QString generatorId = m_generatorIds.at(ui()->comboBoxGenerator->currentIndex() - 1);
131 config->setGeneratorId(prefix, generatorId);
132 if (m_generatorWidget) {
133 config->setGeneratorConfiguration(
135 );
136 }
137 }
138
139 config->setHardness(prefix, ui()->sliderHardness->value());
140 config->setInvert(prefix, ui()->checkBoxInvert->isChecked());
141 config->setForegroundColor(prefix, ui()->buttonForegroundColor->color());
142 config->setForegroundOpacity(prefix, ui()->sliderForegroundOpacity->value());
143 config->setBackgroundColor(prefix, ui()->buttonBackgroundColor->color());
144 config->setBackgroundOpacity(prefix, ui()->sliderBackgroundOpacity->value());
145}
virtual KisPropertiesConfigurationSP configuration() const =0

References KisConfigWidget::configuration(), KisSharedPtr< T >::data(), m_generatorIds, m_generatorWidget, and ui().

◆ hideColors()

void KisHalftoneConfigPageWidget::hideColors ( )

Definition at line 84 of file KisHalftoneConfigPageWidget.cpp.

85{
86 setColorsVisible(false);
87}

References setColorsVisible().

◆ setCanvasResourcesInterface()

void KisHalftoneConfigPageWidget::setCanvasResourcesInterface ( KoCanvasResourcesInterfaceSP canvasResourcesInterface)

Definition at line 198 of file KisHalftoneConfigPageWidget.cpp.

199{
200 m_canvasResourcesInterface = canvasResourcesInterface;
201
202 if (m_generatorWidget) {
203 m_generatorWidget->setCanvasResourcesInterface(canvasResourcesInterface);
204 }
205}
virtual void setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP canvasResourcesInterface)
KoCanvasResourcesInterfaceSP m_canvasResourcesInterface

References m_canvasResourcesInterface, m_generatorWidget, and KisConfigWidget::setCanvasResourcesInterface().

◆ setColorsVisible()

void KisHalftoneConfigPageWidget::setColorsVisible ( bool show)

Definition at line 89 of file KisHalftoneConfigPageWidget.cpp.

90{
91 ui()->labelForeground->setVisible(show);
92 ui()->buttonForegroundColor->setVisible(show);
93 ui()->sliderForegroundOpacity->setVisible(show);
94 ui()->labelBackground->setVisible(show);
95 ui()->buttonBackgroundColor->setVisible(show);
96 ui()->sliderBackgroundOpacity->setVisible(show);
97}

References ui().

◆ setConfiguration()

void KisHalftoneConfigPageWidget::setConfiguration ( const KisHalftoneFilterConfigurationSP config,
const QString & prefix )

Definition at line 99 of file KisHalftoneConfigPageWidget.cpp.

100{
101 {
102 KisSignalsBlocker signalsBlocker(this, ui()->comboBoxGenerator);
103
104 QString generatorId = config->generatorId(prefix);
105 int generatorIndex = m_generatorIds.indexOf(generatorId);
106 if (generatorIndex == -1) {
107 ui()->comboBoxGenerator->setCurrentIndex(0);
108 setGenerator("", nullptr);
109 } else {
110 ui()->comboBoxGenerator->setCurrentIndex(generatorIndex + 1);
111 KisFilterConfigurationSP generatorConfiguration = config->generatorConfiguration(prefix);
112 setGenerator(generatorId, generatorConfiguration);
113 }
114
115 ui()->sliderHardness->setValue(config->hardness(prefix));
116 ui()->checkBoxInvert->setChecked(config->invert(prefix));
117 ui()->buttonForegroundColor->setColor(config->foregroundColor(prefix));
118 ui()->sliderForegroundOpacity->setValue(config->foregroundOpacity(prefix));
119 ui()->buttonBackgroundColor->setColor(config->backgroundColor(prefix));
120 ui()->sliderBackgroundOpacity->setValue(config->backgroundOpacity(prefix));
121 }
123}
void setGenerator(const QString &generatorId, const KisFilterConfigurationSP config)

References m_generatorIds, setGenerator(), signal_configurationUpdated(), and ui().

◆ setGenerator()

void KisHalftoneConfigPageWidget::setGenerator ( const QString & generatorId,
const KisFilterConfigurationSP config )
private

Definition at line 147 of file KisHalftoneConfigPageWidget.cpp.

148{
149 if (m_generatorWidget && m_currentGeneratorId != generatorId) {
150 ui()->widgetGeneratorContainer->layout()->removeWidget(m_generatorWidget);
151 delete m_generatorWidget;
152 m_generatorWidget = nullptr;
153 }
154
155 KisGeneratorSP generator = KisGeneratorRegistry::instance()->get(generatorId);
156 if (generator && !m_generatorWidget) {
157 KisConfigWidget *generatorWidget = generator->createConfigurationWidget(this, m_paintDevice, false);
158 if (generatorWidget) {
159 ui()->widgetGeneratorContainer->layout()->addWidget(generatorWidget);
160
161 if (m_view) {
162 generatorWidget->setView(m_view);
163 } else {
165 }
166
167 m_generatorWidget = generatorWidget;
168 connect(generatorWidget, SIGNAL(sigConfigurationUpdated()), this, SIGNAL(signal_configurationUpdated()));
169 }
170 }
171
172 m_currentGeneratorId = generatorId;
173
174 if (m_generatorWidget) {
175 if (config) {
177 } else {
178 KisFilterConfigurationSP generatorConfig =
180 if (generatorId == "screentone") {
181 generatorConfig->setProperty("rotation", 45.0);
182 generatorConfig->setProperty("contrast", 50.0);
183 }
184 m_generatorWidget->setConfiguration(generatorConfig);
185 }
186 }
187}
virtual void setView(KisViewManager *view)
virtual void setConfiguration(const KisPropertiesConfigurationSP config)=0
static KisResourcesInterfaceSP instance()
virtual KisConfigWidget * createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const
virtual KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const

References connect(), KisBaseProcessor::createConfigurationWidget(), KisBaseProcessor::defaultConfiguration(), KoGenericRegistry< T >::get(), KisGeneratorRegistry::instance(), KisGlobalResourcesInterface::instance(), m_canvasResourcesInterface, m_currentGeneratorId, m_generatorWidget, m_paintDevice, m_view, KisConfigWidget::setCanvasResourcesInterface(), KisConfigWidget::setConfiguration(), KisConfigWidget::setView(), signal_configurationUpdated(), and ui().

◆ setView()

void KisHalftoneConfigPageWidget::setView ( KisViewManager * view)

Definition at line 189 of file KisHalftoneConfigPageWidget.cpp.

190{
191 m_view = view;
192
193 if (m_generatorWidget) {
195 }
196}

References m_generatorWidget, m_view, and KisConfigWidget::setView().

◆ showColors()

void KisHalftoneConfigPageWidget::showColors ( )

Definition at line 79 of file KisHalftoneConfigPageWidget.cpp.

80{
81 setColorsVisible(true);
82}

References setColorsVisible().

◆ signal_configurationUpdated

void KisHalftoneConfigPageWidget::signal_configurationUpdated ( )
signal

◆ slot_comboBoxGenerator_currentIndexChanged

void KisHalftoneConfigPageWidget::slot_comboBoxGenerator_currentIndexChanged ( int index)
privateslot

Definition at line 207 of file KisHalftoneConfigPageWidget.cpp.

208{
209 if (index < 0 || index > m_generatorIds.size()) {
210 return;
211 }
212
213 if (index == 0) {
214 setGenerator("", nullptr);
215 } else {
216 QString generatorId = m_generatorIds.at(index - 1);
217 setGenerator(generatorId, nullptr);
218 }
219
221}

References m_generatorIds, setGenerator(), and signal_configurationUpdated().

◆ ui() [1/2]

Ui_HalftoneConfigPageWidget * KisHalftoneConfigPageWidget::ui ( )
private

Definition at line 74 of file KisHalftoneConfigPageWidget.cpp.

75{
76 return &m_ui;
77}

References m_ui.

◆ ui() [2/2]

const Ui_HalftoneConfigPageWidget * KisHalftoneConfigPageWidget::ui ( ) const
private

Definition at line 69 of file KisHalftoneConfigPageWidget.cpp.

70{
71 return &m_ui;
72}

References m_ui.

Member Data Documentation

◆ m_canvasResourcesInterface

KoCanvasResourcesInterfaceSP KisHalftoneConfigPageWidget::m_canvasResourcesInterface
private

Definition at line 50 of file KisHalftoneConfigPageWidget.h.

◆ m_currentGeneratorId

QString KisHalftoneConfigPageWidget::m_currentGeneratorId
private

Definition at line 48 of file KisHalftoneConfigPageWidget.h.

◆ m_generatorIds

QStringList KisHalftoneConfigPageWidget::m_generatorIds
private

Definition at line 46 of file KisHalftoneConfigPageWidget.h.

◆ m_generatorWidget

KisConfigWidget* KisHalftoneConfigPageWidget::m_generatorWidget
private

Definition at line 47 of file KisHalftoneConfigPageWidget.h.

◆ m_paintDevice

const KisPaintDeviceSP KisHalftoneConfigPageWidget::m_paintDevice
private

Definition at line 45 of file KisHalftoneConfigPageWidget.h.

◆ m_ui

Ui_HalftoneConfigPageWidget KisHalftoneConfigPageWidget::m_ui
private

Definition at line 44 of file KisHalftoneConfigPageWidget.h.

◆ m_view

KisViewManager* KisHalftoneConfigPageWidget::m_view
private

Definition at line 49 of file KisHalftoneConfigPageWidget.h.


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