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

#include <kis_color_selector_ng_docker_widget.h>

+ Inheritance diagram for KisColorSelectorNgDockerWidget:

Public Slots

void openSettings ()
 

Signals

void settingsChanged ()
 

Public Member Functions

 KisColorSelectorNgDockerWidget (QWidget *parent=0)
 
void setCanvas (KisCanvas2 *canvas)
 
void unsetCanvas ()
 

Protected Slots

void updateLayout ()
 

Private Attributes

QPointer< KisCanvas2m_canvas
 
QAction * m_colorHistoryAction
 
KisColorHistorym_colorHistoryWidget
 
KisColorSelectorContainerm_colorSelectorContainer
 
QAction * m_commonColorsAction
 
KisCommonColorsm_commonColorsWidget
 
QToolButton * m_fallbackSettingsButton
 
QVBoxLayout * m_horizontalColorPatchesLayout
 
QHBoxLayout * m_horizontalPatchesContainer
 
QVBoxLayout * m_mainLayout
 
QVBoxLayout * m_sidebarLayout
 
QHBoxLayout * m_verticalColorPatchesLayout
 
QHBoxLayout * m_widgetLayout
 

Detailed Description

Definition at line 26 of file kis_color_selector_ng_docker_widget.h.

Constructor & Destructor Documentation

◆ KisColorSelectorNgDockerWidget()

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

Definition at line 40 of file kis_color_selector_ng_docker_widget.cpp.

40 :
41 QWidget(parent),
45 m_mainLayout(0),
50 m_fallbackSettingsButton(new QToolButton(this)),
51 m_canvas(0)
52{
53 setAutoFillBackground(true);
54
58
59 //default settings
60 //remember to also change the default in the ui file
61
62 //shade selector
63
64 // fallback settings button when the color selector is disabled
66 m_fallbackSettingsButton->setIconSize(QSize(22,22));
67 m_fallbackSettingsButton->setAutoRaise(true);
69
70 //layout
71 m_widgetLayout = new QHBoxLayout(this);
72 m_widgetLayout->setSpacing(0);
73 m_widgetLayout->setContentsMargins(0, 0, 0, 0);
74
75 m_mainLayout = new QVBoxLayout();
76 m_mainLayout->setSpacing(0);
77 m_mainLayout->setContentsMargins(0, 0, 0, 0);
78
79 m_horizontalPatchesContainer = new QHBoxLayout();
80 m_horizontalPatchesContainer->setSpacing(0);
81 m_horizontalPatchesContainer->setContentsMargins(0, 0, 0, 0);
82
83 m_sidebarLayout = new QVBoxLayout();
84 m_sidebarLayout->setSpacing(0);
85 m_sidebarLayout->setContentsMargins(0, 0, 0, 0);
86
87 m_verticalColorPatchesLayout = new QHBoxLayout();
88 m_verticalColorPatchesLayout->setSpacing(0);
89 m_verticalColorPatchesLayout->setContentsMargins(0, 0, 0, 0);
90
91 m_horizontalColorPatchesLayout = new QVBoxLayout();
92 m_horizontalColorPatchesLayout->setSpacing(0);
93 m_horizontalColorPatchesLayout->setContentsMargins(0, 0, 0, 0);
94
96
99
101
102 m_widgetLayout->addLayout(m_mainLayout);
104
105 updateLayout();
106
108
109 //Q_EMIT settingsChanged() if the settings are changed in krita preferences
112 dynamic_cast<KisColorSelectorSettingsFactory*>(preferenceSetRegistry->get("KisColorSelectorSettingsFactory"));
113 Q_ASSERT(factory);
114 connect(&(factory->repeater), SIGNAL(settingsUpdated()), this, SIGNAL(settingsChanged()), Qt::UniqueConnection);
115 connect(this, SIGNAL(settingsChanged()), this, SLOT(updateLayout()), Qt::UniqueConnection);
116 connect(this, SIGNAL(settingsChanged()), m_commonColorsWidget, SLOT(updateSettings()), Qt::UniqueConnection);
117 connect(this, SIGNAL(settingsChanged()), m_colorHistoryWidget, SLOT(updateSettings()), Qt::UniqueConnection);
118 connect(this, SIGNAL(settingsChanged()), m_colorSelectorContainer, SIGNAL(settingsChanged()), Qt::UniqueConnection);
119 connect(this, SIGNAL(settingsChanged()), this, SLOT(update()), Qt::UniqueConnection);
120
121
122 Q_EMIT settingsChanged();
123
124 m_colorHistoryAction = KisActionRegistry::instance()->makeQAction("show_color_history", this);
125 connect(m_colorHistoryAction, SIGNAL(triggered()), m_colorHistoryWidget, SLOT(showPopup()), Qt::UniqueConnection);
126
127 m_commonColorsAction = KisActionRegistry::instance()->makeQAction("show_common_colors", this);
128 connect(m_commonColorsAction, SIGNAL(triggered()), m_commonColorsWidget, SLOT(showPopup()), Qt::UniqueConnection);
129
130 connect(m_fallbackSettingsButton, SIGNAL(clicked()), this, SLOT(openSettings()));
131}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QAction * makeQAction(const QString &name, QObject *parent=0)
static KisActionRegistry * instance()
KisColorSelectorSettingsUpdateRepeater repeater
static KisPreferenceSetRegistry * instance()
T get(const QString &id) const
QIcon loadIcon(const QString &name)
bool update(QSpinBox *spinBox)

