Krita Source Code Documentation
Loading...
Searching...
No Matches
KisMinimalShadeSelector Class Reference

#include <kis_minimal_shade_selector.h>

+ Inheritance diagram for KisMinimalShadeSelector:

Public Slots

void updateSettings () override
 
- Public Slots inherited from KisColorSelectorBase
virtual void reset ()
 
virtual void showPopup (Move move=MoveToMousePosition)
 
virtual void updateSettings ()
 

Public Member Functions

 KisMinimalShadeSelector (QWidget *parent=0)
 
void setCanvas (KisCanvas2 *canvas) override
 
void unsetCanvas () override
 
 ~KisMinimalShadeSelector () override
 
- Public Member Functions inherited from KisColorSelectorBase
const KoColorSpacecolorSpace () const
 
KisDisplayColorConverterconverter () const
 
void enterEvent (QEnterEvent *e) override
 
 KisColorSelectorBase (QWidget *parent=0)
 
void leaveEvent (QEvent *e) override
 
void mousePressEvent (QMouseEvent *) override
 
void mouseReleaseEvent (QMouseEvent *) override
 
void setColorSpace (const KoColorSpace *colorSpace)
 
void setPopupBehaviour (bool onMouseOver, bool onMouseClick)
 
void showColorPreview ()
 
void slotUpdateColorAndPreview (QPair< KoColor, Acs::ColorRole > color)
 
void tryHideAllPopups ()
 
void updateBaseColorPreview (const KoColor &color)
 
void updateColor (const KoColor &color, Acs::ColorRole role, bool needsExplicitColorReset)
 
void updateColorPreview (const KoColor &color)
 
void updatePreviousColorPreview ()
 
 ~KisColorSelectorBase () override
 

Protected Slots

void canvasResourceChanged (int key, const QVariant &v) override
 
- Protected Slots inherited from KisColorSelectorBase
virtual void canvasResourceChanged (int key, const QVariant &v)
 if you overwrite this, keep in mind, that you should set the color only, if m_colorUpdateAllowed is true
 
void hidePopup ()
 
void updateLastUsedColorPreview (const KoColor &color)
 

Protected Member Functions

KisColorSelectorBasecreatePopup () const override
 
void mouseMoveEvent (QMouseEvent *) override
 
void mousePressEvent (QMouseEvent *) override
 
void mouseReleaseEvent (QMouseEvent *) override
 
void paintEvent (QPaintEvent *) override
 
void setColor (const KoColor &color) override
 
- Protected Member Functions inherited from KisColorSelectorBase
void changeEvent (QEvent *event) override
 
void dragEnterEvent (QDragEnterEvent *) override
 
void dropEvent (QDropEvent *) override
 
bool isPopup () const
 
void keyPressEvent (QKeyEvent *) override
 
void mouseMoveEvent (QMouseEvent *event) override
 
void requestUpdateColorAndPreview (const KoColor &color, Acs::ColorRole role)
 
void setHidingTime (int time)
 
void showEvent (QShowEvent *event) override
 

Private Attributes

QPointer< KisCanvas2m_canvas
 
KoColor m_lastRealColor
 
QScopedPointer< KisColorSelectorBaseProxym_proxy
 
QList< KisShadeSelectorLine * > m_shadingLines
 

Additional Inherited Members

- Public Types inherited from KisColorSelectorBase
enum  Move { MoveToMousePosition , DontMove }
 
- Protected Attributes inherited from KisColorSelectorBase
QPointer< KisCanvas2m_canvas
 
bool m_colorUpdateAllowed
 
bool m_colorUpdateSelf
 
QWidget * m_parent
 
KisColorSelectorBasem_popup
 

Detailed Description

Definition at line 19 of file kis_minimal_shade_selector.h.

Constructor & Destructor Documentation

◆ KisMinimalShadeSelector()

KisMinimalShadeSelector::KisMinimalShadeSelector ( QWidget * parent = 0)
explicit

Definition at line 26 of file kis_minimal_shade_selector.cpp.

27 : KisColorSelectorBase(parent)
28 , m_canvas(0)
30{
31 setAcceptDrops(true);
32
33 QVBoxLayout* l = new QVBoxLayout(this);
34 l->setSpacing(0);
35 l->setContentsMargins(0, 0, 0, 0);
36
38
39 setMouseTracking(true);
40}
KisColorSelectorBase(QWidget *parent=0)
QScopedPointer< KisColorSelectorBaseProxy > m_proxy

