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

#include <KisHalftoneConfigWidget.h>

+ Inheritance diagram for KisHalftoneConfigWidget:

Public Member Functions

KisPropertiesConfigurationSP configuration () const override
 
 KisHalftoneConfigWidget (QWidget *parent, const KisPaintDeviceSP dev)
 
void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface) override
 
void setConfiguration (const KisPropertiesConfigurationSP config) override
 
void setView (KisViewManager *view) override
 
 ~KisHalftoneConfigWidget () override
 
- Public Member Functions inherited from KisConfigWidget
virtual KoCanvasResourcesInterfaceSP canvasResourcesInterface () const
 
 ~KisConfigWidget () override
 

Private Slots

void slot_comboBoxMode_currentIndexChanged (int index)
 

Private Attributes

QList< KoChannelInfo * > m_channelsInfo
 
QVector< KisHalftoneConfigPageWidget * > m_channelWidgets
 
QString m_colorModelId
 
KisHalftoneConfigPageWidgetm_intensityWidget
 
const KisPaintDeviceSP m_paintDevice
 
Ui_HalftoneConfigWidget m_ui
 

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 24 of file KisHalftoneConfigWidget.h.

Constructor & Destructor Documentation

◆ KisHalftoneConfigWidget()

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

Definition at line 24 of file KisHalftoneConfigWidget.cpp.

25 : KisConfigWidget(parent)
26 , m_paintDevice(dev)
27 , m_intensityWidget(nullptr)
28{
29 Q_ASSERT(m_paintDevice);
30
33
34 m_ui.setupUi(this);
35
36 const QString intensityString = i18nc("Brightness in HSI color model", "Intensity");
37 const QString independentChannelsString = i18n("Independent Channels");
38 const QString alphaString = KoColorSpaceRegistry::instance()->graya8()->channels().at(1)->name();
39 const QString grayString = KoColorSpaceRegistry::instance()->graya8()->channels().at(0)->name();
40
42 m_ui.comboBoxMode->addItem(alphaString);
43 } else if (m_colorModelId == GrayColorModelID.id()) {
44 m_ui.comboBoxMode->addItem(grayString);
45 } else if (m_colorModelId == GrayAColorModelID.id()) {
46 m_ui.comboBoxMode->addItem(grayString);
47 m_ui.comboBoxMode->addItem(alphaString);
48 } else {
49 m_ui.comboBoxMode->addItem(intensityString);
50 m_ui.comboBoxMode->addItem(independentChannelsString);
51 m_ui.comboBoxMode->addItem(alphaString);
53 m_intensityWidget->hide();
54 connect(m_intensityWidget, SIGNAL(signal_configurationUpdated()), this, SIGNAL(sigConfigurationItemChanged()));
55 }
56
57 int alphaPos = static_cast<int>(m_paintDevice->colorSpace()->alphaPos());
58 for (int i = 0; i < m_channelsInfo.size(); ++i)
59 {
62 w->hideColors();
63 if (i != alphaPos) {
64 w->setContentsMargins(10, 10, 10, 10);
65 }
66 } else {
67 if (i == alphaPos) {
68 w->hideColors();
69 }
70 }
71 w->hide();
72 m_channelWidgets.append(w);
73 connect(w, SIGNAL(signal_configurationUpdated()), this, SIGNAL(sigConfigurationItemChanged()));
74 }
75
76 connect(m_ui.comboBoxMode, SIGNAL(currentIndexChanged(int)), this, SLOT(slot_comboBoxMode_currentIndexChanged(int)));
77}
const KoID GrayAColorModelID("GRAYA", ki18n("Grayscale/Alpha"))
const KoID AlphaColorModelID("A", ki18n("Alpha mask"))
const KoID GrayColorModelID("GRAY", ki18n("Grayscale (without transparency)"))
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void sigConfigurationItemChanged()
KisConfigWidget(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags(), int delay=200)
const KisPaintDeviceSP m_paintDevice
QList< KoChannelInfo * > m_channelsInfo
KisHalftoneConfigPageWidget * m_intensityWidget
Ui_HalftoneConfigWidget m_ui
QVector< KisHalftoneConfigPageWidget * > m_channelWidgets
void slot_comboBoxMode_currentIndexChanged(int index)
const KoColorSpace * colorSpace() const
virtual quint32 alphaPos() const =0
QList< KoChannelInfo * > channels
virtual KoID colorModelId() const =0
QString id() const
Definition KoID.cpp:63
static KoColorSpaceRegistry * instance()
const KoColorSpace * graya8(const QString &profile=QString())

