Krita Source Code Documentation
Loading...
Searching...
No Matches
KisBrushTypeMetaDataFixup.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
9#include "kis_debug.h"
10
11#include <QSqlQuery>
12#include <QSqlError>
13
14#include <KisResourceLocator.h>
15#include "kis_brush.h"
16
17
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