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

#include <kis_common_colors.h>

+ Inheritance diagram for KisCommonColors:

Public Slots

void recalculate ()
 
void setColors (QList< KoColor > colors)
 
void updateSettings () override
 
- Public Slots inherited from KisColorPatches
void updateSettings () override
 
- Public Slots inherited from KisColorSelectorBase
virtual void reset ()
 
virtual void showPopup (Move move=MoveToMousePosition)
 
virtual void updateSettings ()
 

Public Member Functions

KisColorSelectorBasecreatePopup () const override
 
 KisCommonColors (QWidget *parent=0)
 
void setCanvas (KisCanvas2 *canvas) override
 
void unsetCanvas () override
 
- Public Member Functions inherited from KisColorPatches
void addColorPatch (const KoColor &color)
 
QList< KoColorcolors () const
 
 KisColorPatches (QString configPrefix, QWidget *parent=0)
 
void mousePressEvent (QMouseEvent *) override
 
void mouseReleaseEvent (QMouseEvent *) override
 
int patchCount () const
 
void setAdditionalButtons (QList< QWidget * > buttonList)
 
void setColors (const QList< KoColor > &colors)
 
- 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
 
virtual void setColor (const KoColor &color)
 
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
 

Private Attributes

QList< KoColorm_calculatedColors
 
KisImageWSP m_image
 
QMutex m_mutex
 
QTimer m_recalculationTimer
 
QToolButton * m_reloadButton
 

Additional Inherited Members

- Public Types inherited from KisColorPatches
enum  Direction { Horizontal , Vertical }
 
- Public Types inherited from KisColorSelectorBase
enum  Move { MoveToMousePosition , DontMove }
 
- 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 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
 
- Protected Attributes inherited from KisColorSelectorBase
QPointer< KisCanvas2m_canvas
 
bool m_colorUpdateAllowed
 
bool m_colorUpdateSelf
 
QWidget * m_parent
 
KisColorSelectorBasem_popup
 

Detailed Description

Definition at line 17 of file kis_common_colors.h.

Constructor & Destructor Documentation

◆ KisCommonColors()

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

Definition at line 31 of file kis_common_colors.cpp.

31 :
32 KisColorPatches("commonColors", parent)
33{
34 m_reloadButton = new QToolButton(this);
35 m_reloadButton->setIcon(KisIconUtils::loadIcon("reload-preset-16")); //small reload icon
36 m_reloadButton->setToolTip(i18n("Create a list of colors from the image"));
37 m_reloadButton->setAutoRaise(true);
38 connect(m_reloadButton, SIGNAL(clicked()), this, SLOT(recalculate()));
39
41 QList<QWidget*> tmpList;
42 tmpList.append(m_reloadButton);
43 setAdditionalButtons(tmpList);
44
45 m_recalculationTimer.setInterval(2000);
46 m_recalculationTimer.setSingleShot(true);
47
48 connect(&m_recalculationTimer, SIGNAL(timeout()),
49 this, SLOT(recalculate()));
50
51}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void setAdditionalButtons(QList< QWidget * > buttonList)
KisColorPatches(QString configPrefix, QWidget *parent=0)
QToolButton * m_reloadButton
void updateSettings() override
QIcon loadIcon(const QString &name)

References connect(), KisIconUtils::loadIcon(), m_recalculationTimer, m_reloadButton, recalculate(), KisColorPatches::setAdditionalButtons(), and updateSettings().

Member Function Documentation

◆ createPopup()

KisColorSelectorBase * KisCommonColors::createPopup ( ) const
overridevirtual

Implements KisColorSelectorBase.

Definition at line 73 of file kis_common_colors.cpp.

74{
76 ret->setCanvas(m_canvas);
77 ret->setColors(colors());
78 return ret;
79}
QList< KoColor > colors() const
QPointer< KisCanvas2 > m_canvas
void setColors(QList< KoColor > colors)
void setCanvas(KisCanvas2 *canvas) override
KisCommonColors(QWidget *parent=0)

References KisColorPatches::colors(), KisCommonColors(), KisColorSelectorBase::m_canvas, setCanvas(), and setColors().

◆ recalculate

void KisCommonColors::recalculate ( )
slot

Definition at line 109 of file kis_common_colors.cpp.