References AlphaColorModelID, KoColorSpace::alphaPos(), KoColorSpace::channels, KoColorSpace::colorModelId(), KisPaintDevice::colorSpace(), connect(), KoColorSpaceRegistry::graya8(), GrayAColorModelID, GrayColorModelID, KoID::id(), KoColorSpaceRegistry::instance(), m_channelsInfo, m_channelWidgets, m_colorModelId, m_intensityWidget, m_paintDevice, m_ui, KisConfigWidget::sigConfigurationItemChanged(), and slot_comboBoxMode_currentIndexChanged().

◆ ~KisHalftoneConfigWidget()

KisHalftoneConfigWidget::~KisHalftoneConfigWidget ( )
override

Definition at line 79 of file KisHalftoneConfigWidget.cpp.

80{}

Member Function Documentation

◆ configuration()

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

Implements KisConfigWidget.

Definition at line 133 of file KisHalftoneConfigWidget.cpp.

134{
135 KisFilterSP filter = KisFilterRegistry::instance()->get("halftone");
137 dynamic_cast<KisHalftoneFilterConfiguration*>(
139 );
140
141 filterConfig->setColorModelId(m_colorModelId);
142
145 m_channelWidgets[0]->configuration(filterConfig, "alpha_");
146 } else if (m_colorModelId == GrayColorModelID.id()) {
148 m_channelWidgets[0]->configuration(filterConfig, "intensity_");
149 } else if (m_colorModelId == GrayAColorModelID.id()) {
150 if (m_ui.comboBoxMode->currentIndex() == 0) {
152 } else {
154 }
155 m_channelWidgets[0]->configuration(filterConfig, "intensity_");
156 m_channelWidgets[1]->configuration(filterConfig, "alpha_");
157 } else {
158 int alphaPos = m_paintDevice->colorSpace()->alphaPos();
159 if (m_ui.comboBoxMode->currentIndex() == 0) {
161 } else if (m_ui.comboBoxMode->currentIndex() == 1) {
163 } else {
165 }
166 m_intensityWidget->configuration(filterConfig, "intensity_");
167 for (int i = 0; i < m_channelWidgets.size(); ++i) {
168 if (i != alphaPos) {
169 m_channelWidgets[i]->configuration(filterConfig, m_colorModelId + "_channel" + QString::number(i) + "_");
170 }
171 }
172 m_channelWidgets[alphaPos]->configuration(filterConfig, "alpha_");
173 }
174
175 return filterConfig;
176}
static KisFilterRegistry * instance()
static KisResourcesInterfaceSP instance()
void configuration(KisHalftoneFilterConfigurationSP config, const QString &prefix) const
static constexpr const char * HalftoneMode_Alpha
static constexpr const char * HalftoneMode_IndependentChannels
static constexpr const char * HalftoneMode_Intensity
T get(const QString &id) const
virtual KisFilterConfigurationSP factoryConfiguration(KisResourcesInterfaceSP resourcesInterface) const

References AlphaColorModelID, KoColorSpace::alphaPos(), KisPaintDevice::colorSpace(), KisHalftoneConfigPageWidget::configuration(), KisSharedPtr< T >::data(), KisBaseProcessor::factoryConfiguration(), KoGenericRegistry< T >::get(), GrayAColorModelID, GrayColorModelID, KisHalftoneFilterConfiguration::HalftoneMode_Alpha, KisHalftoneFilterConfiguration::HalftoneMode_IndependentChannels, KisHalftoneFilterConfiguration::HalftoneMode_Intensity, KoID::id(), KisFilterRegistry::instance(), KisGlobalResourcesInterface::instance(), m_channelWidgets, m_colorModelId, m_intensityWidget, m_paintDevice, and m_ui.