References updateSettings().

◆ ~KisMinimalShadeSelector()

KisMinimalShadeSelector::~KisMinimalShadeSelector ( )
override

Definition at line 42 of file kis_minimal_shade_selector.cpp.

43{
44}

Member Function Documentation

◆ canvasResourceChanged

void KisMinimalShadeSelector::canvasResourceChanged ( int key,
const QVariant & v )
overrideprotectedslot

Definition at line 144 of file kis_minimal_shade_selector.cpp.

145{
146 if(m_colorUpdateAllowed==false)
147 return;
148
149 KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector");
150
151 bool onForeground = cfg.readEntry("shadeSelectorUpdateOnForeground", false);
152 bool onBackground = cfg.readEntry("shadeSelectorUpdateOnBackground", true);
153
154 if ((key == KoCanvasResource::ForegroundColor && onForeground)
155 || (key == KoCanvasResource::BackgroundColor && onBackground)) {
156
157 setColor(v.value<KoColor>());
158 }
159}
qreal v
void setColor(const KoColor &color) override
@ BackgroundColor
The active background color selected for this canvas.
@ ForegroundColor
The active foreground color selected for this canvas.

References KoCanvasResource::BackgroundColor, KoCanvasResource::ForegroundColor, KisColorSelectorBase::m_colorUpdateAllowed, setColor(), and v.

◆ createPopup()

KisColorSelectorBase * KisMinimalShadeSelector::createPopup ( ) const
overrideprotectedvirtual

◆ mouseMoveEvent()

void KisMinimalShadeSelector::mouseMoveEvent ( QMouseEvent * e)
overrideprotected

Definition at line 115 of file kis_minimal_shade_selector.cpp.

116{
117 Q_FOREACH (KisShadeSelectorLine* line, m_shadingLines) {
118 QMouseEvent newEvent(e->type(),
119 line->mapFromGlobal(e->globalPos()),
120 e->button(),
121 e->buttons(),
122 e->modifiers());
123 if(line->rect().contains(newEvent.pos()))
124 line->mouseMoveEvent(&newEvent);
125 }
127}
void mouseMoveEvent(QMouseEvent *event) override
QList< KisShadeSelectorLine * > m_shadingLines
void mouseMoveEvent(QMouseEvent *) override

References m_shadingLines, KisShadeSelectorLine::mouseMoveEvent(), and KisColorSelectorBase::mouseMoveEvent().

◆ mousePressEvent()

void KisMinimalShadeSelector::mousePressEvent ( QMouseEvent * e)
overrideprotected

Definition at line 101 of file kis_minimal_shade_selector.cpp.

102{
103 Q_FOREACH (KisShadeSelectorLine* line, m_shadingLines) {
104 QMouseEvent newEvent(e->type(),
105 line->mapFromGlobal(e->globalPos()),
106 e->button(),
107 e->buttons(),
108 e->modifiers());
109 if(line->rect().contains(newEvent.pos()))
110 line->mousePressEvent(&newEvent);
111 }
113}
void mousePressEvent(QMouseEvent *) override
void mousePressEvent(QMouseEvent *) override

References m_shadingLines, KisColorSelectorBase::mousePressEvent(), and KisShadeSelectorLine::mousePressEvent().

◆ mouseReleaseEvent()

void KisMinimalShadeSelector::mouseReleaseEvent ( QMouseEvent * e)
overrideprotected

Definition at line 129 of file kis_minimal_shade_selector.cpp.

130{
131 Q_FOREACH (KisShadeSelectorLine* line, m_shadingLines) {
132 QMouseEvent newEvent(e->type(),
133 line->mapFromGlobal(e->globalPos()),
134 e->button(),
135 e->buttons(),
136 e->modifiers());
137
138 if(line->rect().contains(newEvent.pos()))
139 line->mouseReleaseEvent(&newEvent);
140 }
142}
void mouseReleaseEvent(QMouseEvent *) override
void mouseReleaseEvent(QMouseEvent *) override

