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

#include <KisBrushTypeMetaDataFixup.h>

+ Inheritance diagram for KisBrushTypeMetaDataFixup:

Public Member Functions

QStringList executeFix () override
 
- Public Member Functions inherited from KisResourceLoaderRegistry::ResourceCacheFixup
virtual ~ResourceCacheFixup ()
 

Detailed Description

Definition at line 13 of file KisBrushTypeMetaDataFixup.h.

Member Function Documentation

◆ executeFix()

QStringList KisBrushTypeMetaDataFixup::executeFix ( )
overridevirtual

we cannot use KisResourceModel here because it is not yet initialized at this state

on loading the metadata of the brush has been initialized properly, so we can just write the updated version into the database back...

Implements KisResourceLoaderRegistry::ResourceCacheFixup.

Definition at line 18 of file KisBrushTypeMetaDataFixup.cpp.

19{
20 QStringList errorMessages;
21
22 QSqlQuery q;
23 const bool r = q.prepare("SELECT resources.id FROM resources "
24 "INNER JOIN resource_types ON resources.resource_type_id = resource_types.id "
25 "LEFT JOIN metadata ON metadata.foreign_id = resources.id AND metadata.key = :metadata_key "
26 "WHERE resource_types.name = :resource_type AND metadata.value IS Null;");
27 if (!r) {
28 errorMessages.append(i18n("Could not access brush tip metadata"));
29 return errorMessages;
30 }
31 q.bindValue(":resource_type", ResourceType::Brushes);
32 q.bindValue(":metadata_key", KisBrush::brushTypeMetaDataKey);
33
34 if (!q.exec()) {
35 errorMessages.append(i18n("Could not access brush tip metadata"));
36 }
37 else {
38 bool updatedAtLeastOneResource = false;
39
40 while(q.next()) {
43 KoResourceSP res = KisResourceLocator::instance()->resourceForId(q.value(0).toInt());
44 KIS_SAFE_ASSERT_RECOVER(res) { continue; }
45 KisBrushSP brush = res.dynamicCast<KisBrush>();
46 KIS_SAFE_ASSERT_RECOVER(brush) { continue; }
47
51 KisResourceLocator::instance()->setMetaDataForResource(res->resourceId(), res->metadata());
52
53 updatedAtLeastOneResource = true;
54 }
55
56 if (updatedAtLeastOneResource) {
57 qWarning() << "Successfully updated brush type metadata in the database";
58 }
59 }
60
61 return errorMessages;
62}
static const QString brushTypeMetaDataKey
Definition kis_brush.h:343
bool setMetaDataForResource(int id, QMap< QString, QVariant > map) const
setMetaDataForResource
KoResourceSP resourceForId(int resourceId)
resourceForId returns the resource with the given id, or 0 if no such resource exists....
static KisResourceLocator * instance()
#define KIS_SAFE_ASSERT_RECOVER(cond)
Definition kis_assert.h:126
const QString Brushes

References ResourceType::Brushes, KisBrush::brushTypeMetaDataKey, KisResourceLocator::instance(), KIS_SAFE_ASSERT_RECOVER, KisResourceLocator::resourceForId(), and KisResourceLocator::setMetaDataForResource().


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