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(); }
KisColorSelectorBase* KisColorSelector::createPopup() const { KisColorSelectorBase* popup = new KisColorSelector(0); popup->setColor(m_lastRealColor); return popup; }