References connect(), KoGenericRegistry< T >::get(), KisPreferenceSetRegistry::instance(), KisActionRegistry::instance(), KisIconUtils::loadIcon(), m_colorHistoryAction, m_colorHistoryWidget, m_colorSelectorContainer, m_commonColorsAction, m_commonColorsWidget, m_fallbackSettingsButton, m_horizontalColorPatchesLayout, m_horizontalPatchesContainer, m_mainLayout, m_sidebarLayout, m_verticalColorPatchesLayout, m_widgetLayout, KisActionRegistry::makeQAction(), openSettings(), KisColorSelectorSettingsFactory::repeater, settingsChanged(), and updateLayout().

Member Function Documentation

◆ openSettings

void KisColorSelectorNgDockerWidget::openSettings ( )
slot

Definition at line 167 of file kis_color_selector_ng_docker_widget.cpp.

168{
169 if (!m_canvas) return;
170
172 if(settings.exec()==QDialog::Accepted) {
173 Q_EMIT settingsChanged();
175 }
176}
static KisConfigNotifier * instance()

References KisConfigNotifier::instance(), m_canvas, KisConfigNotifier::notifyConfigChanged(), and settingsChanged().

◆ setCanvas()

void KisColorSelectorNgDockerWidget::setCanvas ( KisCanvas2 * canvas)

Definition at line 141 of file kis_color_selector_ng_docker_widget.cpp.

142{
143 if (m_canvas) {
144 m_canvas->disconnect(this);
145 KisKActionCollection *ac = m_canvas->viewManager()->actionCollection();
146 ac->takeAction(ac->action("show_color_history"));
147 ac->takeAction(ac->action("show_common_colors"));
148 }
149
150 m_canvas = canvas;
151
155
156 if (m_canvas && m_canvas->viewManager()) {
157 KisKActionCollection* actionCollection = canvas->viewManager()->actionCollection();
158
159 actionCollection->addAction("show_color_history", m_colorHistoryAction);
160 actionCollection->addAction("show_common_colors", m_commonColorsAction);
161
162 connect(m_canvas->viewManager()->mainWindow(), SIGNAL(themeChanged()), m_colorSelectorContainer, SLOT(slotUpdateIcons()), Qt::UniqueConnection);
163 }
164
165}
KisViewManager * viewManager() const
void setCanvas(KisCanvas2 *canvas) override
void setCanvas(KisCanvas2 *canvas) override
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
virtual KisKActionCollection * actionCollection() const

References KisKActionCollection::action(), KisViewManager::actionCollection(), KisKActionCollection::addAction(), connect(), m_canvas, m_colorHistoryAction, m_colorHistoryWidget, m_colorSelectorContainer, m_commonColorsAction, m_commonColorsWidget, KisColorSelectorContainer::setCanvas(), KisColorHistory::setCanvas(), KisCommonColors::setCanvas(), KisKActionCollection::takeAction(), and KisCanvas2::viewManager().

◆ settingsChanged

void KisColorSelectorNgDockerWidget::settingsChanged ( )
signal

◆ unsetCanvas()

◆ updateLayout

void KisColorSelectorNgDockerWidget::updateLayout ( )
protectedslot

Definition at line 179 of file kis_color_selector_ng_docker_widget.cpp.

