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

#include <kis_favorite_resource_manager.h>

+ Inheritance diagram for KisFavoriteResourceManager:

Public Slots

void slotAddRecentColor (const KoColor &)
 
void slotChangeActivePaintop (int)
 
void slotChangeFGColorSelector (KoColor c)
 
void slotClearHistory ()
 
void slotSetBGColor (const KoColor c)
 
void slotUpdateRecentColor (int)
 

Signals

void hidePalettes ()
 
void setSelectedColor (int)
 
void sigChangeFGColorSelector (const KoColor &)
 
void sigSetBGColor (const KoColor &c)
 
void sigSetFGColor (const KoColor &c)
 
void updatePalettes ()
 

Public Member Functions

KoColor bgColor () const
 
QList< QImage > favoritePresetImages ()
 
QVector< QString > favoritePresetNamesList ()
 
 KisFavoriteResourceManager (KisPaintopBox *paintopBox)
 
int numFavoritePresets ()
 
KoColor recentColorAt (int pos)
 
int recentColorsTotal ()
 
void removingResource (QSharedPointer< KisPaintOpPreset > resource) override
 
void resourceAdded (QSharedPointer< KisPaintOpPreset > resource) override
 
void resourceChanged (QSharedPointer< KisPaintOpPreset > resource) override
 
void setCurrentTag (const KisTagSP tag)
 
void unsetResourceServer () override
 
void updateFavoritePresets ()
 
 ~KisFavoriteResourceManager () override
 
- Public Member Functions inherited from KoResourceServerObserver< KisPaintOpPreset >
virtual ~KoResourceServerObserver ()
 

Private Slots

void configChanged ()
 
void presetsChanged ()
 

Private Member Functions

void init ()
 
void saveFavoritePresets ()
 

Private Attributes

KoColor m_bgColor
 
QScopedPointer< KisSortedHistoryList< KoColor > > m_colorHistoryList
 
KisTagSP m_currentTag
 
bool m_initialized {false}
 
int m_maxPresets {0}
 
KisPaintopBoxm_paintopBox {nullptr}
 
KisResourceModelm_resourceModel {nullptr}
 
KisTagFilterResourceProxyModelm_resourcesProxyModel {nullptr}
 
KisTagModelm_tagModel {nullptr}
 

Static Private Attributes

static const int MAX_RECENT_COLOR = 12
 

Detailed Description

Definition at line 27 of file kis_favorite_resource_manager.h.

Constructor & Destructor Documentation

◆ KisFavoriteResourceManager()

KisFavoriteResourceManager::KisFavoriteResourceManager ( KisPaintopBox * paintopBox)

Definition at line 29 of file kis_favorite_resource_manager.cpp.

30 : m_paintopBox(paintopBox)
32
33{
36
38 rServer->addObserver(this);
39}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
static KisConfigNotifier * instance()
QScopedPointer< KisSortedHistoryList< KoColor > > m_colorHistoryList
static KisResourceServerProvider * instance()
KisPaintOpPresetResourceServer * paintOpPresetServer()
void addObserver(ObserverType *observer)

References KoResourceServer< T >::addObserver(), configChanged(), connect(), KisConfigNotifier::instance(), KisResourceServerProvider::instance(), and KisResourceServerProvider::paintOpPresetServer().

◆ ~KisFavoriteResourceManager()

KisFavoriteResourceManager::~KisFavoriteResourceManager ( )
override

Member Function Documentation

◆ bgColor()

KoColor KisFavoriteResourceManager::bgColor ( ) const

Definition at line 167 of file kis_favorite_resource_manager.cpp.

References m_bgColor.

◆ configChanged

void KisFavoriteResourceManager::configChanged ( )
privateslot

Definition at line 182 of file kis_favorite_resource_manager.cpp.

183{
184 KisConfig cfg(true);
185 m_maxPresets = cfg.favoritePresets();
187
189
190 compare_less sortingFunc;
191 const QString sortingType = cfg.readEntry("popuppalette/colorHistorySorting", QString("hsv"));
192 if (sortingType == "hsv") {
193 sortingFunc = [] (const KoColor &lhs, const KoColor &rhs) {
194 auto makeHsvTuple = [] (const KoColor &color) {
195 int h, s, v;
196 color.toQColor().getHsv(&h, &s, &v);
197 return std::make_tuple(h, s, v);
198 };
199 return makeHsvTuple(lhs) < makeHsvTuple(rhs);
200 };
201 }
202
203 m_colorHistoryList->setCompareLess(sortingFunc);
204}
qreal v
std::function< bool(const T &, const T &)> compare_less