References m_shadingLines, KisColorSelectorBase::mouseReleaseEvent(), and KisShadeSelectorLine::mouseReleaseEvent().

◆ paintEvent()

void KisMinimalShadeSelector::paintEvent ( QPaintEvent * )
overrideprotected

Definition at line 161 of file kis_minimal_shade_selector.cpp.

162{
163 QPainter p(this);
164 KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector");
165
166 if (cfg.readEntry("useCustomColorForBackground", false)) {
167 p.fillRect(0,0,width(), height(), cfg.readEntry("customSelectorBackgroundColor", QColor(Qt::gray)));
168 } else {
169 p.fillRect(0,0,width(), height(), qApp->palette().window().color());
170 }
171}
const Params2D p

References p.

◆ setCanvas()

void KisMinimalShadeSelector::setCanvas ( KisCanvas2 * canvas)
overridevirtual

Reimplemented from KisColorSelectorBase.

Definition at line 52 of file kis_minimal_shade_selector.cpp.

53{
55 m_canvas = canvas;
56}
virtual void setCanvas(KisCanvas2 *canvas)

References m_canvas, and KisColorSelectorBase::setCanvas().

◆ setColor()

void KisMinimalShadeSelector::setColor ( const KoColor & color)
overrideprotectedvirtual

Reimplemented from KisColorSelectorBase.

Definition at line 58 of file kis_minimal_shade_selector.cpp.

59{
60 m_lastRealColor = color;
61
62 for(int i=0; i<m_shadingLines.size(); i++) {
63 m_shadingLines.at(i)->setColor(color);
64 }
65}

References m_lastRealColor, and m_shadingLines.

◆ unsetCanvas()

void KisMinimalShadeSelector::unsetCanvas ( )
overridevirtual

◆ updateSettings

void KisMinimalShadeSelector::updateSettings ( )
overrideslot

Definition at line 67 of file kis_minimal_shade_selector.cpp.

68{
70 KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector");
71
72 QString stri = cfg.readEntry("minimalShadeSelectorLineConfig", "0|0.2|0|0");
73 QStringList strili = stri.split(';', Qt::SkipEmptyParts);
74
75 int lineCount = strili.size();
76 while(lineCount-m_shadingLines.size() > 0) {
77 KisShadeSelectorLine *line = new KisShadeSelectorLine(m_proxy.data(), this);
78 m_shadingLines.append(line);
79 m_shadingLines.last()->setLineNumber(m_shadingLines.size()-1);
80 layout()->addWidget(m_shadingLines.last());
81 }
82 while(lineCount-m_shadingLines.size() < 0) {
83 layout()->removeWidget(m_shadingLines.last());
84 delete m_shadingLines.takeLast();
85 }
86
87 for(int i=0; i<strili.size(); i++) {
88 m_shadingLines.at(i)->fromString(strili.at(i));
89 }
90
91 int lineHeight = cfg.readEntry("minimalShadeSelectorLineHeight", 20);
92 setMinimumHeight(lineCount*lineHeight+2*lineCount);
93 setMaximumHeight(lineCount*lineHeight+2*lineCount);
94
95 for(int i=0; i<m_shadingLines.size(); i++)
96 m_shadingLines.at(i)->updateSettings();
97
98 setPopupBehaviour(false, false);
99}
void setPopupBehaviour(bool onMouseOver, bool onMouseClick)

References m_proxy, m_shadingLines, KisColorSelectorBase::setPopupBehaviour(), and KisColorSelectorBase::updateSettings().

Member Data Documentation

◆ m_canvas

QPointer<KisCanvas2> KisMinimalShadeSelector::m_canvas
private

Definition at line 47 of file kis_minimal_shade_selector.h.

◆ m_lastRealColor

KoColor KisMinimalShadeSelector::m_lastRealColor
private

Definition at line 46 of file kis_minimal_shade_selector.h.

◆ m_proxy

QScopedPointer<KisColorSelectorBaseProxy> KisMinimalShadeSelector::m_proxy
private

Definition at line 49 of file kis_minimal_shade_selector.h.

◆ m_shadingLines

QList<KisShadeSelectorLine*> KisMinimalShadeSelector::m_shadingLines
private

Definition at line 45 of file kis_minimal_shade_selector.h.


The documentation for this class was generated from the following files: