void KisShadeSelectorLine::mousePressEvent(QMouseEvent* e)
{
    if(e->button()!=Qt::LeftButton && e->button()!=Qt::RightButton) {
        e->setAccepted(false);
        return;
    }

    QColor color(m_pixelCache.pixel(e->pos()));
    if(color==m_backgroundColor)
        return;

    KisColorSelectorBase* parent = dynamic_cast<KisColorSelectorBase*>(parentWidget());
    Q_ASSERT(parent);

    KisColorSelectorBase::ColorRole role = KisColorSelectorBase::Foreground;
    if(e->button()==Qt::RightButton)
        role = KisColorSelectorBase::Background;

    parent->commitColor(KoColor(color, KoColorSpaceRegistry::instance()->rgb8()), role);
    parent->KisColorSelectorBase::mousePressEvent(e);

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

    bool onRightClick = cfg.readEntry("shadeSelectorUpdateOnRightClick", false);
    bool onLeftClick = cfg.readEntry("shadeSelectorUpdateOnLeftClick", false);

    if((e->button()==Qt::LeftButton && onLeftClick) || (e->button()==Qt::RightButton && onRightClick)) {
        parent->setColor(parent->findGeneratingColor(KoColor(color, KoColorSpaceRegistry::instance()->rgb8())));
    }

    e->accept();
}
示例#2
0
KisColorSelectorBase* KisColorSelector::createPopup() const
{
    KisColorSelectorBase* popup = new KisColorSelector(0);
    popup->setColor(m_lastRealColor);
    return popup;
}