◆ setCanvasResourcesInterface()

void KisHalftoneConfigWidget::setCanvasResourcesInterface ( KoCanvasResourcesInterfaceSP canvasResourcesInterface)
overridevirtual

Reimplemented from KisConfigWidget.

Definition at line 193 of file KisHalftoneConfigWidget.cpp.

194{
195 if (m_intensityWidget) {
197 }
198 for (KisHalftoneConfigPageWidget *configPageWidget : m_channelWidgets) {
199 if (configPageWidget) {
200 configPageWidget->setCanvasResourcesInterface(canvasResourcesInterface);
201 }
202 }
203}
virtual KoCanvasResourcesInterfaceSP canvasResourcesInterface() const
void setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP canvasResourcesInterface)

References KisConfigWidget::canvasResourcesInterface(), m_channelWidgets, m_intensityWidget, and KisHalftoneConfigPageWidget::setCanvasResourcesInterface().

◆ setConfiguration()

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

Implements KisConfigWidget.

Definition at line 82 of file KisHalftoneConfigWidget.cpp.

83{
84 const KisHalftoneFilterConfigurationSP filterConfig =
86 dynamic_cast<const KisHalftoneFilterConfiguration*>(config.data())
87 );
88
89 {
90 KisSignalsBlocker signalsBlocker(this);
91
92 QString mode = filterConfig->mode();
93
95 m_channelWidgets[0]->setConfiguration(filterConfig, "alpha_");
96 m_ui.comboBoxMode->setCurrentIndex(0);
97 } else if (m_colorModelId == GrayColorModelID.id()) {
98 m_channelWidgets[0]->setConfiguration(filterConfig, "intensity_");
99 m_ui.comboBoxMode->setCurrentIndex(0);
100 } else if (m_colorModelId == GrayAColorModelID.id()) {
101 m_channelWidgets[0]->setConfiguration(filterConfig, "intensity_");
102 m_channelWidgets[1]->setConfiguration(filterConfig, "alpha_");
103
105 m_ui.comboBoxMode->setCurrentIndex(1);
106 } else {
107 m_ui.comboBoxMode->setCurrentIndex(0);
108 }
109 } else {
110 int alphaPos = m_paintDevice->colorSpace()->alphaPos();
111 m_intensityWidget->setConfiguration(filterConfig, "intensity_");
112 for (int i = 0; i < m_channelWidgets.size(); ++i) {
113 if (i != alphaPos) {
114 m_channelWidgets[i]->setConfiguration(filterConfig, m_colorModelId + "_channel" + QString::number(i) + "_");
115 }
116 }
117 m_channelWidgets[alphaPos]->setConfiguration(filterConfig, "alpha_");
118
120 m_ui.comboBoxMode->setCurrentIndex(2);
122 m_ui.comboBoxMode->setCurrentIndex(1);
123 } else {
124 m_ui.comboBoxMode->setCurrentIndex(0);
125 }
126 }
127
128 slot_comboBoxMode_currentIndexChanged(m_ui.comboBoxMode->currentIndex());
129 }
131}
void setConfiguration(const KisHalftoneFilterConfigurationSP config, const QString &prefix)

References AlphaColorModelID, KoColorSpace::alphaPos(), KisPaintDevice::colorSpace(), KisSharedPtr< T >::data(), GrayAColorModelID, GrayColorModelID, KisHalftoneFilterConfiguration::HalftoneMode_Alpha, KisHalftoneFilterConfiguration::HalftoneMode_IndependentChannels, KoID::id(), m_channelWidgets, m_colorModelId, m_intensityWidget, m_paintDevice, m_ui, KisHalftoneConfigPageWidget::setConfiguration(), KisConfigWidget::sigConfigurationItemChanged(), and slot_comboBoxMode_currentIndexChanged().

◆ setView()

void KisHalftoneConfigWidget::setView ( KisViewManager * view)
overridevirtual

Sets the view object that can be used by the configuration widget for richer functionality

TODO: remove this method from KisConfigWidget, since KisViewManager is from kritaui, but we are in kritaimage

