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

#include <kis_color_history.h>

+ Inheritance diagram for KisColorHistory:

Public Slots

void addColorToHistory (const KoColor &color)
 
void clearColorHistory ()
 
void colorHistoryChanged ()
 
void updateUserSettings ()
 
- 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

 KisColorHistory (QWidget *parent=0)
 
void setCanvas (KisCanvas2 *canvas) override
 
void unsetCanvas () override
 
 ~KisColorHistory ()
 
- 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 setCanvas (KisCanvas2 *canvas) override
 
void setColors (const QList< KoColor > &colors)
 
void unsetCanvas () 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
 
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
 

Protected Member Functions

KisColorSelectorBasecreatePopup () const 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 Member Functions

KisUniqueColorSetcolorHistoryModel ()
 
void updateColorHistory (const QList< KoColor > &history)
 

Private Attributes

QToolButton * m_clearButton
 
KisDocumentm_document
 
std::unique_ptr< KisUniqueColorSetm_fallbackColorHistoryModel
 
bool m_history_per_document = false
 
KisCanvasResourceProviderm_resourceProvider
 

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 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_color_history.h.

Constructor & Destructor Documentation

◆ KisColorHistory()

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

Definition at line 24 of file kis_color_history.cpp.

25 : KisColorPatches("lastUsedColors", parent)
26 , m_document(0)
28{
29 m_fallbackColorHistoryModel = std::make_unique<KisUniqueColorSet>(new KisUniqueColorSet(this));
30 m_clearButton = new QToolButton(this);
31 m_clearButton->setIcon(KisIconUtils::loadIcon("dialog-cancel-16"));
32 m_clearButton->setToolTip(i18n("Clear all color history"));
33 m_clearButton->setAutoRaise(true);
35
36 connect(m_clearButton, SIGNAL(clicked()), this, SLOT(clearColorHistory()));
37 connect(KisConfigNotifier::instance(), SIGNAL(colorHistoryModeChanged()), this, SLOT(updateUserSettings()));
38 connect(s_color_history_change_notifier, SIGNAL(colorHistoryChanged(const QList<KoColor>&)),
39 this, SLOT(colorHistoryChanged()));
40
42}
QToolButton * m_clearButton
KisDocument * m_document
std::unique_ptr< KisUniqueColorSet > m_fallbackColorHistoryModel
KisCanvasResourceProvider * m_resourceProvider
void setAdditionalButtons(QList< QWidget * > buttonList)
KisColorPatches(QString configPrefix, QWidget *parent=0)
static KisConfigNotifier * instance()
QIcon loadIcon(const QString &name)

References clearColorHistory(), colorHistoryChanged(), KisConfigNotifier::instance(), KisIconUtils::loadIcon(), m_clearButton, m_fallbackColorHistoryModel, KisColorPatches::setAdditionalButtons(), and updateUserSettings().

◆ ~KisColorHistory()

KisColorHistory::~KisColorHistory ( )

Definition at line 44 of file kis_color_history.cpp.

45{
46}

Member Function Documentation

◆ addColorToHistory

void KisColorHistory::addColorToHistory ( const KoColor & color)
slot

Definition at line 92 of file kis_color_history.cpp.

93{
94 // don't add color in erase mode. See https://bugs.kde.org/show_bug.cgi?id=298940
96
98
100 s_color_history_change_notifier->notifyColorHistoryChanged(colorHistoryModel()->colorList());
101}
const QString COMPOSITE_ERASE
KisUniqueColorSet * colorHistoryModel()
void updateColorHistory(const QList< KoColor > &history)
void addColor(const KoColor &color)

References KisUniqueColorSet::addColor(), colorHistoryModel(), COMPOSITE_ERASE, KisCanvasResourceProvider::currentCompositeOp(), m_resourceProvider, and updateColorHistory().

◆ clearColorHistory

void KisColorHistory::clearColorHistory ( )
slot

Definition at line 103 of file kis_color_history.cpp.

104{
105 QList<KoColor> empty;
107 updateColorHistory(empty);
108 s_color_history_change_notifier->notifyColorHistoryChanged(empty);
109}

References KisUniqueColorSet::clear(), colorHistoryModel(), and updateColorHistory().

◆ colorHistoryChanged

void KisColorHistory::colorHistoryChanged ( )
slot

Definition at line 136 of file kis_color_history.cpp.

137{
138 KIS_SAFE_ASSERT_RECOVER_RETURN(sender() != this);
139 setColors(colorHistoryModel()->colorList());
140}
void setColors(const QList< KoColor > &colors)
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128