110{
111 if (!m_canvas) {
112 return;
113 }
114 if(!m_reloadButton->isEnabled()) {
115 // on old computation is still running
116 // try later to recalculate
117 m_recalculationTimer.start();
118 return;
119 }
120 m_reloadButton->setEnabled(false);
121 qApp->processEvents();
122
123 KisImageWSP kisImage = m_canvas->image();
124
126
128 QThreadPool::globalInstance()->start(runner);
129}
KisPaintDeviceSP projection() const
QRect bounds() const override
QImage createThumbnail(qint32 maxw, qint32 maxh, QRect rect, qreal oversample=1, KoColorConversionTransformation::Intent renderingIntent=KoColorConversionTransformation::internalRenderingIntent(), KoColorConversionTransformation::ConversionFlags conversionFlags=KoColorConversionTransformation::internalConversionFlags())

References KisImage::bounds(), KisPaintDevice::createThumbnail(), KoColorConversionTransformation::internalConversionFlags(), KoColorConversionTransformation::internalRenderingIntent(), KisColorSelectorBase::m_canvas, m_recalculationTimer, m_reloadButton, KisColorPatches::patchCount(), and KisImage::projection().

◆ setCanvas()

void KisCommonColors::setCanvas ( KisCanvas2 * canvas)
overridevirtual

Reimplemented from KisColorPatches.

Definition at line 53 of file kis_common_colors.cpp.

54{
56
57 KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector");
58 if (cfg.readEntry("commonColorsAutoUpdate", false)) {
59 if (m_image) {
60 m_image->disconnect(this);
61 }
62 if (m_canvas) {
63 connect(m_canvas->image(), SIGNAL(sigImageUpdated(QRect)),
64 &m_recalculationTimer, SLOT(start()), Qt::UniqueConnection);
65 m_image = m_canvas->image();
66 }
67 else {
68 m_image = 0;
69 }
70 }
71}
void setCanvas(KisCanvas2 *canvas) override

References connect(), KisColorSelectorBase::m_canvas, m_image, m_recalculationTimer, and KisColorPatches::setCanvas().

◆ setColors

void KisCommonColors::setColors ( QList< KoColor > colors)
slot

Definition at line 101 of file kis_common_colors.cpp.

102{
103 QMutexLocker locker(&m_mutex);
105 m_reloadButton->setEnabled(true);
107}
void setColors(const QList< KoColor > &colors)
QList< KoColor > m_calculatedColors

References KisColorPatches::colors(), m_calculatedColors, m_mutex, m_reloadButton, and KisColorPatches::setColors().

◆ unsetCanvas()

void KisCommonColors::unsetCanvas ( )
inlineoverridevirtual

Reimplemented from KisColorPatches.

Definition at line 23 of file kis_common_colors.h.

23{}

◆ updateSettings

void KisCommonColors::updateSettings ( )
overrideslot

Definition at line 81 of file kis_common_colors.cpp.

82{
84
85 if(!(m_canvas && m_canvas->image()))
86 return;
87
88 KConfigGroup cfg = KSharedConfig::openConfig()->group("advancedColorSelector");
89 if (cfg.readEntry("commonColorsAutoUpdate", false)) {
90 connect(m_canvas->image(), SIGNAL(sigImageUpdated(QRect)),
91 &m_recalculationTimer, SLOT(start()), Qt::UniqueConnection);
92 }
93 else {
94 disconnect(m_canvas->image(), SIGNAL(sigImageUpdated(QRect)),
95 &m_recalculationTimer, SLOT(start()));
96 }
97
98 m_reloadButton->setEnabled(true);
99}
void updateSettings() override

References connect(), KisColorSelectorBase::m_canvas, m_recalculationTimer, m_reloadButton, and KisColorPatches::updateSettings().

Member Data Documentation

◆ m_calculatedColors

QList<KoColor> KisCommonColors::m_calculatedColors
private

Definition at line 35 of file kis_common_colors.h.

◆ m_image

KisImageWSP KisCommonColors::m_image
private

Definition at line 36 of file kis_common_colors.h.

◆ m_mutex

QMutex KisCommonColors::m_mutex
private

Definition at line 32 of file kis_common_colors.h.

◆ m_recalculationTimer

QTimer KisCommonColors::m_recalculationTimer
private

Definition at line 33 of file kis_common_colors.h.

◆ m_reloadButton

QToolButton* KisCommonColors::m_reloadButton
private

Definition at line 34 of file kis_common_colors.h.


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