Reimplemented from KisConfigWidget.

Definition at line 178 of file KisHalftoneConfigWidget.cpp.

179{
180 if (m_intensityWidget) {
182 }
183 for (KisHalftoneConfigPageWidget *configPageWidget : m_channelWidgets) {
184 if (configPageWidget) {
185 configPageWidget->setView(view);
186 }
187 }
188
191}
KoCanvasResourceProvider * resourceManager()
void setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP canvasResourcesInterface) override
KisCanvasResourceProvider * canvasResourceProvider()
KoCanvasResourcesInterfaceSP canvasResourcesInterface() const

References KisViewManager::canvasResourceProvider(), KoCanvasResourceProvider::canvasResourcesInterface(), KisConfigWidget::canvasResourcesInterface(), m_channelWidgets, m_intensityWidget, KisCanvasResourceProvider::resourceManager(), setCanvasResourcesInterface(), and KisHalftoneConfigPageWidget::setView().

◆ slot_comboBoxMode_currentIndexChanged

void KisHalftoneConfigWidget::slot_comboBoxMode_currentIndexChanged ( int index)
privateslot

Definition at line 205 of file KisHalftoneConfigWidget.cpp.

206{
207 while (m_ui.tabWidgetChannels->count()) {
208 m_ui.tabWidgetChannels->removeTab(0);
209 }
210
212 m_ui.tabWidgetChannels->addTab(m_channelWidgets[0], m_channelsInfo.at(0)->name());
213 } else if (m_colorModelId == GrayAColorModelID.id()) {
214 if (index == 0) {
215 m_ui.tabWidgetChannels->addTab(m_channelWidgets[0], m_channelsInfo.at(0)->name());
216 } else {
217 m_ui.tabWidgetChannels->addTab(m_channelWidgets[1], m_channelsInfo.at(1)->name());
218 }
219 } else {
220 int alphaPos = m_paintDevice->colorSpace()->alphaPos();
221 if (index == 0) {
222 m_ui.tabWidgetChannels->addTab(m_intensityWidget, i18nc("Brightness in HSI color model", "Intensity"));
223 } else if (index == 1) {
224 for (int i = 0; i < m_channelsInfo.size(); ++i) {
225 if (i != alphaPos) {
226 m_ui.tabWidgetChannels->addTab(m_channelWidgets[i], m_channelsInfo.at(i)->name());
227 }
228 }
229 } else {
230 m_ui.tabWidgetChannels->addTab(m_channelWidgets[alphaPos], m_channelsInfo.at(alphaPos)->name());
231 }
232 }
233
235}

References AlphaColorModelID, KoColorSpace::alphaPos(), KisPaintDevice::colorSpace(), GrayAColorModelID, GrayColorModelID, KoID::id(), m_channelsInfo, m_channelWidgets, m_colorModelId, m_intensityWidget, m_paintDevice, m_ui, and KisConfigWidget::sigConfigurationItemChanged().

Member Data Documentation

◆ m_channelsInfo

QList<KoChannelInfo *> KisHalftoneConfigWidget::m_channelsInfo
private

Definition at line 40 of file KisHalftoneConfigWidget.h.

◆ m_channelWidgets

QVector<KisHalftoneConfigPageWidget*> KisHalftoneConfigWidget::m_channelWidgets
private

Definition at line 43 of file KisHalftoneConfigWidget.h.

◆ m_colorModelId

QString KisHalftoneConfigWidget::m_colorModelId
private

Definition at line 41 of file KisHalftoneConfigWidget.h.

◆ m_intensityWidget

KisHalftoneConfigPageWidget* KisHalftoneConfigWidget::m_intensityWidget
private

Definition at line 42 of file KisHalftoneConfigWidget.h.

◆ m_paintDevice

const KisPaintDeviceSP KisHalftoneConfigWidget::m_paintDevice
private

Definition at line 39 of file KisHalftoneConfigWidget.h.

◆ m_ui

Ui_HalftoneConfigWidget KisHalftoneConfigWidget::m_ui
private

Definition at line 38 of file KisHalftoneConfigWidget.h.


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