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

#include <kis_color_selector_container.h>

+ Inheritance diagram for KisColorSelectorContainer:

Public Types

enum  ShadeSelectorType { MyPaintSelector , MinimalSelector , NoSelector }
 

Public Slots

void slotUpdateIcons ()
 

Signals

void openSettings ()
 
void settingsChanged ()
 

Public Member Functions

bool doesAtLeastOneDocumentExist ()
 
 KisColorSelectorContainer (QWidget *parent=0)
 
void setCanvas (KisCanvas2 *canvas)
 
void unsetCanvas ()
 

Protected Slots

void updateSettings ()
 

Protected Member Functions

void resizeEvent (QResizeEvent *) override
 

Private Attributes

QPointer< KisCanvas2m_canvas
 
QAction * m_colorSelAction {0}
 
KisColorSelectorm_colorSelector {0}
 
KisGamutMaskToolbarm_gamutMaskToolbar {0}
 
QAction * m_minimalAction {0}
 
KisMinimalShadeSelectorm_minimalShadeSelector {0}
 
QAction * m_mypaintAction {0}
 
KisMyPaintShadeSelectorm_myPaintShadeSelector {0}
 
int m_onDockerResizeSetting {0}
 
QWidget * m_shadeSelector {0}
 
bool m_showColorSelector {true}
 
QBoxLayout * m_widgetLayout {0}
 

Detailed Description

Definition at line 21 of file kis_color_selector_container.h.

Member Enumeration Documentation

◆ ShadeSelectorType

Constructor & Destructor Documentation

◆ KisColorSelectorContainer()

KisColorSelectorContainer::KisColorSelectorContainer ( QWidget * parent = 0)
explicit

Definition at line 34 of file kis_color_selector_container.cpp.

34 :
35 QWidget(parent),
42 m_canvas(0)
43{
44 m_widgetLayout = new QBoxLayout(QBoxLayout::TopToBottom, this);
45 m_widgetLayout->setSpacing(0);
46 m_widgetLayout->setContentsMargins(0, 0, 0, 0);
47
48 m_gamutMaskToolbar->setContentsMargins(0, 0, 0, 5);
49 m_gamutMaskToolbar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
50 m_colorSelector->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
51 m_myPaintShadeSelector->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
52 m_minimalShadeSelector->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
53
58
59 m_gamutMaskToolbar->hide();
62
63 connect(m_colorSelector,SIGNAL(settingsButtonClicked()), SIGNAL(openSettings()));
64
65 connect(this, SIGNAL(settingsChanged()), m_colorSelector, SLOT(updateSettings()));
67 connect(this, SIGNAL(settingsChanged()), this, SLOT(updateSettings()));
69
70
71 m_colorSelAction = KisActionRegistry::instance()->makeQAction("show_color_selector", this);
72 connect(m_colorSelAction, SIGNAL(triggered()), m_colorSelector, SLOT(showPopup()), Qt::UniqueConnection);
73
74 m_mypaintAction = KisActionRegistry::instance()->makeQAction("show_mypaint_shade_selector", this);
75 connect(m_mypaintAction, SIGNAL(triggered()), m_myPaintShadeSelector, SLOT(showPopup()), Qt::UniqueConnection);
76
77 m_minimalAction = KisActionRegistry::instance()->makeQAction("show_minimal_shade_selector", this);
78 connect(m_minimalAction, SIGNAL(triggered()), m_minimalShadeSelector, SLOT(showPopup()), Qt::UniqueConnection);
79
80}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QAction * makeQAction(const QString &name, QObject *parent=0)
static KisActionRegistry * instance()
KisMinimalShadeSelector * m_minimalShadeSelector
KisMyPaintShadeSelector * m_myPaintShadeSelector

References connect(), KisActionRegistry::instance(), m_colorSelAction, m_colorSelector, m_gamutMaskToolbar, m_minimalAction, m_minimalShadeSelector, m_mypaintAction, m_myPaintShadeSelector, m_widgetLayout, KisActionRegistry::makeQAction(), openSettings(), settingsChanged(), and updateSettings().

Member Function Documentation

◆ doesAtLeastOneDocumentExist()

bool KisColorSelectorContainer::doesAtLeastOneDocumentExist ( )

Definition at line 92 of file kis_color_selector_container.cpp.

93{
94 return m_canvas &&
95 m_canvas->viewManager() &&
96 m_canvas->viewManager()->document() &&
97 m_canvas->viewManager()->document()->image();
98}