References colorHistoryModel(), KIS_SAFE_ASSERT_RECOVER_RETURN, and KisColorPatches::setColors().

◆ colorHistoryModel()

◆ createPopup()

KisColorSelectorBase * KisColorHistory::createPopup ( ) const
overrideprotectedvirtual

Implements KisColorSelectorBase.

Definition at line 84 of file kis_color_history.cpp.

85{
87 ret->setCanvas(m_canvas);
88 ret->setColors(colors());
89 return ret;
90}
KisColorHistory(QWidget *parent=0)
void setCanvas(KisCanvas2 *canvas) override
QList< KoColor > colors() const
QPointer< KisCanvas2 > m_canvas

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

◆ setCanvas()

void KisColorHistory::setCanvas ( KisCanvas2 * canvas)
overridevirtual

Reimplemented from KisColorSelectorBase.

Definition at line 56 of file kis_color_history.cpp.

57{
58 if (!canvas) return;
59
61
63 m_resourceProvider->disconnect(this);
64 m_resourceProvider->colorHistoryModel()->disconnect(this);
65 }
66 if (m_document) {
67 m_document->colorHistoryModel()->disconnect(this);
68 }
69
70 m_resourceProvider = canvas->imageView()->resourceProvider();
71 m_document = canvas->viewManager()->document();
72
73 setColors(colorHistoryModel()->colorList());
74
75 connect(m_resourceProvider, SIGNAL(sigFGColorUsed(KoColor)),
76 this, SLOT(addColorToHistory(KoColor)), Qt::UniqueConnection);
77
78 // Messy, but this whole plugin should be removed shortly in favour of the wide gamut selector.
79 // We only really need this so the plugin will respond to the color history being cleared in the wide gamut selector.
80 connect(m_resourceProvider->colorHistoryModel(), SIGNAL(sigReset()), this, SLOT(colorHistoryChanged()));
81 connect(m_document->colorHistoryModel(), SIGNAL(sigReset()), this, SLOT(colorHistoryChanged()));
82}
KisViewManager * viewManager() const
QPointer< KisView > imageView() const
void addColorToHistory(const KoColor &color)
void setCanvas(KisCanvas2 *canvas) override
KisDocument * document() const

References addColorToHistory(), colorHistoryChanged(), KisDocument::colorHistoryModel, colorHistoryModel(), KisCanvasResourceProvider::colorHistoryModel(), KisViewManager::document(), KisCanvas2::imageView(), m_document, m_resourceProvider, KisColorPatches::setCanvas(), KisColorPatches::setColors(), and KisCanvas2::viewManager().

◆ unsetCanvas()

void KisColorHistory::unsetCanvas ( )
overridevirtual

Reimplemented from KisColorSelectorBase.

Definition at line 48 of file kis_color_history.cpp.

49{
51 m_document = 0;
52
54}
void unsetCanvas() override

References m_document, m_resourceProvider, and KisColorPatches::unsetCanvas().

◆ updateColorHistory()

void KisColorHistory::updateColorHistory ( const QList< KoColor > & history)
private

Definition at line 122 of file kis_color_history.cpp.

123{
124 Q_UNUSED(history);
125 setColors(colorHistoryModel()->colorList());
126}

References colorHistoryModel(), and KisColorPatches::setColors().

◆ updateUserSettings

void KisColorHistory::updateUserSettings ( )
slot

Definition at line 128 of file kis_color_history.cpp.

129{
130
131 KisConfig config(true);
132 m_history_per_document = config.colorHistoryPerDocument();
133 updateColorHistory(colorHistoryModel()->colorList()); // Show with respect to the current strategy
134}

References colorHistoryModel(), KisConfig::colorHistoryPerDocument(), m_history_per_document, and updateColorHistory().

Member Data Documentation

◆ m_clearButton

QToolButton* KisColorHistory::m_clearButton
private

Definition at line 49 of file kis_color_history.h.

◆ m_document

KisDocument* KisColorHistory::m_document
private

Definition at line 50 of file kis_color_history.h.

◆ m_fallbackColorHistoryModel

std::unique_ptr<KisUniqueColorSet> KisColorHistory::m_fallbackColorHistoryModel
private

Definition at line 42 of file kis_color_history.h.

◆ m_history_per_document

bool KisColorHistory::m_history_per_document = false
private

Definition at line 47 of file kis_color_history.h.

◆ m_resourceProvider

KisCanvasResourceProvider* KisColorHistory::m_resourceProvider
private

Definition at line 51 of file kis_color_history.h.


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