diff --git a/plugins/dockers/advancedcolorselector/kis_shade_selector_line_combo_box_popup.cpp b/plugins/dockers/advancedcolorselector/kis_shade_selector_line_combo_box_popup.cpp --- a/plugins/dockers/advancedcolorselector/kis_shade_selector_line_combo_box_popup.cpp +++ b/plugins/dockers/advancedcolorselector/kis_shade_selector_line_combo_box_popup.cpp @@ -57,9 +57,10 @@ layout->addWidget(new KisShadeSelectorLine(0.0, 0.5, 0.5, m_parentProxy.data(), this, -0.04)); layout->addWidget(new KisShadeSelectorLine(0.0, 0.5, 0.5, m_parentProxy.data(), this, +0.04)); layout->addWidget(new KisShadeSelectorLine(0.0, -0.5, 0.5, m_parentProxy.data(), this, -0.04)); - layout->addWidget(new KisShadeSelectorLine(0.0, -0.5, 0.5, m_parentProxy.data(), this, +0.04)); - m_lineEditor = new KisShadeSelectorLineEditor(this); + KisShadeSelectorLine* preview = new KisShadeSelectorLine(0.0, -0.5, 0.5, m_parentProxy.data(), this, +0.04); + m_lineEditor = new KisShadeSelectorLineEditor(this, preview); + layout->addWidget(preview); layout->addWidget(m_lineEditor); connect(m_lineEditor, SIGNAL(requestActivateLine(QWidget*)), SLOT(activateItem(QWidget*))); @@ -155,16 +156,16 @@ m_lineEditor->fromString(m_lastSelectedItem->toString()); m_lineEditor->blockSignals(false); } - updateSelectedArea(m_highlightedArea); - } else { - if (m_lastSelectedItem) { - KisShadeSelectorLineComboBox *parent = dynamic_cast(this->parent()); - Q_ASSERT(parent); - parent->setConfiguration(m_lastSelectedItem->toString()); - } - hide(); + } + if (m_lastSelectedItem) { + KisShadeSelectorLineComboBox *parent = dynamic_cast(this->parent()); + Q_ASSERT(parent); + parent->setConfiguration(m_lastSelectedItem->toString()); } e->accept(); + + this->parentWidget()->update(); + hide(); } diff --git a/plugins/dockers/advancedcolorselector/kis_shade_selector_line_editor.h b/plugins/dockers/advancedcolorselector/kis_shade_selector_line_editor.h --- a/plugins/dockers/advancedcolorselector/kis_shade_selector_line_editor.h +++ b/plugins/dockers/advancedcolorselector/kis_shade_selector_line_editor.h @@ -34,11 +34,16 @@ class KisShadeSelectorLineEditor : public KisShadeSelectorLineBase { Q_OBJECT public: - KisShadeSelectorLineEditor(QWidget* parent); + KisShadeSelectorLineEditor(QWidget* parent, KisShadeSelectorLine *preview); QString toString() const override; void fromString(const QString &string) override; + void mousePressEvent(QMouseEvent* e) override; + +private: + void updatePreview(); + private Q_SLOTS: void valueChanged(); @@ -46,6 +51,8 @@ void requestActivateLine(QWidget *widget); private: + KisShadeSelectorLine* m_line_preview; + KisDoubleParseSpinBox* m_hueDelta; KisDoubleParseSpinBox* m_saturationDelta; KisDoubleParseSpinBox* m_valueDelta; diff --git a/plugins/dockers/advancedcolorselector/kis_shade_selector_line_editor.cpp b/plugins/dockers/advancedcolorselector/kis_shade_selector_line_editor.cpp --- a/plugins/dockers/advancedcolorselector/kis_shade_selector_line_editor.cpp +++ b/plugins/dockers/advancedcolorselector/kis_shade_selector_line_editor.cpp @@ -17,12 +17,15 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#include "kis_shade_selector_line_editor.h" +#include +#include "kis_shade_selector_line_editor.h" #include "kis_double_parse_spin_box.h" +#include "kis_config.h" -KisShadeSelectorLineEditor::KisShadeSelectorLineEditor(QWidget* parent) +KisShadeSelectorLineEditor::KisShadeSelectorLineEditor(QWidget* parent, KisShadeSelectorLine* preview) : KisShadeSelectorLineBase(parent) + , m_line_preview(preview) { QVBoxLayout* layout = new QVBoxLayout(this); @@ -70,6 +73,20 @@ connect(m_saturationShift, SIGNAL(valueChanged(double)), SLOT(valueChanged())); connect(m_valueShift, SIGNAL(valueChanged(double)), SLOT(valueChanged())); + KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector"); + QString lineset = cfg.readEntry( + "minimalShadeSelectorLineConfig", "0|0.2|0|0|0|0|0;1|0|1|1|0|0|0;2|0|-1|1|0|0|0;").split(";").at(0); + fromString(lineset); + + updatePreview(); +} + +void KisShadeSelectorLineEditor::updatePreview(){ + m_line_preview->setParam( + m_hueDelta->value(), m_saturationDelta->value(), m_valueDelta->value(), + m_hueShift->value(), m_saturationShift->value(), m_valueShift->value() + ); + this->parentWidget()->update(m_line_preview->geometry()); } QString KisShadeSelectorLineEditor::toString() const @@ -98,5 +115,11 @@ } void KisShadeSelectorLineEditor::valueChanged() { + updatePreview(); emit requestActivateLine(this); } + +void KisShadeSelectorLineEditor::mousePressEvent(QMouseEvent* e) { + e->accept(); +} +