16#include <QApplication>
19#include <kconfiggroup.h>
20#include <ksharedconfig.h>
47 m_grabbingComponent(0),
65 m_grabbingComponent(0),
117 connect(
m_mainComponent, SIGNAL(paramChanged(qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal)),
118 m_subComponent, SLOT(setParam(qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal)), Qt::UniqueConnection);
119 connect(
m_subComponent, SIGNAL(paramChanged(qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal)),
120 m_mainComponent, SLOT(setParam(qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal)), Qt::UniqueConnection);
132 QResizeEvent event(QSize(width(), height()), QSize());
144 KConfigGroup cfg = KSharedConfig::openConfig()->group(
"advancedColorSelector");
149 bool gamutMaskActive =
m_canvas->viewManager()->canvasResourceProvider()->gamutMaskActive();
151 if (gamutMaskActive) {
223 KConfigGroup cfg = KSharedConfig::openConfig()->group(
"advancedColorSelector");
226 if (cfg.readEntry(
"useCustomColorForBackground",
false)) {
227 p.fillRect(0,0,width(), height(), cfg.readEntry(
"customSelectorBackgroundColor", QColor(Qt::gray)));
229 p.fillRect(0,0,width(), height(), qApp->palette().window().color());
232 p.setRenderHint(QPainter::Antialiasing);
246 qreal radius = qMin(width, height)/2.;
248 qreal ym = height/2.;
249 if(xm>=2*ym || ym>=2*xm)
250 return qBound<qreal>(5., radius, 32.);
254 qreal c=radius*radius-xm*xm-ym*ym;
255 return qBound<qreal>(5., ((-b+sqrt(b*b-4*a*c))/(2*a)), 32.);
264 int size =
iconSize(width(), height());
265 m_button->setGeometry(0, 0, size, size);
286 int size =
iconSize(width(), height()*0.9);
287 m_button->setGeometry(0, height()*0.1, size, size);
295 buttonSize = qBound(20,
int(0.1*height()), 32);
299 if(height()>width()) {
315 KisColorSelectorBase::resizeEvent(e);
320 e->setAccepted(
false);
323 if(!e->isAccepted()) {
345 e->setAccepted(
false);
348 if(!e->isAccepted() &&
378 if (
m_grabbingComponent && (e->buttons() & Qt::LeftButton || e->buttons() & Qt::RightButton)) {
392 setAcceptDrops(
true);
413 setMinimumSize(40, 40);
float value(const T *src, size_t ch)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
int iconSize(qreal width, qreal height)
Base class for all color selectors, that should support color management and zooming.
void updatePreviousColorPreview()
virtual void updateSettings()
virtual void setColor(const KoColor &color)
void mouseReleaseEvent(QMouseEvent *) override
void mousePressEvent(QMouseEvent *) override
void mouseMoveEvent(QMouseEvent *event) override
QPointer< KisCanvas2 > m_canvas
void updateBaseColorPreview(const KoColor &color)
void updateColor(const KoColor &color, Acs::ColorRole role, bool needsExplicitColorReset)
void toggleGamutMask(bool state)
bool wantsGrab(int x, int y)
returns true, if this component wants to grab the mouse (normally true, if containsPoint returns true...
virtual void mouseEvent(int x, int y)
saves the mouse position, so that a blip can be created.
void setDirty()
force subsequent redraw of the component
virtual void setColor(const KoColor &color)
set the color, blibs etc
void setConfiguration(Parameter param, Type type)
setConfiguration can be ignored (for instance ring and triangle, as they can have only one config)
void paintEvent(QPainter *)
void updateGamutMaskPreview()
void setGamutMask(KoGamutMaskSP gamutMask)
KoColor currentColor()
return the color, that was selected by calling mouseEvent
void setGeometry(int x, int y, int width, int height)
Parameters mainTypeParameter
static KisColorSelectorConfiguration fromString(QString string)
Parameters subTypeParameter
void slotGamutMaskPreviewUpdate()
KisColorSelectorComponent * m_triangle
void updateSettings() override
KisColorSelectorSimple * m_square
KisColorSelectorSimple * m_slider
Acs::ColorRole m_lastColorRole
void slotGamutMaskDeactivate()
void hasAtLeastOneDocument(bool value)
void mouseEvent(QMouseEvent *e)
KoColor m_currentRealColor
void setColor(const KoColor &color) override
void mouseMoveEvent(QMouseEvent *) override
KoGamutMaskSP gamutMask()
void slotGamutMaskUnset()
KisColorSelector(KisColorSelectorConfiguration conf, QWidget *parent=0)
KisColorSelectorConfiguration configuration() const
void settingsButtonClicked()
KisSignalCompressor * m_signalCompressor
void resizeEvent(QResizeEvent *) override
KisColorSelectorWheel * m_wheel
void requestUpdateColorAndPreview(const KisColor &color, Acs::ColorRole role)
void slotGamutMaskToggle(bool state)
void mousePressEvent(QMouseEvent *) override
KisColorSelectorComponent * m_subComponent
void slotGamutMaskSet(KoGamutMaskSP gamutMask)
KisColorSelectorComponent * m_mainComponent
bool m_hasAtLeastOneDocumentOpen
KisColorSelectorRing * m_ring
KisColorSelectorConfiguration m_configuration
void mouseReleaseEvent(QMouseEvent *) override
KisColorSelectorBase * createPopup() const override
void paintEvent(QPaintEvent *) override
void setConfiguration(KisColorSelectorConfiguration conf)
KisColorSelectorComponent * m_grabbingComponent
void updateIcons()
update icons when a theme update happens
bool displaySettingsButton()
ColorRole buttonsToRole(Qt::MouseButton button, Qt::MouseButtons buttons)
ColorRole buttonToRole(Qt::MouseButton button)
QIcon loadIcon(const QString &name)