180{
181 KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector");
182
183 bool showColorSelector = (bool) cfg.readEntry("showColorSelector", true);
184
185 //color patches
186 bool m_lastColorsShow = cfg.readEntry("lastUsedColorsShow", true);
187 KisColorPatches::Direction m_lastColorsDirection;
188 if(cfg.readEntry("lastUsedColorsAlignment", false))
189 m_lastColorsDirection=KisColorPatches::Vertical;
190 else
191 m_lastColorsDirection=KisColorPatches::Horizontal;
192
193 bool m_commonColorsShow = cfg.readEntry("commonColorsShow", true);
194 KisColorPatches::Direction m_commonColorsDirection;
195 if(cfg.readEntry("commonColorsAlignment", false))
196 m_commonColorsDirection=KisColorPatches::Vertical;
197 else
198 m_commonColorsDirection=KisColorPatches::Horizontal;
199
204
207
208 if (m_lastColorsShow == false) {
209 m_colorHistoryWidget->hide();
210 } else {
211 m_colorHistoryWidget->show();
212 }
213
214 if(m_commonColorsShow==false) {
215 m_commonColorsWidget->hide();
216 }
217 else {
218 m_commonColorsWidget->show();
219 }
220
221
222 bool fallbackSettingsButtonVertical = true;
223
224 if(m_lastColorsShow && m_lastColorsDirection==KisColorPatches::Vertical) {
226 }
227
228 if(m_commonColorsShow && m_commonColorsDirection==KisColorPatches::Vertical) {
230 }
231
232 if(m_lastColorsShow && m_lastColorsDirection==KisColorPatches::Horizontal) {
234 fallbackSettingsButtonVertical = false;
235 }
236
237 if(m_commonColorsShow && m_commonColorsDirection==KisColorPatches::Horizontal) {
239 fallbackSettingsButtonVertical = false;
240 }
241
242 // prefer the vertical column, if patch components have different layout
243 if (m_commonColorsDirection != m_lastColorsDirection) {
244 fallbackSettingsButtonVertical = true;
245 }
246
247 if (!showColorSelector) {
248 if (fallbackSettingsButtonVertical) {
250 } else {
252 }
253
255 } else {
257 }
258
259 updateGeometry();
260}

References KisColorPatches::Horizontal, m_colorHistoryWidget, m_commonColorsWidget, m_fallbackSettingsButton, m_horizontalColorPatchesLayout, m_horizontalPatchesContainer, m_mainLayout, m_sidebarLayout, m_verticalColorPatchesLayout, and KisColorPatches::Vertical.

Member Data Documentation

◆ m_canvas

QPointer<KisCanvas2> KisColorSelectorNgDockerWidget::m_canvas
private

Definition at line 59 of file kis_color_selector_ng_docker_widget.h.

◆ m_colorHistoryAction

QAction* KisColorSelectorNgDockerWidget::m_colorHistoryAction
private

Definition at line 47 of file kis_color_selector_ng_docker_widget.h.

◆ m_colorHistoryWidget

KisColorHistory* KisColorSelectorNgDockerWidget::m_colorHistoryWidget
private

Definition at line 44 of file kis_color_selector_ng_docker_widget.h.

◆ m_colorSelectorContainer

KisColorSelectorContainer* KisColorSelectorNgDockerWidget::m_colorSelectorContainer
private

Definition at line 43 of file kis_color_selector_ng_docker_widget.h.

◆ m_commonColorsAction

QAction* KisColorSelectorNgDockerWidget::m_commonColorsAction
private

Definition at line 48 of file kis_color_selector_ng_docker_widget.h.

◆ m_commonColorsWidget

KisCommonColors* KisColorSelectorNgDockerWidget::m_commonColorsWidget
private

Definition at line 45 of file kis_color_selector_ng_docker_widget.h.

◆ m_fallbackSettingsButton

QToolButton* KisColorSelectorNgDockerWidget::m_fallbackSettingsButton
private

Definition at line 57 of file kis_color_selector_ng_docker_widget.h.

◆ m_horizontalColorPatchesLayout

QVBoxLayout* KisColorSelectorNgDockerWidget::m_horizontalColorPatchesLayout
private

Definition at line 56 of file kis_color_selector_ng_docker_widget.h.

◆ m_horizontalPatchesContainer

QHBoxLayout* KisColorSelectorNgDockerWidget::m_horizontalPatchesContainer
private

Definition at line 52 of file kis_color_selector_ng_docker_widget.h.

◆ m_mainLayout

QVBoxLayout* KisColorSelectorNgDockerWidget::m_mainLayout
private

Definition at line 51 of file kis_color_selector_ng_docker_widget.h.

◆ m_sidebarLayout

QVBoxLayout* KisColorSelectorNgDockerWidget::m_sidebarLayout
private

Definition at line 53 of file kis_color_selector_ng_docker_widget.h.

◆ m_verticalColorPatchesLayout

QHBoxLayout* KisColorSelectorNgDockerWidget::m_verticalColorPatchesLayout
private

Definition at line 55 of file kis_color_selector_ng_docker_widget.h.

◆ m_widgetLayout

QHBoxLayout* KisColorSelectorNgDockerWidget::m_widgetLayout
private

Definition at line 50 of file kis_color_selector_ng_docker_widget.h.


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