References KisConfig::favoritePresets(), m_colorHistoryList, m_maxPresets, KisConfig::readEntry(), updateFavoritePresets(), and v.

◆ favoritePresetImages()

QList< QImage > KisFavoriteResourceManager::favoritePresetImages ( )

Definition at line 69 of file kis_favorite_resource_manager.cpp.

70{
71 init();
72 QList<QImage> images;
73 for (int i = 0; i < m_maxPresets; i++) {
74 QModelIndex index = m_resourcesProxyModel->index(i, 0);
75 if (index.isValid()) {
76 QVariant tmp = m_resourcesProxyModel->data(index, Qt::UserRole + KisAbstractResourceModel::Thumbnail);
77 QImage image = tmp.value<QImage>();
78 images << image;
79 } else {
80 break; // no more valid indices
81 }
82 }
83 return images;
84}
KisTagFilterResourceProxyModel * m_resourcesProxyModel

References init(), m_maxPresets, m_resourcesProxyModel, and KisAbstractResourceModel::Thumbnail.

◆ favoritePresetNamesList()

QVector< QString > KisFavoriteResourceManager::favoritePresetNamesList ( )

Definition at line 51 of file kis_favorite_resource_manager.cpp.

52{
53 init();
54
55 QVector<QString> names;
56 for (int i = 0; i < m_maxPresets; i++) {
57 QModelIndex index = m_resourcesProxyModel->index(i, 0);
58 if (index.isValid()) {
59 QString name = m_resourcesProxyModel->data(index, Qt::UserRole + KisAbstractResourceModel::Name).toString();
60 names << name;
61 } else {
62 break; // no more valid indices
63 }
64 }
65
66 return names;
67}
const char * name(StandardAction id)

References init(), m_maxPresets, m_resourcesProxyModel, and KisAbstractResourceModel::Name.

◆ hidePalettes

void KisFavoriteResourceManager::hidePalettes ( )
signal

◆ init()

void KisFavoriteResourceManager::init ( )
private

Definition at line 211 of file kis_favorite_resource_manager.cpp.

212{
213 if (!m_initialized) {
214 m_initialized = true;
215
218
219 connect(m_resourcesProxyModel, SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(presetsChanged()));
220 connect(m_resourcesProxyModel, SIGNAL(rowsRemoved(QModelIndex, int, int)), this, SLOT(presetsChanged()));
221
223
225 QString currentTag = KisConfig(true).readEntry<QString>("favoritePresetsTag", "★ My Favorites");
226
228 KisTagSP currentTagSP = tagModel.tagForUrl(currentTag);
229 if (!currentTagSP.isNull()) {
230 m_currentTag = currentTagSP;
231 }
232 if (m_currentTag.isNull() && tagModel.rowCount() > 0) {
233 // safety measure to have at least *some* tag chosen
234 QModelIndex idx = tagModel.index(0, 0);
235 currentTagSP = tagModel.tagForIndex(idx);
236 if (currentTagSP && !m_currentTag) {
237 m_currentTag = currentTagSP;
238 }
239 }
242
244 }
245}
T readEntry(const QString &name, const T &defaultValue=T())
Definition kis_config.h:789
The KisResourceModel class provides the main access to resources. It is possible to filter the resour...
The KisTagFilterResourceProxyModel class filters the resources by tag or resource name.
void setTagFilter(const KisTagSP tag)
setTagFilter sets the tag to filter with
const QString PaintOpPresets

References connect(), KisResourceServerProvider::instance(), m_currentTag, m_initialized, m_resourceModel, m_resourcesProxyModel, m_tagModel, KisAbstractResourceModel::Name, ResourceType::PaintOpPresets, KisResourceServerProvider::paintOpPresetServer(), presetsChanged(), KisConfig::readEntry(), KisTagFilterResourceProxyModel::setTagFilter(), and updateFavoritePresets().

◆ numFavoritePresets()

int KisFavoriteResourceManager::numFavoritePresets ( )

Definition at line 107 of file kis_favorite_resource_manager.cpp.

108{
109 init();
110 return favoritePresetNamesList().size();
111}

