14#include <QActionGroup>
40 , m_layout(new QGridLayout(this))
41 , m_actionGroup(new QActionGroup(this))
57 while (QLayoutItem *child =
m_layout->takeAt(0)) {
58 delete child->widget();
84 for (QAction *action : actions) {
86 if (sa && sa->isChecked()) {
90 return configurations;
111 for (
int i = 0; i < configurations.size(); i++) {
115 action->setIcon(
generateIcon(config, devicePixelRatioF(),
true));
117 QToolButton *
button =
new QToolButton(
this);
118 button->setAutoRaise(
true);
119 button->setDefaultAction(action);
128 for (QAction *action : actions) {
131 sa->setChecked(
true);
144 pixmap.setDevicePixelRatio(pixelRatio);
145 pixmap.fill(Qt::transparent);
147 QPoint offset(0, dualState ? 2 : 1);
148 m_selector->render(&pixmap, offset, QRegion(), RenderFlag::DrawChildren);
156 QPainter painter(&pixmap);
157 painter.setRenderHint(QPainter::Antialiasing);
158 QBrush highlight(
palette().brush(QPalette::Active, QPalette::Highlight));
159 painter.setPen(QPen(highlight, 2.0, Qt::SolidLine, Qt::RoundCap));
162 icon.addPixmap(pixmap, QIcon::Normal, QIcon::On);
170 configs.push_back(KCSC(KCSC::Triangle, KCSC::Ring, KCSC::SV, KCSC::H));
171 configs.push_back(KCSC(KCSC::Square, KCSC::Ring, KCSC::SV, KCSC::H));
172 configs.push_back(KCSC(KCSC::Wheel, KCSC::Slider, KCSC::VH, KCSC::hsvS));
173 configs.push_back(KCSC(KCSC::Wheel, KCSC::Slider, KCSC::hsvSH, KCSC::V));
174 configs.push_back(KCSC(KCSC::Square, KCSC::Slider, KCSC::SV, KCSC::H));
175 configs.push_back(KCSC(KCSC::Square, KCSC::Slider, KCSC::VH, KCSC::hsvS));
176 configs.push_back(KCSC(KCSC::Square, KCSC::Slider, KCSC::hsvSH, KCSC::V));
182 bool handled = QWidget::event(
event);
183 if (
event->type() == QEvent::PaletteChange) {
212 for (QAction *action : actions) {
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
The KisVisualColorSelector class.
void slotSetColorSpace(const KoColorSpace *cs) override
void setConfiguration(const KisColorSelectorConfiguration *config)
Explicitly set the shape configuration. Accepts all valid combinations of Advanced Color Selector,...
void slotSetColor(const KoColor &c) override
void setMinimumSliderWidth(int width)
KisVisualColorModelSP selectorModel() const
SelectorConfigAction(const KisColorSelectorConfiguration &cfg, QObject *parent)
KisColorSelectorConfiguration m_config
const KisColorSelectorConfiguration & configuration()
QIcon currentIcon() const
QVector< KisColorSelectorConfiguration > selectedConfigurations() const
KisColorSelectorConfiguration currentConfiguration() const
bool event(QEvent *event) override
QAction * m_currentAction
void slotActionTriggered(QAction *action)
void setConfigurations(const QVector< KisColorSelectorConfiguration > &configurations)
QIcon generateIcon(const KisColorSelectorConfiguration &configuration, qreal pixelRatio=1.0, bool dualState=false) const
KisVisualColorSelector * m_selector
void setColorModel(KisVisualColorModel::ColorModel model)
QActionGroup * m_actionGroup
WGSelectorConfigGrid(QWidget *parent=nullptr, bool multiSelect=false)
static QVector< KisColorSelectorConfiguration > hueBasedConfigurations()
void setChecked(const KisColorSelectorConfiguration &configuration)
void sigConfigSelected(const KisColorSelectorConfiguration &cfg)
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
QString button(const QWheelEvent &ev)
rgba palette[MAX_PALETTE]
static KoColorSpaceRegistry * instance()