diff --git a/plugins/dockers/advancedcolorselector/kis_color_selector_container.h b/plugins/dockers/advancedcolorselector/kis_color_selector_container.h --- a/plugins/dockers/advancedcolorselector/kis_color_selector_container.h +++ b/plugins/dockers/advancedcolorselector/kis_color_selector_container.h @@ -62,6 +62,7 @@ KisGamutMaskToolbar* m_gamutMaskToolbar; int m_onDockerResizeSetting; + bool m_showColorSelector; QBoxLayout* m_widgetLayout; diff --git a/plugins/dockers/advancedcolorselector/kis_color_selector_container.cpp b/plugins/dockers/advancedcolorselector/kis_color_selector_container.cpp --- a/plugins/dockers/advancedcolorselector/kis_color_selector_container.cpp +++ b/plugins/dockers/advancedcolorselector/kis_color_selector_container.cpp @@ -50,6 +50,7 @@ m_minimalShadeSelector(new KisMinimalShadeSelector(this)), m_shadeSelector(m_myPaintShadeSelector), m_gamutMaskToolbar(new KisGamutMaskToolbar(this)), + m_showColorSelector(true), m_canvas(0) { m_widgetLayout = new QBoxLayout(QBoxLayout::TopToBottom, this); @@ -169,6 +170,20 @@ { KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector"); m_onDockerResizeSetting = (int)cfg.readEntry("onDockerResize", 0); + m_showColorSelector = (bool) cfg.readEntry("showColorSelector", true); + + if (m_showColorSelector) { + m_colorSelector->show(); + + if (m_colorSelector->configuration().mainType == KisColorSelectorConfiguration::Wheel) { + m_gamutMaskToolbar->show(); + } else { + m_gamutMaskToolbar->hide(); + } + } else { + m_colorSelector->hide(); + m_gamutMaskToolbar->hide(); + } QString type = cfg.readEntry("shadeSelectorType", "Minimal"); @@ -189,14 +204,6 @@ if(m_shadeSelector!=0) m_shadeSelector->show(); - - - if (m_colorSelector->configuration().mainType == KisColorSelectorConfiguration::Wheel) { - m_gamutMaskToolbar->show(); - } else { - m_gamutMaskToolbar->hide(); - } - } void KisColorSelectorContainer::reactOnLayerChange() diff --git a/plugins/dockers/advancedcolorselector/kis_color_selector_ng_docker_widget.h b/plugins/dockers/advancedcolorselector/kis_color_selector_ng_docker_widget.h --- a/plugins/dockers/advancedcolorselector/kis_color_selector_ng_docker_widget.h +++ b/plugins/dockers/advancedcolorselector/kis_color_selector_ng_docker_widget.h @@ -21,6 +21,8 @@ #include #include +#include + #include class QAction; @@ -57,8 +59,14 @@ QAction * m_colorHistoryAction; QAction * m_commonColorsAction; + QHBoxLayout* m_widgetLayout; + QVBoxLayout* m_mainLayout; + QHBoxLayout* m_horizontalPatchesContainer; + QVBoxLayout* m_sidebarLayout; + QHBoxLayout* m_verticalColorPatchesLayout; // vertical color patches should be added here QVBoxLayout* m_horizontalColorPatchesLayout;//horizontal ----------"---------------------- + QToolButton* m_fallbackSettingsButton; QPointer m_canvas; diff --git a/plugins/dockers/advancedcolorselector/kis_color_selector_ng_docker_widget.cpp b/plugins/dockers/advancedcolorselector/kis_color_selector_ng_docker_widget.cpp --- a/plugins/dockers/advancedcolorselector/kis_color_selector_ng_docker_widget.cpp +++ b/plugins/dockers/advancedcolorselector/kis_color_selector_ng_docker_widget.cpp @@ -20,10 +20,12 @@ #include #include +#include #include #include #include +#include #include #include @@ -48,8 +50,13 @@ QWidget(parent), m_colorHistoryAction(0), m_commonColorsAction(0), + m_widgetLayout(0), + m_mainLayout(0), + m_horizontalPatchesContainer(0), + m_sidebarLayout(0), m_verticalColorPatchesLayout(0), m_horizontalColorPatchesLayout(0), + m_fallbackSettingsButton(new QToolButton(this)), m_canvas(0) { setAutoFillBackground(true); @@ -63,16 +70,47 @@ //shade selector + // fallback settings button when the color selector is disabled + m_fallbackSettingsButton->setIcon(KisIconUtils::loadIcon("configure")); + m_fallbackSettingsButton->setIconSize(QSize(22,22)); + m_fallbackSettingsButton->setAutoRaise(true); + m_fallbackSettingsButton->hide(); + //layout + m_widgetLayout = new QHBoxLayout(); + m_widgetLayout->setSpacing(0); + m_widgetLayout->setMargin(0); + + m_mainLayout = new QVBoxLayout(); + m_mainLayout->setSpacing(0); + m_mainLayout->setMargin(0); + + m_horizontalPatchesContainer = new QHBoxLayout(); + m_horizontalPatchesContainer->setSpacing(0); + m_horizontalPatchesContainer->setMargin(0); + + m_sidebarLayout = new QVBoxLayout(); + m_sidebarLayout->setSpacing(0); + m_sidebarLayout->setMargin(0); + m_verticalColorPatchesLayout = new QHBoxLayout(); m_verticalColorPatchesLayout->setSpacing(0); m_verticalColorPatchesLayout->setMargin(0); - m_verticalColorPatchesLayout->addWidget(m_colorSelectorContainer); - m_horizontalColorPatchesLayout = new QVBoxLayout(this); + m_horizontalColorPatchesLayout = new QVBoxLayout(); m_horizontalColorPatchesLayout->setSpacing(0); m_horizontalColorPatchesLayout->setMargin(0); - m_horizontalColorPatchesLayout->addLayout(m_verticalColorPatchesLayout); + + m_horizontalPatchesContainer->addLayout(m_horizontalColorPatchesLayout); + + m_mainLayout->addWidget(m_colorSelectorContainer); + m_mainLayout->addLayout(m_horizontalPatchesContainer); + + m_sidebarLayout->addLayout(m_verticalColorPatchesLayout); + + m_widgetLayout->addLayout(m_mainLayout); + m_widgetLayout->addLayout(m_sidebarLayout); + setLayout(m_widgetLayout); updateLayout(); @@ -99,6 +137,7 @@ m_commonColorsAction = KisActionRegistry::instance()->makeQAction("show_common_colors", this); connect(m_commonColorsAction, SIGNAL(triggered()), m_commonColorsWidget, SLOT(showPopup()), Qt::UniqueConnection); + connect(m_fallbackSettingsButton, SIGNAL(clicked()), this, SLOT(openSettings())); } void KisColorSelectorNgDockerWidget::unsetCanvas() @@ -154,6 +193,7 @@ { KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector"); + bool showColorSelector = (bool) cfg.readEntry("showColorSelector", true); //color patches bool m_lastColorsShow = cfg.readEntry("lastUsedColorsShow", true); @@ -170,12 +210,14 @@ else m_commonColorsDirection=KisColorPatches::Horizontal; - m_verticalColorPatchesLayout->removeWidget(m_colorHistoryWidget); m_verticalColorPatchesLayout->removeWidget(m_commonColorsWidget); m_horizontalColorPatchesLayout->removeWidget(m_colorHistoryWidget); m_horizontalColorPatchesLayout->removeWidget(m_commonColorsWidget); + m_sidebarLayout->removeWidget(m_fallbackSettingsButton); + m_mainLayout->removeWidget(m_fallbackSettingsButton); + if(m_lastColorsShow==false) m_colorHistoryWidget->hide(); else @@ -188,6 +230,9 @@ m_commonColorsWidget->show(); } + + bool fallbackSettingsButtonVertical = true; + if(m_lastColorsShow && m_lastColorsDirection==KisColorPatches::Vertical) { m_verticalColorPatchesLayout->addWidget(m_colorHistoryWidget); } @@ -198,10 +243,29 @@ if(m_lastColorsShow && m_lastColorsDirection==KisColorPatches::Horizontal) { m_horizontalColorPatchesLayout->addWidget(m_colorHistoryWidget); + fallbackSettingsButtonVertical = false; } if(m_commonColorsShow && m_commonColorsDirection==KisColorPatches::Horizontal) { m_horizontalColorPatchesLayout->addWidget(m_commonColorsWidget); + fallbackSettingsButtonVertical = false; + } + + // prefer the vertical column, if patch components have different layout + if (m_commonColorsDirection != m_lastColorsDirection) { + fallbackSettingsButtonVertical = true; + } + + if (!showColorSelector) { + if (fallbackSettingsButtonVertical) { + m_sidebarLayout->addWidget(m_fallbackSettingsButton); + } else { + m_horizontalPatchesContainer->addWidget(m_fallbackSettingsButton); + } + + m_fallbackSettingsButton->show(); + } else { + m_fallbackSettingsButton->hide(); } updateGeometry(); diff --git a/plugins/dockers/advancedcolorselector/kis_color_selector_settings.cpp b/plugins/dockers/advancedcolorselector/kis_color_selector_settings.cpp --- a/plugins/dockers/advancedcolorselector/kis_color_selector_settings.cpp +++ b/plugins/dockers/advancedcolorselector/kis_color_selector_settings.cpp @@ -170,6 +170,7 @@ cfg.writeEntry("onDockerResize", ui->dockerResizeOptionsComboBox->currentIndex()); cfg.writeEntry("zoomSelectorOptions", ui->zoomSelectorOptionComboBox->currentIndex() ); cfg.writeEntry("zoomSize", ui->popupSize->value()); + cfg.writeEntry("showColorSelector", ui->chkShowColorSelector->isChecked()); bool useCustomColorSpace = ui->useDifferentColorSpaceCheckbox->isChecked(); const KoColorSpace* colorSpace = useCustomColorSpace ? ui->colorSpace->currentColorSpace() : 0; @@ -358,8 +359,6 @@ ui->lastUsedColorsNumRows->setEnabled(toggled); } - - void KisColorSelectorSettings::changedACSShadeSelectorType(int index) { @@ -399,7 +398,7 @@ ui->dockerResizeOptionsComboBox->setCurrentIndex( (int)cfg.readEntry("onDockerResize", 0) ); ui->zoomSelectorOptionComboBox->setCurrentIndex( (int) cfg.readEntry("zoomSelectorOptions", 0) ); ui->popupSize->setValue(cfg.readEntry("zoomSize", 280)); - + ui->chkShowColorSelector->setChecked((bool) cfg.readEntry("showColorSelector", true)); { KisConfig kisconfig(true); @@ -525,6 +524,7 @@ ui->dockerResizeOptionsComboBox->setCurrentIndex(0); ui->zoomSelectorOptionComboBox->setCurrentIndex(0); ui->popupSize->setValue(280); + ui->chkShowColorSelector->setChecked(true); ui->useDifferentColorSpaceCheckbox->setChecked(false); diff --git a/plugins/dockers/advancedcolorselector/wdg_color_selector_settings.ui b/plugins/dockers/advancedcolorselector/wdg_color_selector_settings.ui --- a/plugins/dockers/advancedcolorselector/wdg_color_selector_settings.ui +++ b/plugins/dockers/advancedcolorselector/wdg_color_selector_settings.ui @@ -6,7 +6,7 @@ 0 0 - 721 + 723 1108 @@ -79,269 +79,281 @@ - - - - - - - - 0 - 0 - - - - - - - - Qt::Vertical - - - QSizePolicy::MinimumExpanding - - - - 20 - 5 - - - - - - - - - - 6 - - - - - 12 - - - 6 - - - 6 - - - - - - - - 0 - 0 - - - - Qt::LeftToRight - - - Color &Model Type: - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - colorSelectorConfiguration - - - - - - - - 0 - 0 - - - - - - - - - - - 0 - 0 - - - - Type Description goes here - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - true - - - - - - - - - - 0 - 0 - - - - Luma Coefficients - - + + + Show color selector + + + true + + + + + + - - - 0 + + + + 0 + 0 + - - 0 + + + + + + Qt::Vertical - + + QSizePolicy::MinimumExpanding + + + + 20 + 5 + + + + + + + + + + 6 + + + + + 12 + + 6 - - - - - 0 - 0 - - - - Red': - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 50 - 0 - - - - 4 - - - - - - - - 0 - 0 - - - - Green': - - + + 6 + + + + + + + + 0 + 0 + + + + Qt::LeftToRight + + + Color &Model Type: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + colorSelectorConfiguration + + + + + + + + 0 + 0 + + + + + - - + + - + 0 0 - Blue': + Type Description goes here - - - - - - - 0 - 0 - - - - - 50 - 0 - - - - 4 - - - - - - - - 0 - 0 - - - - - 50 - 0 - - - - 4 - - - - - - - <html><head/><body><p>This sets the gamma value that the linearised HSY Luminosity is crunched with. 1 makes the selector fully linear, 2.2 is a practical default value.</p></body></html> - - - 1 - - - -3.000000000000000 - - - 3.000000000000000 - - - 0.100000000000000 - - - 2.200000000000000 + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - - - - Gamma: + + true + + + + + 0 + 0 + + + + Luma Coefficients + + + + + + 0 + + + 0 + + + 6 + + + + + + 0 + 0 + + + + Red': + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + 4 + + + + + + + + 0 + 0 + + + + Green': + + + + + + + + 0 + 0 + + + + Blue': + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + 4 + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + 4 + + + + + + + <html><head/><body><p>This sets the gamma value that the linearised HSY Luminosity is crunched with. 1 makes the selector fully linear, 2.2 is a practical default value.</p></body></html> + + + 1 + + + -3.000000000000000 + + + 3.000000000000000 + + + 0.100000000000000 + + + 2.200000000000000 + + + + + + + Gamma: + + + + + + + + - - - - - + + + + +