References favoritePresetNamesList(), and init().

◆ presetsChanged

void KisFavoriteResourceManager::presetsChanged ( )
privateslot

Definition at line 206 of file kis_favorite_resource_manager.cpp.

207{
208 Q_EMIT updatePalettes();
209}

References updatePalettes().

◆ recentColorAt()

KoColor KisFavoriteResourceManager::recentColorAt ( int pos)

Definition at line 157 of file kis_favorite_resource_manager.cpp.

158{
159 return m_colorHistoryList->at(pos);
160}

References m_colorHistoryList.

◆ recentColorsTotal()

int KisFavoriteResourceManager::recentColorsTotal ( )

Definition at line 147 of file kis_favorite_resource_manager.cpp.

148{
149 return m_colorHistoryList->size();
150}

References m_colorHistoryList.

◆ removingResource()

void KisFavoriteResourceManager::removingResource ( QSharedPointer< KisPaintOpPreset > resource)
overridevirtual

Will be called by the resource server before a resource will be removed

Parameters
resourcethe resource which is going to be removed

Implements KoResourceServerObserver< KisPaintOpPreset >.

Definition at line 132 of file kis_favorite_resource_manager.cpp.

133{
135}

References updateFavoritePresets().

◆ resourceAdded()

void KisFavoriteResourceManager::resourceAdded ( QSharedPointer< KisPaintOpPreset > resource)
overridevirtual

Will be called by the resource server after a resource is added

Parameters
resourcethe added resource

Implements KoResourceServerObserver< KisPaintOpPreset >.

Definition at line 137 of file kis_favorite_resource_manager.cpp.

138{
140}

References updateFavoritePresets().

◆ resourceChanged()

void KisFavoriteResourceManager::resourceChanged ( QSharedPointer< KisPaintOpPreset > resource)
overridevirtual

Will be called by the resource server when a resource is changed

Parameters
resourcethe resource which is going to be removed

Implements KoResourceServerObserver< KisPaintOpPreset >.

Definition at line 142 of file kis_favorite_resource_manager.cpp.

143{
145}

References updateFavoritePresets().

◆ saveFavoritePresets()

void KisFavoriteResourceManager::saveFavoritePresets ( )
private

◆ setCurrentTag()

void KisFavoriteResourceManager::setCurrentTag ( const KisTagSP tag)

Definition at line 86 of file kis_favorite_resource_manager.cpp.

87{
88 m_currentTag = tag;
90 KisConfig(false).writeEntry<QString>("favoritePresetsTag", tag->url());
92}
void writeEntry(const QString &name, const T &value)
Definition kis_config.h:779

References m_currentTag, m_resourcesProxyModel, KisTagFilterResourceProxyModel::setTagFilter(), updateFavoritePresets(), and KisConfig::writeEntry().

◆ setSelectedColor

void KisFavoriteResourceManager::setSelectedColor ( int )
signal

◆ sigChangeFGColorSelector

void KisFavoriteResourceManager::sigChangeFGColorSelector ( const KoColor & )
signal

◆ sigSetBGColor

void KisFavoriteResourceManager::sigSetBGColor ( const KoColor & c)
signal

◆ sigSetFGColor

void KisFavoriteResourceManager::sigSetFGColor ( const KoColor & c)
signal

◆ slotAddRecentColor

void KisFavoriteResourceManager::slotAddRecentColor ( const KoColor & color)
slot

Definition at line 121 of file kis_favorite_resource_manager.cpp.

122{
123 int pos = m_colorHistoryList->append(color);
124 Q_EMIT setSelectedColor(pos);
125}

References m_colorHistoryList, and setSelectedColor().

◆ slotChangeActivePaintop

void KisFavoriteResourceManager::slotChangeActivePaintop ( int pos)
slot

Definition at line 94 of file kis_favorite_resource_manager.cpp.

95{
96 //ENTER_FUNCTION() << ppVar(pos) << ppVar(numFavoritePresets());
97 if (pos < 0 || pos >= numFavoritePresets()) return;
98
99 QModelIndex index = m_resourcesProxyModel->index(pos, 0);
101
103
104 Q_EMIT hidePalettes();
105}
void resourceSelected(KoResourceSP resource)
KoResourceSP resourceForIndex(QModelIndex index=QModelIndex()) const override
resourceForIndex returns a properly versioned and id'ed resource object

