void KisMinimalShadeSelector::updateSettings()
{
    KisColorSelectorBase::updateSettings();
    KConfigGroup cfg =  KSharedConfig::openConfig()->group("advancedColorSelector");

    QString stri = cfg.readEntry("minimalShadeSelectorLineConfig", "0|0.2|0|0");
    QStringList strili = stri.split(';', QString::SkipEmptyParts);

    int lineCount = strili.size();
    while(lineCount-m_shadingLines.size() > 0) {
        KisShadeSelectorLine *line = new KisShadeSelectorLine(m_proxy.data(), this);
        m_shadingLines.append(line);
        m_shadingLines.last()->setLineNumber(m_shadingLines.size()-1);
        layout()->addWidget(m_shadingLines.last());
    }
    while(lineCount-m_shadingLines.size() < 0) {
        layout()->removeWidget(m_shadingLines.last());
        delete m_shadingLines.takeLast();
    }

    for(int i=0; i<strili.size(); i++) {
        m_shadingLines.at(i)->fromString(strili.at(i));
    }

    int lineHeight = cfg.readEntry("minimalShadeSelectorLineHeight", 20);
    setMinimumHeight(lineCount*lineHeight+2*lineCount);
    setMaximumHeight(lineCount*lineHeight+2*lineCount);

    for(int i=0; i<m_shadingLines.size(); i++)
        m_shadingLines.at(i)->updateSettings();

    setPopupBehaviour(false, false);
}
void KisColorPatches::updateSettings()
{
    KisColorSelectorBase::updateSettings();

    KConfigGroup cfg = KGlobal::config()->group("advancedColorSelector");

    if(cfg.readEntry(m_configPrefix+"Alignment", false))
        m_direction=Vertical;
    else
        m_direction=Horizontal;

    m_allowScrolling=cfg.readEntry(m_configPrefix+"Scrolling", true);
    m_numCols=cfg.readEntry(m_configPrefix+"NumCols", 1);
    m_numRows=cfg.readEntry(m_configPrefix+"NumRows", 1);
    m_patchCount=cfg.readEntry(m_configPrefix+"Count", 15);
    m_patchWidth=cfg.readEntry(m_configPrefix+"Width", 20);
    m_patchHeight=cfg.readEntry(m_configPrefix+"Height", 20);
    if(m_patchHeight == 0) {
        m_patchHeight = 1;
    }

    if(parentWidget()==0) {
        // this instance is a popup
        m_allowScrolling = false;
        m_direction = Horizontal;
        m_patchWidth*=2;
        m_patchHeight*=2;
    }

    for(int i=0; i<m_buttonList.size(); i++) {
        m_buttonList.at(i)->setGeometry(0, i*m_patchHeight, m_patchWidth, m_patchHeight);
    }

    setMaximumWidth(QWIDGETSIZE_MAX);
    setMinimumWidth(1);
    setMaximumHeight(QWIDGETSIZE_MAX);
    setMinimumHeight(1);

    if(m_allowScrolling && m_direction == Horizontal) {
        setMaximumHeight(m_numRows*m_patchHeight);
        setMinimumHeight(m_numRows*m_patchHeight);
    }

    if(m_allowScrolling && m_direction == Vertical) {
        setMaximumWidth(m_numCols*m_patchWidth);
        setMinimumWidth(m_numCols*m_patchWidth);
    }

    if(m_allowScrolling == false) {
        m_scrollValue = 0;
    }

    QResizeEvent dummy(size(), QSize(-1,-1));
    resizeEvent(&dummy);

    setPopupBehaviour(false, false);
    update();
}