PlasmaActivitiesStats
7#include "ResourcesDatabaseSchema.h"
9#include <QCoreApplication>
10#include <QStandardPaths>
15namespace ResourcesDatabaseSchema
17const QString name = QStringLiteral(
"Resources");
19QLatin1String version()
21 return QLatin1String(
"2015.02.09");
29 QStringLiteral(
"CREATE TABLE IF NOT EXISTS SchemaInfo ("
30 "key text PRIMARY KEY, value text"
33 QStringLiteral(
"INSERT OR IGNORE INTO schemaInfo VALUES ('version', '%1')").arg(version()),
34 QStringLiteral(
"UPDATE schemaInfo SET value = '%1' WHERE key = 'version'").arg(version()),
40 QStringLiteral(
"CREATE TABLE IF NOT EXISTS ResourceEvent ("
42 "initiatingAgent TEXT, "
43 "targettedResource TEXT, "
50 QStringLiteral(
"CREATE TABLE IF NOT EXISTS ResourceScoreCache ("
52 "initiatingAgent TEXT, "
53 "targettedResource TEXT, "
56 "firstUpdate INTEGER, "
57 "lastUpdate INTEGER, "
58 "PRIMARY KEY(usedActivity, initiatingAgent, targettedResource)"
67 QStringLiteral(
"CREATE TABLE IF NOT EXISTS ResourceLink ("
69 "initiatingAgent TEXT, "
70 "targettedResource TEXT, "
71 "PRIMARY KEY(usedActivity, initiatingAgent, targettedResource)"
81 QStringLiteral(
"CREATE TABLE IF NOT EXISTS ResourceInfo ("
82 "targettedResource TEXT, "
86 "autoMimetype INTEGER, "
87 "PRIMARY KEY(targettedResource)"
99const char *overrideFlagProperty =
"org.kde.KActivities.ResourcesDatabase.overrideDatabase";
100const char *overrideFileProperty =
"org.kde.KActivities.ResourcesDatabase.overrideDatabaseFile";
106 return app->property(overrideFlagProperty).toBool() ? app->property(overrideFileProperty).toString() : defaultPath();
109void overridePath(
const QString &path)
113 app->setProperty(overrideFlagProperty,
true);
114 app->setProperty(overrideFileProperty, path);
117void initSchema(Database &database)
119 QString dbSchemaVersion;
121 auto query = database.execQuery(
122 QStringLiteral(
"SELECT value FROM SchemaInfo WHERE key = 'version'"));
129 if (dbSchemaVersion == version()) {
139 if (dbSchemaVersion < QStringLiteral(
"2014.04.14")) {
141 QStringLiteral(
"ALTER TABLE nuao_DesktopEvent RENAME TO ResourceEvent"));
143 QStringLiteral(
"ALTER TABLE kext_ResourceScoreCache RENAME TO ResourceScoreCache"));
146 database.execQueries(ResourcesDatabaseSchema::schema());
151 if (dbSchemaVersion < QStringLiteral(
"2015.02.09")) {
152 const QString updateActivity = QStringLiteral(
153 "SET usedActivity=':global' "
154 "WHERE usedActivity IS NULL OR usedActivity = ''");
156 const QString updateAgent = QStringLiteral(
157 "SET initiatingAgent=':global' "
158 "WHERE initiatingAgent IS NULL OR initiatingAgent = ''");
162 database.execQuery(QStringLiteral(
"UPDATE ResourceLink ") + updateActivity);
166 database.execQuery(QStringLiteral(
"UPDATE ResourceLink ") + updateAgent);
170 database.execQuery(QStringLiteral(
"UPDATE ResourceEvent ") + updateActivity);
171 database.execQuery(QStringLiteral(
"UPDATE ResourceEvent ") + updateAgent);
172 database.execQuery(QStringLiteral(
"UPDATE ResourceScoreCache ") + updateActivity);
173 database.execQuery(QStringLiteral(
"UPDATE ResourceScoreCache ") + updateAgent);
KSERVICE_EXPORT KService::List query(FilterFunc filterFunc)
QCoreApplication * instance()
T value(qsizetype i) const const
QString writableLocation(StandardLocation type)
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Feb 28 2025 12:01:02 by
doxygen 1.13.2 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.