Hello community, here is the log from the commit of package kactivitymanagerd for openSUSE:Factory checked in at 2020-10-13 15:28:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kactivitymanagerd (Old) and /work/SRC/openSUSE:Factory/.kactivitymanagerd.new.3486 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kactivitymanagerd" Tue Oct 13 15:28:00 2020 rev:85 rq:840977 version:5.20.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kactivitymanagerd/kactivitymanagerd.changes 2020-09-04 11:06:05.646847793 +0200 +++ /work/SRC/openSUSE:Factory/.kactivitymanagerd.new.3486/kactivitymanagerd.changes 2020-10-13 15:28:02.724826986 +0200 @@ -1,0 +2,23 @@ +Thu Oct 8 16:55:19 UTC 2020 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.20.0 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/plasma-5.20.0 +- Changes since 5.19.90: + * Use correct way to register for a shortcut (kde#374575) + +------------------------------------------------------------------- +Thu Sep 17 20:02:57 UTC 2020 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.19.90 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/plasma-5.19.90 +- Changes since 5.19.5: + * Fix spelling error. + * Resources database backups + * Improve assert's error message on SQL error + * Added logo for GitLab + +------------------------------------------------------------------- Old: ---- kactivitymanagerd-5.19.5.tar.xz kactivitymanagerd-5.19.5.tar.xz.sig New: ---- kactivitymanagerd-5.20.0.tar.xz kactivitymanagerd-5.20.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kactivitymanagerd.spec ++++++ --- /var/tmp/diff_new_pack.0uV85Q/_old 2020-10-13 15:28:03.384827266 +0200 +++ /var/tmp/diff_new_pack.0uV85Q/_new 2020-10-13 15:28:03.388827268 +0200 @@ -20,15 +20,15 @@ %bcond_without lang Name: kactivitymanagerd -Version: 5.19.5 +Version: 5.20.0 Release: 0 Summary: KDE Plasma Activities support License: GPL-2.0-or-later Group: System/GUI/KDE Url: http://projects.kde.org/kactivitymanagerd -Source: https://download.kde.org/stable/plasma/%{version}/kactivitymanagerd-%{version}.tar.xz +Source: kactivitymanagerd-%{version}.tar.xz %if %{with lang} -Source1: https://download.kde.org/stable/plasma/%{version}/kactivitymanagerd-%{version}.tar.xz.sig +Source1: kactivitymanagerd-%{version}.tar.xz.sig Source2: plasma.keyring %endif %if 0%{?suse_version} > 1325 ++++++ kactivitymanagerd-5.19.5.tar.xz -> kactivitymanagerd-5.20.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/.arcconfig new/kactivitymanagerd-5.20.0/.arcconfig --- old/kactivitymanagerd-5.19.5/.arcconfig 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/.arcconfig 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -{ - "project.name" : "KActivities", - "phabricator.uri" : "https://phabricator.kde.org/" -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/CMakeLists.txt new/kactivitymanagerd-5.20.0/CMakeLists.txt --- old/kactivitymanagerd-5.19.5/CMakeLists.txt 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/CMakeLists.txt 2020-10-08 18:07:34.000000000 +0200 @@ -6,8 +6,8 @@ option (KACTIVITIES_ENABLE_EXCEPTIONS "If you have Boost 1.53, you need to build KActivities with exceptions enabled. This is UNTESTED and EXPERIMENTAL!" OFF) -set(QT_MIN_VERSION "5.14.0") -set(KF5_MIN_VERSION "5.66.0") +set(QT_MIN_VERSION "5.15.0") +set(KF5_MIN_VERSION "5.74") # We don't build in-source if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") Binary files old/kactivitymanagerd-5.19.5/logo.png and new/kactivitymanagerd-5.20.0/logo.png differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/po/az/kactivities5.po new/kactivitymanagerd-5.20.0/po/az/kactivities5.po --- old/kactivitymanagerd-5.19.5/po/az/kactivities5.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kactivitymanagerd-5.20.0/po/az/kactivities5.po 2020-10-08 18:07:35.000000000 +0200 @@ -0,0 +1,35 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kactivitymanagerd package. +# +# Xəyyam Qocayev <xxm...@gmail.com>, 2020. +msgid "" +msgstr "" +"Project-Id-Version: kactivitymanagerd\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-02-24 03:39+0100\n" +"PO-Revision-Date: 2020-05-13 00:07+0400\n" +"Last-Translator: Xəyyam Qocayev <xxm...@gmail.com>\n" +"Language-Team: Azerbaijani\n" +"Language: az\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: service/Activities.cpp:134 +#, kde-format +msgid "Default" +msgstr "Standart Fəaliyyət" + +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:42 +#, kde-format +msgid "Activity Manager" +msgstr "Fəaliyyət Meneceri" + +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:89 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:123 +#, kde-format +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "\"%1\" fəaliyyətinə keçid" \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/po/ca/kactivities5.po new/kactivitymanagerd-5.20.0/po/ca/kactivities5.po --- old/kactivitymanagerd-5.19.5/po/ca/kactivities5.po 2020-09-01 12:23:52.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/po/ca/kactivities5.po 2020-10-08 18:07:37.000000000 +0200 @@ -7,7 +7,7 @@ # Antoni Bella Pérez <antonibel...@yahoo.com>, 2014, 2015, 2018. msgid "" msgstr "" -"Project-Id-Version: kactivities5\n" +"Project-Id-Version: kactivitymanagerd\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-02-24 03:39+0100\n" "PO-Revision-Date: 2018-08-08 09:12+0100\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/po/ca@valencia/kactivities5.po new/kactivitymanagerd-5.20.0/po/ca@valencia/kactivities5.po --- old/kactivitymanagerd-5.19.5/po/ca@valencia/kactivities5.po 2020-09-01 12:23:52.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/po/ca@valencia/kactivities5.po 2020-10-08 18:07:37.000000000 +0200 @@ -8,7 +8,7 @@ # Antoni Bella Pérez <antonibel...@yahoo.com>, 2014, 2015, 2018. msgid "" msgstr "" -"Project-Id-Version: kactivities5\n" +"Project-Id-Version: kactivitymanagerd\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-02-24 03:39+0100\n" "PO-Revision-Date: 2019-07-03 13:09+0200\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/po/hi/kactivities5.po new/kactivitymanagerd-5.20.0/po/hi/kactivities5.po --- old/kactivitymanagerd-5.19.5/po/hi/kactivities5.po 2020-09-01 12:23:57.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/po/hi/kactivities5.po 2020-10-08 18:07:43.000000000 +0200 @@ -2,20 +2,20 @@ # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # -# Raghavendra Kamath <ra...@raghukamath.com>, 2020. +# G Karunakar <karuna...@indlinux.org>, 2020. msgid "" msgstr "" "Project-Id-Version: kactivitymanagerd\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-02-24 03:39+0100\n" -"PO-Revision-Date: 2020-08-25 23:35+0530\n" -"Last-Translator: Raghavendra Kamath <ra...@raghukamath.com>\n" -"Language-Team: Kde-hindi\n" +"PO-Revision-Date: 2020-08-18 01:05+0530\n" +"Last-Translator: G Karunakar <karuna...@indlinux.org>\n" +"Language-Team: Hindi <kde-i18n-...@kde.org>\n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 20.04.3\n" +"X-Generator: Lokalize 2.0\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" #: service/Activities.cpp:134 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/po/pl/kactivities5.po new/kactivitymanagerd-5.20.0/po/pl/kactivities5.po --- old/kactivitymanagerd-5.19.5/po/pl/kactivities5.po 2020-09-01 12:24:04.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/po/pl/kactivities5.po 2020-10-08 18:07:52.000000000 +0200 @@ -2,13 +2,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Łukasz Wojniłowicz <lukasz.wojnilow...@gmail.com>, 2012, 2014, 2015, 2016, 2018. +# Ignacy Kajdan <ignacy.kaj...@gmail.com>, 2020. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-02-24 03:39+0100\n" -"PO-Revision-Date: 2018-09-01 06:24+0100\n" -"Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilow...@gmail.com>\n" +"PO-Revision-Date: 2020-09-20 10:00+0200\n" +"Last-Translator: Ignacy Kajdan <ignacy.kaj...@gmail.com>\n" "Language-Team: Polish <kde-i18n-...@kde.org>\n" "Language: pl\n" "MIME-Version: 1.0\n" @@ -16,12 +17,12 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: Lokalize 2.0\n" +"X-Generator: Lokalize 20.07.70\n" #: service/Activities.cpp:134 #, kde-format msgid "Default" -msgstr "Domyślne" +msgstr "Domyślna" #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:42 #, kde-format @@ -33,4 +34,4 @@ #, kde-format msgctxt "@action" msgid "Switch to activity \"%1\"" -msgstr "Przełącz do aktywności \"%1\"" \ No newline at end of file +msgstr "Przełącz do aktywności „%1”" \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/po/ro/kactivities5.po new/kactivitymanagerd-5.20.0/po/ro/kactivities5.po --- old/kactivitymanagerd-5.19.5/po/ro/kactivities5.po 2020-09-01 12:24:05.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/po/ro/kactivities5.po 2020-10-08 18:07:53.000000000 +0200 @@ -1,33 +1,32 @@ # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. +# Sergiu Bivol <ser...@cip.md>, 2012, 2013, 2020. # -# Sergiu Bivol <ser...@ase.md>, 2012, 2013. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-02-24 03:39+0100\n" -"PO-Revision-Date: 2013-10-27 11:29+0200\n" -"Last-Translator: Sergiu Bivol <ser...@ase.md>\n" -"Language-Team: Romanian <kde-i18n...@kde.org>\n" +"PO-Revision-Date: 2020-09-19 11:25+0100\n" +"Last-Translator: Sergiu Bivol <ser...@cip.md>\n" +"Language-Team: Romanian\n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 19.12.3\n" #: service/Activities.cpp:134 #, kde-format msgid "Default" -msgstr "" +msgstr "Implicită" #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:42 -#, fuzzy, kde-format -#| msgid "Activities..." +#, kde-format msgid "Activity Manager" -msgstr "Activități..." +msgstr "Gestionar de activități" #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:89 #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:123 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/po/sv/kactivities5.po new/kactivitymanagerd-5.20.0/po/sv/kactivities5.po --- old/kactivitymanagerd-5.19.5/po/sv/kactivities5.po 2020-09-01 12:24:07.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/po/sv/kactivities5.po 1970-01-01 01:00:00.000000000 +0100 @@ -1,35 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Stefan Asserhäll <stefan.asserh...@bredband.net>, 2016, 2018. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2020-02-24 03:39+0100\n" -"PO-Revision-Date: 2018-08-09 16:35+0100\n" -"Last-Translator: Stefan Asserhäll <stefan.asserh...@bredband.net>\n" -"Language-Team: Swedish <kde-i18n-...@kde.org>\n" -"Language: sv\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 2.0\n" - -#: service/Activities.cpp:134 -#, kde-format -msgid "Default" -msgstr "Förval" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:42 -#, kde-format -msgid "Activity Manager" -msgstr "Aktivitetshanterare" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:89 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:123 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Byt till aktivitet \"%1\"" \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/po/uk/kactivities5.po new/kactivitymanagerd-5.20.0/po/uk/kactivities5.po --- old/kactivitymanagerd-5.19.5/po/uk/kactivities5.po 2020-09-01 12:24:09.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/po/uk/kactivities5.po 2020-10-08 18:07:57.000000000 +0200 @@ -1,5 +1,5 @@ # Translation of kactivities5.po to Ukrainian -# Copyright (C) 2014-2018 This_file_is_part_of_KDE +# Copyright (C) 2018 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/po/zh_CN/kactivities5.po new/kactivitymanagerd-5.20.0/po/zh_CN/kactivities5.po --- old/kactivitymanagerd-5.19.5/po/zh_CN/kactivities5.po 2020-09-01 12:24:10.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/po/zh_CN/kactivities5.po 2020-10-08 18:07:58.000000000 +0200 @@ -9,7 +9,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2020-02-24 03:39+0100\n" -"PO-Revision-Date: 2020-08-12 20:42\n" +"PO-Revision-Date: 2020-09-23 12:21\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/common/database/Database.cpp new/kactivitymanagerd-5.20.0/src/common/database/Database.cpp --- old/kactivitymanagerd-5.19.5/src/common/database/Database.cpp 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/common/database/Database.cpp 2020-10-08 18:07:34.000000000 +0200 @@ -110,6 +110,11 @@ qCDebug(KAMD_LOG_RESOURCES) << "Closing SQL connection: " << m_connectionName; } + void close() + { + m_database.close(); + } + QSqlDatabase &get() { return m_database; @@ -207,6 +212,9 @@ qCWarning(KAMD_LOG_RESOURCES) << "KActivities: Database can not be opened in WAL mode. Check the " "SQLite version (required >3.7.0). And whether your filesystem " "supports shared memory"; + + ptr->d->database->close(); + return nullptr; } @@ -237,6 +245,11 @@ return d->query(); } +void Database::reportError(const QSqlError &error_) +{ + Q_EMIT error(error_); +} + QString Database::lastQuery() const { #ifdef QT_DEBUG @@ -249,7 +262,13 @@ { Q_UNUSED(ignoreErrors); #ifdef QT_NO_DEBUG - return d->query(query); + auto result = d->query(query); + + if (!ignoreErrors && result.lastError().isValid()) { + Q_EMIT error(result.lastError()); + } + + return result; #else auto result = d->query(query); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/common/database/Database.h new/kactivitymanagerd-5.20.0/src/common/database/Database.h --- old/kactivitymanagerd-5.19.5/src/common/database/Database.h 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/common/database/Database.h 2020-10-08 18:07:34.000000000 +0200 @@ -25,10 +25,13 @@ #include <memory> #include <QSqlQuery> #include <QRegExp> +#include <QObject> namespace Common { -class Database { +class Database: public QObject { + Q_OBJECT + public: typedef std::shared_ptr<Database> Ptr; @@ -67,10 +70,15 @@ QSqlDatabase &m_database; }; + void reportError(const QSqlError &error); + #define DATABASE_TRANSACTION(A) \ /* enable this for debugging only: qCDebug(KAMD_LOG_RESOURCES) << "Location:" << __FILE__ << __LINE__; */ \ Common::Database::Locker lock(A) +Q_SIGNALS: + void error(const QSqlError &error) const; + private: D_PTR; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/common/database/schema/ResourcesDatabaseSchema.cpp new/kactivitymanagerd-5.20.0/src/common/database/schema/ResourcesDatabaseSchema.cpp --- old/kactivitymanagerd-5.19.5/src/common/database/schema/ResourcesDatabaseSchema.cpp 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/common/database/schema/ResourcesDatabaseSchema.cpp 2020-10-08 18:07:34.000000000 +0200 @@ -170,6 +170,18 @@ database.execQueries(ResourcesDatabaseSchema::schema()); + // We are asking for trouble. If the database is corrupt, + // some of these should fail. + // WARNING: Sqlite specific! + database.execQueries(QStringList{ + ".tables", + "SELECT count(*) FROM SchemaInfo", + "SELECT count(*) FROM ResourceEvent", + "SELECT count(*) FROM ResourceScoreCache", + "SELECT count(*) FROM ResourceLink", + "SELECT count(*) FROM ResourceInfo" + }); + // We can not allow empty fields for activity and agent, they need to // be at least magic values. These do not change the structure // of the database, but the old data. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/files/kactivitymanagerd-plugin.desktop new/kactivitymanagerd-5.20.0/src/service/files/kactivitymanagerd-plugin.desktop --- old/kactivitymanagerd-5.19.5/src/service/files/kactivitymanagerd-plugin.desktop 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/files/kactivitymanagerd-plugin.desktop 2020-10-08 18:07:34.000000000 +0200 @@ -4,6 +4,7 @@ Comment=Activity manager plugin Comment[ar]=ملحقة مدير الأنشطة +Comment[az]=Fəaliyyət Menecerinin Əlavəsi Comment[bs]=Priključak za praćenje aktivnosti Comment[ca]=Connector pel gestor d'activitats Comment[ca@valencia]=Connector per al gestor d'activitats @@ -49,7 +50,6 @@ Comment[sr@ijekavian]=Прикључак менаџера активности Comment[sr@ijekavianlatin]=Priključak menadžera aktivnosti Comment[sr@latin]=Priključak menadžera aktivnosti -Comment[sv]=Aktivitetshanterare Comment[tg]=Васлкунаки мудири фаъолият Comment[tr]=Etkinlik yöneticisi eklentisi Comment[ug]=پائالىيەت باشقۇرغۇچ قىستۇرمىسى diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/files/kactivitymanagerd.desktop new/kactivitymanagerd-5.20.0/src/service/files/kactivitymanagerd.desktop --- old/kactivitymanagerd-5.19.5/src/service/files/kactivitymanagerd.desktop 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/files/kactivitymanagerd.desktop 2020-10-08 18:07:34.000000000 +0200 @@ -8,6 +8,7 @@ Name=Activity Manager Name[ar]=مدير الأنشطة +Name[az]=Fəaliyyət menegeri Name[bs]=Menadžer aktivnosti Name[ca]=Gestor d'activitats Name[ca@valencia]=Gestor d'activitats @@ -53,7 +54,6 @@ Name[sr@ijekavian]=Менаџер активности Name[sr@ijekavianlatin]=Menadžer aktivnosti Name[sr@latin]=Menadžer aktivnosti -Name[sv]=Aktivitetshanterare Name[tg]=Мудири фаъолият Name[tr]=Etkinlik Yöneticisi Name[ug]=پائالىيەت باشقۇرغۇچ @@ -64,6 +64,7 @@ Comment=The activity management backend Comment[ar]=سند إدارة الأنشطة +Comment[az]=Fəaliyyətlərin İdarə Mexanizmi Comment[bs]=Pozadina za upravljanje aktivnostima Comment[ca]=El dorsal pel gestor d'activitats Comment[ca@valencia]=El dorsal per al gestor d'activitats @@ -109,7 +110,6 @@ Comment[sr@ijekavian]=Позадина за управљање активностима Comment[sr@ijekavianlatin]=Pozadina za upravljanje aktivnostima Comment[sr@latin]=Pozadina za upravljanje aktivnostima -Comment[sv]=Gränssnittet för aktivitetshanteringen Comment[tg]=Коркардкунандаи мудири фаъолият Comment[tr]=Etkinlik yönetimi arka ucu Comment[ug]=پائالىيەت باشقۇرغۇچ ئارقا ئۇچى diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json new/kactivitymanagerd-5.20.0/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json --- old/kactivitymanagerd-5.19.5/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json 2020-10-08 18:07:34.000000000 +0200 @@ -4,6 +4,7 @@ { "Email": "ivan.cu...@kde.org", "Name": "Ivan Čukić", + "Name[az]": "Ivan Čukić", "Name[ca@valencia]": "Ivan Čukić", "Name[ca]": "Ivan Čukić", "Name[cs]": "Ivan Čukić", @@ -28,6 +29,7 @@ "Name[pl]": "Ivan Čukić", "Name[pt]": "Ivan Čukić", "Name[pt_BR]": "Ivan Čukić", + "Name[ro]": "Ivan Čukić", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Čukić", "Name[sl]": "Ivan Čukić", @@ -35,7 +37,6 @@ "Name[sr@ijekavianlatin]": "Ivan Čukić", "Name[sr@latin]": "Ivan Čukić", "Name[sr]": "Иван Чукић", - "Name[sv]": "Ivan Čukić", "Name[tr]": "Ivan Čukić", "Name[uk]": "Ivan Čukić", "Name[x-test]": "xxIvan Čukićxx", @@ -46,6 +47,7 @@ "Category": "", "Dependencies": [], "Description": "Support for creating templated activities", + "Description[az]": "Fəaliyyət nümunələrinin yaradılmasının dəstəklənməsi", "Description[ca@valencia]": "Suport per a la creació d'activitats amb plantilles", "Description[ca]": "Suport per a la creació d'activitats amb plantilles", "Description[cs]": "Podpora pro vytváření aktivit podle šablon", @@ -70,6 +72,7 @@ "Description[pl]": "Obsługa tworzenia szablonowych działań", "Description[pt]": "Suporte para a criação de actividades com modelos", "Description[pt_BR]": "Suporte para criação de atividades em modelos", + "Description[ro]": "Suport pentru crearea activităților din șablon", "Description[ru]": "Поддержка создания шаблонов комнат", "Description[sk]": "Podpora pre vytváranie šablónovaných aktivít", "Description[sl]": "Podpora za ustvarjanje predlog dejavnosti", @@ -77,7 +80,6 @@ "Description[sr@ijekavianlatin]": "Podrška za stvaranje šablonskih aktivnosti", "Description[sr@latin]": "Podrška za stvaranje šablonskih aktivnosti", "Description[sr]": "Подршка за стварање шаблонских активности", - "Description[sv]": "Stöd för att skapa aktivitetsmallar", "Description[tr]": "Şablonlu etkinlikler yaratma desteği", "Description[uk]": "Підтримка створення шаблонних просторів дій", "Description[x-test]": "xxSupport for creating templated activitiesxx", @@ -88,6 +90,7 @@ "Id": "org.kde.ActivityManager.ActivityTemplates", "License": "GPL", "Name": "Activity Templates", + "Name[az]": "Fəaliyyət Nümunələri", "Name[ca@valencia]": "Plantilles de les activitats", "Name[ca]": "Plantilles de les activitats", "Name[cs]": "Šablony aktivit", @@ -112,6 +115,7 @@ "Name[pl]": "Szablony działań", "Name[pt]": "Modelos de Actividades", "Name[pt_BR]": "Modelos de atividades", + "Name[ro]": "Șabloane de activitate", "Name[ru]": "Шаблоны комнат", "Name[sk]": "Šablóny aktivít", "Name[sl]": "Predloge dejavnosti", @@ -119,7 +123,6 @@ "Name[sr@ijekavianlatin]": "Šabloni aktivnosti", "Name[sr@latin]": "Šabloni aktivnosti", "Name[sr]": "Шаблони активности", - "Name[sv]": "Aktivitetsmallar", "Name[tr]": "Etkinlik Şablonları", "Name[uk]": "Шаблони просторів дій", "Name[x-test]": "xxActivity Templatesxx", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json new/kactivitymanagerd-5.20.0/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json --- old/kactivitymanagerd-5.19.5/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json 2020-10-08 18:07:34.000000000 +0200 @@ -4,6 +4,7 @@ { "Email": "ivan.cukic(at)kde.org", "Name": "Ivan Čukić", + "Name[az]": "Ivan Čukić", "Name[ca@valencia]": "Ivan Čukić", "Name[ca]": "Ivan Čukić", "Name[cs]": "Ivan Čukić", @@ -28,6 +29,7 @@ "Name[pl]": "Ivan Čukić", "Name[pt]": "Ivan Čukić", "Name[pt_BR]": "Ivan Čukić", + "Name[ro]": "Ivan Čukić", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Čukić", "Name[sl]": "Ivan Čukić", @@ -35,7 +37,6 @@ "Name[sr@ijekavianlatin]": "Ivan Čukić", "Name[sr@latin]": "Ivan Čukić", "Name[sr]": "Иван Чукић", - "Name[sv]": "Ivan Čukić", "Name[tr]": "Ivan Čukić", "Name[uk]": "Ivan Čukić", "Name[x-test]": "xxIvan Čukićxx", @@ -46,6 +47,7 @@ "Category": "", "Dependencies": [], "Description": "Collects events from applications that support recent documents specification", + "Description[az]": "Son istifadə olunan sənədlərin xüsusiyyətlərini dəstəkləyən tətbiqlərdən hadisələri toplayır", "Description[ca@valencia]": "Recull els esdeveniments de les aplicacions que admeten l'especificació dels documents recents", "Description[ca]": "Recull els esdeveniments de les aplicacions que admeten l'especificació dels documents recents", "Description[cs]": "Sbírá z aplikací události jenž podporují určení nedávných dokumentů", @@ -70,6 +72,7 @@ "Description[pl]": "Gromadzi wydarzenia z aplikacji, które spełniają wymogi ostatnich dokumentów ", "Description[pt]": "Recolhe eventos das aplicações que suportam a especificação de documentos recentes", "Description[pt_BR]": "Identifica eventos a partir de aplicativos que tem suporte a especificação de documentos recentes", + "Description[ro]": "Colectează evenimente de la aplicații ce susțin specificația de documente recente", "Description[ru]": "Собирает от поддерживаемых приложений события о последних открытых документах", "Description[sk]": "Zbiera udalosti z aplikácií, ktoré podporujú špecifikáciu nedávnych dokumentov", "Description[sl]": "Zbira dogodke iz programov, ki podpirajo določitev nedavnih dokumentov", @@ -77,7 +80,6 @@ "Description[sr@ijekavianlatin]": "Sakuplja događaje iz programa koji podržavaju specifikaciju nedavnih dokumenata", "Description[sr@latin]": "Sakuplja događaje iz programa koji podržavaju specifikaciju nedavnih dokumenata", "Description[sr]": "Сакупља догађаје из програма који подржавају спецификацију недавних докумената", - "Description[sv]": "Samlar in händelser från program som stöder senare dokumentspecifikationer", "Description[tr]": "Son belgelerin özelliklerini destekleyen uygulamalardan etkinlikler toplar", "Description[uk]": "Збирає записи подій від програм, у яких реалізовано специфікацію нещодавніх документів", "Description[x-test]": "xxCollects events from applications that support recent documents specificationxx", @@ -88,6 +90,7 @@ "Id": "org.kde.ActivityManager.EventSpy", "License": "GPL", "Name": "Event Spy", + "Name[az]": "Hadisələrin izlənməsi", "Name[ca@valencia]": "Espia l'esdeveniment", "Name[ca]": "Espia l'esdeveniment", "Name[cs]": "Špeh událostí", @@ -112,6 +115,7 @@ "Name[pl]": "Szpieg wydarzeń", "Name[pt]": "Espião de Eventos", "Name[pt_BR]": "Espião de eventos", + "Name[ro]": "Spion de evenimente", "Name[ru]": "Монитор событий", "Name[sk]": "Špión udalostí", "Name[sl]": "Nadzornik dogodkov", @@ -119,7 +123,6 @@ "Name[sr@ijekavianlatin]": "Špijun događaja", "Name[sr@latin]": "Špijun događaja", "Name[sr]": "Шпијун догађаја", - "Name[sv]": "Händelseövervakare", "Name[tr]": "Olay Casusu", "Name[uk]": "Журнал подій", "Name[x-test]": "xxEvent Spyxx", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp new/kactivitymanagerd-5.20.0/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp --- old/kactivitymanagerd-5.19.5/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp 2020-10-08 18:07:34.000000000 +0200 @@ -87,7 +87,7 @@ objectNamePattern.arg(activity)); action->setText(i18nc("@action", "Switch to activity \"%1\"", activityName(activity))); - KGlobalAccel::self()->setDefaultShortcut(action, QList<QKeySequence>{}); + KGlobalAccel::setGlobalShortcut(action, QList<QKeySequence>{}); connect(action, &QAction::triggered, [this, activity]() { Q_EMIT currentActivityChanged(activity);}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json new/kactivitymanagerd-5.20.0/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json --- old/kactivitymanagerd-5.19.5/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json 2020-10-08 18:07:34.000000000 +0200 @@ -4,6 +4,7 @@ { "Email": "mak...@gmail.com", "Name": "Makis Marimpis", + "Name[az]": "Makis Marimpis", "Name[ca@valencia]": "Makis Marimpis", "Name[ca]": "Makis Marimpis", "Name[cs]": "Makis Marimpis", @@ -28,6 +29,7 @@ "Name[pl]": "Makis Marimpis", "Name[pt]": "Makis Marimpis", "Name[pt_BR]": "Makis Marimpis", + "Name[ro]": "Makis Marimpis", "Name[ru]": "Makis Marimpis", "Name[sk]": "Makis Marimpis", "Name[sl]": "Makis Marimpis", @@ -35,7 +37,6 @@ "Name[sr@ijekavianlatin]": "Makis Marimpis", "Name[sr@latin]": "Makis Marimpis", "Name[sr]": "Макис Маримпис", - "Name[sv]": "Makis Marimpis", "Name[tr]": "Makis Marimpis", "Name[uk]": "Makis Marimpis", "Name[x-test]": "xxMakis Marimpisxx", @@ -46,6 +47,7 @@ "Category": "", "Dependencies": [], "Description": "Adds global keyboard shortcuts for activity switching", + "Description[az]": "Fəaliyyətlər arası keçid üçün qlobal qısayolları təyin edir", "Description[ca@valencia]": "Afig dreceres de teclat globals per a canviar d'activitat", "Description[ca]": "Afegeix dreceres de teclat globals per a canviar d'activitat", "Description[cs]": "Přidává globální klávesové zkratky pro přepínání aktivit", @@ -70,6 +72,7 @@ "Description[pl]": "Dodaje globalne skróty klawiaturowe do przełączania działań", "Description[pt]": "Adiciona atalhos globais de teclado para a mudança de actividades", "Description[pt_BR]": "Adiciona atalhos de teclado globais para alternar atividades", + "Description[ro]": "Adaugă scurtături globale de taste pentru comutarea activităților", "Description[ru]": "Определяет глобальные комбинации клавиш для переключения комнат", "Description[sk]": "Pridá globálne klávesové skratky na prepínanie aktivít", "Description[sl]": "Doda splošne tipkovne bližnjice za preklapljanje dejavnosti", @@ -77,7 +80,6 @@ "Description[sr@ijekavianlatin]": "Dodaje globalne prečice sa tastature za menjanje aktivnosti", "Description[sr@latin]": "Dodaje globalne prečice sa tastature za menjanje aktivnosti", "Description[sr]": "Додаје глобалне пречице са тастатуре за мењање активности", - "Description[sv]": "Lägger till globala snabbtangenter för aktivitetsbyte", "Description[tr]": "Etkinlik değiştirme için genel klavye kısayolları ekler", "Description[uk]": "Додає загальні клавіатурні скорочення для перемикання просторів дій", "Description[x-test]": "xxAdds global keyboard shortcuts for activity switchingxx", @@ -88,6 +90,7 @@ "Id": "org.kde.ActivityManager.GlobalShortcuts", "License": "GPL", "Name": "Global Shortcuts", + "Name[az]": "Qlobal Qısayollar Birləşmələri", "Name[ca@valencia]": "Dreceres globals", "Name[ca]": "Dreceres globals", "Name[cs]": "Globální zkratky", @@ -112,6 +115,7 @@ "Name[pl]": "Skróty globalne", "Name[pt]": "Atalhos Globais", "Name[pt_BR]": "Atalhos globais", + "Name[ro]": "Scurtături globale", "Name[ru]": "Глобальные комбинации клавиш", "Name[sk]": "Globálne skratky", "Name[sl]": "Splošne bližnjice", @@ -119,7 +123,6 @@ "Name[sr@ijekavianlatin]": "Globalne prečice", "Name[sr@latin]": "Globalne prečice", "Name[sr]": "Глобалне пречице", - "Name[sv]": "Globala genvägar", "Name[tr]": "Evrensel Kısayollar", "Name[uk]": "Загальні клавіатурні скорочення", "Name[x-test]": "xxGlobal Shortcutsxx", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/gtk-eventspy/kactivitymanagerd-plugin-gtk-eventspy.json new/kactivitymanagerd-5.20.0/src/service/plugins/gtk-eventspy/kactivitymanagerd-plugin-gtk-eventspy.json --- old/kactivitymanagerd-5.19.5/src/service/plugins/gtk-eventspy/kactivitymanagerd-plugin-gtk-eventspy.json 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/gtk-eventspy/kactivitymanagerd-plugin-gtk-eventspy.json 2020-10-08 18:07:34.000000000 +0200 @@ -4,6 +4,7 @@ { "Email": "meven.car(at)kdemail.net", "Name": "Méven Car", + "Name[az]": "Méven Car", "Name[ca]": "Méven Car", "Name[cs]": "Méven Car", "Name[da]": "Méven Car", @@ -27,10 +28,10 @@ "Name[pl]": "Méven Car", "Name[pt]": "Méven Car", "Name[pt_BR]": "Méven Car", + "Name[ro]": "Méven Car", "Name[ru]": "Méven Car", "Name[sk]": "Méven Car", "Name[sl]": "Méven Car", - "Name[sv]": "Méven Car", "Name[uk]": "Méven Car", "Name[x-test]": "xxMéven Carxx", "Name[zh_CN]": "Méven Car", @@ -40,6 +41,7 @@ "Category": "", "Dependencies": [], "Description": "Collects events from applications that use GtkFileChooser and GtkRecentManager as specified by https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", + "Description[az]": "GtkFileChooser və GtkRecentManager istifadə edən tətbiqlərdən hadisələri https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/ tərəfindən xüsusiyyətlərinə görə toplayır", "Description[ca]": "Recull els esdeveniments de les aplicacions que usen «GtkFileChooser» i «GtkRecentManager» segons l'especificat pel https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", "Description[da]": "Indsamler hændelser fra programmer der bruger GtkFileChooser og GtkRecentManager som specificeret på https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", "Description[de]": "Sammelt Ereignisse von Anwendungen, die GtkFileChooser and GtkRecentManager nach der Spezifikation von https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/ verwenden.", @@ -62,10 +64,10 @@ "Description[pl]": "Gromadzi wydarzenia z aplikacji, które używają GtkFileChooser oraz GtkRecentManager wg https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", "Description[pt]": "Recolhe eventos das aplicações que usam o GtkFileChooser e o GtkRecentManager, de acordo com o definido em https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", "Description[pt_BR]": "Coleta eventos dos aplicativos que usam o GtkFileChooser e o GtkRecentManager, de acordo com o definido em https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", + "Description[ro]": "Colectează evenimente de la aplicații ce folosesc GtkFileChooser și GtkRecentManager după cum e specificat la https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", "Description[ru]": "Собирает события от приложений, использующих интерфейсы GtkFileChooser и GtkRecentManager в соответствии со спецификациями, опубликованными по адресу https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", "Description[sk]": "Zbiera udalosti z aplikácií, ktoré používajú GtkFileChooser a GtkRecentManager ako je uvedené v https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", "Description[sl]": "Zbira dogodke od programov, ki uporabljajo GtkFileChooser in GtkRecentManager kot je določeno v https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[sv]": "Samlar in händelser från program som använder GtkFileChooser och GtkRecentManager som anges av https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", "Description[uk]": "Збирає повідомлення про події від програм, у яких використовується GtkFileChooser та GtkRecentManager, відповідно до https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", "Description[x-test]": "xxCollects events from applications that use GtkFileChooser and GtkRecentManager as specified by https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/xx", "Description[zh_CN]": "从使用 GtkFileChooser 和 GtkRecentManager 的应用程序收集事件,规范遵循 https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", @@ -75,6 +77,7 @@ "Id": "org.kde.ActivityManager.GtkEventSpy", "License": "GPL", "Name": "Gtk Event Spy", + "Name[az]": "GTK hadisələrinin izlənməsi", "Name[ca]": "Espia els esdeveniments Gtk", "Name[cs]": "Špeh událostí Gtk", "Name[da]": "Gtk-hændelsesspion", @@ -98,10 +101,10 @@ "Name[pl]": "Szpieg wydarzeń Gtk", "Name[pt]": "Espião de Eventos do Gtk", "Name[pt_BR]": "Espião de eventos do Gtk", + "Name[ro]": "Spion de evenimente GTK", "Name[ru]": "Монитор событий GTK", "Name[sk]": "Špión udalostí Gtk", "Name[sl]": "Gtk nadzornik dogodkov", - "Name[sv]": "GTK-händelseövervakare", "Name[uk]": "Журнал подій Gtk", "Name[x-test]": "xxGtk Event Spyxx", "Name[zh_CN]": "Gtk 时间监听", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/runapplication/RunApplicationPlugin.cpp new/kactivitymanagerd-5.20.0/src/service/plugins/runapplication/RunApplicationPlugin.cpp --- old/kactivitymanagerd-5.19.5/src/service/plugins/runapplication/RunApplicationPlugin.cpp 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/runapplication/RunApplicationPlugin.cpp 2020-10-08 18:07:34.000000000 +0200 @@ -126,7 +126,7 @@ QProcess::startDetached(service.exec(), QStringList()); } else { - qCDebug(KAMD_LOG_APPLICATION) << "Openning file: " << QUrl::fromLocalFile(filePath); + qCDebug(KAMD_LOG_APPLICATION) << "Opening file: " << QUrl::fromLocalFile(filePath); QDesktopServices::openUrl(QUrl::fromLocalFile(filePath)); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json new/kactivitymanagerd-5.20.0/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json --- old/kactivitymanagerd-5.19.5/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json 2020-10-08 18:07:34.000000000 +0200 @@ -4,6 +4,7 @@ { "Email": "ivan.cu...@kde.org", "Name": "Ivan Cukic", + "Name[az]": "Ivan Cukic", "Name[ca@valencia]": "Ivan Cukic", "Name[ca]": "Ivan Cukic", "Name[cs]": "Ivan Cukic", @@ -28,6 +29,7 @@ "Name[pl]": "Ivan Cukic", "Name[pt]": "Ivan Cukic", "Name[pt_BR]": "Ivan Cukic", + "Name[ro]": "Ivan Cukic", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Cukic", "Name[sl]": "Ivan Cukic", @@ -35,7 +37,6 @@ "Name[sr@ijekavianlatin]": "Ivan Čukić", "Name[sr@latin]": "Ivan Čukić", "Name[sr]": "Иван Чукић", - "Name[sv]": "Ivan Cukic", "Name[tr]": "Ivan Cukic", "Name[uk]": "Ivan Cukic", "Name[x-test]": "xxIvan Cukicxx", @@ -46,6 +47,7 @@ "Category": "", "Dependencies": [], "Description": "When switching activities, or when starting and stopping them, execute specified applications", + "Description[az]": "Bir fəaliyyətdən başqasına keçərkən və ya onları dayandırarkən göstərilən proqramın başladılması", "Description[ca@valencia]": "En commutar d'activitat, o en iniciar o aturar-les, executa les aplicacions especificades", "Description[ca]": "En commutar d'activitat, o en iniciar o aturar-les, executar les aplicacions especificades", "Description[da]": "Køb bestemte programmer ved skift mellem aktiviteter eller når de startes eller stoppes", @@ -69,6 +71,7 @@ "Description[pl]": "Przy przełączaniu działań. lub przy ich rozpoczynaniu i kończeniu, uruchamiaj podane aplikacje", "Description[pt]": "Ao mudar de actividades, ou quando as iniciar e parar, executa as aplicações indicadas", "Description[pt_BR]": "Ao mudar, iniciar e parar atividades, executa os aplicativos indicados", + "Description[ro]": "La comutarea activităților sau la pornirea și oprirea acestora, execută aplicațiile specificate", "Description[ru]": "Запуск указанных приложений при переходе в комнату, при её запуске или остановке", "Description[sk]": "Pri prepínaní aktivít alebo pri ich spúšťaní a zastavovaní spustiť určené aplikácie", "Description[sl]": "Ob preklopu dejavnosti ali ob njihovem zagonu/zaustavitvi se izvedejo navedeni programi", @@ -76,7 +79,6 @@ "Description[sr@ijekavianlatin]": "Pri prebacivanju aktivnosti, ili njihovom pokretanju i zaustavljanju, izvršavaju se zadati programi", "Description[sr@latin]": "Pri prebacivanju aktivnosti, ili njihovom pokretanju i zaustavljanju, izvršavaju se zadati programi", "Description[sr]": "При пребацивању активности, или њиховом покретању и заустављању, извршавају се задати програми", - "Description[sv]": "När aktiviteter byts, eller när de stoppas och startas, kör angivna program", "Description[tr]": "Etkinlikleri değiştirirken veya başlatırken ve durdururken, belirtilen uygulamaları çalıştır", "Description[uk]": "Запускати вказані програми під час перемикання просторів дій або їхнього запуску чи завершення роботи", "Description[x-test]": "xxWhen switching activities, or when starting and stopping them, execute specified applicationsxx", @@ -87,6 +89,7 @@ "Id": "org.kde.ActivityManager.RunApplication", "License": "GPL", "Name": "Run applications on activity state change", + "Name[az]": "Fəaliyyət vəziyyətinin dəyişməsi zamanı tətbiqin başladılması", "Name[ca@valencia]": "Executa aplicacions en canviar l'estat de l'activitat", "Name[ca]": "Executa aplicacions en canviar l'estat de l'activitat", "Name[da]": "Kør programmer ved ændring af aktivitetstilstand", @@ -110,6 +113,7 @@ "Name[pl]": "Uruchamiaj aplikacje przy zmianie stanu działania", "Name[pt]": "Executar as aplicações na mudança do estado da actividade", "Name[pt_BR]": "Executar aplicativos na alteração do estado da atividade", + "Name[ro]": "Rulează aplicații la schimbarea stării activității", "Name[ru]": "Запуск приложения при изменении состояния комнаты", "Name[sk]": "Spustiť aplikácie pri zmene stavu aktivity", "Name[sl]": "Zaženi programe ob spremembi stanja dejavnosti", @@ -117,7 +121,6 @@ "Name[sr@ijekavianlatin]": "Izvršavanje programa na promenu stanja aktivnosti", "Name[sr@latin]": "Izvršavanje programa na promenu stanja aktivnosti", "Name[sr]": "Извршавање програма на промену стања активности", - "Name[sv]": "Kör program vid ändring av aktivitetstillstånd", "Name[tr]": "Etkinlik durum değişiminde uygulamaları çalıştır", "Name[uk]": "Запуск програм під час зміни стану простору дій", "Name[x-test]": "xxRun applications on activity state changexx", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json new/kactivitymanagerd-5.20.0/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json --- old/kactivitymanagerd-5.19.5/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json 2020-10-08 18:07:34.000000000 +0200 @@ -4,6 +4,7 @@ { "Email": "ivan.cu...@kde.org", "Name": "Ivan Cukic", + "Name[az]": "Ivan Cukic", "Name[ca@valencia]": "Ivan Cukic", "Name[ca]": "Ivan Cukic", "Name[cs]": "Ivan Cukic", @@ -28,6 +29,7 @@ "Name[pl]": "Ivan Cukic", "Name[pt]": "Ivan Cukic", "Name[pt_BR]": "Ivan Cukic", + "Name[ro]": "Ivan Cukic", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Cukic", "Name[sl]": "Ivan Cukic", @@ -35,7 +37,6 @@ "Name[sr@ijekavianlatin]": "Ivan Čukić", "Name[sr@latin]": "Ivan Čukić", "Name[sr]": "Иван Чукић", - "Name[sv]": "Ivan Cukic", "Name[tr]": "Ivan Cukic", "Name[uk]": "Ivan Cukic", "Name[x-test]": "xxIvan Cukicxx", @@ -46,6 +47,7 @@ "Category": "", "Dependencies": [], "Description": "Provides data to Share-Like-Connect applet", + "Description[az]": "Share-Like-Connect əlavəsinin məlumatlarını təqdim edir", "Description[ca@valencia]": "Proporciona dades a la miniaplicació «Share-Like-Connect»", "Description[ca]": "Proporciona dades a la miniaplicació «Share-Like-Connect»", "Description[da]": "Leverer data til Share-Like-Connect-applet", @@ -69,6 +71,7 @@ "Description[pl]": "Dostarcza danych do apletu Share-Like-Connect", "Description[pt]": "Fornece dados para a 'applet' Share-Like-Connect", "Description[pt_BR]": "Fornece dados para o miniaplicativo Share-Like-Connect", + "Description[ro]": "Furnizează date miniaplicației Partajează-Apreciază-Conectează", "Description[ru]": "Предоставляет данные виджету Share-Like-Connect", "Description[sk]": "Poskytuje dáta pre applet Share-Like-Connect", "Description[sl]": "Ponuja podatke apletu Share-Like-Connect", @@ -76,7 +79,6 @@ "Description[sr@ijekavianlatin]": "Pruža podatke apletu podeli-oceni-poveži (SLC)", "Description[sr@latin]": "Pruža podatke apletu podeli-oceni-poveži (SLC)", "Description[sr]": "Пружа податке аплету подели-оцени-повежи (СЛЦ)", - "Description[sv]": "Tillhandahåller data för Share-Like-Connect miniprogram", "Description[tr]": "Paylaş-Beğen-Bağlan uygulamasına veri sağlar", "Description[uk]": "Надає дані аплетові Оприлюднити-Уподобати-З’єднати", "Description[x-test]": "xxProvides data to Share-Like-Connect appletxx", @@ -87,6 +89,7 @@ "Id": "org.kde.ActivityManager.SLC", "License": "GPL", "Name": "Share-Like-Connect", + "Name[az]": "Share-Like-Connect", "Name[ca@valencia]": "«Share-Like-Connect»", "Name[ca]": "«Share-Like-Connect»", "Name[da]": "Share·Like·Connect", @@ -110,6 +113,7 @@ "Name[pl]": "Share-Like-Connect", "Name[pt]": "Share-Like-Connect", "Name[pt_BR]": "Share-Like-Connect", + "Name[ro]": "Partajează-Apreciază-Conectează", "Name[ru]": "Share-Like-Connect", "Name[sk]": "Share-Like-Connect", "Name[sl]": "Share-Like-Connect", @@ -117,7 +121,6 @@ "Name[sr@ijekavianlatin]": "Podeli-oceni-poveži (SLC)", "Name[sr@latin]": "Podeli-oceni-poveži (SLC)", "Name[sr]": "Подели-оцени-повежи (СЛЦ)", - "Name[sv]": "Share-Like-Connect", "Name[tr]": "Paylaş-Beğen-Bağlan", "Name[uk]": "Оприлюднити-Уподобати-З’єднати", "Name[x-test]": "xxShare-Like-Connectxx", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/Database.cpp new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/Database.cpp --- old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/Database.cpp 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/Database.cpp 2020-10-08 18:07:34.000000000 +0200 @@ -47,7 +47,7 @@ #include <common/database/Database.h> #include <common/database/schema/ResourcesDatabaseSchema.h> -class ResourcesDatabaseMigrator::Private { +class ResourcesDatabaseInitializer::Private { public: Common::Database::Ptr database; @@ -55,33 +55,175 @@ Common::Database::Ptr resourcesDatabase() { - static ResourcesDatabaseMigrator instance; + static ResourcesDatabaseInitializer instance; return instance.d->database; } -ResourcesDatabaseMigrator::ResourcesDatabaseMigrator() +void ResourcesDatabaseInitializer::initDatabase(bool retryOnFail) { - const QString databaseDir + // + // There are three situations we want to handle: + // 1. The database can not be opened at all. + // This means that the current database files have + // been corrupted and that we need to replace them + // with the last working backup. + // 2. The database was opened, but an error appeared + // somewhere at runtime. + // 3. The database was successfully opened and no errors + // appeared during runtime. + // + // To achieve this, we will have three locations for + // database files: + // + // 1. `resources` - the current database files + // 2. `resources-test-backup` - at each KAMD start, + // we copy the current database files here. + // If an error appears during execution, the files + // will be removed and the error will be added to + // the log file `resources/errors.log` + // 3. `resources-working-backup` - on each KAMD start, + // if there are files in `resources-test-backup` + // (meaning no error appeared at runtime), they + // will be copied to `resources-working-backup`. + // + // This means that the `working` backup will be a bit + // older, but it will be the last database that produced + // no errors at runtime. + // + + + const QString databaseDirectoryPath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/kactivitymanagerd/resources/"); - qCDebug(KAMD_LOG_RESOURCES) << "Creating directory: " << databaseDir; - auto created = QDir().mkpath(databaseDir); + const QString databaseTestBackupDirectoryPath + = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + + QStringLiteral("/kactivitymanagerd/resources/test-backup/"); + + const QString databaseWorkingBackupDirectoryPath + = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + + QStringLiteral("/kactivitymanagerd/resources/working-backup/"); + + const QStringList databaseFiles{"database", "database-wal", "database-shm"}; + + { + QDir dir; + dir.mkpath(databaseDirectoryPath); + dir.mkpath(databaseTestBackupDirectoryPath); + dir.mkpath(databaseWorkingBackupDirectoryPath); + + if (!dir.exists(databaseDirectoryPath) || + !dir.exists(databaseTestBackupDirectoryPath) || + !dir.exists(databaseWorkingBackupDirectoryPath)) { + qCWarning(KAMD_LOG_RESOURCES) << "Database directory can not be created!"; + return; + } + } + + const QDir databaseDirectory(databaseDirectoryPath); + const QDir databaseTestBackupDirectory(databaseTestBackupDirectoryPath); + const QDir databaseWorkingBackupDirectory(databaseWorkingBackupDirectoryPath); + + auto removeDatabaseFiles = [&] (const QDir &dir) { + return std::all_of(databaseFiles.begin(), databaseFiles.cend(), + [&] (const QString &fileName) { + const auto filePath = dir.filePath(fileName); + return !QFile::exists(filePath) || QFile::remove(filePath); + }); + }; + + auto copyDatabaseFiles = [&] (const QDir &fromDir, const QDir& toDir) { + return removeDatabaseFiles(toDir) && + std::all_of(databaseFiles.begin(), databaseFiles.cend(), + [&] (const QString &fileName) { + const auto fromFilePath = fromDir.filePath(fileName); + const auto toFilePath = toDir.filePath(fileName); + return QFile::copy(fromFilePath, toFilePath); + }); + }; + + auto databaseFilesExistIn = [&] (const QDir &dir) { + return dir.exists() && + std::all_of(databaseFiles.begin(), databaseFiles.cend(), + [&] (const QString &fileName) { + const auto filePath = dir.filePath(fileName); + return QFile::exists(filePath); + }); + }; + + // First, let's move the files from `resources-test-backup` to + // `resources-working-backup` (if they exist) + if (databaseFilesExistIn(databaseTestBackupDirectory)) { + qCDebug(KAMD_LOG_RESOURCES) << "Marking the test backup as working..."; + if (copyDatabaseFiles(databaseTestBackupDirectory, databaseWorkingBackupDirectory)) { + removeDatabaseFiles(databaseTestBackupDirectory); + } else { + qCWarning(KAMD_LOG_RESOURCES) << "Marking the test backup as working failed!"; + removeDatabaseFiles(databaseWorkingBackupDirectory); + } + } - if (!created || !QDir(databaseDir).exists()) { - qCWarning(KAMD_LOG_RESOURCES) << "Database folder can not be created!"; + // Next, copy the current database files to `resources-test-backup` + if (databaseFilesExistIn(databaseDirectory)) { + qCDebug(KAMD_LOG_RESOURCES) << "Creating the backup of the current database..."; + if (!copyDatabaseFiles(databaseDirectory, databaseTestBackupDirectory)) { + qCWarning(KAMD_LOG_RESOURCES) << "Creating the backup of the current database failed!"; + removeDatabaseFiles(databaseTestBackupDirectory); + } } + // Now we can try to open the database d->database = Common::Database::instance( Common::Database::ResourcesDatabase, Common::Database::ReadWrite); if (d->database) { + qCDebug(KAMD_LOG_RESOURCES) << "Database opened successfully"; + QObject::connect(d->database.get(), &Common::Database::error, + [=] (const QSqlError &error) { + const QString errorLog = + QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + + QStringLiteral("/kactivitymanagerd/resources/errors.log"); + QFile file(errorLog); + if (file.open(QIODevice::Append)) { + QTextStream out(&file); + out << QDateTime::currentDateTime().toString(Qt::ISODate) << " error: " << error.text() << "\n"; + } else { + qCWarning(KAMD_LOG_RESOURCES) << QDateTime::currentDateTime().toString(Qt::ISODate) << " error: " << error.text(); + } + + removeDatabaseFiles(databaseTestBackupDirectory); + }); Common::ResourcesDatabaseSchema::initSchema(*d->database); + + } else { + // The current database can not be opened, delete the + // backup we just created + removeDatabaseFiles(databaseTestBackupDirectory); + + if (databaseFilesExistIn(databaseWorkingBackupDirectoryPath)) { + qCWarning(KAMD_LOG_RESOURCES) << "The database seems to be corrupted, trying to load the latest working version"; + + const auto success = copyDatabaseFiles(databaseWorkingBackupDirectory, databaseDirectory); + + if (success && retryOnFail) { + // Avoid infinite recursion + initDatabase(false); + } + + } else { + qCWarning(KAMD_LOG_RESOURCES) << "The database might be corrupted and there is no working backup"; + + } } } -ResourcesDatabaseMigrator::~ResourcesDatabaseMigrator() +ResourcesDatabaseInitializer::ResourcesDatabaseInitializer() +{ + initDatabase(true); +} + +ResourcesDatabaseInitializer::~ResourcesDatabaseInitializer() { } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/Database.h new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/Database.h --- old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/Database.h 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/Database.h 2020-10-08 18:07:34.000000000 +0200 @@ -41,17 +41,15 @@ class Database; } // namespace Common -class ResourcesDatabaseMigrator : public QObject { - Q_OBJECT - +class ResourcesDatabaseInitializer { public: // static Database *self(); private: - ResourcesDatabaseMigrator(); - ~ResourcesDatabaseMigrator() override; + ResourcesDatabaseInitializer(); + ~ResourcesDatabaseInitializer(); - void migrateDatabase(const QString &newDatabaseFile) const; + void initDatabase(bool retryOnFail = true); D_PTR; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/ResourceLinking.cpp new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/ResourceLinking.cpp --- old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/ResourceLinking.cpp 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/ResourceLinking.cpp 2020-10-08 18:07:34.000000000 +0200 @@ -100,7 +100,7 @@ DATABASE_TRANSACTION(*resourcesDatabase()); - Utils::exec(Utils::FailOnError, *linkResourceToActivityQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, *linkResourceToActivityQuery, ":usedActivity" , usedActivity, ":initiatingAgent" , initiatingAgent, ":targettedResource" , targettedResource @@ -173,12 +173,12 @@ DATABASE_TRANSACTION(*resourcesDatabase()); // BUG 385814, some existings entries don't have the applications: - // prefix, so we remove it and check in the sql it they match - // TODO Remove when we can expect all users have a fresher install that 5.18 + // prefix, so we remove it and check in the sql if they match + // TODO Remove when we can expect all users to have a fresher install than 5.18 if (initiatingAgent == QLatin1String("org.kde.plasma.favorites.applications")) { targettedResource = targettedResource.remove(QLatin1String("applications:")); } - Utils::exec(Utils::FailOnError, *query, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, *query, ":usedActivity" , usedActivity, ":initiatingAgent" , initiatingAgent, ":targettedResource" , targettedResource @@ -231,7 +231,7 @@ "targettedResource = COALESCE(:targettedResource, '') " )); - Utils::exec(Utils::FailOnError, *isResourceLinkedToActivityQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, *isResourceLinkedToActivityQuery, ":usedActivity" , usedActivity, ":initiatingAgent" , initiatingAgent, ":targettedResource" , targettedResource diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/ResourceScoreCache.cpp new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/ResourceScoreCache.cpp --- old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/ResourceScoreCache.cpp 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/ResourceScoreCache.cpp 2020-10-08 18:07:34.000000000 +0200 @@ -158,7 +158,7 @@ qCDebug(KAMD_LOG_RESOURCES) << "Creating the cache for: " << d->resource; // This can fail if we have the cache already made - auto isCacheNew = Utils::exec( + auto isCacheNew = Utils::exec(*resourcesDatabase(), Utils::IgnoreError, Queries::self().createResourceScoreCacheQuery, ":usedActivity", d->activity, ":initiatingAgent", d->application, @@ -167,7 +167,7 @@ ); // Getting the old score - Utils::exec( + Utils::exec(*resourcesDatabase(), Utils::FailOnError, Queries::self().getResourceScoreCacheQuery, ":usedActivity", d->activity, ":initiatingAgent", d->application, @@ -205,7 +205,7 @@ qCDebug(KAMD_LOG_RESOURCES) << " First update : " << firstUpdate; qCDebug(KAMD_LOG_RESOURCES) << " Last update : " << lastUpdate; - Utils::exec(Utils::FailOnError, Queries::self().getScoreAdditionQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, Queries::self().getScoreAdditionQuery, ":usedActivity", d->activity, ":initiatingAgent", d->application, ":targettedResource", d->resource, @@ -236,7 +236,7 @@ // Updating the score - Utils::exec(Utils::FailOnError, Queries::self().updateResourceScoreCacheQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, Queries::self().updateResourceScoreCacheQuery, ":usedActivity", d->activity, ":initiatingAgent", d->application, ":targettedResource", d->resource, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/StatsPlugin.cpp new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/StatsPlugin.cpp --- old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/StatsPlugin.cpp 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/StatsPlugin.cpp 2020-10-08 18:07:34.000000000 +0200 @@ -171,7 +171,7 @@ "VALUES (:usedActivity, :initiatingAgent, :targettedResource, :start, :end)" )); - Utils::exec(Utils::FailOnError, *openResourceEventQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, *openResourceEventQuery, ":usedActivity" , usedActivity , ":initiatingAgent" , initiatingAgent , ":targettedResource" , targettedResource , @@ -205,7 +205,7 @@ "end IS NULL" )); - Utils::exec(Utils::FailOnError, *closeResourceEventQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, *closeResourceEventQuery, ":usedActivity" , usedActivity , ":initiatingAgent" , initiatingAgent , ":targettedResource" , targettedResource , @@ -242,7 +242,7 @@ )); getResourceInfoQuery->bindValue(":targettedResource", uri); - Utils::exec(Utils::FailOnError, *getResourceInfoQuery); + Utils::exec(*resourcesDatabase(), Utils::FailOnError, *getResourceInfoQuery); if (getResourceInfoQuery->next()) { return false; @@ -264,7 +264,7 @@ ")" )); - Utils::exec(Utils::FailOnError, *insertResourceInfoQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, *insertResourceInfoQuery, ":targettedResource", uri ); @@ -286,7 +286,7 @@ "targettedResource = :targettedResource " )); - Utils::exec(Utils::FailOnError, *saveResourceTitleQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, *saveResourceTitleQuery, ":targettedResource" , uri , ":title" , title , ":autoTitle" , (autoTitle ? "1" : "0") @@ -309,7 +309,7 @@ "targettedResource = :targettedResource " )); - Utils::exec(Utils::FailOnError, *saveResourceMimetypeQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, *saveResourceMimetypeQuery, ":targettedResource" , uri , ":mimetype" , mimetype , ":autoMimetype" , (autoMimetype ? "1" : "0") @@ -461,8 +461,8 @@ "DELETE FROM ResourceScoreCache " "WHERE usedActivity = COALESCE(:usedActivity, usedActivity)"); - Utils::exec(Utils::FailOnError, removeEventsQuery, ":usedActivity", usedActivity); - Utils::exec(Utils::FailOnError, removeScoreCachesQuery, ":usedActivity", usedActivity); + Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeEventsQuery, ":usedActivity", usedActivity); + Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeScoreCachesQuery, ":usedActivity", usedActivity); } else { @@ -493,12 +493,12 @@ "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " "AND firstUpdate > :since"); - Utils::exec(Utils::FailOnError, removeEventsQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeEventsQuery, ":usedActivity", usedActivity, ":since", since.toSecsSinceEpoch() ); - Utils::exec(Utils::FailOnError, removeScoreCachesQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeScoreCachesQuery, ":usedActivity", usedActivity, ":since", since.toSecsSinceEpoch() ); @@ -534,12 +534,12 @@ "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " "AND lastUpdate < :time"); - Utils::exec(Utils::FailOnError, removeEventsQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeEventsQuery, ":usedActivity", usedActivity, ":time", time.toSecsSinceEpoch() ); - Utils::exec(Utils::FailOnError, removeScoreCachesQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeScoreCachesQuery, ":usedActivity", usedActivity, ":time", time.toSecsSinceEpoch() ); @@ -600,10 +600,10 @@ const auto pattern = Common::starPatternToLike(resource); - Utils::exec(Utils::FailOnError, removeEventsQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeEventsQuery, ":targettedResource", pattern); - Utils::exec(Utils::FailOnError, removeScoreCachesQuery, + Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeScoreCachesQuery, ":targettedResource", pattern); emit ResourceScoreDeleted(activity, client, resource); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/StatsPlugin.h new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/StatsPlugin.h --- old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/StatsPlugin.h 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/StatsPlugin.h 2020-10-08 18:07:34.000000000 +0200 @@ -21,6 +21,7 @@ // Qt #include <QObject> #include <QTimer> +#include <QSqlQuery> // Boost and STL #include <memory> @@ -29,7 +30,6 @@ // Local #include <Plugin.h> -class QSqlQuery; class ResourceLinking; /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/Utils.h new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/Utils.h --- old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/Utils.h 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/Utils.h 2020-10-08 18:07:34.000000000 +0200 @@ -21,6 +21,7 @@ #define PLUGINS_SQLITE_DATABASE_UTILS_H #include <QSqlQuery> +#include <QSqlError> #include <common/database/schema/ResourcesDatabaseSchema.h> #include <memory> @@ -57,7 +58,7 @@ FailOnError }; - inline bool exec(ErrorHandling eh, QSqlQuery &query) + inline bool exec(Common::Database &database, ErrorHandling eh, QSqlQuery &query) { bool success = query.exec(); @@ -66,19 +67,23 @@ qCWarning(KAMD_LOG_RESOURCES) << query.lastQuery(); qCWarning(KAMD_LOG_RESOURCES) << query.lastError(); } - Q_ASSERT_X(success, "Uils::exec", "Query failed"); + Q_ASSERT_X(success, "Uils::exec", qPrintable(QStringLiteral("Query failed:") + query.lastError().text())); + + if (!success) { + database.reportError(query.lastError()); + } } return success; } template <typename T1, typename T2, typename... Ts> - inline bool exec(ErrorHandling eh, QSqlQuery &query, + inline bool exec(Common::Database &database, ErrorHandling eh, QSqlQuery &query, const T1 &variable, const T2 &value, Ts... ts) { query.bindValue(variable, value); - return exec(eh, query, ts...); + return exec(database, eh, query, ts...); } } // namespace Utils diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json --- old/kactivitymanagerd-5.19.5/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json 2020-10-08 18:07:34.000000000 +0200 @@ -4,6 +4,7 @@ { "Email": "ivan.cu...@kde.org", "Name": "Ivan Cukic", + "Name[az]": "Ivan Cukic", "Name[ca@valencia]": "Ivan Cukic", "Name[ca]": "Ivan Cukic", "Name[cs]": "Ivan Cukic", @@ -28,6 +29,7 @@ "Name[pl]": "Ivan Cukic", "Name[pt]": "Ivan Cukic", "Name[pt_BR]": "Ivan Cukic", + "Name[ro]": "Ivan Cukic", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Cukic", "Name[sl]": "Ivan Cukic", @@ -35,7 +37,6 @@ "Name[sr@ijekavianlatin]": "Ivan Čukić", "Name[sr@latin]": "Ivan Čukić", "Name[sr]": "Иван Чукић", - "Name[sv]": "Ivan Cukic", "Name[tr]": "Ivan Cukic", "Name[uk]": "Ivan Cukic", "Name[x-test]": "xxIvan Cukicxx", @@ -46,6 +47,7 @@ "Category": "", "Dependencies": [], "Description": "Plugin to store and score events in SQLite", + "Description[az]": "SQLite-da hadisələri qiymətləndirmək və saxlamaq üçün modul", "Description[ca@valencia]": "Connector per a emmagatzemar i classificar esdeveniments en el SQLite", "Description[ca]": "Connector per a emmagatzemar i classificar esdeveniments en el SQLite", "Description[da]": "Plugin til at gemme og score hændelser i SQLite", @@ -69,6 +71,7 @@ "Description[pl]": "Wtyczka do przechowywania i oceny zdarzeń w SQLite", "Description[pt]": "'Plugin' para guardar e classificar os eventos em SQLite", "Description[pt_BR]": "Plugin para armazenar e classificar os eventos no SQLite", + "Description[ro]": "Extensie pentru stocarea și evaluarea evenimentelor în SQLite", "Description[ru]": "Модуль для сохранения и оценки событий в SQLite", "Description[sk]": "Plugin na uloženie a bodovanie udalosti v SQLite", "Description[sl]": "Vstavek za shranjevanje in označevanje dogodkov v SQLite", @@ -76,7 +79,6 @@ "Description[sr@ijekavianlatin]": "Priključak za skladištenje i ocenjivanje događaja u SQLiteu", "Description[sr@latin]": "Priključak za skladištenje i ocenjivanje događaja u SQLiteu", "Description[sr]": "Прикључак за складиштење и оцењивање догађаја у СКуЛајту", - "Description[sv]": "Insticksprogram för att lagra och betygsätta händelser i SQLite", "Description[tr]": "SQLite'da olayları saklamak ve puanlamak için eklenti", "Description[uk]": "Додаток для зберігання і оцінки подій у SQLite", "Description[x-test]": "xxPlugin to store and score events in SQLitexx", @@ -87,6 +89,7 @@ "Id": "org.kde.ActivityManager.ResourceScoring", "License": "GPL", "Name": "SQLite Feeder", + "Name[az]": "SQLite üçün məlumat təhcizatçısı", "Name[ca@valencia]": "Alimentador del Sqlite", "Name[ca]": "Alimentador del SQLite", "Name[da]": "SQLite-feeder", @@ -110,6 +113,7 @@ "Name[pl]": "Podajnik SQLite", "Name[pt]": "Fonte de SQLite", "Name[pt_BR]": "Fonte de notícias do SQLite", + "Name[ro]": "Furnizor SQLite", "Name[ru]": "Поставщик данных для SQLite", "Name[sk]": "Podávač SQLite", "Name[sl]": "Podajalnik SQLite", @@ -117,7 +121,6 @@ "Name[sr@ijekavianlatin]": "SQLiteov uvodnik", "Name[sr@latin]": "SQLiteov uvodnik", "Name[sr]": "СКуЛајтов уводник", - "Name[sv]": "SQLite-inmatning", "Name[tr]": "SQLite Besleyici", "Name[uk]": "Передавання даних SQLite", "Name[x-test]": "xxSQLite Feederxx", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kactivitymanagerd-5.19.5/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json new/kactivitymanagerd-5.20.0/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json --- old/kactivitymanagerd-5.19.5/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json 2020-09-01 12:23:49.000000000 +0200 +++ new/kactivitymanagerd-5.20.0/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json 2020-10-08 18:07:34.000000000 +0200 @@ -4,6 +4,7 @@ { "Email": "ivan.cu...@kde.org", "Name": "Ivan Cukic", + "Name[az]": "Ivan Cukic", "Name[ca@valencia]": "Ivan Cukic", "Name[ca]": "Ivan Cukic", "Name[cs]": "Ivan Cukic", @@ -28,6 +29,7 @@ "Name[pl]": "Ivan Cukic", "Name[pt]": "Ivan Cukic", "Name[pt_BR]": "Ivan Cukic", + "Name[ro]": "Ivan Cukic", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Cukic", "Name[sl]": "Ivan Cukic", @@ -35,7 +37,6 @@ "Name[sr@ijekavianlatin]": "Ivan Čukić", "Name[sr@latin]": "Ivan Čukić", "Name[sr]": "Иван Чукић", - "Name[sv]": "Ivan Cukic", "Name[tr]": "Ivan Cukic", "Name[uk]": "Ivan Cukic", "Name[x-test]": "xxIvan Cukicxx", @@ -46,6 +47,7 @@ "Category": "", "Dependencies": [], "Description": "When switching to an activity, opens the virtual desktop last used with that activity", + "Description[az]": "Bu fəaliyyətə keçid zamanı onda ən son aktiv olan iş masasını açır", "Description[ca@valencia]": "En canviar a una activitat, obri el darrer escriptori virtual utilitzat amb aquesta activitat", "Description[ca]": "En canviar a una activitat, obre el darrer escriptori virtual utilitzat amb aquesta activitat", "Description[da]": "Åbner det senest brugte virtuelle skrivebord for aktiviteten ved skift til en aktivitet", @@ -69,6 +71,7 @@ "Description[pl]": "Po przełączeniu do działania, otwiera wirtualny pulpit ostatnio używany do tego działania", "Description[pt]": "Ao mudar para uma actividade, abre o último ecrã virtual usado por essa actividade", "Description[pt_BR]": "Ao alternar para uma atividade, abre a última área de trabalho virtual usada com esta atividade", + "Description[ro]": "La comutarea la o activitate, deschide biroul virtual folosit ultima dată cu acea activitate", "Description[ru]": "При переключении на комнату открывает виртуальный рабочий стол, бывший активным в ней в последний раз", "Description[sk]": "Pri prepnutí na aktivitu, otvorí virtuálnu plochu naposledy použitú s danou aktivitou.", "Description[sl]": "Ob preklopu na dejavnost odpre navidezno namizje, ki je bilo nazadnje uporabljeno s to dejavnostjo", @@ -76,7 +79,6 @@ "Description[sr@ijekavianlatin]": "Pri prebacivanju na aktivnost, otvara virtuelnu površ koja je poslednja korišćena u toj aktivnosti", "Description[sr@latin]": "Pri prebacivanju na aktivnost, otvara virtuelnu površ koja je poslednja korišćena u toj aktivnosti", "Description[sr]": "При пребацивању на активност, отвара виртуелну површ која је последња коришћена у тој активности", - "Description[sv]": "Vid byte till en aktivitet, öppnar det virtuella skrivbord som senast användes med den aktiviteten", "Description[tr]": "Bir etkinliğe geçiş yaparken, bu etkinlikle son kullanılan sanal masaüstünü açar", "Description[uk]": "Під час перемикання на простір дій відкриває віртуальну стільницю, яку було використано у цьому просторі останньою", "Description[x-test]": "xxWhen switching to an activity, opens the virtual desktop last used with that activityxx", @@ -87,6 +89,7 @@ "Id": "org.kde.ActivityManager.VirtualDesktopSwitch", "License": "GPL", "Name": "Virtual desktop switcher", + "Name[az]": "Virtual İş Masası çeviricisi", "Name[ca@valencia]": "Commutador per als escriptoris virtuals", "Name[ca]": "Commutador pels escriptoris virtuals", "Name[cs]": "Přepínač virtuálních ploch", @@ -111,6 +114,7 @@ "Name[pl]": "Przełącznik wirtualnych pulpitów", "Name[pt]": "Mudança de ecrã virtual", "Name[pt_BR]": "Alternador de áreas de trabalho virtuais", + "Name[ro]": "Comutator de birouri virtuale", "Name[ru]": "Переключатель виртуальных рабочих столов", "Name[sk]": "Prepínač virtuálnych plôch", "Name[sl]": "Preklapljanje navideznih namizij", @@ -118,7 +122,6 @@ "Name[sr@ijekavianlatin]": "Menjač virtuelnih površi", "Name[sr@latin]": "Menjač virtuelnih površi", "Name[sr]": "Мењач виртуелних површи", - "Name[sv]": "Byte av virtuellt skrivbord", "Name[tr]": "Sanal masaüstü geçişi", "Name[uk]": "Перемикач віртуальних стільниць", "Name[x-test]": "xxVirtual desktop switcherxx",