16#include <QApplication>
19#include <kconfiggroup.h>
20#include <ksharedconfig.h>
47 m_grabbingComponent(0),
65 m_grabbingComponent(0),
119 connect(
m_mainComponent, SIGNAL(paramChanged(qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal)),
120 m_subComponent, SLOT(setParam(qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal)), Qt::UniqueConnection);
121 connect(
m_subComponent, SIGNAL(paramChanged(qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal)),
122 m_mainComponent, SLOT(setParam(qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal,qreal)), Qt::UniqueConnection);
134 QResizeEvent event(QSize(width(), height()), QSize());
146 KConfigGroup cfg = KSharedConfig::openConfig()->group(
"advancedColorSelector");
151 bool gamutMaskActive =
m_canvas->viewManager()->canvasResourceProvider()->gamutMaskActive();
153 if (gamutMaskActive) {
225 KConfigGroup cfg = KSharedConfig::openConfig()->group(
"advancedColorSelector");
228 if (cfg.readEntry(
"useCustomColorForBackground",
false)) {
229 p.fillRect(0,0,width(), height(), cfg.readEntry(
"customSelectorBackgroundColor", QColor(Qt::gray)));
231 p.fillRect(0,0,width(), height(), qApp->palette().window().color());
234 p.setRenderHint(QPainter::Antialiasing);
248 qreal radius = qMin(width, height)/2.;
250 qreal ym = height/2.;
251 if(xm>=2*ym || ym>=2*xm)
252 return qBound<qreal>(5., radius, 32.);
256 qreal c=radius*radius-xm*xm-ym*ym;
257 return qBound<qreal>(5., ((-b+sqrt(b*b-4*a*c))/(2*a)), 32.);
266 int size =
iconSize(width(), height());
267 m_button->setGeometry(0, 0, size, size);
288 int size =
iconSize(width(), height()*0.9);
289 m_button->setGeometry(0, height()*0.1, size, size);
297 buttonSize = qBound(20,
int(0.1*height()), 32);
301 if(height()>width()) {
317 KisColorSelectorBase::resizeEvent(e);
322 e->setAccepted(
false);
325 if(!e->isAccepted()) {
347 e->setAccepted(
false);
350 if(!e->isAccepted() &&
380 if (
m_grabbingComponent && (e->buttons() & Qt::LeftButton || e->buttons() & Qt::RightButton)) {
394 setAcceptDrops(
true);
415 setMinimumSize(40, 40);
float value(const T *src, size_t ch)
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)