References m_canvas.

◆ openSettings

void KisColorSelectorContainer::openSettings ( )
signal

◆ resizeEvent()

void KisColorSelectorContainer::resizeEvent ( QResizeEvent * e)
overrideprotected

Definition at line 193 of file kis_color_selector_container.cpp.

194{
195 if(m_shadeSelector!=0) {
196 int minimumHeightForBothWidgets = m_colorSelector->minimumHeight()+m_shadeSelector->minimumHeight()+30; //+30 for the buttons (temporarily)
197
198 if(height()<minimumHeightForBothWidgets && m_onDockerResizeSetting== 1) { // 1 option is hide shade selector
199 m_shadeSelector->hide();
200 }
201 else {
202 m_shadeSelector->show();
203 }
204
205 // m_onDockerResizeSetting==0 is allow horizontal layout
206 if(height() < width() && m_onDockerResizeSetting==0 && m_shadeSelector!=m_minimalShadeSelector) {
207 m_widgetLayout->setDirection(QBoxLayout::LeftToRight);
208 }
209 else {
210 m_widgetLayout->setDirection(QBoxLayout::TopToBottom);
211 }
212 }
213
214 QWidget::resizeEvent(e);
215}

References m_colorSelector, m_minimalShadeSelector, m_onDockerResizeSetting, m_shadeSelector, and m_widgetLayout.

◆ setCanvas()

void KisColorSelectorContainer::setCanvas ( KisCanvas2 * canvas)

Definition at line 108 of file kis_color_selector_container.cpp.

109{
110 if (m_canvas) {
111 m_canvas->disconnectCanvasObserver(this);
112 m_canvas->viewManager()->nodeManager()->disconnect(this);
113 KisKActionCollection *ac = m_canvas->viewManager()->actionCollection();
114 ac->takeAction(ac->action("show_color_selector"));
115 ac->takeAction(ac->action("show_mypaint_shade_selector"));
116 ac->takeAction(ac->action("show_minimal_shade_selector"));
117 }
118
119 m_canvas = canvas;
120
121 m_colorSelector->setCanvas(canvas);
124
125
127
128
129 if (m_canvas && m_canvas->viewManager()) {
130
131 connect(m_canvas->viewManager()->canvasResourceProvider(), SIGNAL(sigGamutMaskChanged(KoGamutMaskSP)),
132 m_colorSelector, SLOT(slotGamutMaskSet(KoGamutMaskSP)), Qt::UniqueConnection);
133
134 connect(m_canvas->viewManager()->canvasResourceProvider(), SIGNAL(sigGamutMaskUnset()),
135 m_colorSelector, SLOT(slotGamutMaskUnset()), Qt::UniqueConnection);
136
137 connect(m_canvas->viewManager()->canvasResourceProvider(), SIGNAL(sigGamutMaskPreviewUpdate()),
138 m_colorSelector, SLOT(slotGamutMaskPreviewUpdate()), Qt::UniqueConnection);
139
140 connect(m_canvas->viewManager()->canvasResourceProvider(), SIGNAL(sigGamutMaskDeactivated()),
141 m_colorSelector, SLOT(slotGamutMaskDeactivate()), Qt::UniqueConnection);
142
143 m_gamutMaskToolbar->connectMaskSignals(m_canvas->viewManager()->canvasResourceProvider());
144
145 KisKActionCollection* actionCollection = canvas->viewManager()->actionCollection();
146 actionCollection->addAction("show_color_selector", m_colorSelAction);
147 actionCollection->addAction("show_mypaint_shade_selector", m_mypaintAction);
148 actionCollection->addAction("show_minimal_shade_selector", m_minimalAction);
149 }
150}
KisViewManager * viewManager() const
virtual void setCanvas(KisCanvas2 *canvas)
void hasAtLeastOneDocument(bool value)
void connectMaskSignals(KisCanvasResourceProvider *resourceProvider)
A container for a set of QAction objects.
QAction * takeAction(QAction *action)
Q_INVOKABLE QAction * addAction(const QString &name, QAction *action)
QAction * action(int index) const
void setCanvas(KisCanvas2 *canvas) override
virtual KisKActionCollection * actionCollection() const