References hidePalettes(), m_paintopBox, m_resourcesProxyModel, numFavoritePresets(), KisTagFilterResourceProxyModel::resourceForIndex(), and KisPaintopBox::resourceSelected().

◆ slotChangeFGColorSelector

void KisFavoriteResourceManager::slotChangeFGColorSelector ( KoColor c)
slot

Definition at line 127 of file kis_favorite_resource_manager.cpp.

128{
129 Q_EMIT sigChangeFGColorSelector(c);
130}
void sigChangeFGColorSelector(const KoColor &)

References sigChangeFGColorSelector().

◆ slotClearHistory

void KisFavoriteResourceManager::slotClearHistory ( )
slot

Clears the color history shown in the popup palette.

Definition at line 152 of file kis_favorite_resource_manager.cpp.

153{
154 m_colorHistoryList->clear();
155}

References m_colorHistoryList.

◆ slotSetBGColor

void KisFavoriteResourceManager::slotSetBGColor ( const KoColor c)
slot

Definition at line 162 of file kis_favorite_resource_manager.cpp.

163{
164 m_bgColor = c;
165}

References m_bgColor.

◆ slotUpdateRecentColor

void KisFavoriteResourceManager::slotUpdateRecentColor ( int pos)
slot

Definition at line 114 of file kis_favorite_resource_manager.cpp.

115{
116 Q_EMIT setSelectedColor(pos);
117 Q_EMIT sigSetFGColor(m_colorHistoryList->at(pos));
118 Q_EMIT hidePalettes();
119}
void sigSetFGColor(const KoColor &c)

References hidePalettes(), m_colorHistoryList, setSelectedColor(), and sigSetFGColor().

◆ unsetResourceServer()

void KisFavoriteResourceManager::unsetResourceServer ( )
overridevirtual

Implements KoResourceServerObserver< KisPaintOpPreset >.

Definition at line 47 of file kis_favorite_resource_manager.cpp.

48{
49 // ...
50}

◆ updateFavoritePresets()

void KisFavoriteResourceManager::updateFavoritePresets ( )

Definition at line 177 of file kis_favorite_resource_manager.cpp.

178{
179 Q_EMIT updatePalettes();
180}

References updatePalettes().

◆ updatePalettes

void KisFavoriteResourceManager::updatePalettes ( )
signal

Member Data Documentation

◆ m_bgColor

KoColor KisFavoriteResourceManager::m_bgColor
private

Definition at line 103 of file kis_favorite_resource_manager.h.

◆ m_colorHistoryList

QScopedPointer<KisSortedHistoryList<KoColor> > KisFavoriteResourceManager::m_colorHistoryList
private

Definition at line 113 of file kis_favorite_resource_manager.h.

◆ m_currentTag

KisTagSP KisFavoriteResourceManager::m_currentTag
private

Definition at line 104 of file kis_favorite_resource_manager.h.

◆ m_initialized

bool KisFavoriteResourceManager::m_initialized {false}
private

Definition at line 106 of file kis_favorite_resource_manager.h.

106{false};

◆ m_maxPresets

int KisFavoriteResourceManager::m_maxPresets {0}
private

Definition at line 108 of file kis_favorite_resource_manager.h.

108{0};

◆ m_paintopBox

KisPaintopBox* KisFavoriteResourceManager::m_paintopBox {nullptr}
private

Definition at line 99 of file kis_favorite_resource_manager.h.

99{nullptr};

◆ m_resourceModel

KisResourceModel* KisFavoriteResourceManager::m_resourceModel {nullptr}
private

Definition at line 112 of file kis_favorite_resource_manager.h.

112{nullptr};

◆ m_resourcesProxyModel

KisTagFilterResourceProxyModel* KisFavoriteResourceManager::m_resourcesProxyModel {nullptr}
private

Definition at line 111 of file kis_favorite_resource_manager.h.

111{nullptr};

◆ m_tagModel

KisTagModel* KisFavoriteResourceManager::m_tagModel {nullptr}
private

Definition at line 110 of file kis_favorite_resource_manager.h.

110{nullptr};

◆ MAX_RECENT_COLOR

const int KisFavoriteResourceManager::MAX_RECENT_COLOR = 12
staticprivate

Definition at line 95 of file kis_favorite_resource_manager.h.


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