References KisKActionCollection::action(), KisViewManager::actionCollection(), KisKActionCollection::addAction(), connect(), KisGamutMaskToolbar::connectMaskSignals(), doesAtLeastOneDocumentExist(), KisColorSelector::hasAtLeastOneDocument(), m_canvas, m_colorSelAction, m_colorSelector, m_gamutMaskToolbar, m_minimalAction, m_minimalShadeSelector, m_mypaintAction, m_myPaintShadeSelector, KisColorSelectorBase::setCanvas(), KisMinimalShadeSelector::setCanvas(), KisKActionCollection::takeAction(), and KisCanvas2::viewManager().

◆ settingsChanged

void KisColorSelectorContainer::settingsChanged ( )
signal

◆ slotUpdateIcons

◆ unsetCanvas()

◆ updateSettings

void KisColorSelectorContainer::updateSettings ( )
protectedslot

Definition at line 152 of file kis_color_selector_container.cpp.

153{
154 KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector");
155 m_onDockerResizeSetting = (int)cfg.readEntry("onDockerResize", 0);
156 m_showColorSelector = (bool) cfg.readEntry("showColorSelector", true);
157
159 m_colorSelector->show();
160
162 m_gamutMaskToolbar->show();
163 } else {
164 m_gamutMaskToolbar->hide();
165 }
166 } else {
167 m_colorSelector->hide();
168 m_gamutMaskToolbar->hide();
169 }
170
171 QString type = cfg.readEntry("shadeSelectorType", "Minimal");
172
173 QWidget* newShadeSelector;
174 if(type=="MyPaint")
175 newShadeSelector = m_myPaintShadeSelector;
176 else if (type=="Minimal")
177 newShadeSelector = m_minimalShadeSelector;
178 else
179 newShadeSelector = 0;
180
181
182
183 if(m_shadeSelector!=newShadeSelector && m_shadeSelector!=0) {
184 m_shadeSelector->hide();
185 }
186 m_shadeSelector=newShadeSelector;
187
188 if(m_shadeSelector!=0)
189 m_shadeSelector->show();
190}
KisColorSelectorConfiguration configuration() const

References KisColorSelector::configuration(), m_colorSelector, m_gamutMaskToolbar, m_minimalShadeSelector, m_myPaintShadeSelector, m_onDockerResizeSetting, m_shadeSelector, m_showColorSelector, KisColorSelectorConfiguration::mainType, and KisColorSelectorConfiguration::Wheel.

Member Data Documentation

◆ m_canvas

QPointer<KisCanvas2> KisColorSelectorContainer::m_canvas
private

Definition at line 61 of file kis_color_selector_container.h.

◆ m_colorSelAction

QAction* KisColorSelectorContainer::m_colorSelAction {0}
private

Definition at line 57 of file kis_color_selector_container.h.

57{0};

◆ m_colorSelector

KisColorSelector* KisColorSelectorContainer::m_colorSelector {0}
private

Definition at line 46 of file kis_color_selector_container.h.

46{0};

◆ m_gamutMaskToolbar

KisGamutMaskToolbar* KisColorSelectorContainer::m_gamutMaskToolbar {0}
private

Definition at line 50 of file kis_color_selector_container.h.

50{0};

◆ m_minimalAction

QAction* KisColorSelectorContainer::m_minimalAction {0}
private

Definition at line 59 of file kis_color_selector_container.h.

59{0};

◆ m_minimalShadeSelector

KisMinimalShadeSelector* KisColorSelectorContainer::m_minimalShadeSelector {0}
private

Definition at line 48 of file kis_color_selector_container.h.

48{0};

◆ m_mypaintAction

QAction* KisColorSelectorContainer::m_mypaintAction {0}
private

Definition at line 58 of file kis_color_selector_container.h.

58{0};

◆ m_myPaintShadeSelector

KisMyPaintShadeSelector* KisColorSelectorContainer::m_myPaintShadeSelector {0}
private

Definition at line 47 of file kis_color_selector_container.h.

47{0};

◆ m_onDockerResizeSetting

int KisColorSelectorContainer::m_onDockerResizeSetting {0}
private

Definition at line 52 of file kis_color_selector_container.h.

52{0};

◆ m_shadeSelector

QWidget* KisColorSelectorContainer::m_shadeSelector {0}
private

Definition at line 49 of file kis_color_selector_container.h.

49{0};

◆ m_showColorSelector

bool KisColorSelectorContainer::m_showColorSelector {true}
private

Definition at line 53 of file kis_color_selector_container.h.

53{true};

◆ m_widgetLayout

QBoxLayout* KisColorSelectorContainer::m_widgetLayout {0}
private

Definition at line 55 of file kis_color_selector_container.h.

55{0};

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