diff -Nru kactivities-kf5-5.18.0/autotests/CMakeLists.txt kactivities-kf5-5.44.0/autotests/CMakeLists.txt --- kactivities-kf5-5.18.0/autotests/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/CMakeLists.txt 2018-03-03 09:51:42.000000000 +0000 @@ -5,7 +5,3 @@ add_subdirectory (core) -if (KACTIVITIES_INSTALL_EXPERIMENTAL_LIBRARIES) - add_subdirectory (stats) -endif () - diff -Nru kactivities-kf5-5.18.0/autotests/common/test.h kactivities-kf5-5.44.0/autotests/common/test.h --- kactivities-kf5-5.18.0/autotests/common/test.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/common/test.h 2018-03-03 09:51:42.000000000 +0000 @@ -140,7 +140,7 @@ // Pretty print #include -#if defined(Q_NO_DEBUG) or (not defined(Q_OS_LINUX)) +#if defined(Q_NO_DEBUG) || !defined(Q_OS_LINUX) #define TEST_CHUNK(Name) #else inline diff -Nru kactivities-kf5-5.18.0/autotests/core/CMakeLists.txt kactivities-kf5-5.44.0/autotests/core/CMakeLists.txt --- kactivities-kf5-5.18.0/autotests/core/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/core/CMakeLists.txt 2018-03-03 09:51:42.000000000 +0000 @@ -5,10 +5,8 @@ include_directories ( ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/ - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/lib/core/ ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/tests/ ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/autotests/ - ${CMAKE_BINARY_DIR}/src/lib/core/ ${CMAKE_BINARY_DIR}/src/ ) diff -Nru kactivities-kf5-5.18.0/autotests/core/Process.cpp kactivities-kf5-5.44.0/autotests/core/Process.cpp --- kactivities-kf5-5.18.0/autotests/core/Process.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/core/Process.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -30,8 +30,6 @@ #include -#include "kactivities-features.h" - #include #include @@ -85,7 +83,7 @@ // qDebug() << env; s_process->setEnvironment(env); - s_process->start(QStringLiteral(KAMD_INSTALL_PREFIX "/bin/kactivitymanagerd")); + s_process->start(QStringLiteral("kactivitymanagerd")); s_process->waitForStarted(); diff -Nru kactivities-kf5-5.18.0/autotests/stats/CMakeLists.txt kactivities-kf5-5.44.0/autotests/stats/CMakeLists.txt --- kactivities-kf5-5.18.0/autotests/stats/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: -project (KActivitiesStatsTest) - -find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Test Core DBus Sql) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/lib/core/ - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/lib/stats/ - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/ - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/autotests/ - ${CMAKE_BINARY_DIR}/src/lib/core/ - ${CMAKE_BINARY_DIR}/src/lib/stats/ - ) - -set ( - KActivitiesStatsTest_SRCS - main.cpp - QueryTest.cpp - ResultSetTest.cpp - ResultSetQuickCheckTest.cpp - ResultWatcherTest.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/qsqlquery_iterator.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/Database.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/schema/ResourcesDatabaseSchema.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/autotests/common/test.cpp - ) - -if (NOT WIN32) - - add_executable ( - KActivitiesStatsTest - ${KActivitiesStatsTest_SRCS} - ) - - target_link_libraries ( - KActivitiesStatsTest - Qt5::Core - Qt5::Test - Qt5::DBus - Qt5::Sql - KF5::Activities - KF5::ActivitiesExperimentalStats - ) - -endif () diff -Nru kactivities-kf5-5.18.0/autotests/stats/main.cpp kactivities-kf5-5.44.0/autotests/stats/main.cpp --- kactivities-kf5-5.18.0/autotests/stats/main.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/main.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include -#include -#include - -#include - -#include "QueryTest.h" -#include "ResultSetTest.h" -#include "ResultSetQuickCheckTest.h" -#include "ResultWatcherTest.h" - -class TestRunner: public QObject { -public: - TestRunner() - : m_nextToStart(0) - { - } - - TestRunner &addTest(Test *test) - { - if (m_nextToStart == 0) - m_tests << test; - return *this; - } - - TestRunner &operator<<(Test *test) - { - addTest(test); - return *this; - } - - void start() - { - if (m_nextToStart) - return; - - if (m_tests.size() == 0) { - // We do not have a QCoreApplication here, calling system exit - ::exit(0); - return; - } - - next(); - } - -private: - void next() - { - if (m_nextToStart >= m_tests.size()) { - QCoreApplication::exit(0); - return; - } - - Test *test = m_tests[m_nextToStart++]; - - QObject::connect(test, &Test::testFinished, - this, &TestRunner::next, - Qt::QueuedConnection); - - QTest::qExec(test); - - } - -private: - QList m_tests; - int m_nextToStart; - -}; - -int main(int argc, char *argv[]) -{ - QCoreApplication app(argc, argv); - - TestRunner &runner = *(new TestRunner()); - - qDebug() << app.arguments(); - - bool all = (app.arguments().size() <= 1); - -#define ADD_TEST(TestName) \ - qDebug() << "Test " << #TestName << " is enabled " \ - << (all || app.arguments().contains(#TestName)); \ - if (all || app.arguments().contains(#TestName)) { \ - runner << new TestName##Test(); \ - } - - ADD_TEST(Query) - ADD_TEST(ResultSet) - ADD_TEST(ResultSetQuickCheck) - ADD_TEST(ResultWatcher) - - runner.start(); - -#undef ADD_TEST - return app.exec(); - // QTest::qExec(&tc, argc, argv); -} - diff -Nru kactivities-kf5-5.18.0/autotests/stats/QueryTest.cpp kactivities-kf5-5.44.0/autotests/stats/QueryTest.cpp --- kactivities-kf5-5.18.0/autotests/stats/QueryTest.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/QueryTest.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,309 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "QueryTest.h" - -#include -#include -#include -#include -#include - -#include -#include - -namespace KAStats = KActivities::Experimental::Stats; -using namespace KAStats; -using namespace KAStats::Terms; - -QueryTest::QueryTest(QObject *parent) - : Test(parent) -{ -} - -void QueryTest::testDefaults() -{ - TEST_CHUNK("Testing the term defaults"); - - Query query; - - QCOMPARE(query.selection(), AllResources); - QCOMPARE(query.types(), {":any"}); - QCOMPARE(query.agents(), {":current"}); - QCOMPARE(query.activities(), {":current"}); - QCOMPARE(query.ordering(), HighScoredFirst); -} - -void QueryTest::testDebuggingOutput() -{ - TEST_CHUNK("Debugging output for a query"); - - Query query; - - // Testing whether qDebug can be called (compilation check) - qDebug() << "Writing out a query:" << query; -} - -void QueryTest::testDerivationFromDefault() -{ - TEST_CHUNK("Testing query derivation from default") - - Query queryDefault; - auto queryDerived = queryDefault | LinkedResources; - - // queryDefault should not have been modified - QCOMPARE(queryDefault.selection(), AllResources); - QCOMPARE(queryDerived.selection(), LinkedResources); - - // Changing queryDerived back to AllResources, should be == to queryDefault - queryDerived.setSelection(AllResources); - QCOMPARE(queryDefault, queryDerived); -} - -void QueryTest::testDerivationFromCustom() -{ - TEST_CHUNK("Testing query derivation from custom") - - Query queryCustom; - auto queryDerived = queryCustom | LinkedResources; - - // q1 should not have been modified - QCOMPARE(queryCustom.selection(), AllResources); - QCOMPARE(queryDerived.selection(), LinkedResources); - - // Changing queryDerived back to AllResources, should be == to queryDefault - queryDerived.setSelection(AllResources); - QCOMPARE(queryCustom, queryDerived); -} - -void QueryTest::testNormalSyntaxAgentManipulation() -{ - TEST_CHUNK("Testing normal syntax manipulation: Agents") - - Query query; - query.addAgents(QStringList() << "gvim" << "kate"); - - QCOMPARE(query.agents(), QStringList() << "gvim" << "kate"); - - query.addAgents(QStringList() << "kwrite"); - - QCOMPARE(query.agents(), QStringList() << "gvim" << "kate" << "kwrite"); - - query.clearAgents(); - - QCOMPARE(query.agents(), QStringList() << ":current"); -} - -void QueryTest::testNormalSyntaxTypeManipulation() -{ - TEST_CHUNK("Testing normal syntax manipulation: Types") - - Query query; - query.addTypes(QStringList() << "text/html" << "text/plain"); - - QCOMPARE(query.types(), QStringList() << "text/html" << "text/plain"); - - query.addTypes(QStringList() << "text/xml"); - - QCOMPARE(query.types(), QStringList() << "text/html" << "text/plain" << "text/xml"); - - query.clearTypes(); - - QCOMPARE(query.types(), QStringList() << ":any"); -} - -void QueryTest::testNormalSyntaxActivityManipulation() -{ - TEST_CHUNK("Testing normal syntax manipulation: Activities") - - Query query; - query.addActivities(QStringList() << "a1" << "a2"); - - QCOMPARE(query.activities(), QStringList() << "a1" << "a2"); - - query.addActivities(QStringList() << "a3"); - - QCOMPARE(query.activities(), QStringList() << "a1" << "a2" << "a3"); - - query.clearActivities(); - - QCOMPARE(query.activities(), QStringList() << ":current"); -} - -void QueryTest::testNormalSyntaxOrderingManipulation() -{ - TEST_CHUNK("Testing normal syntax manipulation: Activities") - - Query query; - - QCOMPARE(query.ordering(), HighScoredFirst); - - query.setOrdering(RecentlyCreatedFirst); - - QCOMPARE(query.ordering(), RecentlyCreatedFirst); - - query.setOrdering(OrderByUrl); - - QCOMPARE(query.ordering(), OrderByUrl); -} - -void QueryTest::testFancySyntaxBasic() -{ - TEST_CHUNK("Testing the fancy syntax, non c++11") - - auto query = LinkedResources - | Type("text") - | Type("image") - | Agent("test") - | RecentlyCreatedFirst; - - QCOMPARE(query.selection(), LinkedResources); - QCOMPARE(query.types(), QStringList() << "text" << "image"); - QCOMPARE(query.agents(), QStringList() << "test"); - QCOMPARE(query.activities(), QStringList() << ":current"); - QCOMPARE(query.ordering(), RecentlyCreatedFirst); - - #ifdef Q_COMPILER_INITIALIZER_LISTS - TEST_CHUNK("Testing the fancy syntax, c++11") - - // Testing the fancy c++11 syntax - auto queryCXX11 = LinkedResources - | Type{"text", "image"} - | Agent{"test"} - | RecentlyCreatedFirst; - - QCOMPARE(query, queryCXX11); - #endif -} - -void QueryTest::testFancySyntaxAgentDefinition() -{ - TEST_CHUNK("Testing the fancy syntax, agent definition") - - { - auto query = LinkedResources | OrderByUrl; - QCOMPARE(query.agents(), QStringList() << ":current"); - } - - { - auto query = LinkedResources | Agent("gvim"); - QCOMPARE(query.agents(), QStringList() << "gvim"); - } - - { - auto query = LinkedResources | Agent("gvim") | Agent("kate"); - QCOMPARE(query.agents(), QStringList() << "gvim" << "kate"); - } - - { - auto query = LinkedResources | Agent(QStringList() << "gvim" << "kate"); - QCOMPARE(query.agents(), QStringList() << "gvim" << "kate"); - } -} - -void QueryTest::testFancySyntaxTypeDefinition() -{ - TEST_CHUNK("Testing the fancy syntax, type definition") - - { - auto query = LinkedResources | OrderByUrl; - QCOMPARE(query.types(), QStringList() << ":any"); - } - - { - auto query = LinkedResources | Type("text/plain"); - QCOMPARE(query.types(), QStringList() << "text/plain"); - } - - { - auto query = LinkedResources | Type("text/plain") | Type("text/html"); - QCOMPARE(query.types(), QStringList() << "text/plain" << "text/html"); - } - - { - auto query = LinkedResources | Type(QStringList() << "text/plain" << "text/html"); - QCOMPARE(query.types(), QStringList() << "text/plain" << "text/html"); - } -} - -void QueryTest::testFancySyntaxActivityDefinition() -{ - TEST_CHUNK("Testing the fancy syntax, activity definition") - - { - auto query = LinkedResources | OrderByUrl; - QCOMPARE(query.activities(), QStringList() << ":current"); - } - - { - auto query = LinkedResources | Activity("gvim"); - QCOMPARE(query.activities(), QStringList() << "gvim"); - } - - { - auto query = LinkedResources | Activity("gvim") | Activity("kate"); - QCOMPARE(query.activities(), QStringList() << "gvim" << "kate"); - } - - { - auto query = LinkedResources | Activity(QStringList() << "gvim" << "kate"); - QCOMPARE(query.activities(), QStringList() << "gvim" << "kate"); - } -} - -void QueryTest::testFancySyntaxOrderingDefinition() -{ - TEST_CHUNK("Testing the fancy syntax, activity definition") - - { - auto query = LinkedResources | OrderByUrl; - QCOMPARE(query.ordering(), OrderByUrl); - } - - { - auto query = LinkedResources | HighScoredFirst; - QCOMPARE(query.ordering(), HighScoredFirst); - } - - { - auto query = LinkedResources | RecentlyCreatedFirst; - QCOMPARE(query.ordering(), RecentlyCreatedFirst); - } - - { - auto query = LinkedResources | RecentlyCreatedFirst | OrderByUrl; - QCOMPARE(query.ordering(), OrderByUrl); - } - - { - auto query = LinkedResources | RecentlyCreatedFirst | HighScoredFirst; - QCOMPARE(query.ordering(), HighScoredFirst); - } -} - -void QueryTest::initTestCase() -{ - // CHECK_CONDITION(isActivityManagerRunning, FailIfTrue); -} - -void QueryTest::cleanupTestCase() -{ - emit testFinished(); -} - diff -Nru kactivities-kf5-5.18.0/autotests/stats/QueryTest.h kactivities-kf5-5.44.0/autotests/stats/QueryTest.h --- kactivities-kf5-5.18.0/autotests/stats/QueryTest.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/QueryTest.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef OFFLINETEST_H -#define OFFLINETEST_H - -#include - -#include - -#include - -class QueryTest : public Test { - Q_OBJECT -public: - QueryTest(QObject *parent = nullptr); - -private Q_SLOTS: - void initTestCase(); - - void testDefaults(); - void testDebuggingOutput(); - - void testDerivationFromDefault(); - void testDerivationFromCustom(); - - void testNormalSyntaxAgentManipulation(); - void testNormalSyntaxTypeManipulation(); - void testNormalSyntaxActivityManipulation(); - void testNormalSyntaxOrderingManipulation(); - - void testFancySyntaxBasic(); - void testFancySyntaxAgentDefinition(); - void testFancySyntaxTypeDefinition(); - void testFancySyntaxActivityDefinition(); - void testFancySyntaxOrderingDefinition(); - - void cleanupTestCase(); - -private: - -}; - - -#endif /* OFFLINETEST_H */ - diff -Nru kactivities-kf5-5.18.0/autotests/stats/quickcheck/tables/common.h kactivities-kf5-5.44.0/autotests/stats/quickcheck/tables/common.h --- kactivities-kf5-5.18.0/autotests/stats/quickcheck/tables/common.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/quickcheck/tables/common.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,191 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef QUICKCHECK_DATABASE_COMMON_H -#define QUICKCHECK_DATABASE_COMMON_H - -struct PrimaryKeyOrdering { - template - bool operator() (const T &left, - const T &right) const - { - return left.primaryKey() < right.primaryKey(); - } -}; - -#define TABLE(Table) std::set - -#define DECL_COLUMN(ColumnType, ColumnName) \ - inline Column ColumnName() \ - { \ - return Column(&Item::ColumnName); \ - } - -template -class Column { - typedef Column ThisType; - -public: - Column(const ColumnType Type::* memberptr) - : memberptr(memberptr) - { - } - - //_ Column comparator functor - template - class CompositeComparator { - public: - CompositeComparator(Comp1 comp1, Comp2 comp2) - : comp1(comp1) - , comp2(comp2) - { - } - - inline bool operator()(const Type &left, const Type &right) const - { - return - comp1(left, right) ? true : - comp1(right, left) ? false : - comp2(left, right); - } - - private: - const Comp1 comp1; - const Comp2 comp2; - }; - - class Comparator { - public: - Comparator(const ColumnType Type::* memberptr, bool invert) - : memberptr(memberptr) - , invert(invert) - { - } - - inline bool operator()(const Type &left, const Type &right) const - { - return (invert) ? right.*memberptr < left.*memberptr - : left.*memberptr < right.*memberptr; - } - - template - CompositeComparator operator | (const Comp2 &comp2) - { - return CompositeComparator(*this, comp2); - } - - private: - const ColumnType Type::* memberptr; - const bool invert; - }; - //^ - - inline Comparator asc() const - { - return Comparator(memberptr, false); - } - - inline Comparator desc() const - { - return Comparator(memberptr, true); - } - - //_ Column filtering functor - enum ComparisonOperation { - Less, - LessOrEqual, - Equal, - GreaterOrEqual, - Greater - }; - - template - class Filterer { - public: - Filterer(const ColumnType Type::*memberptr, - ComparisonOperation comparison, - const T &value) - : memberptr(memberptr) - , comparison(comparison) - , value(value) - { - } - - inline bool operator()(const Type &item) const - { - return - comparison == Less ? item.*memberptr < value : - comparison == LessOrEqual ? item.*memberptr <= value : - comparison == Equal ? item.*memberptr == value : - comparison == GreaterOrEqual ? item.*memberptr >= value : - comparison == Greater ? item.*memberptr > value : - false; - } - - private: - const ColumnType Type::* memberptr; - const ComparisonOperation comparison; - const T value; - }; - - #define IMPLEMENT_COMPARISON_OPERATOR(OPERATOR, NAME) \ - template \ - inline Filterer operator OPERATOR(const T &value) const \ - { \ - return Filterer(memberptr, NAME, value); \ - } - //^ - - IMPLEMENT_COMPARISON_OPERATOR(< , Less) - IMPLEMENT_COMPARISON_OPERATOR(<= , LessOrEqual) - IMPLEMENT_COMPARISON_OPERATOR(== , Equal) - IMPLEMENT_COMPARISON_OPERATOR(>= , GreaterOrEqual) - IMPLEMENT_COMPARISON_OPERATOR(> , Greater) - - #undef IMPLEMENT_COMPARISON_OPERATOR - - // Column stuff - -private: - const ColumnType Type::* memberptr; -}; - -template -inline auto groupBy(const Range &range, - const ColumnMemberPointer &memberptr, - const MergeFunction &merge) - -> std::vector -{ - std::vector result; - - for (const auto& item: range) { - if (result.size() == 0 || result.back().*memberptr != item.*memberptr) { - result.push_back(item); - } else { - merge(result.back(), item); - } - } - - return result; -} - - -#endif // QUICKCHECK_DATABASE_COMMON_H - -// vim: set foldmethod=marker: diff -Nru kactivities-kf5-5.18.0/autotests/stats/quickcheck/tables/ResourceInfo.h kactivities-kf5-5.44.0/autotests/stats/quickcheck/tables/ResourceInfo.h --- kactivities-kf5-5.18.0/autotests/stats/quickcheck/tables/ResourceInfo.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/quickcheck/tables/ResourceInfo.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef RESOURCEINFO_TABLE_H -#define RESOURCEINFO_TABLE_H - -#include - -#include "common.h" - -namespace ResourceInfo { - struct Item { - QString targettedResource; - QString title; - QString mimetype; - - const QString &primaryKey() const - { - return targettedResource; - } - - }; - - DECL_COLUMN(QString, targettedResource); - DECL_COLUMN(QString, title); - DECL_COLUMN(QString, mimetype); - -} - -#endif // RESOURCEINFO_TABLE_H - diff -Nru kactivities-kf5-5.18.0/autotests/stats/quickcheck/tables/ResourceLink.h kactivities-kf5-5.44.0/autotests/stats/quickcheck/tables/ResourceLink.h --- kactivities-kf5-5.18.0/autotests/stats/quickcheck/tables/ResourceLink.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/quickcheck/tables/ResourceLink.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef RESOURCELINK_TABLE_H -#define RESOURCELINK_TABLE_H - -#include - -#include "common.h" - -namespace ResourceLink { - struct Item { - QString usedActivity; - QString initiatingAgent; - QString targettedResource; - - inline std::tuple - primaryKey() const - { - return std::tie(targettedResource, usedActivity, initiatingAgent); - } - }; - - DECL_COLUMN(QString, usedActivity); - DECL_COLUMN(QString, initiatingAgent); - DECL_COLUMN(QString, targettedResource); - - template - inline std::vector groupByResource(const Range &range) - { - return groupBy(range, &Item::targettedResource, - [](Item &acc, const Item &item) { - acc.usedActivity += item.usedActivity + ' '; - acc.initiatingAgent += item.initiatingAgent + ' '; - }); - } - -} // namespace ResourceLink - -#endif // RESOURCELINK_TABLE_H diff -Nru kactivities-kf5-5.18.0/autotests/stats/quickcheck/tables/ResourceScoreCache.h kactivities-kf5-5.44.0/autotests/stats/quickcheck/tables/ResourceScoreCache.h --- kactivities-kf5-5.18.0/autotests/stats/quickcheck/tables/ResourceScoreCache.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/quickcheck/tables/ResourceScoreCache.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef RESOURCESCORECACHE_TABLE_H -#define RESOURCESCORECACHE_TABLE_H - -#include - -#include - -#include "common.h" - -namespace ResourceScoreCache { - struct Item { - QString usedActivity; - QString initiatingAgent; - QString targettedResource; - - double cachedScore; - int firstUpdate; - int lastUpdate; - - // defining the primary key - - inline std::tuple - primaryKey() const - { - return std::tie(targettedResource, usedActivity, initiatingAgent); - } - - }; - - DECL_COLUMN(QString, usedActivity); - DECL_COLUMN(QString, initiatingAgent); - DECL_COLUMN(QString, targettedResource); - - DECL_COLUMN(double, cachedScore); - DECL_COLUMN(int, lastUpdate); - DECL_COLUMN(int, firstUpdate); - - template - inline std::vector groupByResource(const Range &range) - { - return groupBy(range, &Item::targettedResource, - [](Item &acc, const Item &item) { - acc.cachedScore += item.cachedScore; - if (acc.lastUpdate < item.lastUpdate) { - acc.lastUpdate = item.lastUpdate; - } - if (acc.firstUpdate > item.firstUpdate) { - acc.firstUpdate = item.firstUpdate; - } - }); - } - -} - -#endif // RESOURCESCORECACHE_TABLE_H - diff -Nru kactivities-kf5-5.18.0/autotests/stats/ResultSetQuickCheckTest.cpp kactivities-kf5-5.44.0/autotests/stats/ResultSetQuickCheckTest.cpp --- kactivities-kf5-5.18.0/autotests/stats/ResultSetQuickCheckTest.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/ResultSetQuickCheckTest.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,658 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "ResultSetQuickCheckTest.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -#include - -#include -#include -#include - -#include - -#define NUMBER_ACTIVITIES 10 -#define NUMBER_AGENTS 10 -#define NUMBER_RESOURCES 50 -#define NUMBER_CACHES 200 - -namespace KAStats = KActivities::Experimental::Stats; - -static ResultSetQuickCheckTest * instance; - -ResultSetQuickCheckTest::ResultSetQuickCheckTest(QObject *parent) - : Test(parent) - , activities(new KActivities::Consumer()) -{ - instance = this; -} - -namespace { - QString resourceTitle(const QString &resource) - { - // We need to find the title - ResourceInfo::Item key; - key.targettedResource = resource; - - auto &infos = instance->resourceInfos; - - auto ri = infos.lower_bound(key); - - return - (ri != infos.cend() && ri->targettedResource == resource) ? - ri->title : resource; - } - - QString toQString(const ResourceScoreCache::Item &item) - { - return - item.targettedResource - + ':' + resourceTitle(item.targettedResource) - + '(' + QString::number(item.cachedScore) + ')'; - } - - QString toQString(const ResourceLink::Item &item) - { - return - item.targettedResource - + ':' + resourceTitle(item.targettedResource) - // + '(' + QString::number(0/* item.score */) + ')' - ; - } - - QString toQString(const KAStats::ResultSet::Result &item) - { - return - item.resource() - + ':' + item.title() - + '(' + QString::number(item.score()) + ')'; - } - - bool operator==(const ResourceScoreCache::Item &left, - const KAStats::ResultSet::Result &right) - { - return left.targettedResource == right.resource() - && resourceTitle(left.targettedResource) == right.title() - && qFuzzyCompare(left.cachedScore, right.score()); - } - - bool operator==(const ResourceLink::Item &left, - const KAStats::ResultSet::Result &right) - { - return left.targettedResource == right.resource() - && resourceTitle(left.targettedResource) == right.title(); - // && qFuzzyCompare(left.cachedScore, right.score); - } - - template - void assert_range_equal(const Left &left, const KAStats::ResultSet &right, - const char * file, int line) - { - auto leftIt = left.cbegin(); - auto rightIt = right.cbegin(); - auto leftEnd = left.cend(); - auto rightEnd = right.cend(); - - bool equal = true; - - QString leftLine; - QString rightLine; - - for (; leftIt != leftEnd && rightIt != rightEnd; ++leftIt, ++rightIt) { - auto leftString = toQString(*leftIt); - auto rightString = toQString(*rightIt); - - if (*leftIt == *rightIt) { - rightString.fill('.'); - - } else { - equal = false; - } - - int longer = qMax(leftString.length(), rightString.length()); - leftString = leftString.leftJustified(longer); - rightString = rightString.leftJustified(longer, '.'); - - leftLine += " " + leftString; - rightLine += " " + rightString; - } - - // So far, we are equal, but do we have the same number - // of elements - did we reach the end of both ranges? - if (leftIt != leftEnd) { - for (; leftIt != leftEnd; ++leftIt) { - leftLine += " " + toQString(*leftIt); - } - equal = false; - - } else if (rightIt != rightEnd) { - for (; rightIt != rightEnd; ++rightIt) { - rightLine += " " + toQString(*rightIt); - } - equal = false; - } - - if (!equal) { - // FIXME: This really needs to return the last query :) - // qDebug() << "SQL query was this:" << - // database->lastQuery() - // ; - qDebug() << "Ranges differ:\n" - << "MEM: " << leftLine << '\n' - << "SQL: " << rightLine; - QTest::qFail("Results do not match", file, line); - } - } - -#define ASSERT_RANGE_EQUAL(L, R) assert_range_equal(L, R, __FILE__, __LINE__) -} - -//_ Data init -void ResultSetQuickCheckTest::initTestCase() -{ - qsrand(time(NULL)); - - QString databaseFile; - - int dbArgIndex = QCoreApplication::arguments().indexOf("--ResultSetQuickCheckDatabase"); - if (dbArgIndex > 0) { - databaseFile = QCoreApplication::arguments()[dbArgIndex+1]; - - qDebug() << "Using an existing database: " + databaseFile; - Common::ResourcesDatabaseSchema::overridePath(databaseFile); - - pullFromDatabase(); - - } else { - - QTemporaryDir dir(QDir::tempPath() + "/KActivitiesStatsTest_ResultSetQuickCheckTest_XXXXXX"); - dir.setAutoRemove(false); - - if (!dir.isValid()) { - qFatal("Can not create a temporary directory"); - } - - databaseFile = dir.path() + "/database"; - - qDebug() << "Creating database in " << databaseFile; - Common::ResourcesDatabaseSchema::overridePath(databaseFile); - - while (activities->serviceStatus() == KActivities::Consumer::Unknown) { - QCoreApplication::processEvents(); - } - - generateActivitiesList(); - generateAgentsList(); - generateTypesList(); - generateResourcesList(); - - generateResourceInfos(); - generateResourceScoreCaches(); - generateResourceLinks(); - - pushToDatabase(); - } - - if (QCoreApplication::arguments().contains("--show-data")) { - QString rscs; - for (const auto& rsc: resourceScoreCaches) { - rscs += '(' + rsc.targettedResource + - ',' + rsc.usedActivity + - ',' + rsc.initiatingAgent + - ',' + rsc.cachedScore + - ')'; - } - - QString ris; - for (const auto& ri: resourceInfos) { - ris += '(' + ri.targettedResource + - ',' + ri.title + - ',' + ri.mimetype + - ')'; - } - - QString rls; - for (const auto& rl: resourceLinks) { - rls += '(' + rl.targettedResource + - ',' + rl.usedActivity + - ',' + rl.initiatingAgent + - ')'; - } - - qDebug() << "\nUsed data: -----------------------------" - << "\nActivities: " << activitiesList - << "\nAgents: " << agentsList - << "\nTypes: " << typesList - << "\nResources: " << resourcesList - << "\n----------------------------------------" - ; qDebug() - << "\n RSCs: " << rscs - ; qDebug() - << "\n RIs: " << ris - ; qDebug() - << "\n RLs: " << rls - << "\n----------------------------------------" - ; - } -} - -void ResultSetQuickCheckTest::generateActivitiesList() -{ - activitiesList = activities->activities(); - - while (activitiesList.size() < NUMBER_ACTIVITIES) { - activitiesList << QUuid::createUuid().toString().mid(1, 36); - } -} - -void ResultSetQuickCheckTest::generateAgentsList() -{ - for (int i = 0; i < NUMBER_AGENTS; ++i) { - agentsList << "Agent_" + QString::number(i); - } -} - -void ResultSetQuickCheckTest::generateTypesList() -{ - typesList - << "application/postscript" - << "application/pdf" - << "image/x-psd" - << "image/x-sgi" - << "image/x-tga" - << "image/x-xbitmap" - << "image/x-xwindowdump" - << "image/x-xcf" - << "image/x-compressed-xcf" - << "image/tiff" - << "image/jpeg" - << "image/x-psp" - << "image/png" - << "image/x-icon" - << "image/x-xpixmap" - << "image/svg+xml" - << "application/pdf" - << "image/x-wmf" - << "image/jp2" - << "image/jpeg2000" - << "image/jpx" - << "image/x-xcursor"; -} - -void ResultSetQuickCheckTest::generateResourcesList() -{ - for (int i = 0; i < NUMBER_RESOURCES; ++i) { - resourcesList << ( - QStringLiteral("/r") - + (i < 10 ? "0" : "") - + QString::number(i) - ); - } -} - -void ResultSetQuickCheckTest::generateResourceInfos() -{ - foreach (const QString &resource, resourcesList) { - // We want every n-th or so to be without the title - if (qrand() % 3) continue; - - ResourceInfo::Item ri; - ri.targettedResource = resource; - ri.title = "Title_" + QString::number(qrand() % 100); - ri.mimetype = randItem(typesList); - - resourceInfos.insert(ri); - } -} - -void ResultSetQuickCheckTest::generateResourceScoreCaches() -{ - for (int i = 0; i < NUMBER_CACHES; ++i) { - ResourceScoreCache::Item rsc; - - rsc.usedActivity = randItem(activitiesList); - rsc.initiatingAgent = randItem(agentsList); - rsc.targettedResource = randItem(resourcesList); - - rsc.cachedScore = qrand() % 1000; - rsc.firstUpdate = qrand(); - rsc.lastUpdate = qrand(); - - resourceScoreCaches.insert(rsc); - } -} - -void ResultSetQuickCheckTest::generateResourceLinks() -{ - foreach (const QString &resource, resourcesList) { - // We don't want all the resources to be linked - // to something - if (qrand() % 2) continue; - - ResourceLink::Item rl; - - rl.targettedResource = resource; - rl.usedActivity = randItem(activitiesList); - rl.initiatingAgent = randItem(agentsList); - - resourceLinks.insert(rl); - } -} - -void ResultSetQuickCheckTest::pushToDatabase() -{ - auto database = Common::Database::instance( - Common::Database::ResourcesDatabase, - Common::Database::ReadWrite - ); - - Common::ResourcesDatabaseSchema::initSchema(*database); - - // Inserting activities, so that a test can be replicated - database->execQuery("CREATE TABLE Activity (activity TEXT)"); - for (const auto& activity: activitiesList) { - database->execQuery(QStringLiteral("INSERT INTO Activity VALUES ('%1')") - .arg(activity)); - } - - // Inserting agent, so that a test can be replicated - database->execQuery("CREATE TABLE Agent (agent TEXT)"); - for (const auto& agent: agentsList) { - database->execQuery(QStringLiteral("INSERT INTO Agent VALUES ('%1')") - .arg(agent)); - } - - // Inserting types, so that a test can be replicated - database->execQuery("CREATE TABLE Type (type TEXT)"); - for (const auto& type: typesList) { - database->execQuery(QStringLiteral("INSERT INTO Type VALUES ('%1')") - .arg(type)); - } - - // Inserting resources, so that a test can be replicated - database->execQuery("CREATE TABLE Resource (resource TEXT)"); - for (const auto& resource: resourcesList) { - database->execQuery(QStringLiteral("INSERT INTO Resource VALUES ('%1')") - .arg(resource)); - } - - // Inserting resource score caches - qDebug() << "Inserting" << resourceScoreCaches.size() << "items into ResourceScoreCache"; - int i = 0; - - foreach (const auto &rsc, resourceScoreCaches) { - std::cerr << '.'; - - if (++i % 10 == 0) std::cerr << i; - - database->execQuery(QStringLiteral( - "INSERT INTO ResourceScoreCache (" - " usedActivity" - ", initiatingAgent" - ", targettedResource" - ", scoreType" - ", cachedScore" - ", firstUpdate" - ", lastUpdate" - ") VALUES (" - " '%1'" // usedActivity - ", '%2'" // initiatingAgent - ", '%3'" // targettedResource - ", 0 " // scoreType - ", %4 " // cachedScore - ", %5 " // firstUpdate - ", %6 " // lastUpdate - ")" - ) - .arg(rsc.usedActivity) - .arg(rsc.initiatingAgent) - .arg(rsc.targettedResource) - .arg(rsc.cachedScore) - .arg(rsc.firstUpdate) - .arg(rsc.lastUpdate) - ); - - } - std::cerr << std::endl; - - // Inserting resource infos - qDebug() << "Inserting" << resourceInfos.size() << "items into ResourceInfo"; - i = 0; - - foreach (const auto &ri, resourceInfos) { - std::cerr << '.'; - - if (++i % 10 == 0) std::cerr << i; - - database->execQuery(QStringLiteral( - "INSERT INTO ResourceInfo (" - " targettedResource" - ", title" - ", mimetype" - ", autoTitle" - ", autoMimetype" - ") VALUES (" - " '%1' " // targettedResource - ", '%2' " // title - ", '%3' " // mimetype - ", 1 " // autoTitle - ", 1 " // autoMimetype - ")" - ) - .arg(ri.targettedResource) - .arg(ri.title) - .arg(ri.mimetype) - ); - - } - std::cerr << std::endl; - - // Inserting resource links - qDebug() << "Inserting" << resourceLinks.size() << "items into ResourceLink"; - i = 0; - - foreach (const auto &rl, resourceLinks) { - std::cerr << '.'; - - if (++i % 10 == 0) std::cerr << i; - - database->execQuery(QStringLiteral( - "INSERT INTO ResourceLink (" - " targettedResource" - ", usedActivity" - ", initiatingAgent" - ") VALUES (" - " '%1' " // targettedResource - ", '%2' " // usedActivity - ", '%3' " // initiatingAgent - ")" - ) - .arg(rl.targettedResource) - .arg(rl.usedActivity) - .arg(rl.initiatingAgent) - ); - - } - std::cerr << std::endl; -} - - -void ResultSetQuickCheckTest::pullFromDatabase() -{ - auto database = Common::Database::instance( - Common::Database::ResourcesDatabase, - Common::Database::ReadWrite - ); - - auto activityQuery = database->execQuery("SELECT * FROM Activity"); - for (const auto& activity: activityQuery) { - activitiesList << activity[0].toString(); - } - - auto agentQuery = database->execQuery("SELECT * FROM Agent"); - for (const auto& agent: agentQuery) { - agentsList << agent[0].toString(); - } - - auto typeQuery = database->execQuery("SELECT * FROM Type"); - for (const auto& type: typeQuery) { - typesList << type[0].toString(); - } - - auto resourceQuery = database->execQuery("SELECT * FROM Resource"); - for (const auto& resource: resourceQuery) { - resourcesList << resource[0].toString(); - } - - - auto rscQuery = database->execQuery("SELECT * FROM ResourceScoreCache"); - - for (const auto &rsc: rscQuery) { - ResourceScoreCache::Item item; - item.usedActivity = rsc["usedActivity"].toString(); - item.initiatingAgent = rsc["initiatingAgent"].toString(); - item.targettedResource = rsc["targettedResource"].toString(); - item.cachedScore = rsc["cachedScore"].toDouble(); - item.firstUpdate = rsc["firstUpdate"].toInt(); - item.lastUpdate = rsc["lastUpdate"].toInt(); - resourceScoreCaches.insert(item); - } - - auto riQuery = database->execQuery("SELECT * FROM ResourceInfo"); - - for (const auto& ri: riQuery) { - ResourceInfo::Item item; - item.targettedResource = ri["targettedResource"].toString(); - item.title = ri["title"].toString(); - item.mimetype = ri["mimetype"].toString(); - resourceInfos.insert(item); - } - - auto rlQuery = database->execQuery("SELECT * FROM ResourceLink"); - - for (const auto& rl: rlQuery) { - ResourceLink::Item item; - item.targettedResource = rl["targettedResource"].toString(); - item.usedActivity = rl["usedActivity"].toString(); - item.initiatingAgent = rl["initiatingAgent"].toString(); - resourceLinks.insert(item); - } -} - -void ResultSetQuickCheckTest::cleanupTestCase() -{ - emit testFinished(); -} - -QString ResultSetQuickCheckTest::randItem(const QStringList &choices) const -{ - return choices[qrand() % choices.size()]; -} -//^ Data init - -void ResultSetQuickCheckTest::testUsedResourcesForAgents() -{ - using namespace KAStats; - using namespace KAStats::Terms; - using boost::sort; - using boost::adaptors::filtered; - - foreach (const auto &agent, agentsList) { - auto memItems = ResourceScoreCache::groupByResource( - resourceScoreCaches - | filtered(ResourceScoreCache::initiatingAgent() == agent) - ); - - auto baseTerm = UsedResources | Agent{agent} | Activity::any(); - - #define ORDERING_TEST(Column, Dir, OrderFlag) \ - { \ - sort(memItems, ResourceScoreCache::Column().Dir() \ - | ResourceScoreCache::targettedResource().asc()); \ - ResultSet dbItems = baseTerm | OrderFlag; \ - ASSERT_RANGE_EQUAL(memItems, dbItems); \ - } - - ORDERING_TEST(targettedResource, asc, OrderByUrl) - ORDERING_TEST(cachedScore, desc, HighScoredFirst); - ORDERING_TEST(lastUpdate, desc, RecentlyUsedFirst); - ORDERING_TEST(firstUpdate, desc, RecentlyCreatedFirst); - - #undef ORDERING_TEST - - } - -} - -void ResultSetQuickCheckTest::testUsedResourcesForActivities() -{ -} - -void ResultSetQuickCheckTest::testLinkedResourcesForAgents() -{ - using namespace KAStats; - using namespace KAStats::Terms; - using boost::sort; - using boost::adaptors::filtered; - - foreach (const auto &agent, agentsList) { - auto memItems = ResourceLink::groupByResource( - resourceLinks - | filtered(ResourceLink::initiatingAgent() == agent) - ); - - auto baseTerm = LinkedResources | Agent{agent} | Activity::any(); - - #define ORDERING_TEST(Column, Dir, OrderFlag) \ - { \ - sort(memItems, ResourceLink::Column().Dir() \ - | ResourceLink::targettedResource().asc()); \ - ResultSet dbItems = baseTerm | OrderFlag; \ - ASSERT_RANGE_EQUAL(memItems, dbItems); \ - } - - ORDERING_TEST(targettedResource, asc, OrderByUrl) - // ORDERING_TEST(cachedScore, desc, HighScoredFirst); - // ORDERING_TEST(lastUpdate, desc, RecentlyUsedFirst); - // ORDERING_TEST(firstUpdate, desc, RecentlyCreatedFirst); - - #undef ORDERING_TEST - - } - -} - -// vim: set foldmethod=marker: diff -Nru kactivities-kf5-5.18.0/autotests/stats/ResultSetQuickCheckTest.h kactivities-kf5-5.44.0/autotests/stats/ResultSetQuickCheckTest.h --- kactivities-kf5-5.18.0/autotests/stats/ResultSetQuickCheckTest.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/ResultSetQuickCheckTest.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef RESULTSET_QUICKCHECK_TEST_H -#define RESULTSET_QUICKCHECK_TEST_H - -#include - -#include -#include - -#include -#include -#include - -#include "quickcheck/tables/ResourceScoreCache.h" -#include "quickcheck/tables/ResourceInfo.h" -#include "quickcheck/tables/ResourceLink.h" - -using boost::container::flat_set; - -class ResultSetQuickCheckTest : public Test { - Q_OBJECT -public: - ResultSetQuickCheckTest(QObject *parent = nullptr); - -private Q_SLOTS: - void initTestCase(); - - void testUsedResourcesForAgents(); - void testUsedResourcesForActivities(); - - void testLinkedResourcesForAgents(); - - void cleanupTestCase(); - -public: - QScopedPointer activities; - - struct PrimaryKeyOrder { - template - bool operator() (const T &left, - const T &right) const - { - return left.primaryKey() < right.primaryKey(); - } - }; - - TABLE(ResourceScoreCache) resourceScoreCaches; - TABLE(ResourceInfo) resourceInfos; - TABLE(ResourceLink) resourceLinks; - - QString randItem(const QStringList &choices) const; - - QStringList activitiesList; - QStringList agentsList; - QStringList typesList; - QStringList resourcesList; - - void generateActivitiesList(); - void generateAgentsList(); - void generateTypesList(); - void generateResourcesList(); - - void generateResourceInfos(); - void generateResourceScoreCaches(); - void generateResourceLinks(); - - void pushToDatabase(); - void pullFromDatabase(); - -}; - - -#endif /* RESULTSET_QUICKCHECK_TEST_H */ - diff -Nru kactivities-kf5-5.18.0/autotests/stats/ResultSetTest.cpp kactivities-kf5-5.44.0/autotests/stats/ResultSetTest.cpp --- kactivities-kf5-5.18.0/autotests/stats/ResultSetTest.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/ResultSetTest.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,230 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "ResultSetTest.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include - -#include -#include -#include - -namespace KAStats = KActivities::Experimental::Stats; - -ResultSetTest::ResultSetTest(QObject *parent) - : Test(parent) -{ -} - -namespace { - QString getBarredUri(const KAStats::ResultSet::Result &result) - { - return result.resource() + "|"; - } - - QString concatenateResults(const KAStats::ResultSet &results) - { - using boost::accumulate; - using boost::adaptors::transformed; - - return accumulate( - results | transformed(getBarredUri), - QStringLiteral("|") - ); - } -} - -void ResultSetTest::testLinkedResources() -{ - using namespace KAStats; - using namespace KAStats::Terms; - - // TEST_CHUNK("Getting the linked resources alphabetically") - // { - // ResultSet result(LinkedResources - // | Agent { "gvim" } - // | Activity { "860d9ec8-87f9-8e96-1558-1faf54b98e97" } - // | OrderAlphabetically - // ); - // - // QCOMPARE(result.at(0).resource, QStringLiteral("/path/mid1_a1")); - // QCOMPARE(result.at(1).resource, QStringLiteral("/path/mid2_a1")); - // } - -} - -void ResultSetTest::testUsedResources() -{ - using namespace KAStats; - using namespace KAStats::Terms; - - qDebug() << "Agent: " << QCoreApplication::instance()->applicationName(); - - TEST_CHUNK("Getting the used resources by the highest score, default query") - { - ResultSet result(UsedResources); - - qDebug() << "-----------------------------"; - for (const auto &item: result) { - qDebug() << "Item: " << item.resource(); - } - qDebug() << "-----------------------------"; - - QCOMPARE(result.at(0).resource(), QStringLiteral("/path/high5_act1_kast")); - QCOMPARE(result.at(1).resource(), QStringLiteral("/path/high7_act1_kast")); - QCOMPARE(result.at(2).resource(), QStringLiteral("/path/high8_act1_kast")); - - // END! - QCOMPARE(result.at(3).resource(), QString()); - - // Testing whether range works - QCOMPARE(QStringLiteral("|/path/high5_act1_kast|/path/high7_act1_kast|/path/high8_act1_kast|"), - concatenateResults(result)); - } - - TEST_CHUNK("Getting the used resources by the highest score, gvim") - { - ResultSet result(UsedResources - | HighScoredFirst - | Agent{"gvim"} - ); - - QCOMPARE(result.at(0).resource(), QStringLiteral("/path/high1_act1_gvim")); - QCOMPARE(result.at(1).resource(), QStringLiteral("/path/high4_act1_gvim")); - } - - TEST_CHUNK("Getting the used resources by the highest score, global agent") - { - ResultSet result(UsedResources - | HighScoredFirst - | Agent::global() - ); - - QCOMPARE(result.at(0).resource(), QStringLiteral("/path/mid6_act1_glob")); - QCOMPARE(result.at(1).resource(), QStringLiteral("/path/mid7_act1_glob")); - QCOMPARE(result.at(2).resource(), QStringLiteral("/path/mid8_act1_glob")); - } - - TEST_CHUNK("Getting the used resources by the highest score, any agent") - { - ResultSet result(UsedResources - | HighScoredFirst - | Agent::any() - | Activity::any() - ); - - QCOMPARE(result.at(0).resource(), QStringLiteral("/path/high1_act1_gvim")); - QCOMPARE(result.at(1).resource(), QStringLiteral("/path/high2_act2_kate")); - QCOMPARE(result.at(2).resource(), QStringLiteral("/path/high3_act1_kate")); - } -} - -void ResultSetTest::initTestCase() -{ - QTemporaryDir dir(QDir::tempPath() + "/KActivitiesStatsTest_ResultSetTest_XXXXXX"); - dir.setAutoRemove(false); - - if (!dir.isValid()) { - qFatal("Can not create a temporary directory"); - } - - const auto databaseFile = dir.path() + "/database"; - - Common::ResourcesDatabaseSchema::overridePath(databaseFile); - qDebug() << "Creating database in " << databaseFile; - - // Creating the database, and pushing some dummy data into it - auto database = Common::Database::instance(Common::Database::ResourcesDatabase, - Common::Database::ReadWrite); - - Common::ResourcesDatabaseSchema::initSchema(*database); - - database->execQuery( - "INSERT INTO ResourceScoreCache (usedActivity, initiatingAgent, targettedResource, scoreType, cachedScore, firstUpdate, lastUpdate) VALUES " - - " ('activity1' , 'gvim' , '/path/high1_act1_gvim' , '0' , '800' , '-1' , '1421446599')" - " , ('activity2' , 'kate' , '/path/high2_act2_kate' , '0' , '700' , '-1' , '1421439442')" - " , ('activity1' , 'kate' , '/path/high3_act1_kate' , '0' , '600' , '-1' , '1421439442')" - " , ('activity1' , 'gvim' , '/path/high4_act1_gvim' , '0' , '500' , '-1' , '1421446488')" - " , ('activity1' , 'KActivitiesStatsTest' , '/path/high5_act1_kast' , '0' , '400' , '-1' , '1421446599')" - " , ('activity2' , 'KActivitiesStatsTest' , '/path/high6_act2_kast' , '0' , '300' , '-1' , '1421439442')" - " , ('activity1' , 'KActivitiesStatsTest' , '/path/high7_act1_kast' , '0' , '200' , '-1' , '1421439442')" - " , ('activity1' , 'KActivitiesStatsTest' , '/path/high8_act1_kast' , '0' , '100' , '-1' , '1421446488')" - - " , ('activity1' , 'gvim' , '/path/mid1_act1_gvim' , '0' , '17' , '-1' , '1421433419')" - " , ('activity1' , 'gvim' , '/path/mid2_act1_gvim' , '0' , '54' , '-1' , '1421431630')" - " , ('activity2' , 'gvim' , '/path/mid3_act2_gvim' , '0' , '8' , '-1' , '1421433172')" - " , ('activity2' , 'gvim' , '/path/mid4_act2_gvim' , '0' , '8' , '-1' , '1421432545')" - " , ('activity2' , 'gvim' , '/path/mid5_act2_gvim' , '0' , '79' , '-1' , '1421439118')" - " , ('activity1' , ':global' , '/path/mid6_act1_glob' , '0' , '20' , '-1' , '1421439331')" - " , ('activity1' , ':global' , '/path/mid7_act1_glob' , '0' , '8' , '-1' , '0')" - " , ('activity1' , ':global' , '/path/mid8_act1_glob' , '0' , '7' , '-1' , '1421432617')" - - " , ('activity1' , 'gvim' , '/path/low3_act1_gvim' , '0' , '6' , '-1' , '1421434704')" - " , ('activity1' , 'kate' , '/path/low2_act1_kate' , '0' , '3' , '-1' , '1421433266')" - " , ('activity1' , 'kate' , '/path/low1_act1_kate' , '0' , '2' , '-1' , '1421433254')" - - ); - - // Renaming the activity1 to the current acitivty - KActivities::Consumer kamd; - - while (kamd.serviceStatus() == KActivities::Consumer::Unknown) { - QCoreApplication::processEvents(); - } - - database->execQuery( - "UPDATE ResourceScoreCache SET usedActivity = '" - + kamd.currentActivity() - + "' WHERE usedActivity = 'activity1'"); - - - database->execQuery( - "INSERT INTO ResourceLink (usedActivity, initiatingAgent, targettedResource) VALUES " - - "('activity1' , 'gvim' , '/path/mid1_a1')" - ", ('activity1' , 'gvim' , '/path/mid2_a1')" - ", ('activity2' , 'gvim' , '/path/mid3_a2')" - ", ('activity2' , 'gvim' , '/path/mid4_a2')" - ", ('activity2' , 'gvim' , '/path/link5_a2')" - ", ('activity1' , 'kate' , '/path/link6_a1')" - ", ('activity1' , 'kate' , '/path/link7_a1')" - ", ('activity1' , 'kate' , '/path/link8_a1')" - - ); -} - -void ResultSetTest::cleanupTestCase() -{ - emit testFinished(); -} - diff -Nru kactivities-kf5-5.18.0/autotests/stats/ResultSetTest.h kactivities-kf5-5.44.0/autotests/stats/ResultSetTest.h --- kactivities-kf5-5.18.0/autotests/stats/ResultSetTest.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/ResultSetTest.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef RESULTSETTEST_H -#define RESULTSETTEST_H - -#include - -#include -#include - -#include - -class ResultSetTest : public Test { - Q_OBJECT -public: - ResultSetTest(QObject *parent = nullptr); - -private Q_SLOTS: - void initTestCase(); - - void testLinkedResources(); - void testUsedResources(); - - void cleanupTestCase(); - -}; - - -#endif /* RESULTSETTEST_H */ - diff -Nru kactivities-kf5-5.18.0/autotests/stats/ResultWatcherTest.cpp kactivities-kf5-5.44.0/autotests/stats/ResultWatcherTest.cpp --- kactivities-kf5-5.18.0/autotests/stats/ResultWatcherTest.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/ResultWatcherTest.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,138 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "ResultWatcherTest.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include -#include -#include - -#include -#include -#include - -namespace KAStats = KActivities::Experimental::Stats; - -ResultWatcherTest::ResultWatcherTest(QObject *parent) - : Test(parent) -{ -} - -namespace { - -inline void liveSleep(int seconds) -{ - qDebug() << "Sleeping for " << seconds << " seconds"; - auto start = QTime::currentTime(); - while (start.secsTo(QTime::currentTime()) < seconds) { - QCoreApplication::processEvents(); - } -} - -#define CHECK_SIGNAL_RESULT(OBJ, SIGN, SECS, TESTARGS, TESTBODY) \ - { \ - QObject context; \ - bool executed = false; \ - \ - QObject::connect(OBJ, SIGN, &context, [&] TESTARGS { \ - TESTBODY; \ - executed = true; \ - qDebug() << "Signal processed"; \ - }); \ - \ - qDebug() << "Waiting for the signal at most " << SECS << " seconds"; \ - auto start = QTime::currentTime(); \ - while (start.secsTo(QTime::currentTime()) < SECS && !executed) { \ - QCoreApplication::processEvents(); \ - } \ - QCOMPARE(executed, true); \ - } -} - -void ResultWatcherTest::testLinkedResources() -{ - using namespace KAStats; - using namespace KAStats::Terms; - - KAStats::ResultWatcher watcher( - LinkedResources | Agent::global() - | Activity::any()); - - watcher.linkToActivity(QUrl("test://link1"), Activity::current()); - - // A signal should arrive soon, waiting for 5 seconds at most - CHECK_SIGNAL_RESULT(&watcher, &KAStats::ResultWatcher::resultScoreUpdated, 5, - (const QString &uri, double), - QCOMPARE(QString("test://link1"), uri)); - - watcher.unlinkFromActivity(QUrl("test://link1"), Activity::current()); - - // A signal should arrive soon, waiting for 5 seconds at most - CHECK_SIGNAL_RESULT(&watcher, &KAStats::ResultWatcher::resultRemoved, 5, - (const QString &uri), - QCOMPARE(QString("test://link1"), uri)); -} - -void ResultWatcherTest::testUsedResources() -{ - using namespace KAStats; - using namespace KAStats::Terms; - - KAStats::ResultWatcher watcher( - UsedResources | Agent::current() - | Activity::any()); - - // Openning a resource for a few seconds - { - KActivities::ResourceInstance resource(0); - resource.setUri(QUrl("test://test1")); - - liveSleep(3); - } - - // A signal should arrive soon, waiting for 5 seconds at most - CHECK_SIGNAL_RESULT(&watcher, &KAStats::ResultWatcher::resultScoreUpdated, 5, - (const QString &uri, double), - QCOMPARE(QString("test://test1"), uri)); -} - -void ResultWatcherTest::initTestCase() -{ -} - -void ResultWatcherTest::cleanupTestCase() -{ - emit testFinished(); -} - diff -Nru kactivities-kf5-5.18.0/autotests/stats/ResultWatcherTest.h kactivities-kf5-5.44.0/autotests/stats/ResultWatcherTest.h --- kactivities-kf5-5.18.0/autotests/stats/ResultWatcherTest.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/autotests/stats/ResultWatcherTest.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef RESULTWATCHERTEST_H -#define RESULTWATCHERTEST_H - -#include - -#include -#include - -#include - -class ResultWatcherTest : public Test { - Q_OBJECT -public: - ResultWatcherTest(QObject *parent = nullptr); - -private Q_SLOTS: - void initTestCase(); - - void testLinkedResources(); - void testUsedResources(); - - void cleanupTestCase(); - -}; - - -#endif /* RESULTWATCHERTEST_H */ - diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++11-test-auto-N2546.cpp kactivities-kf5-5.44.0/cmake/modules/c++11-test-auto-N2546.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++11-test-auto-N2546.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++11-test-auto-N2546.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#include - -int main() -{ - auto i = 5; - auto f = 3.14159f; - auto d = 3.14159; - auto l = 3l; - - bool checkFloats = (sizeof(f) < sizeof(d)); - bool checkInts = (sizeof(i) == sizeof(int)); - bool checkLongs = (sizeof(l) == sizeof(long)); - - std::cout - << "Float sizes correct: " << checkFloats << std::endl - << "Integer size correct: " << checkFloats << std::endl - << "Long sizes correct: " << checkFloats << std::endl; - - return (checkFloats && checkInts && checkLongs) ? 0 : 1; -} diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++11-test-initializer-lists-N2672.cpp kactivities-kf5-5.44.0/cmake/modules/c++11-test-initializer-lists-N2672.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++11-test-initializer-lists-N2672.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++11-test-initializer-lists-N2672.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -// #include -// #include -#include - -struct test { - int i; - int j; - double k; - std::string s; -}; - -int main() -{ - test t { 1, 2, 4, "asdf" }; - // std::vector v { 1, 2, 3, 4 }; - - // return ( - // t.i == v[0] - // && t.j == v[1] - // && t.k > v[2] - // && t.s.size() == v[3] - // ) - // ? 0 : 1; - - return 0; -} diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++11-test-lambda-N2927.cpp kactivities-kf5-5.44.0/cmake/modules/c++11-test-lambda-N2927.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++11-test-lambda-N2927.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++11-test-lambda-N2927.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ -#include - -int main() -{ - int ref = 10; - int pass = 2; - - ([&](int mul) { - ref *= mul; - })(pass); - - bool checkRefNoref = (ref == 10 * pass); - - int result = ([=](int mul) { - return ref * mul; - })(pass); - - bool checkReturn = (result == 10 * pass * pass); - - std::cout - << "Capture by reference: " << checkRefNoref << std::endl - << "Return a value: " << checkReturn << std::endl; - - return (checkRefNoref && checkReturn) ? 0 : 1; -} diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++11-test-nullptr-N2431.cpp kactivities-kf5-5.44.0/cmake/modules/c++11-test-nullptr-N2431.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++11-test-nullptr-N2431.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++11-test-nullptr-N2431.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -int main() -{ - int * test = nullptr; - return test ? 1 : 0; -} diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++11-test-nullptr-N2431-fail.cpp kactivities-kf5-5.44.0/cmake/modules/c++11-test-nullptr-N2431-fail.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++11-test-nullptr-N2431-fail.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++11-test-nullptr-N2431-fail.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -int main() -{ - int i = nullptr; - return 1; -} diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++11-test-override-N3206.cpp kactivities-kf5-5.44.0/cmake/modules/c++11-test-override-N3206.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++11-test-override-N3206.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++11-test-override-N3206.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -#include - -class A { - public: - virtual int fn(int arg) { - return 10 * arg; - }; - -}; - -class B: public A { - public: - virtual int fn(int arg) override { - return 20 * arg; - }; - -}; - -int main() -{ - A * a = new A(); - A * b = new B(); - - int result = a->fn(2) - b->fn(1); - - return 0; -} diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++11-test-override-N3206-fail.cpp kactivities-kf5-5.44.0/cmake/modules/c++11-test-override-N3206-fail.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++11-test-override-N3206-fail.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++11-test-override-N3206-fail.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -#include - -class A { - public: - virtual int fn(int arg) { - return 10 * arg; - }; - -}; - -class B: public A { - public: - virtual int fn(long arg) override { - return 20 * arg; - }; - -}; - -int main() -{ - A * a = new A(); - A * b = new B(); - - int result = a->fn(2) - b->fn(1); - - return 0; -} diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++11-test-unique_ptr-none.cpp kactivities-kf5-5.44.0/cmake/modules/c++11-test-unique_ptr-none.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++11-test-unique_ptr-none.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++11-test-unique_ptr-none.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -#include -#include -#include -#include - -struct Question { - long answer; - std::string description; -}; - -int main() -{ - std::unique_ptr < Question > node_original(new Question()); - - node_original->answer = 42; - node_original->description = "The Answer to the Ultimate Question of Life, the Universe, and Everything"; - - std::unique_ptr < Question > node_second(std::move(node_original)); - - return (!node_original && (node_second->answer == 42))?0:1; -} diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++11-test-variadic-templates-N2242.cpp kactivities-kf5-5.44.0/cmake/modules/c++11-test-variadic-templates-N2242.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++11-test-variadic-templates-N2242.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++11-test-variadic-templates-N2242.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#include - -template -int addall(T value) -{ - return value; -} - -template -int addall(T value, Args ... args) -{ - return value + addall(args...); -} - -int main() -{ - int v1 = addall(1, 2, 3, 4, 5); // 15 - int v2 = addall(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4); // 40 - return ((v1 == 15) && (v2 == 40)) ? 0 : 1; -} diff -Nru kactivities-kf5-5.18.0/cmake/modules/CheckCxxFeatures.cmake kactivities-kf5-5.44.0/cmake/modules/CheckCxxFeatures.cmake --- kactivities-kf5-5.18.0/cmake/modules/CheckCxxFeatures.cmake 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/CheckCxxFeatures.cmake 1970-01-01 00:00:00.000000000 +0000 @@ -1,109 +0,0 @@ -# Macro that tests and returns whether a C++ feature is present in the -# current compiler - -set(CXX_CHECK_FEATURE_MODULE_DIR "${CMAKE_SOURCE_DIR}/cmake/modules") -set(CXX_FEATURES_SUPPORTED "") -set(CXX_FEATURES_UNSUPPORTED "") - -macro(CXX_PERFORM_TEST TEST_SOURCE_FILE TEST_TEST_BINARY_DIR EXPECTED_RESULT RESULT COMPILE_DEFINITIONS) - - try_run( - RUN_RESULT_VAR COMPILE_RESULT_VAR - "${TEST_BINARY_DIR}" "${TEST_SOURCE_FILE}" - COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS}" - COMPILE_OUTPUT_VARIABLE COMPILE_OUT - RUN_OUTPUT_VARIABLE RUN_OUT - ) - - set(RESULT_VAR FALSE) - - if (COMPILE_RESULT_VAR AND NOT RUN_RESULT_VAR) - set(RESULT_VAR TRUE) - endif (COMPILE_RESULT_VAR AND NOT RUN_RESULT_VAR) - - if (NOT ("${RESULT_VAR}" STREQUAL "${EXPECTED_RESULT}")) - # message ("Got ${RESULT_VAR} as a result, but ${EXPECTED_RESULT} expected") - - if (NOT ${COMPILE_RESULT_VAR}) - # message("------ compilation output ------") - # message("${COMPILE_OUT}") - endif (NOT ${COMPILE_RESULT_VAR}) - - if (${RUN_RESULT_VAR}) - # message("---------- run output ----------") - # message("${RUN_OUT}") - # message("Process returned: ${RUN_RESULT_VAR}") - endif (${RUN_RESULT_VAR}) - - # message("--------------------------------") - - set (${RESULT} FALSE) - - else () - set (${RESULT} TRUE) - - endif () - - - -endmacro(CXX_PERFORM_TEST TEST_SOURCE EXPECTED_RESULT RESULT) - - - -macro(CXX_CHECK_FEATURE CXX_VERSION FEATURE_NAME FEATURE_NUMBER RESULT_VAR COMPILE_DEFINITIONS) - - # Testing whether we have previously set the variable - if(NOT DEFINED ${RESULT_VAR}) - - set(TEST_BINARY_DIR - "${CMAKE_CURRENT_BINARY_DIR}/cxx-check-feature/cxx_${FEATURE_NUMBER}" - ) - - set(TEST_SOURCE_BASE - "${CXX_CHECK_FEATURE_MODULE_DIR}/${CXX_VERSION}-test-${FEATURE_NAME}-${FEATURE_NUMBER}" - ) - - set(TEST_SOURCE_FILE "${TEST_SOURCE_BASE}.cpp") - set(FAILTEST_SOURCE_FILE "${TEST_SOURCE_BASE}-fail.cpp") - - set(FEATURE_NAME - "'${FEATURE_NAME}' (${CXX_VERSION} N${FEATURE_NUMBER})" - ) - - message(STATUS "Checking C++ support for ${FEATURE_NAME}") - - string (COMPARE EQUAL "${CMAKE_CXX_COMPILER_ID}" "Clang" CMAKE_COMPILER_IS_CLANG) - string (COMPARE EQUAL "${CMAKE_CXX_COMPILER_ID}" "GNU" CMAKE_COMPILER_IS_GCC) - - set (ADD_COMPILE_DEFINITIONS "") - - if (EXISTS ${TEST_SOURCE_FILE}) - CXX_PERFORM_TEST(${TEST_SOURCE_FILE} ${TEST_BINARY_DIR} TRUE ${RESULT_VAR} "${COMPILE_DEFINITIONS} ${ADD_COMPILE_DEFINITIONS}") - endif () - - if (${RESULT_VAR} AND EXISTS ${FAILTEST_SOURCE_FILE}) - CXX_PERFORM_TEST(${FAILTEST_SOURCE_FILE} ${TEST_BINARY_DIR} FALSE ${RESULT_VAR} "${COMPILE_DEFINITIONS} ${ADD_COMPILE_DEFINITIONS}") - endif () - - if (${RESULT_VAR}) - message(STATUS "Checking C++ support for ${FEATURE_NAME} -- works") - set (CXX_FEATURES_SUPPORTED - "${CXX_FEATURES_SUPPORTED} ${FEATURE_NAME} (${FEATURE_NUMBER})," - ) - - else () - message(STATUS "Checking C++ support for ${FEATURE_NAME} -- not supported") - set (CXX_FEATURES_UNSUPPORTED - "${CXX_FEATURES_UNSUPPORTED} ${FEATURE_NAME} (${FEATURE_NUMBER})," - ) - - endif () - - # This would break the feature reporting on second call of cmake - # TODO: Fix? - # set(${RESULT_VAR} ${${RESULT_VAR}} CACHE INTERNAL "C++ support for ${FEATURE_NAME}") - - endif(NOT DEFINED ${RESULT_VAR}) - -endmacro(CXX_CHECK_FEATURE) - diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++-test-override-attr-none.cpp kactivities-kf5-5.44.0/cmake/modules/c++-test-override-attr-none.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++-test-override-attr-none.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++-test-override-attr-none.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -#include - -class A { - public: - virtual int fn(int arg) { - return 10 * arg; - }; - -}; - -class B: public A { - public: - virtual int fn(long arg) __attribute__((override)) { - return 20 * arg; - }; - -}; - -int main() -{ - A * a = new A(); - A * b = new B(); - - int result = a->fn(2) - b->fn(1); - - return 0; -} diff -Nru kactivities-kf5-5.18.0/cmake/modules/c++-test-override-attr-none-fail.cpp kactivities-kf5-5.44.0/cmake/modules/c++-test-override-attr-none-fail.cpp --- kactivities-kf5-5.18.0/cmake/modules/c++-test-override-attr-none-fail.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/cmake/modules/c++-test-override-attr-none-fail.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -#include - -class A { - public: - virtual int fn(int arg) { - return 10 * arg; - }; - -}; - -class B: public A { - public: - virtual int fn(long arg) __attribute__((override)) { - return 20 * arg; - }; - -}; - -int main() -{ - A * a = new A(); - A * b = new B(); - - int result = a->fn(2) - b->fn(1); - - return 0; -} diff -Nru kactivities-kf5-5.18.0/CMakeLists.txt kactivities-kf5-5.44.0/CMakeLists.txt --- kactivities-kf5-5.18.0/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/CMakeLists.txt 2018-03-03 09:51:42.000000000 +0000 @@ -1,26 +1,16 @@ # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required(VERSION 3.0) -project (KActivities) +# KDE Frameworks +set(KF5_VERSION "5.44.0") # handled by release scripts +set(KF5_DEP_VERSION "5.44.0") # handled by release scripts +project (KActivities VERSION ${KF5_VERSION}) -option (KACTIVITIES_LIBRARY_ONLY "If true, compiles only the KActivities library, without the service and other modules." OFF) +option (KACTIVITIES_LIBRARY_ONLY "If true, compiles only the KActivities library, without the QML imports." OFF) option (KACTIVITIES_ENABLE_EXCEPTIONS "If you have Boost 1.53, you need to build KActivities with exceptions enabled. This is UNTESTED and EXPERIMENTAL!" OFF) -option (KACTIVITIES_INSTALL_EXPERIMENTAL_LIBRARIES "If true, it will build and install the experimental libraries." OFF) -option (KACTIVITIES_INSTALL_EXPERIMENTAL_HEADERS "If true, it will install the headers of experimental libraries." OFF) - -if (NOT KACTIVITIES_INSTALL_EXPERIMENTAL_LIBRARIES) - set (KACTIVITIES_INSTALL_EXPERIMENTAL_HEADERS FALSE) -else() - message (WARNING "**********************************************************\n" - "WARNING: The experimental libraries should not be used in" - "stable software releases. API and ABI can be changed" - "without notice. Do *NOT* make packages with this enabled!\n" - "**********************************************************") -endif() - -set (REQUIRED_QT_VERSION 5.3.0) +set (REQUIRED_QT_VERSION 5.7.0) # We don't build in-source if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") @@ -34,7 +24,7 @@ # Extra CMake stuff include(FeatureSummary) -find_package(ECM 5.18.0 NO_MODULE) +find_package(ECM 5.44.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) @@ -42,56 +32,59 @@ include (KDEInstallDirs) include (KDECMakeSettings) -include (KDECompilerSettings) +include (KDECompilerSettings NO_POLICY_SCOPE) include (GenerateExportHeader) include (ECMGenerateHeaders) +include (ECMAddQch) + +option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) +add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") # Qt set (CMAKE_AUTOMOC ON) find_package (Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED COMPONENTS Core DBus) -# KDE Frameworks -set(KF5_VERSION "5.18.0") # handled by release scripts -set(KF5_DEP_VERSION "5.18.0") # handled by release scripts -find_package (KF5DBusAddons ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5I18n ${KF5_DEP_VERSION} CONFIG REQUIRED) - # Basic includes include (CPack) -include (ECMPackageConfigHelpers) +include (CMakePackageConfigHelpers) include (ECMSetupVersion) - -# Adding local CMake modules -set ( - CMAKE_MODULE_PATH - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules - ${CMAKE_MODULE_PATH} - ) - -add_definitions (-DTRANSLATION_DOMAIN=\"kactivities5\") -if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") - ki18n_install (po) -endif () - -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") +message ("We are using the ${CMAKE_CXX_COMPILER_ID} compiler") +if ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (KACTIVITIES_OVERRIDE_VISIBILITY STREQUAL "default")) + message ("Setting visibility preset to default") set(CMAKE_CXX_VISIBILITY_PRESET default) set(CMAKE_VISIBILITY_INLINES_HIDDEN 0) + string (REPLACE "-fvisibility-inlines-hidden" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + string (REPLACE "-fvisibility=hidden" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") endif () # libKActivities ecm_setup_version ( - ${KF5_VERSION} + PROJECT VARIABLE_PREFIX KACTIVITIES VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kactivities_version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesConfigVersion.cmake" SOVERSION 5 ) +add_subdirectory (src) +add_subdirectory (autotests) +add_subdirectory (tests) + set (CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Activities") +if (BUILD_QCH) + ecm_install_qch_export( + TARGETS KF5Activities_QCH + FILE KF5ActivitiesLibraryQchTargets.cmake + DESTINATION "${CMAKECONFIG_INSTALL_DIR}" + COMPONENT Devel + ) + set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5ActivitiesLibraryQchTargets.cmake\")") +endif() + install ( EXPORT KF5ActivitiesLibraryTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" @@ -99,7 +92,7 @@ NAMESPACE KF5:: ) -ecm_configure_package_config_file ( +configure_package_config_file ( "${CMAKE_CURRENT_SOURCE_DIR}/KF5ActivitiesConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesConfig.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} @@ -118,50 +111,6 @@ DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel ) -# libKActivitiesStats - -if (KACTIVITIES_INSTALL_EXPERIMENTAL_HEADERS) - ecm_setup_version ( - ${KF5_VERSION} - VARIABLE_PREFIX KACTIVITIESEXPERIMENTALSTATS - VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kactivitiesexperimentalstats_version.h" - PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesExperimentalStatsConfigVersion.cmake" - SOVERSION 1 - ) - - set (CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5ActivitiesExperimentalStats") - - install ( - EXPORT KF5ActivitiesExperimentalStatsLibraryTargets - DESTINATION "${CMAKECONFIG_INSTALL_DIR}" - FILE KF5ActivitiesExperimentalStatsLibraryTargets.cmake - NAMESPACE KF5:: - ) - - ecm_configure_package_config_file ( - "${CMAKE_CURRENT_SOURCE_DIR}/KF5ActivitiesExperimentalStatsConfig.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesExperimentalStatsConfig.cmake" - INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} - PATH_VARS KF5_INCLUDE_INSTALL_DIR CMAKE_INSTALL_PREFIX - ) - - install ( - FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesExperimentalStatsConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/KF5ActivitiesExperimentalStatsConfigVersion.cmake" - DESTINATION "${CMAKECONFIG_INSTALL_DIR}" - COMPONENT Devel - ) - - install ( - FILES ${CMAKE_CURRENT_BINARY_DIR}/kactivitiesexperimentalstats_version.h - DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel - ) -endif() - -add_subdirectory (src) -add_subdirectory (autotests) -add_subdirectory (tests) - # Write out the features feature_summary (WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff -Nru kactivities-kf5-5.18.0/contrib/bash/next-activity.sh kactivities-kf5-5.44.0/contrib/bash/next-activity.sh --- kactivities-kf5-5.18.0/contrib/bash/next-activity.sh 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/contrib/bash/next-activity.sh 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,30 @@ +#! /bin/bash +# +# next-activity.sh +# Copyright (C) 2016 Ivan Čukić +# +# Distributed under terms of the MIT license. +# + +current_activity=($(qdbus org.kde.ActivityManager /ActivityManager/Activities CurrentActivity)) +activities=($(qdbus org.kde.ActivityManager /ActivityManager/Activities ListActivities)) +found="0" + +for ((i=0; i < ${#activities[@]}; ++i)); do + if [ "$current_activity" = "${activities[$i]}" ]; then + found="1" + else + if [ "$found" == "1" ]; then + echo "Switching to ${activities[$i]}" + qdbus org.kde.ActivityManager /ActivityManager/Activities SetCurrentActivity ${activities[$i]} + found="0" + fi + fi +done + +if [ "$found" == "1" ]; then + echo "Switching to ${activities[0]}" + qdbus org.kde.ActivityManager /ActivityManager/Activities SetCurrentActivity ${activities[0]} +fi + + diff -Nru kactivities-kf5-5.18.0/contrib/bash/prev-activity.sh kactivities-kf5-5.44.0/contrib/bash/prev-activity.sh --- kactivities-kf5-5.18.0/contrib/bash/prev-activity.sh 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/contrib/bash/prev-activity.sh 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,30 @@ +#! /bin/bash +# +# next-activity.sh +# Copyright (C) 2016 Ivan Čukić +# +# Distributed under terms of the MIT license. +# + +current_activity=($(qdbus org.kde.ActivityManager /ActivityManager/Activities CurrentActivity)) +activities=($(qdbus org.kde.ActivityManager /ActivityManager/Activities ListActivities)) +found="0" + +previous_activity="" + +for ((i=0; i < ${#activities[@]}; ++i)); do + if [ "$current_activity" = "${activities[$i]}" ]; then + if [ "$previous_activity" != "" ]; then + echo "Switching to $previous_activity" + qdbus org.kde.ActivityManager /ActivityManager/Activities SetCurrentActivity $previous_activity + exit + else + echo "Switching to ${activities[-1]}" + qdbus org.kde.ActivityManager /ActivityManager/Activities SetCurrentActivity ${activities[-1]} + exit + fi + else + previous_activity="${activities[$i]}" + fi +done + diff -Nru kactivities-kf5-5.18.0/contrib/zsh/kamd-functions kactivities-kf5-5.44.0/contrib/zsh/kamd-functions --- kactivities-kf5-5.18.0/contrib/zsh/kamd-functions 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/contrib/zsh/kamd-functions 2018-03-03 09:51:42.000000000 +0000 @@ -60,7 +60,11 @@ ACTIVITY_DESC=`qdbus org.kde.ActivityManager /ActivityManager/Activities ActivityDescription $activity` ACTIVITY_ICON=`qdbus org.kde.ActivityManager /ActivityManager/Activities ActivityIcon $activity` - echo "$ACTIVITY_NAME ($ACTIVITY_DESC, $ACTIVITY_ICON)" + if [ -n "$ACTIVITY_DESC" ]; then + echo "$ACTIVITY_NAME ($ACTIVITY_DESC, $ACTIVITY_ICON)" + else + echo "$ACTIVITY_NAME ($ACTIVITY_ICON)" + fi done } @@ -109,3 +113,29 @@ echo $CURRENT_ACTIVITY_NAME | tr '[:upper:] ' '[:lower:]-' } +# Returns the current activity ID +function kamd_STOP_ALL_BUT_CURRENT() { + CURRENT_ACTIVITY_ID=$(kamd_get_currentactivity_id) + + for activity in `qdbus org.kde.ActivityManager /ActivityManager/Activities ListActivities`; do + if [ "$activity" != "$CURRENT_ACTIVITY_ID" ]; then + echo "Stop: $activity" + qdbus org.kde.ActivityManager /ActivityManager/Activities StopActivity $activity + sleep 1 + fi + done +} + +# Returns the current activity ID +function kamd_REMOVE_ALL_BUT_CURRENT() { + CURRENT_ACTIVITY_ID=$(kamd_get_currentactivity_id) + + for activity in `qdbus org.kde.ActivityManager /ActivityManager/Activities ListActivities`; do + if [ "$activity" != "$CURRENT_ACTIVITY_ID" ]; then + echo "Remove: $activity" + qdbus org.kde.ActivityManager /ActivityManager/Activities RemoveActivity $activity + sleep 1 + fi + done +} + diff -Nru kactivities-kf5-5.18.0/debian/changelog kactivities-kf5-5.44.0/debian/changelog --- kactivities-kf5-5.18.0/debian/changelog 2016-03-07 22:17:51.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/changelog 2019-12-10 17:51:25.000000000 +0000 @@ -1,3 +1,263 @@ +kactivities-kf5 (5.44.0-0ubuntu1~16.04.sav0) xenial; urgency=medium + + * Backport to Xenial + + -- Rob Savoury Tue, 10 Dec 2019 09:51:25 -0800 + +kactivities-kf5 (5.44.0-0ubuntu1) bionic; urgency=medium + + * New upstream release (5.44.0) + + -- Rik Mills Mon, 12 Mar 2018 19:56:01 +0000 + +kactivities-kf5 (5.43.0-0ubuntu1) bionic; urgency=medium + + * New upstream release (5.43.0) + + -- Rik Mills Sun, 11 Feb 2018 11:13:46 +0000 + +kactivities-kf5 (5.42.0-0ubuntu1) bionic; urgency=medium + + * New upstream release (5.42.0) + + -- Rik Mills Fri, 26 Jan 2018 22:19:45 +0000 + +kactivities-kf5 (5.41.0-0ubuntu1) bionic; urgency=low + + * New upstream release (5.41.0) + + -- Walter Lapchynski Sun, 10 Dec 2017 22:02:47 -0600 + +kactivities-kf5 (5.40.0-0ubuntu1) bionic; urgency=medium + + * New upstream release (5.39.0) + * Package priority 'extra' is depreciated in favour of 'optional' + * New upstream release (5.40.0) + + -- Rik Mills Fri, 24 Nov 2017 17:14:55 +0000 + +kactivities-kf5 (5.38.0-0ubuntu1) artful; urgency=low + + * New upstream release (5.38.0) + + -- Rik Mills Mon, 11 Sep 2017 13:13:51 +0100 + +kactivities-kf5 (5.37.0-0ubuntu1) artful; urgency=low + + * New upstream release (5.37.0) + + -- Rik Mills Sat, 12 Aug 2017 18:49:29 +0100 + +kactivities-kf5 (5.36.0-0ubuntu1) artful; urgency=low + + * New upstream release (5.36.0) + + -- José Manuel Santamaría Lema Tue, 11 Jul 2017 23:54:04 +0100 + +kactivities-kf5 (5.35.0-0ubuntu1) artful; urgency=low + + * New upstream release (5.35.0) + + -- José Manuel Santamaría Lema Mon, 12 Jun 2017 22:59:29 +0100 + +kactivities-kf5 (5.34.0-0ubuntu1) artful; urgency=low + + * New upstream release (5.34.0) + + -- José Manuel Santamaría Lema Mon, 15 May 2017 21:27:23 +0100 + +kactivities-kf5 (5.33.0-0ubuntu1) artful; urgency=low + + * New upstream release (5.33.0) + + -- José Manuel Santamaría Lema Sat, 29 Apr 2017 18:07:04 +0100 + +kactivities-kf5 (5.31.0-0ubuntu1) zesty; urgency=medium + + * Pass '-fno-keep-inline-functions' to gcc in the acc test in order to + avoid possible spurious test failures. + * New upstream release (5.31.0) + + -- José Manuel Santamaría Lema Tue, 14 Feb 2017 22:52:15 +0000 + +kactivities-kf5 (5.30.0-0ubuntu1) zesty; urgency=low + + * New upstream release (5.30.0) + + -- Rik Mills Wed, 01 Feb 2017 18:36:04 +0000 + +kactivities-kf5 (5.28.0-0ubuntu1) zesty; urgency=low + + [ Rik Mills ] + * New upstream release (5.27.0) + + [ José Manuel Santamaría Lema ] + * Update Vcs-Git field to use https:// instead of git:// + * New upstream release (5.28.0) + + [ Simon Quigley ] + * Merge from Debian + + -- José Manuel Santamaría Lema Mon, 05 Dec 2016 20:18:21 +0000 + +kactivities-kf5 (5.27.0-1) unstable; urgency=medium + + [ Automatic packaging ] + * Update build-deps and deps with the info from cmake + + [ Maximiliano Curia ] + * New upstream release (5.27) + * Bump group breaks (5.27) + + -- Maximiliano Curia Sat, 15 Oct 2016 17:08:29 +0200 + +kactivities-kf5 (5.26.0-1) unstable; urgency=medium + + [ Maximiliano Curia ] + * Drop Multi-arch: no field + * Bump group breaks (5.26) + + [ Automatic packaging ] + * Update build-deps and deps with the info from cmake + + -- Maximiliano Curia Thu, 29 Sep 2016 12:02:55 +0200 + +kactivities-kf5 (5.26.0-0ubuntu1) yakkety; urgency=medium + + * Add kactivities-bin pkg for kactivities-cli + * Refresh symbols + * New upstream release (5.26.0) + + -- Rik Mills Thu, 22 Sep 2016 13:40:37 +0100 + +kactivities-kf5 (5.25.0-1) unstable; urgency=medium + + [ Automatic packaging ] + * Update symbols files from buildds logs (5.23.0-1). + * Update build-deps and deps with the info from cmake + + [ Maximiliano Curia ] + * Update symbols files. + * Bump the breaks/replaces version for the renamed module + * Bump group breaks (5.25) + + [ Harald Sitter ] + * revise qml module + * rename install file to match new package name + + [ Jonathan Riddell ] + * add kactivities-bin + + -- Maximiliano Curia Sat, 20 Aug 2016 16:50:12 +0200 + +kactivities-kf5 (5.24.0-0ubuntu1) yakkety; urgency=medium + + * New upstream release (5.24.0) + + -- Philip Muškovac Tue, 26 Jul 2016 08:36:55 +0000 + +kactivities-kf5 (5.23.0-1) unstable; urgency=medium + + [ Automatic packaging ] + * Update build-deps and deps with the info from cmake + + -- Maximiliano Curia Thu, 23 Jun 2016 09:40:03 +0200 + +kactivities-kf5 (5.23.0-0ubuntu1) yakkety; urgency=medium + + [ Clive Johnston ] + * New upstream release (5.23.0) + + [ Rik Mills ] + * Refresh symbols + + -- Clive Johnston Mon, 11 Jul 2016 22:07:12 +0200 + +kactivities-kf5 (5.22.0-2) unstable; urgency=medium + + * Team upload. + * Update symbols file from build logs + + -- Scott Kitterman Sun, 29 May 2016 13:30:29 -0400 + +kactivities-kf5 (5.22.0-1) unstable; urgency=medium + + [ Maximiliano Curia ] + * Replace the "Historical name" ddeb-migration by its "Modern, clearer" replacement dbgsym-migration. + * Add upstream metadata (DEP-12) + * debian/control: Update Vcs-Browser and Vcs-Git fields + * Drop qt5-qmltooling-plugins build dependency + * Update acc test script + * Drop removed files. + * uscan no longer supports more than one main upstream tarball being listed + + [ Automatic packaging ] + * Update build-deps and deps with the info from cmake + * Bump Standards-Version to 3.9.8 + * Update symbols files. + * Drop the kactivities package, moved to plasma. + + -- Maximiliano Curia Thu, 26 May 2016 10:52:55 +0200 + +kactivities-kf5 (5.22.0-0ubuntu1) yakkety; urgency=medium + + [ Scarlett Clark ] + * New upstream release. + * Bump to latest. + * Make kactivitymanagerd a recommend rather than a hard + depend seeing as it is in the Plasma release cycle, this + will allow for kactivities to build with the frameworks + cycle. + * Debian merge: No remaining changes. + * Revert last commit, breaks things. + * Fix the qml* install files. + + [ Philip Muškovac ] + * Update the Vcs URLs now that the repositories are hosted on + Launchpad + + [ Clive Johnston ] + * New upstream release + * Add transitional package qml-module-org-kde-extensionplugin + - Removed install file as files should now be installed by + qml-module-org-kde-activities package + * Fix breaks and replaces for qml-module-org-kde-extensionplugin + + -- Clive Johnston Tue, 17 May 2016 16:07:50 -0700 + +kactivities-kf5 (5.19.0-1ubuntu1) UNRELEASED; urgency=medium + + [ Clive Johnston ] + * Merged with Debian + * New upstream release + * Fixing problem in control caused by merge + * Removing kactivities packages and files in it, + as upstream has split into new repositories + * Depend on new package kactivitymanagerd + * Fixing install file and refreshing symbols + + [ Scarlett Clark ] + * Rename qml install file to match package name so + files actually get installed. + * git add the file.... + + -- Clive Johnston Thu, 25 Feb 2016 22:40:03 +0000 + +kactivities-kf5 (5.19.0-1) experimental; urgency=medium + + * New upstream release (5.19.0). + * (Experimental specific) Add qt5-qmltooling-plugins as a build-dep, + missing dependency of qtdeclarative5-dev + + -- Maximiliano Curia Sat, 13 Feb 2016 15:16:41 +0100 + +kactivities-kf5 (5.18.0-1) experimental; urgency=medium + + * New upstream release (5.17.0). + * New upstream release (5.18.0). + + -- Maximiliano Curia Wed, 27 Jan 2016 13:34:42 +0100 + kactivities-kf5 (5.18.0-0ubuntu1) xenial; urgency=medium [ Scarlett Clark ] @@ -9,7 +269,7 @@ * Override the libkactivitymanager_plugin lintian warnings, the lib is only used internally - -- Philip Muškovac Mon, 07 Mar 2016 23:17:51 +0100 + -- Philip Muškovac Wed, 06 Jan 2016 14:55:02 +0100 kactivities-kf5 (5.16.0-1) unstable; urgency=medium diff -Nru kactivities-kf5-5.18.0/debian/control kactivities-kf5-5.44.0/debian/control --- kactivities-kf5-5.18.0/debian/control 2016-03-07 22:17:51.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/control 2018-03-12 19:56:01.000000000 +0000 @@ -3,34 +3,43 @@ Priority: optional Maintainer: Debian/Kubuntu Qt/KDE Maintainers Uploaders: Maximiliano Curia -Build-Depends: cmake (>= 2.8.11), +Build-Depends: cmake (>= 2.8.12~), debhelper (>= 9), - extra-cmake-modules (>= 5.18.0~), - kio-dev (>= 5.18.0~), + extra-cmake-modules (>= 5.44.0~), libboost-dev (>= 1.49~), - libkf5config-dev (>= 5.18.0~), - libkf5coreaddons-dev (>= 5.18.0~), - libkf5dbusaddons-dev (>= 5.18.0~), - libkf5declarative-dev (>= 5.18.0~), - libkf5globalaccel-dev (>= 5.18.0~), - libkf5i18n-dev (>= 5.18.0~), - libkf5kcmutils-dev (>= 5.18.0~), - libkf5service-dev (>= 5.18.0~), - libkf5windowsystem-dev (>= 5.18.0~), - libkf5xmlgui-dev (>= 5.18.0~), + libkf5config-dev (>= 5.44.0~), + libkf5coreaddons-dev (>= 5.44.0~), + libkf5dbusaddons-dev (>= 5.44.0~), + libkf5declarative-dev (>= 5.44.0~), + libkf5globalaccel-dev (>= 5.44.0~), + libkf5i18n-dev (>= 5.44.0~), + libkf5kcmutils-dev (>= 5.44.0~), + libkf5kio-dev (>= 5.44.0~), + libkf5service-dev (>= 5.44.0~), + libkf5widgetsaddons-dev (>= 5.44.0~), + libkf5windowsystem-dev (>= 5.44.0~), + libkf5xmlgui-dev (>= 5.44.0~), pkg-kde-tools (>= 0.15.15ubuntu1~), - qtbase5-dev (>= 5.4), - qtdeclarative5-dev (>= 5.4) -Standards-Version: 3.9.6 + qtbase5-dev (>= 5.6.1~), + qtdeclarative5-dev (>= 5.6.1~) +Standards-Version: 3.9.8 Homepage: https://projects.kde.org/projects/frameworks/kactivities -Vcs-Browser: http://anonscm.debian.org/cgit/pkg-kde/frameworks/kactivities.git -Vcs-Git: git://anonscm.debian.org/pkg-kde/frameworks/kactivities.git +Vcs-Browser: https://code.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/kactivities +Vcs-Git: https://git.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/kactivities + +Package: kactivities-bin +Architecture: any +Multi-arch: no +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: Command Line Tool for KActivities + kactivities-cli is a command line tool to interact with KActivities + or for help with shell completion. Package: libkf5activities-dev -Section: libdevel Architecture: any +Section: libdevel Depends: libkf5activities5 (= ${binary:Version}), - qtbase5-dev (>= 5.4), + qtbase5-dev (>= 5.6.1~), ${misc:Depends} Description: development files for kactivities. This library provides functionality for managing Activities. @@ -41,44 +50,20 @@ Architecture: any Multi-Arch: same Depends: ${misc:Depends}, ${shlibs:Depends} +Recommends: kactivities-bin, kactivitymanagerd Description: Library to organize the user work in separate activities. This library provides functionality for managing Activities. -Package: kactivities -Architecture: any -Depends: libqt5sql5-sqlite, - plasma-framework, - qml-module-org-kde-activities, - ${misc:Depends}, - ${shlibs:Depends} -Conflicts: libkactivities-bin -Breaks: libkactivities-bin -Replaces: libkactivities-bin -Description: Runtime to organize the user work in separate activities. - This library provides functionality for managing Activities. - -Package: libkf5activities5-dbg -Architecture: any -Multi-arch: same -Priority: extra -Section: debug -Depends: libkf5activities5 (= ${binary:Version}), ${misc:Depends} -Recommends: qtbase5-dbg -Description: debug symbols for kactivities - This library provides functionality for managing Activities. - . - Contains debug symbols for kactivities. - Package: qml-module-org-kde-activities Architecture: any Multi-arch: same Depends: libkf5activities5 (= ${binary:Version}), ${misc:Depends}, - ${shlibs:Depends} + ${shlibs:Depends}, Breaks: libkf5activities5 (<< 5.1.0-0ubuntu1), - qml-module-org-kde-extensionplugin (<< 5.13.0+git20150903.0700) + qml-module-org-kde-extensionplugin (<< 5.25.0-1~), Replaces: libkf5activities5 (<< 5.1.0-0ubuntu1), - qml-module-org-kde-extensionplugin (<< 5.13.0+git20150903.0700) + qml-module-org-kde-extensionplugin (<< 5.25.0-1~), Description: provides integration of QML and KDE Frameworks This import contains KDE extras that are visually similar to Qt Quick Controls. @@ -86,9 +71,9 @@ This package contains the QML files used by libkf5declarative. Package: qml-module-org-kde-extensionplugin -Depends: qml-module-org-kde-activities, ${misc:Depends} Architecture: all -Priority: extra Section: oldlibs +Priority: optional +Depends: qml-module-org-kde-activities, ${misc:Depends} Description: transitional dummy package This is a transitional dummy package. It can safely be removed. diff -Nru kactivities-kf5-5.18.0/debian/kactivities-bin.install kactivities-kf5-5.44.0/debian/kactivities-bin.install --- kactivities-kf5-5.18.0/debian/kactivities-bin.install 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/kactivities-bin.install 2018-03-12 19:56:01.000000000 +0000 @@ -0,0 +1 @@ +usr/bin/kactivities-cli diff -Nru kactivities-kf5-5.18.0/debian/kactivities.install kactivities-kf5-5.44.0/debian/kactivities.install --- kactivities-kf5-5.18.0/debian/kactivities.install 2016-03-07 22:17:51.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/kactivities.install 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -usr/bin/kactivitymanagerd -usr/lib/*/libkactivitymanagerd_plugin.so -usr/lib/*/qt5/plugins/kactivitymanagerd/ -usr/lib/*/qt5/plugins/kactivitymanagerd_fileitem_linking_plugin.so -usr/lib/*/qt5/plugins/kcm_activities.so -usr/lib/*/qt5/plugins/kio_activities.so -usr/share/kf5/kactivitymanagerd/ -usr/share/kservices5/activities.protocol -usr/share/kservices5/kactivitymanagerd.desktop -usr/share/kservices5/kactivitymanagerd_fileitem_linking_plugin.desktop -usr/share/kservices5/kcm_activities.desktop -usr/share/kservicetypes5/kactivitymanagerd-plugin.desktop -usr/share/locale/*/*/kactivities5.mo diff -Nru kactivities-kf5-5.18.0/debian/kactivities.lintian-overrides kactivities-kf5-5.44.0/debian/kactivities.lintian-overrides --- kactivities-kf5-5.18.0/debian/kactivities.lintian-overrides 2016-03-07 22:17:51.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/kactivities.lintian-overrides 2018-03-12 19:56:01.000000000 +0000 @@ -1,4 +1,2 @@ kactivities: binary-without-manpage usr/bin/kactivitymanagerd -kactivities: package-name-doesnt-match-sonames libkactivitymanagerd-plugin -kactivities: shlib-without-versioned-soname usr/lib/x86_64-linux-gnu/libkactivitymanagerd_plugin.so libkactivitymanagerd_plugin.so -kactivities: postinst-must-call-ldconfig usr/lib/x86_64-linux-gnu/libkactivitymanagerd_plugin.so +kactivities: postinst-must-call-ldconfig usr/lib/*/libkactivitymanagerd_plugin.so diff -Nru kactivities-kf5-5.18.0/debian/libkf5activities5.symbols kactivities-kf5-5.44.0/debian/libkf5activities5.symbols --- kactivities-kf5-5.18.0/debian/libkf5activities5.symbols 2016-03-07 22:17:51.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/libkf5activities5.symbols 2018-03-12 19:56:01.000000000 +0000 @@ -1,4 +1,4 @@ -# SymbolsHelper-Confirmed: 5.16.0 amd64 +# SymbolsHelper-Confirmed: 5.25.0 amd64 libKF5Activities.so.5 libkf5activities5 #MINVER# _ZN11KActivities10Controller11addActivityERK7QString@Base 4.96.0 _ZN11KActivities10Controller11qt_metacallEN11QMetaObject4CallEiPPv@Base 4.96.0 @@ -20,6 +20,18 @@ _ZN11KActivities12versionMinorEv@Base 4.96.0 _ZN11KActivities13versionStringEv@Base 4.96.0 _ZN11KActivities14versionReleaseEv@Base 4.96.0 + _ZN11KActivities15ActivitiesModel11qt_metacallEN11QMetaObject4CallEiPPv@Base 5.21.0 + _ZN11KActivities15ActivitiesModel11qt_metacastEPKc@Base 5.21.0 + _ZN11KActivities15ActivitiesModel14setShownStatesERK7QVectorINS_4Info5StateEE@Base 5.21.0 + _ZN11KActivities15ActivitiesModel16staticMetaObjectE@Base 5.21.0 + _ZN11KActivities15ActivitiesModel18shownStatesChangedERK7QVectorINS_4Info5StateEE@Base 5.21.0 + _ZN11KActivities15ActivitiesModelC1E7QVectorINS_4Info5StateEEP7QObject@Base 5.21.0 + _ZN11KActivities15ActivitiesModelC1EP7QObject@Base 5.21.0 + _ZN11KActivities15ActivitiesModelC2E7QVectorINS_4Info5StateEEP7QObject@Base 5.21.0 + _ZN11KActivities15ActivitiesModelC2EP7QObject@Base 5.21.0 + _ZN11KActivities15ActivitiesModelD0Ev@Base 5.21.0 + _ZN11KActivities15ActivitiesModelD1Ev@Base 5.21.0 + _ZN11KActivities15ActivitiesModelD2Ev@Base 5.21.0 _ZN11KActivities16ResourceInstance11qt_metacallEN11QMetaObject4CallEiPPv@Base 4.96.0 _ZN11KActivities16ResourceInstance11qt_metacastEPKc@Base 4.96.0 _ZN11KActivities16ResourceInstance11setMimetypeERK7QString@Base 4.96.0 @@ -46,6 +58,7 @@ _ZN11KActivities4Info11qt_metacallEN11QMetaObject4CallEiPPv@Base 4.96.0 _ZN11KActivities4Info11qt_metacastEPKc@Base 4.96.0 _ZN11KActivities4Info12stateChangedENS0_5StateE@Base 4.96.0 + _ZN11KActivities4Info16isCurrentChangedEb@Base 5.25.0 _ZN11KActivities4Info16staticMetaObjectE@Base 4.96.0 _ZN11KActivities4Info18descriptionChangedERK7QString@Base 5.16.0 _ZN11KActivities4Info5addedEv@Base 4.96.0 @@ -67,12 +80,19 @@ _ZN11KActivities8Consumer17activitiesChangedERK11QStringList@Base 4.96.0 _ZN11KActivities8Consumer20serviceStatusChangedENS0_13ServiceStatusE@Base 4.96.0 _ZN11KActivities8Consumer22currentActivityChangedERK7QString@Base 4.96.0 + _ZN11KActivities8Consumer24runningActivitiesChangedERK11QStringList@Base 5.23.0 _ZN11KActivities8ConsumerC1EP7QObject@Base 4.96.0 _ZN11KActivities8ConsumerC2EP7QObject@Base 4.96.0 _ZN11KActivities8ConsumerD0Ev@Base 4.96.0 _ZN11KActivities8ConsumerD1Ev@Base 4.96.0 _ZN11KActivities8ConsumerD2Ev@Base 4.96.0 _ZNK11KActivities10Controller10metaObjectEv@Base 4.96.0 + _ZNK11KActivities15ActivitiesModel10headerDataEiN2Qt11OrientationEi@Base 5.21.0 + _ZNK11KActivities15ActivitiesModel10metaObjectEv@Base 5.21.0 + _ZNK11KActivities15ActivitiesModel11shownStatesEv@Base 5.21.0 + _ZNK11KActivities15ActivitiesModel4dataERK11QModelIndexi@Base 5.21.0 + _ZNK11KActivities15ActivitiesModel8rowCountERK11QModelIndex@Base 5.21.0 + _ZNK11KActivities15ActivitiesModel9roleNamesEv@Base 5.21.0 _ZNK11KActivities16ResourceInstance10metaObjectEv@Base 4.96.0 _ZNK11KActivities16ResourceInstance3uriEv@Base 4.96.0 _ZNK11KActivities16ResourceInstance5titleEv@Base 4.96.0 @@ -87,15 +107,30 @@ _ZNK11KActivities4Info4nameEv@Base 4.96.0 _ZNK11KActivities4Info5stateEv@Base 4.96.0 _ZNK11KActivities4Info7isValidEv@Base 4.96.0 + _ZNK11KActivities4Info9isCurrentEv@Base 5.25.0 _ZNK11KActivities8Consumer10activitiesENS_4Info5StateE@Base 4.96.0 _ZNK11KActivities8Consumer10activitiesEv@Base 4.96.0 _ZNK11KActivities8Consumer10metaObjectEv@Base 4.96.0 _ZNK11KActivities8Consumer15currentActivityEv@Base 4.96.0 + _ZNK11KActivities8Consumer17runningActivitiesEv@Base 5.23.0 (optional=templinst|arch=armel)_ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 5.14.0 (optional=templinst|arch=!armel)_ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 5.13.0 (optional=templinst|arch=armel)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 5.11.0 (optional=templinst|arch=!armel)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 4.98.0 + (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 5.21.0 + (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 5.21.0 + (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 5.21.0 + (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 5.21.0 + (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 5.21.0 + (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 5.21.0 + (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 5.21.0 + (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 5.21.0 + (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 5.21.0 + (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 5.21.0 + (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 5.21.0 + (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 5.21.0 _ZTIN11KActivities10ControllerE@Base 4.96.0 + _ZTIN11KActivities15ActivitiesModelE@Base 5.21.0 _ZTIN11KActivities16ResourceInstanceE@Base 4.96.0 _ZTIN11KActivities4InfoE@Base 4.96.0 _ZTIN11KActivities8ConsumerE@Base 4.96.0 @@ -104,7 +139,11 @@ (arch=!armel)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 4.98.0 (arch=armel)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 5.11.0 (arch=!armel)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 4.98.0 + _ZTISt19_Sp_make_shared_tag@Base 5.21.0 + (arch=armel)_ZTISt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 5.21.0 + (arch=!armel)_ZTISt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 5.21.0 _ZTSN11KActivities10ControllerE@Base 4.96.0 + _ZTSN11KActivities15ActivitiesModelE@Base 5.21.0 _ZTSN11KActivities16ResourceInstanceE@Base 4.96.0 _ZTSN11KActivities4InfoE@Base 4.96.0 _ZTSN11KActivities8ConsumerE@Base 4.96.0 @@ -113,7 +152,13 @@ (arch=!armel)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 4.98.0 (arch=armel)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 5.11.0 (arch=!armel)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 4.98.0 + _ZTSSt19_Sp_make_shared_tag@Base 5.21.0 + (arch=armel)_ZTSSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 5.21.0 + (arch=!armel)_ZTSSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 5.21.0 _ZTVN11KActivities10ControllerE@Base 4.96.0 + _ZTVN11KActivities15ActivitiesModelE@Base 5.21.0 _ZTVN11KActivities16ResourceInstanceE@Base 4.96.0 _ZTVN11KActivities4InfoE@Base 4.96.0 _ZTVN11KActivities8ConsumerE@Base 4.96.0 + (arch=armel)_ZTVSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 5.21.0 + (arch=!armel)_ZTVSt23_Sp_counted_ptr_inplaceIN11KActivities4InfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 5.21.0 diff -Nru kactivities-kf5-5.18.0/debian/libkf5activities-dev.acc.in kactivities-kf5-5.44.0/debian/libkf5activities-dev.acc.in --- kactivities-kf5-5.18.0/debian/libkf5activities-dev.acc.in 2016-03-07 22:17:51.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/libkf5activities-dev.acc.in 2018-03-12 19:56:01.000000000 +0000 @@ -1,4 +1,4 @@ - + @@ -15,6 +15,7 @@ -fPIC + -fno-keep-inline-functions - + \ No newline at end of file diff -Nru kactivities-kf5-5.18.0/debian/qml-module-org-kde-activities.install kactivities-kf5-5.44.0/debian/qml-module-org-kde-activities.install --- kactivities-kf5-5.18.0/debian/qml-module-org-kde-activities.install 2016-03-07 22:17:51.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/qml-module-org-kde-activities.install 2018-03-12 19:56:01.000000000 +0000 @@ -1,4 +1,2 @@ usr/lib/*/qt5/qml/org/kde/activities/libkactivitiesextensionplugin.so usr/lib/*/qt5/qml/org/kde/activities/qmldir -usr/lib/*/qt5/qml/org/kde/activities/settings/libkactivitiessettingsplugin.so -usr/lib/*/qt5/qml/org/kde/activities/settings/qmldir diff -Nru kactivities-kf5-5.18.0/debian/rules kactivities-kf5-5.44.0/debian/rules --- kactivities-kf5-5.18.0/debian/rules 2016-03-07 22:17:51.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/rules 2018-03-12 19:56:01.000000000 +0000 @@ -4,4 +4,4 @@ include /usr/share/pkg-kde-tools/qt-kde-team/3/debian-qt-kde.mk override_dh_strip: - $(overridden_command) --dbg-package=libkf5activities5-dbg + $(overridden_command) --dbgsym-migration='libkf5activities5-dbg (<= 5.19.0-1~~)' diff -Nru kactivities-kf5-5.18.0/debian/tests/acc kactivities-kf5-5.44.0/debian/tests/acc --- kactivities-kf5-5.18.0/debian/tests/acc 2016-03-07 22:17:51.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/tests/acc 2018-03-12 19:56:01.000000000 +0000 @@ -8,4 +8,11 @@ "${in_file}" > "${out_file}" done +DH_VERBOSE=1 + dh_acc +ret=$? +if [ 0 -ne $ret ]; then + cp -r logs "${ADT_ARTIFACTS}"/acc.logs +fi +exit $ret diff -Nru kactivities-kf5-5.18.0/debian/upstream/metadata kactivities-kf5-5.44.0/debian/upstream/metadata --- kactivities-kf5-5.18.0/debian/upstream/metadata 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/upstream/metadata 2018-03-12 19:56:01.000000000 +0000 @@ -0,0 +1,7 @@ +Name: kactivities +Changelog: https://quickgit.kde.org/?p=kactivities.git&a=log +Contact: kde-frameworks-devel@kde.org +Donation: https://www.kde.org/community/donations/index.php +Repository: https://anongit.kde.org/kactivities.git +Repository-Browse: https://quickgit.kde.org/?p=kactivities.git +Security-Contact: security@kde.org diff -Nru kactivities-kf5-5.18.0/debian/watch kactivities-kf5-5.44.0/debian/watch --- kactivities-kf5-5.18.0/debian/watch 2016-03-07 22:17:51.000000000 +0000 +++ kactivities-kf5-5.44.0/debian/watch 2018-03-12 19:56:01.000000000 +0000 @@ -1,3 +1,2 @@ version=3 -http://download.kde.org/unstable/frameworks/([\d.]+)/kactivities-([\d.]+)\.tar\.xz http://download.kde.org/stable/frameworks/([\d.]+)/kactivities-([\d.]+)\.tar\.xz diff -Nru kactivities-kf5-5.18.0/KF5ActivitiesConfig.cmake.in kactivities-kf5-5.44.0/KF5ActivitiesConfig.cmake.in --- kactivities-kf5-5.18.0/KF5ActivitiesConfig.cmake.in 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/KF5ActivitiesConfig.cmake.in 2018-03-03 09:51:42.000000000 +0000 @@ -1,5 +1,7 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) find_dependency(Qt5Core @REQUIRED_QT_VERSION@) include("${CMAKE_CURRENT_LIST_DIR}/KF5ActivitiesLibraryTargets.cmake") +@PACKAGE_INCLUDE_QCHTARGETS@ diff -Nru kactivities-kf5-5.18.0/KF5ActivitiesExperimentalStatsConfig.cmake.in kactivities-kf5-5.44.0/KF5ActivitiesExperimentalStatsConfig.cmake.in --- kactivities-kf5-5.18.0/KF5ActivitiesExperimentalStatsConfig.cmake.in 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/KF5ActivitiesExperimentalStatsConfig.cmake.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -@PACKAGE_INIT@ - -find_dependency(Qt5Core @REQUIRED_QT_VERSION@) - -include("${CMAKE_CURRENT_LIST_DIR}/KF5ActivitiesExperimentalStatsLibraryTargets.cmake") diff -Nru kactivities-kf5-5.18.0/metainfo.yaml kactivities-kf5-5.44.0/metainfo.yaml --- kactivities-kf5-5.18.0/metainfo.yaml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/metainfo.yaml 2018-03-03 09:51:42.000000000 +0000 @@ -1,9 +1,12 @@ maintainer: ivan description: Runtime and library to organize the user work in separate activities -tier: 3 +tier: 2 type: solution platforms: - - name: All + - name: Linux + - name: FreeBSD + - name: Windows + - name: MacOSX note: Needs QtDBus portingAid: false deprecated: false @@ -12,3 +15,7 @@ - qmake: KActivities cmake: "KF5::Activities" cmakename: KF5Activities + +public_lib: true +group: Frameworks +subgroup: Tier 2 diff -Nru kactivities-kf5-5.18.0/po/ar/kactivities5.po kactivities-kf5-5.44.0/po/ar/kactivities5.po --- kactivities-kf5-5.18.0/po/ar/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ar/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,297 +0,0 @@ -# Language translations for PACKAGE package. -# Copyright (C) 2013 This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# Safa Alfulaij , 2013. -# Automatically generated, 2013. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2013-07-07 23:56+0300\n" -"Last-Translator: Safa Alfulaij \n" -"Language-Team: Arabic \n" -"Language: ar\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " -"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -"X-Generator: Lokalize 1.4\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "صفا الفليج" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "safaalfulaij@hotmail.com" - -#: imports/activitymodel.cpp:589 -#, fuzzy -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "النشاط" - -#: service/Activities.cpp:107 -#, fuzzy -msgid "Default" -msgstr "الافتراضي" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, fuzzy, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "بدِّل إلى النشاط \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "الأنشطة" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -msgid "The Activity Manager is not running" -msgstr "مدير الأنشطة لا يعمل بشكل صحيح." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -#, fuzzy -msgid "Link to the current activity" -msgstr "أوصِل إلى النشاط الحالي" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -#, fuzzy -msgid "Unlink from the current activity" -msgstr "أزل الوصل من النشاط الحالي" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -#, fuzzy -msgid "Link to:" -msgstr "أوصِل إلى:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -#, fuzzy -msgid "Unlink from:" -msgstr "أزل الوصل من:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -msgid "Activity" -msgstr "النشاط" - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -msgid "Current activity" -msgstr "النشاط الحاليّ" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -msgid "Delete activity" -msgstr "النشاط الحاليّ" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -msgid "Create a new activity" -msgstr "النشاط الحاليّ" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -msgid "Activity settings" -msgstr "النشاط" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -msgid "Activity information" -msgstr "النشاط" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "الخصوصية" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "أنسَ الساعة الأخيرة" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "أنسَ الساعتان الأخيرتان" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "أنسَ يوم" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "أنسَ كل شيء" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -msgid "Create activity..." -msgstr "النشاط الحاليّ" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -msgid "Activity switching" -msgstr "النشاط" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "المستندات المفتوحة لتذكرها:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -#, fuzzy -#| msgid "For all applications" -msgid "For a&ll applications" -msgstr "لكل التطبيقات" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -#, fuzzy -#| msgid "Do not remember" -msgid "&Do not remember" -msgstr "لا تتذكر" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -#, fuzzy -#| msgid "Only for specific applications" -msgid "O&nly for specific applications" -msgstr "فقط لتطبيقات معيّنة" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "أبقِ التأريخ" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "أمح التأريخ الأخير" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/ast/kactivities5.po kactivities-kf5-5.44.0/po/ast/kactivities5.po --- kactivities-kf5-5.18.0/po/ast/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ast/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,270 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# enolp , 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-11-16 00:29+0100\n" -"Last-Translator: enolp \n" -"Language-Team: Asturian \n" -"Language: ast\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" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Softastur" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "alministradores@softastur.org" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Actividá" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Por defeutu" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Camudar a actividá «%1»" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Actividaes" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Cargando..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Nun ta executándose'l xestor d'actividaes" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Enllazar a l'actividad actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Desenllazar de l'actividá actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Enllazar a:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Desenllazar de:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Actividá" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Actividá actual" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Desaniciar actividá" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "¿De xuru que quies desaniciar «%1»?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Axustes d'actividá" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Xeneral" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Otru" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Crear" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Aplicar" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Encaboxar" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Atayu pa camudar a esta activida:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Información d'actividá" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nome" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Descripción" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Fondu de pantalla" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Camuda..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Iconu" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privacidá" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "Pa siempres" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Escaecer la cabera hora" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Escaecer les caberes dos hores" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Escaecer un día" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Escaecer too" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mes" -msgstr[1] " meses" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "por" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Crear actividá..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Dir pente les actividaes" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Recordar documentos abiertos:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Pa to&les aplicaciones" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "N&un recordar" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Namái p'aplicaciones específiques" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Caltener historia" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Llimpiar historia reciente" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Atayos" diff -Nru kactivities-kf5-5.18.0/po/bg/kactivities5.po kactivities-kf5-5.44.0/po/bg/kactivities5.po --- kactivities-kf5-5.18.0/po/bg/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/bg/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,272 +0,0 @@ -# Copyright (C) 2011 This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Dimitar Popov , 2011. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2011-07-09 00:47+0200\n" -"Last-Translator: Dimitar Popov \n" -"Language-Team: Bulgarian \n" -"Language: bg\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.2\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Димитър Попов" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "insane@fmi.uni-sofia.bg" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "KDE Activity Manager" -msgid "The Activity Manager is not running" -msgstr "Управление на дейностите в KDE" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/bs/kactivities5.po kactivities-kf5-5.44.0/po/bs/kactivities5.po --- kactivities-kf5-5.18.0/po/bs/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/bs/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,302 +0,0 @@ -# Bosnian translations for kde package. -# Copyright (C) 2012 This_file_is_part_of_KDE -# This file is distributed under the same license as the kde package. -# Samir Ribic , 2012. -# -msgid "" -msgstr "" -"Project-Id-Version: kde 49i410\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2013-10-18 20:18+0000\n" -"Last-Translator: Samir Ribić \n" -"Language-Team: Bosnian\n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-19 05:24+0000\n" -"X-Generator: Launchpad (build 16807)\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Samir Ribić" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "samir.ribic@etf.unsa.ba" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Activities..." -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktivnosti..." - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Pređi na aktivnost \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Activities..." -msgid "Activities" -msgstr "Aktivnosti..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "Upravljač aktivnostima ne radi ispravno" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Poveći na trenutnu aktivnost" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Odspoji od trenutne aktivnosti" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Poveži na:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Odspoji od:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Activities..." -msgid "Activity" -msgstr "Aktivnosti..." - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Current activity" -msgstr "Poveći na trenutnu aktivnost" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Delete activity" -msgstr "Poveći na trenutnu aktivnost" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create a new activity" -msgstr "Poveći na trenutnu aktivnost" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activities..." -msgid "Activity settings" -msgstr "Aktivnosti..." - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activities..." -msgid "Activity information" -msgstr "Aktivnosti..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privatnost" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "zauvijek" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Zaboravi zadnji sat" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Zaboravi zadnja dva sata" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Zaboravi dan" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Zaboravi sve" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "tokom " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create activity..." -msgstr "Poveći na trenutnu aktivnost" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activities..." -msgid "Activity switching" -msgstr "Aktivnosti..." - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Zapamti otvorene dokumente:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -#, fuzzy -#| msgid "For all applications" -msgid "For a&ll applications" -msgstr "Za sve programe" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -#, fuzzy -#| msgid "Do not remember" -msgid "&Do not remember" -msgstr "Nemoj zapamtiti" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -#, fuzzy -#| msgid "Only for specific applications" -msgid "O&nly for specific applications" -msgstr "Samo za specifične programe" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Čuvaj historijat" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Očisti nedavni historijat" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Stavi na crnu listu programe koji nisu na ovoj listi" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/ca/kactivities5.po kactivities-kf5-5.44.0/po/ca/kactivities5.po --- kactivities-kf5-5.18.0/po/ca/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ca/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,276 +0,0 @@ -# Translation of kactivities5.po to Catalan -# Copyright (C) 2014-2015 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. -# -# Josep Ma. Ferrer , 2014, 2015. -# Antoni Bella Pérez , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-27 12:49+0100\n" -"Last-Translator: Josep Ma. Ferrer \n" -"Language-Team: Catalan \n" -"Language: ca\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-Accelerator-Marker: &\n" -"X-Generator: Lokalize 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Josep Ma. Ferrer" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "txemaq@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Activitat" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Per defecte" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Canvia a l'activitat «%1»" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Activitats" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Sestà carregant..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "El gestor d'activitats no s'està executant" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Enllaça amb l'activitat actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Separa de l'activitat actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Enllaça a:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Separa de:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Activitat" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Activitat actual" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Suprimeix una activitat" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Esteu segur que voleu suprimir «%1»?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Error en carregar els fitxers QML. Verifiqueu la instal·lació.\n" -"Manca %1" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Crea una activitat nova" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Arranjament de l'activitat" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "General" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Altres" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Crea" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Aplica" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Cancel·la" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Drecera per canviar a aquesta activitat:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Informació de l'activitat" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nom" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Descripció" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Fons d'escriptori" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Canvia..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Icona" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Canvi" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privadesa" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "per sempre" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Oblida la darrera hora" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Oblida les dues darreres hores" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Oblida un dia" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Oblida-ho tot" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mes" -msgstr[1] " mesos" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "durant " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Crea una activitat..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Canvi d'activitats" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Recorre les activitats" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Recorre les activitats (invers)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formulari" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Recorda els documents oberts:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Per a &totes les aplicacions" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&No ho recordis" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "No&més per aplicacions específiques" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Mantén l'historial" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Neteja l'historial recent" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Bloqueja totes les aplicacions que no siguin en aquesta llista" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "Recorda l'escriptori virtual actual per cada activitat (cal reiniciar)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Dreceres" diff -Nru kactivities-kf5-5.18.0/po/ca@valencia/kactivities5.po kactivities-kf5-5.44.0/po/ca@valencia/kactivities5.po --- kactivities-kf5-5.18.0/po/ca@valencia/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ca@valencia/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,276 +0,0 @@ -# Translation of kactivities5.po to Catalan (Valencian) -# Copyright (C) 2014-2015 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. -# -# Josep Ma. Ferrer , 2014, 2015. -# Antoni Bella Pérez , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-27 12:49+0100\n" -"Last-Translator: Josep Ma. Ferrer \n" -"Language-Team: Catalan \n" -"Language: ca@valencia\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-Accelerator-Marker: &\n" -"X-Generator: Lokalize 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Josep Ma. Ferrer" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "txemaq@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Activitat" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Per defecte" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Canvia a l'activitat «%1»" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Activitats" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Sestà carregant..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "El gestor d'activitats no s'està executant" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Enllaça amb l'activitat actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Separa de l'activitat actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Enllaça a:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Separa de:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Activitat" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Activitat actual" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Suprimeix una activitat" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Esteu segur que voleu suprimir «%1»?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Error en carregar els fitxers QML. Verifiqueu la instal·lació.\n" -"Manca %1" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Crea una activitat nova" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Arranjament de l'activitat" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "General" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Altres" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Crea" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Aplica" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Cancel·la" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Drecera per canviar a esta activitat:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Informació de l'activitat" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nom" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Descripció" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Fons d'escriptori" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Canvia..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Icona" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Canvi" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privadesa" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "per sempre" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Oblida la darrera hora" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Oblida les dues darreres hores" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Oblida un dia" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Oblida-ho tot" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mes" -msgstr[1] " mesos" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "durant " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Crea una activitat..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Canvi d'activitats" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Recorre les activitats" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Recorre les activitats (invers)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formulari" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Recorda els documents oberts:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Per a &totes les aplicacions" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&No ho recordes" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "No&més per aplicacions específiques" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Mantén l'historial" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Neteja l'historial recent" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Bloqueja totes les aplicacions que no siguen en esta llista" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "Recorda l'escriptori virtual actual per cada activitat (cal reiniciar)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Dreceres" diff -Nru kactivities-kf5-5.18.0/po/cs/kactivities5.po kactivities-kf5-5.44.0/po/cs/kactivities5.po --- kactivities-kf5-5.18.0/po/cs/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/cs/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,281 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# Vit Pelcak , 2012, 2013, 2014, 2015. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-08-26 14:21+0100\n" -"Last-Translator: Vít Pelčák \n" -"Language-Team: Czech \n" -"Language: cs\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>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Lokalize 2.0\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Vít Pelčák" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "vit@pelcak.org" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktivita" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Výchozí" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Přepnout na aktivitu \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktivity" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Probíhá načítání..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Správce aktivit neběží." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Připojit k současné aktivitě" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Odpojit od aktuální aktivity" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Připojit k:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Odpojit od:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktivita" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Současná aktivita" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Create activity..." -msgid "Delete activity" -msgstr "Vytvořit aktivitu..." - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Create activity..." -msgid "Create a new activity" -msgstr "Vytvořit aktivitu..." - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity switching" -msgid "Activity settings" -msgstr "Přepínání aktivit" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Obecné" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Vytvořit" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Provést" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Zrušit" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Zkratka pro přepínání na tuto aktivitu:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity switching" -msgid "Activity information" -msgstr "Přepínání aktivit" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Přepínání" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Soukromí" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "pořád" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Zapomenout poslední hodinu" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Zapomenout poslední dvě hodiny" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Zapomenout den" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Zapomenout vše" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " měsíc" -msgstr[1] " měsíce" -msgstr[2] " měsíců" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "pro " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Vytvořit aktivitu..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Přepínání aktivit" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Procházet aktivity" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Procházet aktivity (zpětně)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Zapamatovat si otevřené dokumenty:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Pro všechny ap&likace" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Nepamatovat si" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Pouze pro ko&nkrétní aplikace" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Ponechat historii" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Vyprázdnit nedávnou historii" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "zakázat všechny aplikace mimo tento seznam" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Zapamatovat si současnou virtuální plochu pro každou aktivitu (potřebuje " -"restart)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Zkratky" diff -Nru kactivities-kf5-5.18.0/po/da/kactivities5.po kactivities-kf5-5.44.0/po/da/kactivities5.po --- kactivities-kf5-5.18.0/po/da/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/da/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,271 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Martin Schlander , 2012, 2013, 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-11-23 21:05+0100\n" -"Last-Translator: Martin Schlander \n" -"Language-Team: Danish \n" -"Language: da\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" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Martin Schlander" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "mschlander@opensuse.org" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktivitet" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Standard" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Skift til aktiviteten \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktiviteter" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Indlæser..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Aktivitetshåndteringen kører ikke" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Kobl til den aktuelle aktivitet" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Afkobl fra den aktuelle aktivitet" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Kobl til:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Afkobl fra:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktivitet" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Aktuel aktivitet" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Slet aktivitet" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Vil du virkelig slette \"%1\"?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Opret ny aktivitet" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Aktivitetsindstillinger" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Generelt" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Andet" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Opret" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Anvend" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Annullér" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Genvej til at skifte til denne aktivitet:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Information om aktivitet" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Navn" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Beskrivelse" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Baggrundsbillede" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Skift..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ikon" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Skift" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privatliv" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "evigt" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Glem den seneste time" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Glem de to seneste timer" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Glem et døgn" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Glem alt" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " måned" -msgstr[1] " måneder" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "i " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Opret aktivitet..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Skift af aktivitet" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Gå igennem aktiviteter" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Gå igennem aktiviteter (baglæns)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formular" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Husk åbne dokumenter:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "For a&lle programmer" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "Husk &ikke" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Ku&n for visse programmer" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Behold historik" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Ryd nylig historik" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Sortlist alle programmer som ikke er på listen" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Husk det aktuelle virtuelle skrivebord for hver aktivitet (kræver genstart)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Genveje" diff -Nru kactivities-kf5-5.18.0/po/de/kactivities5.po kactivities-kf5-5.44.0/po/de/kactivities5.po --- kactivities-kf5-5.18.0/po/de/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/de/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,270 +0,0 @@ -# Frederik Schwarzer , 2012, 2015. -# Burkhard Lück , 2013, 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-10-24 23:33+0100\n" -"Last-Translator: Frederik Schwarzer \n" -"Language-Team: German \n" -"Language: de\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" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Frederik Schwarzer" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "schwarzer@kde.org" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktivität" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Standard" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Zu Aktivität „%1“ wechseln" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktivitäten" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Ladevorgang läuft ..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Die Aktivitätenverwaltung läuft nicht" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Mit der aktuellen Aktivität verknüpfen" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Von der aktuellen Aktivität lösen" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Verknüpfen mit:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Lösen von:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktivität" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Aktuelle Aktivität" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Aktivität löschen" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Möchten Sie „%1“ wirklich löschen?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Eine neue Aktivität erstellen" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Aktivitäten-Einstellungen" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Allgemein" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Weitere" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Erstellen" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Anwenden" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Abbrechen" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Kurzbefehl für das Wechseln zu dieser Aktivität:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Aktivitäten-Informationen" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Name" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Beschreibung" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Hintergrundbild" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Ändern ..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Symbol" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Wechseln" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privatsphäre" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "Unbegrenzt" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Die letzte Stunde verwerfen" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Die letzten zwei Stunden verwerfen" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Einen Tag verwerfen" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Alles verwerfen" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " Monat" -msgstr[1] " Monate" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "für " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Aktivität erstellen ..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Aktivitäten wechseln" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Zwischen Aktivitäten wechseln" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Zwischen Aktivitäten wechseln (Gegenrichtung)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formular" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Geöffnete Dokumente merken:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Für a&lle Anwendungen" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "Nicht &merken" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Nur für angegebene Anwendungen" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Verlauf behalten" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Jüngsten Verlauf leeren" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Alle nicht in dieser Liste aufgeführten Anwendungen ausschließen" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Aktuelle virtuelle Arbeitsfläche für jede Aktivität merken (erfordert " -"Neustart)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Kurzbefehle" diff -Nru kactivities-kf5-5.18.0/po/el/kactivities5.po kactivities-kf5-5.44.0/po/el/kactivities5.po --- kactivities-kf5-5.18.0/po/el/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/el/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,276 +0,0 @@ -# kactivitymanagerd_fileitem_linking_plugin.po translation el -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Stelios , 2012. -# Antonis Geralis , 2013, 2014. -# Dimitris Kardarakos , 2015. -msgid "" -msgstr "" -"Project-Id-Version: kactivitymanagerd_fileitem_linking_plugin\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-11-05 11:15+0200\n" -"Last-Translator: Dimitris Kardarakos \n" -"Language-Team: Greek \n" -"Language: el\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" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Stelios" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "sstavra@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Δραστηριότητα" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Προκαθορισμένη" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Εναλλαγή στη δραστηριότητα \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Δραστηριότητες" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Φόρτωση..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Ο διαχειριστής δραστηριοτήτων δεν εκτελείται" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Σύνδεση στην τρέχουσα δραστηριότητα" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Αποσύνδεση από την τρέχουσα δραστηριότητα" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Σύνδεση σε:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Αποσύνδεση από:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Δραστηριότητα" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Τρέχουσα δραστηριότητα" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Διαγραφή δραστηριότητας" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Επιθυμείτε σίγουρα τη διαγραφή του '%1';" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Δημιουργία νέας δραστηριότητας" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Ρυθμίσεις δραστηριοτήτων" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Γενικά" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Δημιουργία" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Εφαρμογή" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Ακύρωση" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Συντόμευση για μετάβαση σε αυτή τη δραστηριότητα" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Πληροφορίες δραστηριοτήτων" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Όνομα" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Περιγραφή" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Ταπετσαρία" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Αλλαγή..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Εικονίδιο" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Εναλλαγή" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Ιδιωτικό απόρρητο" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "για πάντα" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Να ξεχαστεί η τελευταία ώρα" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Να ξεχαστούν οι δύο τελευταίες ώρες" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Να ξεχαστεί η ημέρα" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Να ξεχαστούν όλα" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " μήνας" -msgstr[1] "μήνες" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "για " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Δημιουργία δραστηριότητας..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Εναλλαγή δραστηριοτήτων" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Διάσχιση δραστηριοτήτων " - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Διάσχιση δραστηριοτήτων (αντίστροφα)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Απομνημόνευση ανοιχτών εγγράφων:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Για όλες τις ε&φαρμογές" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "Να μη γίνει απο&μνημόνευση" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Μόνο για ο&ρισμένες εφαρμογές" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Διατήρηση ιστορικού" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Καθαρισμός πρόσφατου ιστορικού" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" -"Να μπουν σε μαύρη λίστα όλες οι εφαρμογές που δεν είναι σε αυτήν τη λίστα" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Απομνημόνευση της τρέχουσας εικονικής επιφάνειας εργασίας για κάθε " -"δραστηριότητα (απαιτείται επανεκκίνηση)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Συντομεύσεις" diff -Nru kactivities-kf5-5.18.0/po/en_GB/kactivities5.po kactivities-kf5-5.44.0/po/en_GB/kactivities5.po --- kactivities-kf5-5.18.0/po/en_GB/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/en_GB/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,271 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Andrew Coles , 2010. -# Steve Allewell , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-10-17 17:39+0100\n" -"Last-Translator: Steve Allewell \n" -"Language-Team: British English \n" -"Language: en_GB\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 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Steve Allewell" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "steve.allewell@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Activity" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Default" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Switch to activity \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Activities" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Loading..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "The Activity Manager is not running" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Link to the current activity" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Unlink from the current activity" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Link to:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Unlink from:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Activity" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Current activity" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Delete activity" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Are you sure you want to delete '%1'?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Create a new activity" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Activity settings" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "General" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Other" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Create" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Apply" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Cancel" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Shortcut for switching to this activity:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Activity information" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Name" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Description" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Wallpaper" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Change..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Icon" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Switching" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privacy" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "forever" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Forget the last hour" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Forget the last two hours" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Forget a day" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Forget everything" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " month" -msgstr[1] " months" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "for " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Create activity..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Activity switching" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Walk through activities" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Walk through activities (Reverse)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Form" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Remember opened documents:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "For a&ll applications" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Do not remember" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "O&nly for specific applications" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Keep history" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Clear recent history" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Blacklist all applications not on this list" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "Remember the current virtual desktop for each activity (needs restart)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Shortcuts" diff -Nru kactivities-kf5-5.18.0/po/es/kactivities5.po kactivities-kf5-5.44.0/po/es/kactivities5.po --- kactivities-kf5-5.18.0/po/es/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/es/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,273 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Eloy Cuadra , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-10-24 19:55+0200\n" -"Last-Translator: Eloy Cuadra \n" -"Language-Team: Spanish \n" -"Language: es\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 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Eloy Cuadra" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "ecuadra@eloihr.net" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Actividad" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Por omisión" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Cambiar a la actividad «%1»" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Actividades" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Cargando..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "El gestor de actividades no está funcionando" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Vincular a la actividad actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Desvincular de la actividad actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Vincular a:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Desvincular de:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Actividad" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Actividad actual" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Borrar actividad" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "¿Seguro que desea borrar «%1»?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Crear una nueva actividad" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Preferencias de la actividad" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "General" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Otros" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Crear" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Aplicar" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Cancelar" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Acceso rápido de teclado para cambiar a esta actividad:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Información sobre la actividad" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nombre" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Descripción" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Fondo del escritorio" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Cambiar..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Icono" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Cambio" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privacidad" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "siempre" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Olvidar la última hora" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Olvidar las dos últimas horas" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Olvidar un día" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Olvidar todo" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mes" -msgstr[1] " meses" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "durante " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Crear actividad..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Cambio de actividad" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Recorrer las actividades" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Recorrer las actividades (en sentido inverso)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formulario" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Recordar los documentos abiertos:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Para todas &las aplicaciones" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "No recor&dar" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Solo para las aplicacio&nes especificadas" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Conservar el historial" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Borrar el historial reciente" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" -"Poner en la lista negra todas las aplicaciones que no estén en esta lista" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Recordar el escritorio virtual actual para cada actividad (necesita " -"reiniciar)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Accesos rápidos" diff -Nru kactivities-kf5-5.18.0/po/et/kactivities5.po kactivities-kf5-5.44.0/po/et/kactivities5.po --- kactivities-kf5-5.18.0/po/et/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/et/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,298 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Marek Laane , 2012, 2014. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2014-03-02 04:35+0200\n" -"Last-Translator: Marek Laane \n" -"Language-Team: Estonian \n" -"Language: et\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 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Marek Laane" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "bald@smail.ee" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Activities..." -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Tegevused ..." - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Lülitu tegevusele \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Activities..." -msgid "Activities" -msgstr "Tegevused ..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "Tegevuste haldur ei tööta korralikult." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Lingi aktiivse tegevusega" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Eemalda link aktiivse tegevusega" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Linkimine:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Lingi eemaldamine:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Activities..." -msgid "Activity" -msgstr "Tegevused ..." - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Current activity" -msgstr "Lingi aktiivse tegevusega" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Delete activity" -msgstr "Lingi aktiivse tegevusega" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create a new activity" -msgstr "Lingi aktiivse tegevusega" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activities..." -msgid "Activity settings" -msgstr "Tegevused ..." - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activities..." -msgid "Activity information" -msgstr "Tegevused ..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privaatsus" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "igavesti" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Unusta viimane tund" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Unusta viimased kaks tundi" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Unusta päev" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Unusta kõik" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "kuni " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create activity..." -msgstr "Lingi aktiivse tegevusega" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activities..." -msgid "Activity switching" -msgstr "Tegevused ..." - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Avatud dokumendid jäetakse meelde:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -#, fuzzy -#| msgid "For all applications" -msgid "For a&ll applications" -msgstr "Kõigis rakendustes" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -#, fuzzy -#| msgid "Do not remember" -msgid "&Do not remember" -msgstr "Ei jäeta meelde" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -#, fuzzy -#| msgid "Only for specific applications" -msgid "O&nly for specific applications" -msgstr "Ainult määratud rakendustes" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Ajalugu säilitatakse" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Puhasta viimase aja ajalugu" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Kõik loendis puuduvad rakendused pannakse musta nimekirja" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/eu/kactivities5.po kactivities-kf5-5.44.0/po/eu/kactivities5.po --- kactivities-kf5-5.18.0/po/eu/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/eu/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,296 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Ignigo Salvador Azurmendi , 2010, 2012. -msgid "" -msgstr "" -"Project-Id-Version: kactivitymanagerd\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2012-08-27 18:40+0200\n" -"Last-Translator: Iñigo Salvador Azurmendi \n" -"Language-Team: Basque \n" -"Language: eu\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.4\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Iñigo Salvador Azurmendi" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "xalba@euskalnet.net" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Unlock Activity" -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Jarduera giltzapetik askatu" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Aldatu jarduera honetara: \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Unlock Activity" -msgid "Activities" -msgstr "Jarduera giltzapetik askatu" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "Jarduera kudeatzailea ez dabil behar bezala." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Link to the current activity" -msgstr "Jarduerari babesa kendu" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Unlink from the current activity" -msgstr "Jarduerari babesa kendu" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Unlock Activity" -msgid "Activity" -msgstr "Jarduera giltzapetik askatu" - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Current activity" -msgstr "Jarduerari babesa kendu" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Delete Activity" -msgid "Delete activity" -msgstr "Ezabatu jarduera" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Create a new activity" -msgstr "Jarduerari babesa kendu" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity Password" -msgid "Activity settings" -msgstr "Jardueraren pasahitza" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity Password" -msgid "Activity information" -msgstr "Jardueraren pasahitza" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Create activity..." -msgstr "Jarduerari babesa kendu" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activity Password" -msgid "Activity switching" -msgstr "Jardueraren pasahitza" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/fi/kactivities5.po kactivities-kf5-5.44.0/po/fi/kactivities5.po --- kactivities-kf5-5.18.0/po/fi/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/fi/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,277 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# Lasse Liehu , 2012, 2014, 2015. -# -# KDE Finnish translation sprint participants: -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-27 17:19+0200\n" -"Last-Translator: Lasse Liehu \n" -"Language-Team: Finnish \n" -"Language: fi\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" -"X-POT-Import-Date: 2012-12-01 22:24:16+0000\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Lasse Liehu" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "lasse.liehu@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktiviteetti" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Oletus" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Vaihda aktiviteettiin %1" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktiviteetit" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Ladataan…" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Aktiviteettienhallinta ei ole käynnissä" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Liitä nykyiseen aktiviteettiin" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Poista nykyisestä aktiviteetista" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Liitä aktiviteettiin:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Poista aktiviteetistä:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktiviteetti" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Nykyinen aktiviteetti" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Poista aktiviteetti" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Haluatko varmasti poistaa aktiviteetin ”%1”?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Virhe ladattaessa QML-tiedostoja. Tarkista asennuksesi.\n" -"%1 puuttuu" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Luo uusi aktiviteetti" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Aktiviteetin asetukset" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Yleistä" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Muuta" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Luo" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Käytä" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Peru" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Pikanäppäin tähän aktiviteettiin vaihtamiseen:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Aktiviteetin tiedot" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nimi" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Kuvaus" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Tausta" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Vaihda…" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Kuvake" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Vaihto" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Yksityisyys" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "ikuisesti" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Unohda viime tunti" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Unohda viime kaksi tuntia" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Unohda viime päivä" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Unohda kaikki" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " kuukausi" -msgstr[1] " kuukautta" - -# Suomennettu yhdeksi välilyönniksi, koska etuliitettä ei tarvita. Esimerkiksi ”Säilytä historia 5 kuukautta” -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr " " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Luo aktiviteetti…" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Aktiviteettien vaihto" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Selaa aktiviteetteja" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Selaa aktiviteetteja (käänteisessä järjestyksessä)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Lomake" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Muista avatut tiedostot:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "&Kaikkien sovellusten tiedostot" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Älä muista tiedostoja" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Vain valittujen sovellusten tiedostot" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Säilytä historiaa" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Tyhjennä viimeaikainen historia" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Estä kaikki tässä mainitsemattomat sovellukset" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Muista nykyinen virtuaalityöpöytä kullekin aktiviteetille (tarvitsee " -"uudelleenkäynnistyksen)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Pikanäppäimet" diff -Nru kactivities-kf5-5.18.0/po/fr/kactivities5.po kactivities-kf5-5.44.0/po/fr/kactivities5.po --- kactivities-kf5-5.18.0/po/fr/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/fr/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,280 +0,0 @@ -# translation of kcm_activities.po to Français -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# Joëlle Cornavin , 2012, 2013. -# xavier , 2013, 2014. -# Maxime Corteel , 2015. -# Thomas Vergnaud , 2015. -# -msgid "" -msgstr "" -"Project-Id-Version: kcm_activities\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-10-31 12:02+0100\n" -"Last-Translator: Thomas Vergnaud \n" -"Language-Team: French \n" -"Language: fr\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" -"X-Environment: kde\n" -"X-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Joëlle Cornavin, Thomas Vergnaud" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "jcorn@free.fr, thomas.vergnaud@gmx.fr" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Activité" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Défaut" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Passer à l'activité « %1 »" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Activités" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Chargement…" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Le gestionnaire d'activités n'est pas en cours d'exécution" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Lier à l'activité en cours" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Se détacher de l'activité en cours" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Lier à:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Se déconnecter de;" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Activité" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Activité en cours" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Supprimer l'activité" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Souhaitez-vous vraiment supprimer « %1 » ?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Créer une nouvelle activité" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Configuration de l'activité" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Général" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Autre" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Créer" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Appliquer" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Annuler" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Raccourcis pour basculer vers cette activité :" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Informations sur l'activité" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nom" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Description" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Papier peint" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Changer…" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Icône" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Basculement" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Respect de la vie privée" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "indéfiniment" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Oublier la dernière heure" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Oublier les deux dernières heures" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Oublier un jour" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Oublier tout" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mois" -msgstr[1] " mois" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "pendant" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Créer une activité…" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Basculement d'activité" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Parcourir les activités" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Parcourir les activités (en sens inverse)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Forme" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Mémoriser les documents ouverts :" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Pour toutes les applications" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "Ne pas mémoriser" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Uniquement pour des applications spécifiques" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Conserver l'historique" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Effacer l'historique récent" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" -"Mettre en liste noire toutes les applications ne figurant pas sur cette liste" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Mémoriser le bureau virtuel actuel pour chaque activité (nécessite un " -"redémarrage)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Raccourcis" diff -Nru kactivities-kf5-5.18.0/po/ga/kactivities5.po kactivities-kf5-5.44.0/po/ga/kactivities5.po --- kactivities-kf5-5.18.0/po/ga/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ga/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,295 +0,0 @@ -# Irish translation of kactivitymanagerd_fileitem_linking_plugin -# Copyright (C) 2012 This_file_is_part_of_KDE -# This file is distributed under the same license as the kactivitymanagerd_fileitem_linking_plugin package. -# Kevin Scannell , 2012. -msgid "" -msgstr "" -"Project-Id-Version: kactivitymanagerd_fileitem_linking_plugin\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2012-11-29 14:59-0500\n" -"Last-Translator: Kevin Scannell \n" -"Language-Team: Irish \n" -"Language: ga\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? " -"3 : 4\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Kevin Scannell" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "kscanne@gmail.com" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Activities" -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Gníomhartha" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Athraigh go gníomhaíocht \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Activities" -msgid "Activities" -msgstr "Gníomhartha" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "Tá ainghléas ar an mbainisteoir gníomhaíochta." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Nasc leis an ngníomhaíocht reatha" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Dínasc ón ghníomhaíocht reatha" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Nasc le:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Dínasc ó:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Activities" -msgid "Activity" -msgstr "Gníomhartha" - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Current activity" -msgstr "Nasc leis an ngníomhaíocht reatha" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Delete activity" -msgstr "Nasc leis an ngníomhaíocht reatha" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create a new activity" -msgstr "Nasc leis an ngníomhaíocht reatha" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activities" -msgid "Activity settings" -msgstr "Gníomhartha" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activities" -msgid "Activity information" -msgstr "Gníomhartha" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Príobháideacht" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "go brách" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "ar feadh " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create activity..." -msgstr "Nasc leis an ngníomhaíocht reatha" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activities" -msgid "Activity switching" -msgstr "Gníomhartha" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/gd/kactivities5.po kactivities-kf5-5.44.0/po/gd/kactivities5.po --- kactivities-kf5-5.18.0/po/gd/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/gd/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,286 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# GunChleoc , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-11-04 15:11+0000\n" -"Last-Translator: Michael Bauer \n" -"Language-Team: Fòram na Gàidhlig\n" -"Language: gd\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : " -"(n > 2 && n < 20) ? 2 : 3;\n" -"X-Generator: Poedit 1.8.4\n" -"X-Project-Style: kde\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "GunChleoc" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "fios@foramnagaidhlig.net" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Gnìomhachd" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Thùsail" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Gearr leum dhan ghnìomhachd \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Gnìomhachdan" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "'Ga luchdadh..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Chan eil manaidsear nan gnìomhachdan 'ga ruith" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Dèan ceangal dhan ghnìomhachd làithreach" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Dì-cheangail on ghnìomhachd làithreach" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Ceangail gu:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Dì-cheangail o:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Gnìomhachd" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "A' ghnìomhachd lèithreach" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Create activity..." -msgid "Delete activity" -msgstr "Cruthaich gnìomhachd..." - -#: workspace/settings/imports/activitysettings.cpp:56 -#, fuzzy, kde-format -#| msgid "Are you sure you want to delete this activity?" -msgid "Are you sure you want to delete '%1'?" -msgstr "" -"A bheil thu cinnteach gu bheil thu airson a' ghnìomhachd seo a sguabadh às?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Create activity..." -msgid "Create a new activity" -msgstr "Cruthaich gnìomhachd..." - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity switching" -msgid "Activity settings" -msgstr "Gearradh leum eadar gnìomhachdan" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Coitcheann" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Cruthaich" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Cuir an sàs" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Sguir dheth" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Ath-ghoirid gus leum a ghearradh dhan ghnìomhachd seo:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity switching" -msgid "Activity information" -msgstr "Gearradh leum eadar gnìomhachdan" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Gearradh leum" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Prìobhaideachd" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "gu buan" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Dìochuimhnich an uair mu dheireadh" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Dìochuimhnich an dà uair mu dheireadh" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Dìochuimhnich latha" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Dìochuimhnich a h-uile rus" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mìos" -msgstr[1] " mhìos" -msgstr[2] " mìosan" -msgstr[3] " mìos" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "fad" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Cruthaich gnìomhachd..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Gearradh leum eadar gnìomhachdan" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Rach o ghnìomhachd gu gnìomhachd" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Rach o ghnìomhachd gu gnìomhachd (an comhair a' chùil)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Cuir na sgrìobhainnean a chaidh fhosgladh an cuimhne:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Airson a h-uil&e aplacaid" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "Na &cuimhnich" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Na cuimhnich ach airson aplacaidean sònraichte" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Cum an eachdraidh" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Glan an eachdraidh faisg ort" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Cuir gach aplacaid nach eil air an liosa seo air an dubh-liosta" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Cuimhnich an deasg bhiortail làithreach airson gach gnìomhachd (feum air ath-" -"thòiseachadh)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Ath-ghoiridean" diff -Nru kactivities-kf5-5.18.0/po/gl/kactivities5.po kactivities-kf5-5.44.0/po/gl/kactivities5.po --- kactivities-kf5-5.18.0/po/gl/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/gl/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,278 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Marce Villarino , 2012, 2013, 2014. -# Adrián Chaves Fernández , 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-30 19:25+0100\n" -"Last-Translator: Adrián Chaves Fernández (Gallaecio) \n" -"Language-Team: Galician \n" -"Language: gl\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" -"X-Environment: kde\n" -"X-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Marce Villarino" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "mvillarino@kde-espana.es" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Actividade" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Predeterminado" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Cambiar para a actividade «%1»" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Actividades" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Cargando…" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "O xestor de actividades non se está a executar." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Ligar á actividade actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Desligar da actividade actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Ligar a:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Desligar de:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Actividade" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Actividade actual" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Eliminar a actividade" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Está seguro de que quere eliminar «%1»?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Produciuse un erro ao cargar os ficheiro de QML. Revise a instalación.\n" -"Falta %1" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Crear unha actividade" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Configuración da actividade" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Xeral" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Outros" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Crear" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Aplicar" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Cancelar" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Atallo para cambiar a esta actividade:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Información da actividade" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nome" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Descrición" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Fondo de escritorio" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Cambiar..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Icona" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Cambio" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Intimidade" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "para sempre" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Esquecer a última hora" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Esquecer as últimas dúas horas" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Esquecer un día" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Esquecer todo" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mes" -msgstr[1] " meses" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "durante " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Crear unha actividade..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Cambio de actividade" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Navegar polas actividades" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Navegar polas actividades (ao revés)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formulario" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Lembrar os documentos abertos:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "En &calquera programa" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Non lembrar" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Só para programas específicos" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Manter o historial" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Limpar o historial recente" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Pór na lista negra todos os programas que non estean nesta lista" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Lembrar o escritorio virtual actual para cada actividade (require reiniciar)." - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Atallos de teclado" diff -Nru kactivities-kf5-5.18.0/po/gu/kactivities5.po kactivities-kf5-5.44.0/po/gu/kactivities5.po --- kactivities-kf5-5.18.0/po/gu/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/gu/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,273 +0,0 @@ -# translation of kactivitymanagerd.po to Gujarati -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Sweta Kothari , 2010. -msgid "" -msgstr "" -"Project-Id-Version: kactivitymanagerd\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2010-11-26 18:05+0530\n" -"Last-Translator: Sweta Kothari \n" -"Language-Team: Gujarati\n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "ઉમંગ ભટ્ટ" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "bhatt.umang7@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "KDE Activity Manager" -msgid "The Activity Manager is not running" -msgstr "KDE પ્રવૃત્તિ સંચાલક" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/he/kactivities5.po kactivities-kf5-5.44.0/po/he/kactivities5.po --- kactivities-kf5-5.18.0/po/he/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/he/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,296 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Diego Iastrubni , 2012. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2012-08-10 19:06+0300\n" -"Last-Translator: Diego Iastrubni \n" -"Language-Team: Hebrew \n" -"Language: he\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 1.4\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "צוות התרגום של KDE ישראל" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "kde-i18n-he@kde.org" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Unlock Activity" -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "בטל נעילת הפעילות" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "עבור אל פעילות \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Unlock Activity" -msgid "Activities" -msgstr "בטל נעילת הפעילות" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "מנהל פעילויות לא פועל כהלכה." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Link to the current activity" -msgstr "בטל את הגנת הפעילות" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Unlink from the current activity" -msgstr "בטל את הגנת הפעילות" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Unlock Activity" -msgid "Activity" -msgstr "בטל נעילת הפעילות" - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Current activity" -msgstr "בטל את הגנת הפעילות" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Delete Activity" -msgid "Delete activity" -msgstr "מחק פעילות" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Create a new activity" -msgstr "בטל את הגנת הפעילות" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity Password" -msgid "Activity settings" -msgstr "ססמת הפעילות" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity Password" -msgid "Activity information" -msgstr "ססמת הפעילות" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Create activity..." -msgstr "בטל את הגנת הפעילות" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activity Password" -msgid "Activity switching" -msgstr "ססמת הפעילות" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/hi/kactivities5.po kactivities-kf5-5.44.0/po/hi/kactivities5.po --- kactivities-kf5-5.18.0/po/hi/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/hi/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,273 +0,0 @@ -# translation of kactivitymanagerd.po to Hindi -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: kactivitymanagerd\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2010-12-09 00:24+0530\n" -"Last-Translator: G Karunakar\n" -"Language-Team: Hindi \n" -"Language: hi\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=2; plural=(n!=1);\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "जी करूणाकर" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "karunakar@indlinux.org" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "KDE Activity Manager" -msgid "The Activity Manager is not running" -msgstr "केडीई क्रियाएँ प्रबंधक" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/hr/kactivities5.po kactivities-kf5-5.44.0/po/hr/kactivities5.po --- kactivities-kf5-5.18.0/po/hr/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/hr/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,276 +0,0 @@ -# Translation of kactivitymanagerd to Croatian -# -# Marko Dimjasevic , 2011. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2011-03-04 18:03+0100\n" -"Last-Translator: Marko Dimjasevic \n" -"Language-Team: Croatian \n" -"Language: hr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.2\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Environment: kde\n" -"X-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Marko Dimjasevic" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "marko@dimjasevic.net" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "KDE Activity Manager" -msgid "The Activity Manager is not running" -msgstr "KDE-ov upravitelj aktivnosti" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/hu/kactivities5.po kactivities-kf5-5.44.0/po/hu/kactivities5.po --- kactivities-kf5-5.18.0/po/hu/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/hu/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,284 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Balázs Úr , 2012, 2013. -# Kristóf Kiszel , 2014. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2014-09-02 10:09+0200\n" -"Last-Translator: Kristóf Kiszel \n" -"Language-Team: Hungarian \n" -"Language: hu\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 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Kiszel Kristóf,Úr Balázs" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "ulysses@kubuntu.org,urbalazs@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktivitás" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Alapértelmezés" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Váltás a(z) „%1” aktivitásra" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktivitások" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Betöltés…" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Az aktivitáskezelő nem fut" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Összekapcsolás a jelenlegi aktivitással" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Szétbontás a jelenlegi aktivitásból" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Összekapcsolás ezzel:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Szétbontás innen:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktivitás" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Jelenlegi aktivitás" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Current activity" -msgid "Delete activity" -msgstr "Jelenlegi aktivitás" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Current activity" -msgid "Create a new activity" -msgstr "Jelenlegi aktivitás" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity" -msgid "Activity settings" -msgstr "Aktivitás" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity" -msgid "Activity information" -msgstr "Aktivitás" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Adatvédelem" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "örökké" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Az elmúlt óra elfelejtése" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Az elmúlt két óra elfelejtése" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Egy nap elfelejtése" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Minden elfelejtése" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " hónap" -msgstr[1] " hónap" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "ehhez" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Current activity" -msgid "Create activity..." -msgstr "Jelenlegi aktivitás" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activity" -msgid "Activity switching" -msgstr "Aktivitás" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Emlékezzen a megnyitott dokumentumokra:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Minden a&lkalmazásnál" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "N&e jegyezze meg" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Csak a megadott alkalmazások&nál" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Előzmények megtartása" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Előzmények törlése" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" -"Minden alkalmazás feketelistára tétele, amelyek nincsenek ezen a listán" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/ia/kactivities5.po kactivities-kf5-5.44.0/po/ia/kactivities5.po --- kactivities-kf5-5.18.0/po/ia/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ia/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,296 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Giovanni Sora , 2012, 2013, 2014. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2014-04-29 15:23+0200\n" -"Last-Translator: G.Sora \n" -"Language-Team: Interlingua \n" -"Language: ia\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 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Giovanni Sora" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "g.sora@tiscali.it" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Activitate" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Predefinite" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Commuta a activitate \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Activitates" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "Gerente de activitate non es executante correctemente." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Liga al activitate currente" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Leva ligamine ex le activitate currente" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Liga a :" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Leva ligamine ex:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgctxt "Header title for activity data model" -#| msgid "Activity" -msgid "Activity" -msgstr "Activitate" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Activitate currente" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Current activity" -msgid "Delete activity" -msgstr "Activitate currente" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Current activity" -msgid "Create a new activity" -msgstr "Activitate currente" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgctxt "Header title for activity data model" -#| msgid "Activity" -msgid "Activity settings" -msgstr "Activitate" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgctxt "Header title for activity data model" -#| msgid "Activity" -msgid "Activity information" -msgstr "Activitate" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Intimitate" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "pro sempre" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Oblida le ultime hora" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Oblida le ultime duo horas" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Oblida un die" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Oblida toto" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mense" -msgstr[1] " menses" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "pro " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Current activity" -msgid "Create activity..." -msgstr "Activitate currente" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgctxt "Header title for activity data model" -#| msgid "Activity" -msgid "Activity switching" -msgstr "Activitate" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Memora documentos aperite:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -#, fuzzy -#| msgid "For all applications" -msgid "For a&ll applications" -msgstr "Pro omne applicationes" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -#, fuzzy -#| msgid "Do not remember" -msgid "&Do not remember" -msgstr "Non memora" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -#, fuzzy -#| msgid "Only for specific applications" -msgid "O&nly for specific applications" -msgstr "Solmente pro applicationes specificate" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Mantene historia" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Netta historis recente" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Mitte in lista negre omne appliocationes que non es in iste lista" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/is/kactivities5.po kactivities-kf5-5.44.0/po/is/kactivities5.po --- kactivities-kf5-5.18.0/po/is/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/is/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,292 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Sveinn í Felli , 2013. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2013-04-18 20:52+0000\n" -"Last-Translator: Sveinn í Felli \n" -"Language-Team: Icelandic \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.2\n" -"Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Sveinn í Felli" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "sveinki@nett.is" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Activities" -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Virkni" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Skipta í \"%1\" virkni" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Activities" -msgid "Activities" -msgstr "Virkni" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "Virknistjórinn er ekki að keyra eins og skyldi." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Tengja við núverandi virkni" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Aftengja við núverandi virkni" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Tengja við:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Aftengja frá:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Activities" -msgid "Activity" -msgstr "Virkni" - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Current activity" -msgstr "Tengja við núverandi virkni" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Delete activity" -msgstr "Tengja við núverandi virkni" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create a new activity" -msgstr "Tengja við núverandi virkni" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activities" -msgid "Activity settings" -msgstr "Virkni" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activities" -msgid "Activity information" -msgstr "Virkni" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create activity..." -msgstr "Tengja við núverandi virkni" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activities" -msgid "Activity switching" -msgstr "Virkni" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/it/kactivities5.po kactivities-kf5-5.44.0/po/it/kactivities5.po --- kactivities-kf5-5.18.0/po/it/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/it/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,273 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# Federico Zenith , 2012, 2013, 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: kactivitymanagerd_fileitem_linking_plugin\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-28 22:26+0100\n" -"Last-Translator: Vincenzo Reale \n" -"Language-Team: Italian \n" -"Language: it\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" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Vincenzo Reale,Federico Zenith" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "smart2128@baslug.org," - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Attività" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Predefinita" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Passa all'attività «%1»" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Attività" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Caricamento..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Il gestore delle attività non è in esecuzione" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Collega all'attività attuale" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Scollega dall'attività attuale" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Collega a:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Scollega da:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Attività" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Attività attuale" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Elimina attività" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Sei sicuro di volerlo eliminare «%1»?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Errore durante il caricamento dei file QML. Controlla la tua installazione.\n" -"%1 mancante" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Crea una nuova attività" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Impostazioni delle attività" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Generale" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Altro" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Crea" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Applica" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Annulla" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Scorciatoia per passare a questa attività:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Informazioni sulle attività" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nome" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Descrizione" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Sfondo" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Cambia..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Icona" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Commutazione" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Riservatezza" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "per sempre" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Dimentica l'ultima ora" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Dimentica le ultime due ore" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Dimentica un giorno" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Dimentica tutto" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mese" -msgstr[1] " mesi" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "per " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Crea attività..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Commutazione attività" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Percorri le attività" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Percorri le attività (inverso)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Modulo" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Ricorda i documenti aperti:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Per tutte &le applicazioni" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Non ricordare" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Solo per certe applicazioni" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Mantieni la cronologia" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Ripulisci la cronologia recente" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Metti in lista nera tutte le applicazioni non in questo elenco" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Ricorda il desktop virtuale attuale per ogni attività (richiede il riavvio)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Scorciatoie" diff -Nru kactivities-kf5-5.18.0/po/ja/kactivities5.po kactivities-kf5-5.44.0/po/ja/kactivities5.po --- kactivities-kf5-5.18.0/po/ja/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ja/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,271 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: kcm_activities\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2012-11-15 03:25-0800\n" -"Last-Translator: Japanese KDE translation team \n" -"Language-Team: Japanese \n" -"Language: ja\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-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" - -#, fuzzy -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Fumiaki Okushi" - -#, fuzzy -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "okushi@kde.gr.jp" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "KDE Activity Manager" -msgid "The Activity Manager is not running" -msgstr "KDE アクティビティマネージャ" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/kk/kactivities5.po kactivities-kf5-5.44.0/po/kk/kactivities5.po --- kactivities-kf5-5.18.0/po/kk/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/kk/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,299 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Sairan Kikkarin , 2012, 2013. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2013-06-12 03:46+0600\n" -"Last-Translator: Sairan Kikkarin \n" -"Language-Team: Kazakh \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.2\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -# -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Сайран Киккарин" - -# -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "sairan@computer.org" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Activities..." -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Белсенділіктер..." - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "\"%1\" белсенділігіне ауысу" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Activities..." -msgid "Activities" -msgstr "Белсенділіктер..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "Белсенділік менеджері дұрыс істемейді." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Назардағы белсенділікпен байланыстыру" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Назардағы белсенділіктен байланысын үзу" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Мынамен байланыстыру:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Мынадан байланысын үзу:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Activities..." -msgid "Activity" -msgstr "Белсенділіктер..." - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Current activity" -msgstr "Назардағы белсенділікпен байланыстыру" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Delete activity" -msgstr "Назардағы белсенділікпен байланыстыру" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create a new activity" -msgstr "Назардағы белсенділікпен байланыстыру" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activities..." -msgid "Activity settings" -msgstr "Белсенділіктер..." - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activities..." -msgid "Activity information" -msgstr "Белсенділіктер..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Дербестік" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "мерзімі шексіз" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Соңғы сағатын ұмыту" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Соңғы екі сағатын ұмыту" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "бір күнін ұмыту" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Бүкілін ұмыту" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " ай" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "мерзімі " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create activity..." -msgstr "Назардағы белсенділікпен байланыстыру" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activities..." -msgid "Activity switching" -msgstr "Белсенділіктер..." - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Ашылған құжаттарды жаттап алуы" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -#, fuzzy -#| msgid "For all applications" -msgid "For a&ll applications" -msgstr "Бүкіл қолданбаларда" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -#, fuzzy -#| msgid "Do not remember" -msgid "&Do not remember" -msgstr "Жаттамау" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -#, fuzzy -#| msgid "Only for specific applications" -msgid "O&nly for specific applications" -msgstr "Тек белгілі қолданбаларда" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Жадында сақтайтын" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Жуырдағысын тазалау" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Тізімде жоқ қолданбалар үшін ештеңе жатталмасын" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/km/kactivities5.po kactivities-kf5-5.44.0/po/km/kactivities5.po --- kactivities-kf5-5.18.0/po/km/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/km/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,296 +0,0 @@ -# translation of kactivitymanagerd.po to Khmer -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Khoem Sokhem , 2012. -msgid "" -msgstr "" -"Project-Id-Version: kactivitymanagerd\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2012-06-07 16:10+0700\n" -"Last-Translator: Khoem Sokhem \n" -"Language-Team: Khmer \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "ខឹម សុខែម,ម៉ន ម៉េត, សេង សុត្ថា" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "khoemsokhem@khmeros.info,mornmet@khmeros.info,sutha@khmeros.info​​" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Unlock Activity" -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "ដោះសោ​សកម្មភាព" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Unlock Activity" -msgid "Activities" -msgstr "ដោះសោ​សកម្មភាព" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "កម្មវិធី​គ្រប់គ្រង​សកម្មភាព​មិនកំពុង​ដំណើរការ​ត្រឹមត្រូវ​ទេ ។" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Link to the current activity" -msgstr "សកម្មភាព​ដែល​មិន​បានការពារ" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Unlink from the current activity" -msgstr "សកម្មភាព​ដែល​មិន​បានការពារ" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Unlock Activity" -msgid "Activity" -msgstr "ដោះសោ​សកម្មភាព" - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Current activity" -msgstr "សកម្មភាព​ដែល​មិន​បានការពារ" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Delete Activity" -msgid "Delete activity" -msgstr "លុប​សកម្មភាព" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Create a new activity" -msgstr "សកម្មភាព​ដែល​មិន​បានការពារ" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity Password" -msgid "Activity settings" -msgstr "ពាក្យ​សម្ងាត់​​សកម្មភាព" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity Password" -msgid "Activity information" -msgstr "ពាក្យ​សម្ងាត់​​សកម្មភាព" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Unprotect Activity" -msgid "Create activity..." -msgstr "សកម្មភាព​ដែល​មិន​បានការពារ" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activity Password" -msgid "Activity switching" -msgstr "ពាក្យ​សម្ងាត់​​សកម្មភាព" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/kn/kactivities5.po kactivities-kf5-5.44.0/po/kn/kactivities5.po --- kactivities-kf5-5.18.0/po/kn/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/kn/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,273 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# ashok , 2010. -# Shankar Prasad , 2010. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2010-12-22 12:59+0530\n" -"Last-Translator: Shankar Prasad \n" -"Language-Team: kn-l10n \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.1\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "ಅಶೋಕ್ ಕುಮಾರ್, ಶಂಕರ್ ಪ್ರಸಾದ್" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "ashok567@gmail.com, svenkate@redhat.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "KDE Activity Manager" -msgid "The Activity Manager is not running" -msgstr "KDE ಚಟುವಟಿಕೆ ನಿರ್ವಾಹಕ" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/ko/kactivities5.po kactivities-kf5-5.44.0/po/ko/kactivities5.po --- kactivities-kf5-5.18.0/po/ko/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ko/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,269 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# Shinjo Park , 2013, 2014, 2015. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-11-07 00:30+0100\n" -"Last-Translator: Shinjo Park \n" -"Language-Team: Korean \n" -"Language: ko\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Lokalize 2.0\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Shinjo Park" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "kde@peremen.name" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "활동" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "기본값" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "활동 \"%1\"(으)로 전환" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "활동" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "불러오는 중..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "활동 관리자가 실행되고 있지 않습니다" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "현재 활동으로 연결" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "현재 활동에서 연결 해제" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "다음으로 연결:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "다음에서 연결 해제:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "활동" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "현재 활동" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "활동 삭제" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "'%1'을(를) 삭제하시겠습니까?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "새 활동 만들기" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "활동 설정" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "일반" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "기타" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "생성" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "적용" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "취소" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "이 활동으로 전환하는 단축키:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "활동 정보" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "이름" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "설명" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "배경 그림" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "변경..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "아이콘" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "전환" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "개인 정보" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "영구" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "마지막 1시간 삭제" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "마지막 2시간 삭제" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "마지막 하루 삭제" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "모두 삭제" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "개월" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "시간:" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "활동 만들기..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "활동 전환" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "활동간 전환" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "활동간 전환(거꾸로)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "폼" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "열었던 문서 기억:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "모든 프로그램에 대해서(&L)" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "기억하지 않음(&D)" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "특정한 프로그램에 대해서(&N)" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "과거 기록 저장" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "최근 기록 삭제" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "이 목록에 없는 프로그램 차단" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "각 활동별 현재 가상 데스크톱 기억(다시 시작 필요)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "단축키" diff -Nru kactivities-kf5-5.18.0/po/lt/kactivities5.po kactivities-kf5-5.44.0/po/lt/kactivities5.po --- kactivities-kf5-5.18.0/po/lt/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/lt/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,287 +0,0 @@ -# Lithuanian translations for l package. -# Copyright (C) 2012 This_file_is_part_of_KDE -# This file is distributed under the same license as the l package. -# -# Automatically generated, 2012. -# Liudas Alisauskas , 2013, 2014. -msgid "" -msgstr "" -"Project-Id-Version: l 10n\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2014-11-02 19:37+0200\n" -"Last-Translator: \n" -"Language-Team: Lithuanian \n" -"Language: lt\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n" -"%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" -"X-Generator: Lokalize 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Liudas Ališauskas" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "liudas@akmc.lt" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Veikla" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Numatyta" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Persijungti į veiklą „%1“" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Veiklos" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Įkeliama..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Veiklų tvarkytuvė neveikia" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Prijungti prie dabartinės veiklos" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Atjungti nuo dabartinės veiklos" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Prijungti prie:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Atjungti nuo:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Veikla" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Dabartinė veikla" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Current activity" -msgid "Delete activity" -msgstr "Dabartinė veikla" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Current activity" -msgid "Create a new activity" -msgstr "Dabartinė veikla" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity" -msgid "Activity settings" -msgstr "Veikla" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity" -msgid "Activity information" -msgstr "Veikla" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privatumas" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "visam laikui" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Pamiršti paskutinę valandą" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Pamiršti paskutines dvi valandas" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Pamiršti dieną" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Pamiršti viską" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mėnesį" -msgstr[1] " mėnesius" -msgstr[2] " mėnesių" -msgstr[3] " mėnesį" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr " " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Current activity" -msgid "Create activity..." -msgstr "Dabartinė veikla" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activity" -msgid "Activity switching" -msgstr "Veikla" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Prisiminti atvertus dokumentus:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Visoms programos" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Neprisiminti" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Tik tam tikroms programoms" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Išsaugoti istoriją" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Išvalyti paskiausią istoriją" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Įtraukti į juodą sąrašą visas šias programas" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/lv/kactivities5.po kactivities-kf5-5.44.0/po/lv/kactivities5.po --- kactivities-kf5-5.18.0/po/lv/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/lv/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,274 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Einars Sprugis , 2011. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2011-08-17 23:34+0300\n" -"Last-Translator: Einars Sprugis \n" -"Language-Team: Latvian \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.2\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " -"2);\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Einārs Sprūģis" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "einars8@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "KDE Activity Manager" -msgid "The Activity Manager is not running" -msgstr "KDE aktivitāšu pārvaldnieks" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/mr/kactivities5.po kactivities-kf5-5.44.0/po/mr/kactivities5.po --- kactivities-kf5-5.18.0/po/mr/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/mr/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,298 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Chetan Khona , 2013. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2013-01-14 22:14+0530\n" -"Last-Translator: Chetan Khona \n" -"Language-Team: American English \n" -"Language: en_US\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 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "चेतन खोना" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "chetan@kompkin.com" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Activities" -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "कार्यपध्दती" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "\"%1\" या कार्यपध्दतीप्रमाणे काम सुरु करा" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Activities" -msgid "Activities" -msgstr "कार्यपध्दती" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "कार्यपध्दती व्यवस्थापक नीट काम करत नाही." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "वर्तमान कार्यपध्दतीस लिंक करा" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "वर्तमान कार्यपध्दती पासून अनलिंक करा" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "यास लिंक करा :" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "या पासून अनलिंक करा :" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Activities" -msgid "Activity" -msgstr "कार्यपध्दती" - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Current activity" -msgstr "वर्तमान कार्यपध्दतीस लिंक करा" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Delete activity" -msgstr "वर्तमान कार्यपध्दतीस लिंक करा" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create a new activity" -msgstr "वर्तमान कार्यपध्दतीस लिंक करा" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activities" -msgid "Activity settings" -msgstr "कार्यपध्दती" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activities" -msgid "Activity information" -msgstr "कार्यपध्दती" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "गुप्तता" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "कायमचे" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "शेवटचा तास विसरा" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "शेवटचे दोन तास विसरा" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "एक दिवस विसरा" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "सर्वकाही विसरा" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "या करिता " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create activity..." -msgstr "वर्तमान कार्यपध्दतीस लिंक करा" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activities" -msgid "Activity switching" -msgstr "कार्यपध्दती" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "उघडलेले दस्तऐवज लक्षात ठेवा :" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -#, fuzzy -#| msgid "For all applications" -msgid "For a&ll applications" -msgstr "सर्व अनुप्रयोगांकरिता" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -#, fuzzy -#| msgid "Do not remember" -msgid "&Do not remember" -msgstr "लक्षात ठेवू नका" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -#, fuzzy -#| msgid "Only for specific applications" -msgid "O&nly for specific applications" -msgstr "फक्त ठराविक अनुप्रयोगांकरिता" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "इतिहास लक्षात ठेवा" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "ताजा इतिहास काढून टाका" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "या यादीत नसलेल्या सर्व अनुप्रयोगांना प्रतिबंध करा" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/ms/kactivities5.po kactivities-kf5-5.44.0/po/ms/kactivities5.po --- kactivities-kf5-5.18.0/po/ms/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ms/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,271 +0,0 @@ -# kactivitymanagerd Bahasa Melayu (Malay) (ms) -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Sharuzzaman Ahmat Raslan , 2010. -msgid "" -msgstr "" -"Project-Id-Version: kactivitymanagerd\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2010-11-14 23:28+0800\n" -"Last-Translator: Sharuzzaman Ahmat Raslan \n" -"Language-Team: Malay \n" -"Language: ms\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -"Plural-Forms: nplurals=2; plural=1;\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Sharuzzaman Ahmat Raslan" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "sharuzzaman@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/nb/kactivities5.po kactivities-kf5-5.44.0/po/nb/kactivities5.po --- kactivities-kf5-5.18.0/po/nb/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/nb/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,265 +0,0 @@ -# Translation of kactivities5 to Norwegian Bokmål -# -# Bjørn Steensrud , 2012, 2014. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-11-29 06:53+0000\n" -"PO-Revision-Date: 2014-09-09 12:52+0200\n" -"Last-Translator: Bjørn Steensrud \n" -"Language-Team: Norwegian Bokmål \n" -"Language: nb\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 1.5\n" -"X-Environment: kde\n" -"X-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Bjørn Steensrud" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "bjornst@skogkatt.homelinux.org" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktivitet" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Standard" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Bytt til aktivitet «%1»" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktiviteter" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Laster …" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Aktivitetsbehandler kjører ikke." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Lenk til gjeldende aktivitet" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Lenk fra gjeldende aktivitet" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Lenk til:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Lenk fra:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktivitet" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Gjeldende aktivitet" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:124 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:132 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:172 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:173 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:181 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Bruk" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Avbryt" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Navn" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Beskrivelse" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ikon" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Bytte" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Personvern" - -#: workspace/settings/PrivacyTab.cpp:72 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "alltid" - -#: workspace/settings/PrivacyTab.cpp:82 -msgid "Forget the last hour" -msgstr "Glem den siste timen" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last two hours" -msgstr "Glem de to siste timene" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget a day" -msgstr "Glem en dag" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget everything" -msgstr "Glem alt" - -#: workspace/settings/PrivacyTab.cpp:217 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " måned" -msgstr[1] " måneder" - -#: workspace/settings/PrivacyTab.cpp:221 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "i " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Husk åpnede dokumenter:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "For a&lle programmer" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Ikke husk" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Bare for oppgitte programmer" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Behold historie" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Tøm nylig historie" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Svartelist alle programmer som ikke er på denne lista" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Snarveier" diff -Nru kactivities-kf5-5.18.0/po/nds/kactivities5.po kactivities-kf5-5.44.0/po/nds/kactivities5.po --- kactivities-kf5-5.18.0/po/nds/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/nds/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,282 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# Sönke Dibbern , 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2014-08-21 16:34+0200\n" -"Last-Translator: Sönke Dibbern \n" -"Language-Team: Low Saxon \n" -"Language: nds\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 1.4\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Sönke Dibbern" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "s_dibbern@web.de" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktiviteet" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Standard" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Na Aktiviteet \"%1\" wesseln " - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktiviteten" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Bi to laden..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "De Aktivitetenpleger löppt nich" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Na de aktuelle Aktiviteet towiesen" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Vun de aktuelle Aktiviteet aflösen" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Towiesen na:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Aflösen vun:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktiviteet" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Aktuell Aktiviteet" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Current activity" -msgid "Delete activity" -msgstr "Aktuell Aktiviteet" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Current activity" -msgid "Create a new activity" -msgstr "Aktuell Aktiviteet" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity" -msgid "Activity settings" -msgstr "Aktiviteet" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity" -msgid "Activity information" -msgstr "Aktiviteet" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privaatrebeet" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "för jümmers" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "De verleden Stünn vergeten" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "De verleden twee Stünnen vergeten" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "En Dag vergeten" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Allens vergeten" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " Maand" -msgstr[1] " Maanden" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "för " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Current activity" -msgid "Create activity..." -msgstr "Aktuell Aktiviteet" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activity" -msgid "Activity switching" -msgstr "Aktiviteet" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Opmaakt Dokmenten wohren:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "För a&ll Programmen" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Nich wohren" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Bloots för wiss Programmen" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Vörgeschicht wohren" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Vörgeschicht leddig maken" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "All Programmen nich op disse List op Leeglist setten" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/nl/kactivities5.po kactivities-kf5-5.44.0/po/nl/kactivities5.po --- kactivities-kf5-5.18.0/po/nl/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/nl/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,274 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Freek de Kruijf , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-27 14:16+0100\n" -"Last-Translator: Freek de Kruijf \n" -"Language-Team: Dutch \n" -"Language: nl\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 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Freek de Kruijf" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "freekdekruijf@kde.nl" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Activiteit" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Standaard" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Omschakelen naar activiteit \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Activiteiten" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Bezig met laden..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "De activiteitenbeheerder is niet actief" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Aankoppelen aan de huidige activiteit" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Afkoppelen van de huidige activiteit" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Aankoppelen aan:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Afkoppelen van:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Activiteit" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Huidige activiteit" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Activiteit Verwijderen" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Wilt u '%1' verwijderen?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Fout bij laden van de QML-bestanden. Controleer uw installatie.\n" -"Er ontbreekt %1" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Een nieuwe activiteit aanmaken" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Instellingen voor activiteit" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Algemeen" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Overig" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Aanmaken" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Toepassen" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Annuleren" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Sneltoets voor omschakelen naar deze activiteit" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Informatie over activiteit" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Naam" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Beschrijving" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Achtergrondafbeelding" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Wijzigen..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Pictogram" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Schakelen" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privacy" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "altijd" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Het laatste uur vergeten" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "De laatste twee uur vergeten" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Een dag vergeten" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Alles vergeten" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " maand" -msgstr[1] " maanden" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "voor " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Activiteit aanmaken..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Overschakelen van Activiteit" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Door activiteiten wandelen" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Door activiteiten wandelen (omgekeerd)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formulier" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Geopende documenten onthouden" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Voor a&lle toepassingen" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Niet onthouden" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Allee&n voor specifieke toepassingen" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Geschiedenis bewaren" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Recente geschiedenis wissen" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Alle toepassingen niet in deze lijst op de zwarte lijst zetten" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Onthoud het huidige virtuele bureaublad voor elke activiteit (heeft opnieuw " -"starten nodig)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Sneltoetsen" diff -Nru kactivities-kf5-5.18.0/po/nn/kactivities5.po kactivities-kf5-5.44.0/po/nn/kactivities5.po --- kactivities-kf5-5.18.0/po/nn/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/nn/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,265 +0,0 @@ -# Translation of kactivities5 to Norwegian Nynorsk -# -# Karl Ove Hufthammer , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-11-29 06:53+0000\n" -"PO-Revision-Date: 2015-11-10 20:13+0100\n" -"Last-Translator: Karl Ove Hufthammer \n" -"Language-Team: Norwegian Nynorsk \n" -"Language: nn\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" -"X-Environment: kde\n" -"X-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Karl Ove Hufthammer" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "karl@huftis.org" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktivitet" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Standard" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Byt til aktivitet «%1»" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktivitetar" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Lastar …" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Aktivitetshandsamaren køyrer ikkje" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Lenkje til gjeldande aktivitet" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Fjern lenkje frå gjeldande aktivitet" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Lag lenkje til:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Fjern lenkje frå:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktivitet" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Gjeldande aktivitet" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Slett aktivitet" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Er du sikker på at du vil sletta «%1»?" - -#: workspace/settings/imports/dialog.cpp:124 -msgid "Create a new activity" -msgstr "Legg til ny aktivitet" - -#: workspace/settings/imports/dialog.cpp:132 -msgid "Activity settings" -msgstr "Aktivitetsoppsett" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:172 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Generelt" - -#: workspace/settings/imports/dialog.cpp:173 -msgid "Other" -msgstr "Anna" - -#: workspace/settings/imports/dialog.cpp:181 -msgid "Create" -msgstr "Opprett" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Bruk" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Avbryt" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Snarveg for å byta til denne aktiviteten:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Aktivitetsinformasjon" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Namn" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Skildring" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Bakgrunnsbilete" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Endra …" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ikon" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Byte" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Personvern" - -#: workspace/settings/PrivacyTab.cpp:72 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "for alltid" - -#: workspace/settings/PrivacyTab.cpp:82 -msgid "Forget the last hour" -msgstr "Gløym siste time" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last two hours" -msgstr "Gløym siste to timar" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget a day" -msgstr "Gløym eit døgn" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget everything" -msgstr "Gløym alt" - -#: workspace/settings/PrivacyTab.cpp:217 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " månad" -msgstr[1] " månadar" - -#: workspace/settings/PrivacyTab.cpp:221 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "for " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Opprett aktivitet …" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Aktivitetsbyte" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Bla gjennom aktivitetar" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Bla gjennom aktivitetar (baklengs)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Skjema" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Hugs opna dokument:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "For a&lle programma" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Ikkje hugs" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Berre for valde program" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Behald logg" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Tøm logg" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Svartelista alle programma som ikkje er på lista" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "Hugs gjeldande virtuelle skrivebord for kvar aktivitet (treng omstart)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Snarvegar" diff -Nru kactivities-kf5-5.18.0/po/pa/kactivities5.po kactivities-kf5-5.44.0/po/pa/kactivities5.po --- kactivities-kf5-5.18.0/po/pa/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/pa/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,282 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# A S Alam , 2012, 2014. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2014-11-06 17:43-0600\n" -"Last-Translator: A S Alam \n" -"Language-Team: Punjabi/Panjabi \n" -"Language: pa\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 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "aalam@users.sf.net" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "ਸਰਗਰਮੀ" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "ਡਿਫਾਲਟ" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "\"%1\" ਐਕਟਵਿਟੀ ਲਈ ਬਦਲੋ" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "ਸਰਗਰਮੀ" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "...ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "ਸਰਗਰਮੀ ਮੈਨੇਜਰ ਨਹੀਂ ਚੱਲ ਰਿਹਾ ਹੈ" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "ਮੌਜੂਦਾ ਸਰਗਰਮੀ ਲਈ ਲਿੰਕ" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "ਮੌਜੂਦਾ ਸਰਗਰਮੀ ਤੋਂ ਅਣ-ਲਿੰਕ" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "ਨਾਲ ਲਿੰਕ:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "ਅਣਲਿੰਕ ਕਰੋ:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "ਸਰਗਰਮੀ" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "ਮੌਜੂਦਾ ਸਰਗਰਮੀ" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Current activity" -msgid "Delete activity" -msgstr "ਮੌਜੂਦਾ ਸਰਗਰਮੀ" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Current activity" -msgid "Create a new activity" -msgstr "ਮੌਜੂਦਾ ਸਰਗਰਮੀ" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity" -msgid "Activity settings" -msgstr "ਸਰਗਰਮੀ" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity" -msgid "Activity information" -msgstr "ਸਰਗਰਮੀ" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "ਪਰਾਈਵੇਸੀ" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "ਹਮੇਸ਼ਾ" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "ਪਿਛਲਾ ਘੰਟਾ ਭੁੱਲ ਜਾਉ" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "ਪਿਛਲੇ ਦੋ ਘੰਟੇ ਭੁੱਲ ਜਾਉ" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "ਇੱਕ ਦਿਨ ਭੁੱਲ ਜਾਓ" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "ਹਰ ਚੀਜ਼ ਭੁੱਲ ਜਾਉ" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " ਮਹੀਨਾ" -msgstr[1] " ਮਹੀਨੇ" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "ਲਈ " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Current activity" -msgid "Create activity..." -msgstr "ਮੌਜੂਦਾ ਸਰਗਰਮੀ" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activity" -msgid "Activity switching" -msgstr "ਸਰਗਰਮੀ" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "ਖੁੱਲ੍ਹੇ ਡੌਕੂਮੈਂਟ ਯਾਦ ਰੱਖੋ" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "ਸਭ ਐਪਲੀਕੇਸ਼ਨ ਲਈ(&l)" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "ਯਾਦ ਨਾ ਰੱਖੋ(&D)" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "ਕੇਵਲ ਖਾਸ ਐਪਲੀਕੇਸ਼ਨ ਲਈ ਹੀ(&n)" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "ਅਤੀਤ ਰੱਖੋ" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "ਤਾਜ਼ਾ ਅਤੀਤ ਸਾਫ਼ ਕਰੋ" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "ਇਹ ਸੂਚੀ ਤੋਂ ਬਿਨਾਂ ਸਭ ਐਪਲੀਕੇਸ਼ਨ ਬਲੈਕ-ਲਿਸਟ" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/pl/kactivities5.po kactivities-kf5-5.44.0/po/pl/kactivities5.po --- kactivities-kf5-5.18.0/po/pl/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/pl/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,277 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Łukasz Wojniłowicz , 2012, 2014, 2015, 2016. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2016-01-02 09:09+0100\n" -"Last-Translator: Łukasz Wojniłowicz \n" -"Language-Team: Polish \n" -"Language: pl\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%10>=2 && n%10<=4 && (n%100<10 " -"|| n%100>=20) ? 1 : 2);\n" -"X-Generator: Lokalize 2.0\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Łukasz Wojniłowicz" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "lukasz.wojnilowicz@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Działanie" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Domyślne" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Przełącz do działania \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Działania" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Wczytywanie..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Program do zarządzania działaniami nie został uruchomiony." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Dowiąż do bieżącego działania" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Usuń dowiązanie z bieżącego działania" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Dowiąż do:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Usuń dowiązanie z:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Działanie" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Bieżące działanie" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Usuń działanie" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Czy jesteś pewien, że chcesz usunąć '%1'?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Błąd wczytywania plików QML. Sprawdź swoją instalację.\n" -"Brakuje %1" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Utwórz nowe działanie" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Ustawienia działań" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Ogólne" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Inne" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Utwórz" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Zastosuj" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Anuluj" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Skrót do przełączenia na to działanie:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Inoformacje o działaniu" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nazwa" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Opis" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Tapeta" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Zmień..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ikona" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Przełączanie" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Prywatność" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "zawsze" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Zapomnij o ostatniej godzinie" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Zapomnij o ostatnich dwóch godzinach" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Zapomnij o dniu" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Zapomnij wszystko" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " miesiąc" -msgstr[1] " miesiące" -msgstr[2] " miesięcy" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "na " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Uwtórz działanie..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Przełączanie działań" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Przechodzenie pomiędzy działaniami" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Przechodzenie pomiędzy działaniami (odwrotnie)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formularz" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Zapamiętaj otwarte dokumenty:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "D&la wszystkich programów" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Nie zapamiętuj" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Tylko dla da&nych programów" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Zachowaj historię" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Wyczyść niedawną historię" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" -"Umieść na czarnej liście wszystkie programy nie znajdujące się na tej liście" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Pamiętaj bieżący pulpit wirtualny dla każdego działania (wymaga ponownego " -"uruchomienia)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Skróty" diff -Nru kactivities-kf5-5.18.0/po/pt/kactivities5.po kactivities-kf5-5.44.0/po/pt/kactivities5.po --- kactivities-kf5-5.18.0/po/pt/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/pt/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,269 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-28 13:58+0000\n" -"Last-Translator: José Nuno Coelho Pires \n" -"Language-Team: Portuguese \n" -"Language: \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-POFile-SpellExtra: Cukic QML\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "José Nuno Pires" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "zepires@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Actividade" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Predefinição" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Mudar para a actividade \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Actividades" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "A carregar..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "O gestor de actividades não está em execução" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Associar à actividade actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Dissociar da actividade actual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Associar a:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Dissociar de:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Actividade" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Actividade actual" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Apagar a actividade" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Tem a certeza que deseja apagar a '%1'?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Ocorreu um erro ao carregar os ficheiros QML. Verifique a sua instalação.\n" -"Falta o %1" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Criar uma nova actividade" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Configuração da actividade" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Geral" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Outro" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Criar" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Aplicar" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Cancelar" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Atalho para mudar para esta actividade:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Informação da actividade" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nome" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Descrição" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Papel de Parede" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Modificar..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ícone" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Mudança" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privacidade" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "para sempre" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Esquecer a última hora" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Esquecer as duas últimas horas" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Esquecer um dia" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Esquecer tudo" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mês" -msgstr[1] " meses" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "durante " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Criar uma actividade..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Mudança de actividade" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Percorrer as actividades" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Percorrer as actividades (inverso)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formulário" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Recordar os documentos abertos:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Para &todas as aplicações" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Não recordar" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Apenas em aplicações específicas" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Manter o histórico" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Limpar o histórico recente" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Excluir todas as aplicações fora desta lista" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Recordar o ecrã virtual actual para cada actividade (necessita de reiniciar)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Atalhos" diff -Nru kactivities-kf5-5.18.0/po/pt_BR/kactivities5.po kactivities-kf5-5.44.0/po/pt_BR/kactivities5.po --- kactivities-kf5-5.18.0/po/pt_BR/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/pt_BR/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,276 +0,0 @@ -# Translation of kactivities5.po to Brazilian Portuguese -# Copyright (C) 2012-2015 This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# André Marcelo Alvarenga , 2012, 2013, 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-27 08:53-0200\n" -"Last-Translator: André Marcelo Alvarenga \n" -"Language-Team: Brazilian Portuguese \n" -"Language: pt_BR\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 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "André Marcelo Alvarenga" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "alvarenga@kde.org" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Atividade" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Padrão" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Alternar para a atividade \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Atividades" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Carregando..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "O Gerenciador de Atividades não está em execução." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Vincular à atividade atual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Desvincular da atividade atual" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Vincular à:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Desvincular de:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Atividade" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Atividade atual" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Excluir atividade" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Deseja realmente excluir '%1?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Erro ao carregar os arquivos QML. Verifique sua instalação.\n" -"Falta %1" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Criar uma nova atividade" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Configurações da atividade" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Geral" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Outro" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Criar" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Aplicar" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Cancelar" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Atalha para mudar para esta atividade:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Informações da atividade" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Nome" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Descrição" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Papel de parede" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Alterar..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ícone" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Mudança" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privacidade" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "para sempre" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Esquecer a última hora" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Esquecer as duas últimas horas" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Esquecer um dia" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Esquecer tudo" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mês" -msgstr[1] " meses" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "por " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Criar atividade..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Mudança de atividade" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Percorrer as atividades" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Percorrer as atividades (inverso)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formulário" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Lembrar dos documentos abertos:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Para todos os ap&licativos" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Não lembrar" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Ape&nas para aplicativos específicos" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Manter histórico" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Limpar histórico recente" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" -"Incluir na lista de proibições todos os aplicativos que não estão nesta lista" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Lembrar a área de trabalho virtual atual para cada atividade (necessário " -"reiniciar)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Atalhos" diff -Nru kactivities-kf5-5.18.0/po/ro/kactivities5.po kactivities-kf5-5.44.0/po/ro/kactivities5.po --- kactivities-kf5-5.18.0/po/ro/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ro/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,300 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Sergiu Bivol , 2012, 2013. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2013-10-27 11:29+0200\n" -"Last-Translator: Sergiu Bivol \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" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Sergiu Bivol" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "sergiu@ase.md" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Activities..." -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Activități..." - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Comută la activitatea „%1”" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Activities..." -msgid "Activities" -msgstr "Activități..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "Administratorul de activități nu rulează corespunzător." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Leagă de activitatea curentă" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Dezleagă de activitatea curentă" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Leagă la:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Dezleagă de la:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Activities..." -msgid "Activity" -msgstr "Activități..." - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Current activity" -msgstr "Leagă de activitatea curentă" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Delete activity" -msgstr "Leagă de activitatea curentă" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create a new activity" -msgstr "Leagă de activitatea curentă" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activities..." -msgid "Activity settings" -msgstr "Activități..." - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activities..." -msgid "Activity information" -msgstr "Activități..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Intimitate" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "permanent" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Uită ultima oră" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Uită ultimele două ore" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Uită o zi" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Uită tot" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "pentru " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create activity..." -msgstr "Leagă de activitatea curentă" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activities..." -msgid "Activity switching" -msgstr "Activități..." - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Memorizează documentele deschise:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -#, fuzzy -#| msgid "For all applications" -msgid "For a&ll applications" -msgstr "Pentru toate aplicațiile" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -#, fuzzy -#| msgid "Do not remember" -msgid "&Do not remember" -msgstr "Nu memoriza" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -#, fuzzy -#| msgid "Only for specific applications" -msgid "O&nly for specific applications" -msgstr "Numai pentru anumite aplicații" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Păstrează istoricul" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Curăță istoricul recent" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Pune în lista neagră toate aplicațiile ce nu sunt în lista asta" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/ru/kactivities5.po kactivities-kf5-5.44.0/po/ru/kactivities5.po --- kactivities-kf5-5.18.0/po/ru/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ru/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,287 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Julia Dronova , 2013. -# Yuri Efremov , 2013. -# Alexander Potashev , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-09-01 10:30+0300\n" -"Last-Translator: Alexander Potashev \n" -"Language-Team: Russian \n" -"Language: ru\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" -"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Lokalize 2.0\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Александр Лахин" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "exclusion@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Комната" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Начальная комната" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Переключиться на комнату «%1»" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Комнаты" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Загрузка..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Диспетчер комнат не запущен." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Привязать к текущей комнате" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Снять привязку к текущей комнате" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Привязать к:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Снять привязку с:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Комната" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Текущая комната" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Create activity..." -msgid "Delete activity" -msgstr "Создать комнату..." - -#: workspace/settings/imports/activitysettings.cpp:56 -#, fuzzy, kde-format -#| msgid "Are you sure you want to delete this activity?" -msgid "Are you sure you want to delete '%1'?" -msgstr "Удалить эту комнату?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Create activity..." -msgid "Create a new activity" -msgstr "Создать комнату..." - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity switching" -msgid "Activity settings" -msgstr "Переключение комнат" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Общее" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Создать" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Применить" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Отмена" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Комбинация клавиш для переключения на эту комнату:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity switching" -msgid "Activity information" -msgstr "Переключение комнат" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Переключение" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Конфиденциальность" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "вечно" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Стереть последний час" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Стереть последние два часа" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Стереть день" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Стереть всё" - -# "Хранить историю в течение ... месяц(а/ев)" --aspotashev -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " месяца" -msgstr[1] " месяцев" -msgstr[2] " месяцев" -msgstr[3] " месяца" - -# "Хранить историю в течение ... месяц(а/ев)" --aspotashev -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "в течение " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Создать комнату..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Переключение комнат" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "На одну комнату вперёд" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "На одну комнату назад" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Запоминать открытые документы:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Для &всех приложений" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Не запоминать" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Толь&ко для определённых приложений" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Хранить историю" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Очистить последнюю историю" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Заблокировать все приложения, кроме перечисленных" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Запоминать текущий рабочий стол для каждой комнаты (потребуется перезапуск)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Комбинации клавиш" diff -Nru kactivities-kf5-5.18.0/po/se/kactivities5.po kactivities-kf5-5.44.0/po/se/kactivities5.po --- kactivities-kf5-5.18.0/po/se/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/se/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,265 +0,0 @@ -# Translation of kactivities5 to Northern Sami -# -# Børre Gaup , 2011. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-11-29 06:53+0000\n" -"PO-Revision-Date: 2011-10-26 01:37+0200\n" -"Last-Translator: Børre Gaup \n" -"Language-Team: Northern Sami \n" -"Language: se\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.2\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Environment: kde\n" -"X-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Børre Gaup" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "boerre@skolelinux.no" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Standárda" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:124 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:132 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:172 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Oppalaš" - -#: workspace/settings/imports/dialog.cpp:173 -msgid "Other" -msgstr "Eará" - -#: workspace/settings/imports/dialog.cpp:181 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Bija atnui" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Gaskkalduhte" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Namma" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Duogášgovva" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Rievdat …" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Govaš" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:72 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:82 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:217 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:221 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Málle" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/sk/kactivities5.po kactivities-kf5-5.44.0/po/sk/kactivities5.po --- kactivities-kf5-5.18.0/po/sk/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/sk/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,272 +0,0 @@ -# translation of kactivities5.po to Slovak -# Roman Paholík , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-27 12:14+0100\n" -"Last-Translator: Roman Paholik \n" -"Language-Team: Slovak \n" -"Language: sk\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 2.0\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Roman Paholík" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "wizzardsk@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktivity" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Predvolené" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Prepnúť na aktivitu \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktivity" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Načítava sa..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Správca aktivít nebeží" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Odkaz na aktuálnu aktivitu" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Odlinkovať z aktuálnej aktivity" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Odkaz na:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Odlinkovať z:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktivita" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Aktuálna aktivita" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Vymazať aktivitu" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Naozaj chcete vymazať '%1'?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Chyba načítania QML súborov. Skontrolujte vašu inštaláciu.\n" -"Chýba %1" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Vytvoriť novú aktivitu" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Nastavenie aktivity" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Všeobecné" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Iné" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Vytvoriť" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Použiť" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Zrušiť" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Skratka na prepínanie na túto aktivitu" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Informácia o aktivite" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Názov" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Popis" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Tapeta" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Zmeniť..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ikona" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Prepínanie" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Súkromie" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "navždy" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Zabudnúť poslednú hodinu" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Zabudnúť posledné dve hodiny" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Zabudnúť deň" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Zabudnúť všetko" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mesiac" -msgstr[1] " mesiace" -msgstr[2] " mesiacov" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "pre " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Vytvoriť aktivitu..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Prepínanie aktivít" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Prechádzať cez aktivity" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Prechádzať cez aktivity (spätne)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formulár" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Zapamätať si otvorené dokumenty:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Pre všetky aplikácie" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "Nezapamätať si" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Iba pre špecifické aplikácie" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Ponechať históriu" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Vyčistiť nedávnu históriu" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Vylúčiť všetky aplikácie, ktoré nie sú na zozname" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Zapamätať si aktuálnu virtuálnu plochu pre každú aktivitu (potrebuje reštart)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Skratky" diff -Nru kactivities-kf5-5.18.0/po/sl/kactivities5.po kactivities-kf5-5.44.0/po/sl/kactivities5.po --- kactivities-kf5-5.18.0/po/sl/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/sl/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,277 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Andrej Vernekar , 2012. -# Jure Repinc , 2013. -# Andrej Mernik , 2013, 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-10-25 19:02+0100\n" -"Last-Translator: Andrej Mernik \n" -"Language-Team: Slovenian \n" -"Language: sl\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" -"%100==4 ? 3 : 0);\n" -"X-Generator: Lokalize 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Andrej Vernekar,Andrej Mernik" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "andrej.vernekar@gmail.com,andrejm@ubuntu.si" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Dejavnost" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Privzeta" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Preklopi na dejavnost »%1«" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Dejavnosti" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Nalaganje ..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Upravljalnik dejavnosti ne teče" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Poveži s trenutno dejavnostjo" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Prekini povezavo s trenutno dejavnostjo" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Poveži z:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Prekini povezavo z:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Dejavnost" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Trenutna dejavnost" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Izbriši dejavnost" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Ali ste prepričani, da želite izbrisati »%1«?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Ustvari novo dejavnost" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Nastavitve dejavnosti" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Splošno" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Drugo" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Ustvari" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Uveljavi" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Prekliči" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Bližnjica za preklop na to dejavnost:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Podrobnosti o dejavnosti" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Ime" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Opis" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Slika ozadja" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Spremeni ..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ikona" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Preklapljanje" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Zasebnost" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "vedno" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Pozabi zadnjo uro" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Pozabi zadnji dve uri" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Pozabi dan" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Pozabi vse" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "%1 mesecev" -msgstr[1] "%1 mesec" -msgstr[2] "%1 meseca" -msgstr[3] "%1 mesece" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "za " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Ustvari dejavnost ..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Preklop med dejavnostmi" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Sprehodite se med dejavnostmi" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Sprehodite se med dejavnostmi (obratno)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Obrazec" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Zapomni si odprte dokumente:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Za &vse programe" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Ne zapomni si" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "Sa&mo za določene programe" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Ohrani zgodovino" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Počisti nedavno zgodovino" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Na črni seznam daj vse programe, ki niso na tem seznamu" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Zapomni si trenutno navidezno namizje za vsako dejavnost (zahteva ponovni " -"zagon)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Bližnjice" diff -Nru kactivities-kf5-5.18.0/po/sr/kactivities5.po kactivities-kf5-5.44.0/po/sr/kactivities5.po --- kactivities-kf5-5.18.0/po/sr/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/sr/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,279 +0,0 @@ -# Translation of kactivities5.po into Serbian. -# Chusslove Illich , 2012, 2014, 2015, 2016. -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2016-01-01 15:42+0100\n" -"Last-Translator: Chusslove Illich \n" -"Language-Team: Serbian \n" -"Language: sr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" -"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" -"X-Environment: kde\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Часлав Илић" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "caslav.ilic@gmx.net" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "активност" - -# >> @item activity name -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Подразумевана" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Пребаци на активност „%1“" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Активности" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Учитавам..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Менаџер активности није у погону." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Повежи са текућом активношћу" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Развежи од текуће активности" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Повежи са:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Развежи од:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Активност" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Текућа активност" - -# >> @title:window -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Брисање активности" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Желите ли заиста да обришете „%1“?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Грешка при учитавању КуМЛ фајлова. Проверите инсталацију.\n" -"Недостаје %1." - -# >> @title:window -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Стварање нове активности" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Поставке активности" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Опште" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Друго" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Направи" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Примени" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Одустани" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Пречица за пребацивање на ову активност:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Подаци о активности" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Име" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Опис" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Тапет" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Измени..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Икона" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Мењање" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Приватност" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "заувек" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Заборави протекли сат" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Заборави протекла два сата" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Заборави протекли дан" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Заборави све" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " месец" -msgstr[1] " месеца" -msgstr[2] " месеци" -msgstr[3] " месец" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr " " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Направи активност..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Мењање активности" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Шетај кроз активности" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Шетај кроз активности (обрнуто)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Формулар" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Памти отворене документе:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "у &свим програмима" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&нигде" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "само у неким &програмима" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Памти историјат" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Очисти недавни историјат" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Сви програме ван ове листе на црну листу" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Запамти текућу виртуелну површ за сваку активност (захтева поновно покретање)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Пречице" diff -Nru kactivities-kf5-5.18.0/po/sr@ijekavian/kactivities5.po kactivities-kf5-5.44.0/po/sr@ijekavian/kactivities5.po --- kactivities-kf5-5.18.0/po/sr@ijekavian/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/sr@ijekavian/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,279 +0,0 @@ -# Translation of kactivities5.po into Serbian. -# Chusslove Illich , 2012, 2014, 2015, 2016. -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2016-01-01 15:42+0100\n" -"Last-Translator: Chusslove Illich \n" -"Language-Team: Serbian \n" -"Language: sr@ijekavian\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" -"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" -"X-Environment: kde\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Часлав Илић" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "caslav.ilic@gmx.net" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "активност" - -# >> @item activity name -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Подразумевана" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Пребаци на активност „%1“" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Активности" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Учитавам..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Менаџер активности није у погону." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Повежи са текућом активношћу" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Развежи од текуће активности" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Повежи са:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Развежи од:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Активност" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Текућа активност" - -# >> @title:window -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Брисање активности" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Желите ли заиста да обришете „%1“?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Грешка при учитавању КуМЛ фајлова. Проверите инсталацију.\n" -"Недостаје %1." - -# >> @title:window -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Стварање нове активности" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Поставке активности" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Опште" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Друго" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Направи" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Примени" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Одустани" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Пречица за пребацивање на ову активност:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Подаци о активности" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Име" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Опис" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Тапет" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Измени..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Икона" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Мењање" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Приватност" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "заувијек" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Заборави протекли сат" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Заборави протекла два сата" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Заборави протекли дан" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Заборави све" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " мјесец" -msgstr[1] " мјесеца" -msgstr[2] " мјесеци" -msgstr[3] " мјесец" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr " " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Направи активност..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Мењање активности" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Шетај кроз активности" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Шетај кроз активности (обрнуто)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Формулар" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Памти отворене документе:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "у &свим програмима" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&нигдје" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "само у неким &програмима" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Памти историјат" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Очисти недавни историјат" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Сви програме ван ове листе на црну листу" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Запамти текућу виртуелну површ за сваку активност (захтева поновно покретање)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Пречице" diff -Nru kactivities-kf5-5.18.0/po/sr@ijekavianlatin/kactivities5.po kactivities-kf5-5.44.0/po/sr@ijekavianlatin/kactivities5.po --- kactivities-kf5-5.18.0/po/sr@ijekavianlatin/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/sr@ijekavianlatin/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,280 +0,0 @@ -# Translation of kactivities5.po into Serbian. -# Chusslove Illich , 2012, 2014, 2015, 2016. -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2016-01-01 15:42+0100\n" -"Last-Translator: Chusslove Illich \n" -"Language-Team: Serbian \n" -"Language: sr@ijekavianlatin\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" -"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" -"X-Environment: kde\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Časlav Ilić" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "caslav.ilic@gmx.net" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "aktivnost" - -# >> @item activity name -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Podrazumevana" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Prebaci na aktivnost „%1“" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktivnosti" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Učitavam..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Menadžer aktivnosti nije u pogonu." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Poveži sa tekućom aktivnošću" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Razveži od tekuće aktivnosti" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Poveži sa:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Razveži od:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktivnost" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Tekuća aktivnost" - -# >> @title:window -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Brisanje aktivnosti" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Želite li zaista da obrišete „%1“?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Greška pri učitavanju QML fajlova. Proverite instalaciju.\n" -"Nedostaje %1." - -# >> @title:window -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Stvaranje nove aktivnosti" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Postavke aktivnosti" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Opšte" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Drugo" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Napravi" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Primeni" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Odustani" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Prečica za prebacivanje na ovu aktivnost:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Podaci o aktivnosti" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Ime" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Opis" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Tapet" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Izmeni..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ikona" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Menjanje" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privatnost" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "zauvijek" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Zaboravi protekli sat" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Zaboravi protekla dva sata" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Zaboravi protekli dan" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Zaboravi sve" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mjesec" -msgstr[1] " mjeseca" -msgstr[2] " mjeseci" -msgstr[3] " mjesec" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr " " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Napravi aktivnost..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Menjanje aktivnosti" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Šetaj kroz aktivnosti" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Šetaj kroz aktivnosti (obrnuto)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formular" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Pamti otvorene dokumente:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "u &svim programima" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&nigdje" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "samo u nekim &programima" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Pamti istorijat" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Očisti nedavni istorijat" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Svi programe van ove liste na crnu listu" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Zapamti tekuću virtuelnu površ za svaku aktivnost (zahteva ponovno " -"pokretanje)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Prečice" diff -Nru kactivities-kf5-5.18.0/po/sr@latin/kactivities5.po kactivities-kf5-5.44.0/po/sr@latin/kactivities5.po --- kactivities-kf5-5.18.0/po/sr@latin/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/sr@latin/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,280 +0,0 @@ -# Translation of kactivities5.po into Serbian. -# Chusslove Illich , 2012, 2014, 2015, 2016. -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2016-01-01 15:42+0100\n" -"Last-Translator: Chusslove Illich \n" -"Language-Team: Serbian \n" -"Language: sr@latin\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" -"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Accelerator-Marker: &\n" -"X-Text-Markup: kde4\n" -"X-Environment: kde\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Časlav Ilić" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "caslav.ilic@gmx.net" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "aktivnost" - -# >> @item activity name -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Podrazumevana" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Prebaci na aktivnost „%1“" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktivnosti" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Učitavam..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Menadžer aktivnosti nije u pogonu." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Poveži sa tekućom aktivnošću" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Razveži od tekuće aktivnosti" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Poveži sa:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Razveži od:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktivnost" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Tekuća aktivnost" - -# >> @title:window -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Brisanje aktivnosti" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Želite li zaista da obrišete „%1“?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Greška pri učitavanju QML fajlova. Proverite instalaciju.\n" -"Nedostaje %1." - -# >> @title:window -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Stvaranje nove aktivnosti" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Postavke aktivnosti" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Opšte" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Drugo" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Napravi" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Primeni" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Odustani" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Prečica za prebacivanje na ovu aktivnost:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Podaci o aktivnosti" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Ime" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Opis" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Tapet" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Izmeni..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ikona" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Menjanje" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Privatnost" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "zauvek" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Zaboravi protekli sat" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Zaboravi protekla dva sata" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Zaboravi protekli dan" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Zaboravi sve" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " mesec" -msgstr[1] " meseca" -msgstr[2] " meseci" -msgstr[3] " mesec" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr " " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Napravi aktivnost..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Menjanje aktivnosti" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Šetaj kroz aktivnosti" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Šetaj kroz aktivnosti (obrnuto)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formular" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Pamti otvorene dokumente:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "u &svim programima" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&nigde" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "samo u nekim &programima" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Pamti istorijat" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Očisti nedavni istorijat" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Svi programe van ove liste na crnu listu" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Zapamti tekuću virtuelnu površ za svaku aktivnost (zahteva ponovno " -"pokretanje)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Prečice" diff -Nru kactivities-kf5-5.18.0/po/sv/kactivities5.po kactivities-kf5-5.44.0/po/sv/kactivities5.po --- kactivities-kf5-5.18.0/po/sv/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/sv/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,273 +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 , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-28 19:52+0100\n" -"Last-Translator: Stefan Asserhäll \n" -"Language-Team: Swedish \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" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Stefan Asserhäll" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "stefan.asserhall@bredband.net" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Aktivitet" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Förval" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Byt till aktivitet \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Aktiviteter" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Läser in..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Aktivitetshanteraren kör inte" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Länka till aktuell aktivitet" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Ta bort länk för aktuell aktivitet" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Länka till:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Ta bort länk:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Aktivitet" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Nuvarande aktivitet" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Ta bort aktivitet" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Är du säker på att du vill ta bort '%1'?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Fel vid inläsning av QML-filerna. Kontrollera installationen.\n" -"Saknar %1." - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Skapa en ny aktivitet" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Aktivitetsinställningar" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Allmänt" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Annat" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Skapa" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Verkställ" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Avbryt" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Genväg för att byta till den här aktiviteten:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Aktivitetsinformation" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Namn" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Beskrivning" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Skrivbordsunderlägg" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Ändra..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Ikon" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Byte" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Integritet" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "för alltid" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Glöm senaste timmen" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Glöm senaste två timmarna" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Glöm en dag" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Glöm allt" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " månad" -msgstr[1] " månader" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "i " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Skapa aktivitet..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Aktivitetsbyte" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Gå igenom aktiviteter" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Gå igenom aktiviteter (omvänd ordning)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Formulär" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Kom ihåg öppnade dokument:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "För a&lla program" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Kom inte ihåg" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Bara för specifika program" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Behåll historik" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Rensa senaste historik" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Svartlista alla program som inte finns i listan" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Kom ihåg aktuellt virtuellt skrivbord för varje aktivitet (kräver omstart)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Genvägar" diff -Nru kactivities-kf5-5.18.0/po/tg/kactivities5.po kactivities-kf5-5.44.0/po/tg/kactivities5.po --- kactivities-kf5-5.18.0/po/tg/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/tg/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,272 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# FVictor Ibragimov , 2013 -# -msgid "" -msgstr "" -"Project-Id-Version: Tajik KDE Localization\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2013-07-26 14:48-0000\n" -"Last-Translator: Victor Ibragimov \n" -"Language-Team: Tajik \n" -"Language: Tajik\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.7\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Poedit-SourceCharset: UTF-8\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Гузариш ба фаъолияти \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/th/kactivities5.po kactivities-kf5-5.44.0/po/th/kactivities5.po --- kactivities-kf5-5.18.0/po/th/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/th/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,271 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Phuwanat Sakornsakolpat , 2010. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2010-11-27 11:28+0700\n" -"Last-Translator: Phuwanat Sakornsakolpat \n" -"Language-Team: Thai \n" -"Language: th\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.0\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "ภูวณัฏฐ์ สาครสกลพัฒน์" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "narachai@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "KDE Activity Manager" -msgid "The Activity Manager is not running" -msgstr "ตัวจัดการกิจกรรมของ KDE" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/tr/kactivities5.po kactivities-kf5-5.44.0/po/tr/kactivities5.po --- kactivities-kf5-5.18.0/po/tr/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/tr/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,282 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Volkan Gezer , 2013, 2014. -# Kaan Ozdincer , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-09-08 14:31+0000\n" -"Last-Translator: Necdet \n" -"Language-Team: Turkish \n" -"Language: tr\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 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Volkan Gezer" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "volkangezer@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Etkinlik" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Öntanımlı" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "\"%1\" etkinliğine geç" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Etkinlikler" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Yükleniyor..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Etkinlik Yöneticisi çalışmıyor." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "Geçerli etkinliğe bağla" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Geçerli etkinlikten bağlantısını kes" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "Şuraya bağla:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Şuradan bağlantısını kes:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Etkinlik" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Geçerli etkinlik" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Create activity..." -msgid "Delete activity" -msgstr "Etkinlik oluştur..." - -#: workspace/settings/imports/activitysettings.cpp:56 -#, fuzzy, kde-format -#| msgid "Are you sure you want to delete this activity?" -msgid "Are you sure you want to delete '%1'?" -msgstr "Bu etkinliği silmek istediğinizden emin misiniz?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Create activity..." -msgid "Create a new activity" -msgstr "Etkinlik oluştur..." - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity switching" -msgid "Activity settings" -msgstr "Etkinlik geçişi" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Genel" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Oluştur" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Uygula" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "İptal" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Bu etkinliğe geçiş için kısayol:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity switching" -msgid "Activity information" -msgstr "Etkinlik geçişi" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Geçiş" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Gizlilik" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "sonsuza kadar" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Son saati unut" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Son iki saati unut" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Bir günü unut" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Her şeyi unut" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " ay" -msgstr[1] " ay" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "şu süre için " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Etkinlik oluştur..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Etkinlik geçişi" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Etkinlikler arasında gezin" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Etkinlikler arasında gezin (Tersten)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Açılan belgeleri hatırla:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Tüm uygu&lamalar için" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Hatırlama" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "S&adece özel uygulamalar için" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Geçmişi tut" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Yakın geçmişi temizle" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Listede olmayan tüm uygulamaları kara listeye al" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Her etkinlik için mevcut sanal masaüstünü hatırla (yeniden başlatmayı " -"gerektirir)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Kısayollar" diff -Nru kactivities-kf5-5.18.0/po/ug/kactivities5.po kactivities-kf5-5.44.0/po/ug/kactivities5.po --- kactivities-kf5-5.18.0/po/ug/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/ug/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,298 +0,0 @@ -# Uyghur translation for kactivitymanagerd_fileitem_linking_plugin. -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# Gheyret Kenji , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: kactivitymanagerd_fileitem_linking_plugin\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2013-09-08 07:05+0900\n" -"Last-Translator: Gheyret Kenji \n" -"Language-Team: \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.5.5\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "ئابدۇقادىر ئابلىز, غەيرەت كەنجى" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "sahran.ug@gmail.com, gheyret@gmail.com" - -#: imports/activitymodel.cpp:589 -#, fuzzy -#| msgid "Activities..." -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "پائالىيەتلەر…" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "\"%1\" پائالىيەتكە ئالماشتۇر" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -#, fuzzy -#| msgid "Activities..." -msgid "Activities" -msgstr "پائالىيەتلەر…" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "Activity manager is not running properly." -msgid "The Activity Manager is not running" -msgstr "پائالىيەت باشقۇرغۇچ نورمال ئىجرا بولمىغان." - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "نۆۋەتتىكى پائالىيەتكە ئۇلا" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "نۆۋەتتىكى پائالىيەتتىن ئۇلانمىنى ئۈز" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "ئۇلايدىغىنى:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "ئۇلانمىنى ئۈزىدىغىنى:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -#, fuzzy -#| msgid "Activities..." -msgid "Activity" -msgstr "پائالىيەتلەر…" - -#: workspace/kio/KioActivities.cpp:228 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Current activity" -msgstr "نۆۋەتتىكى پائالىيەتكە ئۇلا" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Delete activity" -msgstr "نۆۋەتتىكى پائالىيەتكە ئۇلا" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create a new activity" -msgstr "نۆۋەتتىكى پائالىيەتكە ئۇلا" - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activities..." -msgid "Activity settings" -msgstr "پائالىيەتلەر…" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activities..." -msgid "Activity information" -msgstr "پائالىيەتلەر…" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "شەخسىيەت" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "مەڭگۈ" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "ئاخىرقى سائەتتە ئۇنتۇ" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "ئاخىرقى ئىككى سائەتتە ئۇنتۇ" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "بىر كۈندە ئۇنتۇ" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "ھەممىنى ئۇنتۇ" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " ئاي" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "ئۈچۈن " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -#, fuzzy -#| msgid "Link to the current activity" -msgid "Create activity..." -msgstr "نۆۋەتتىكى پائالىيەتكە ئۇلا" - -#: workspace/settings/SwitchingTab.cpp:64 -#, fuzzy -#| msgid "Activities..." -msgid "Activity switching" -msgstr "پائالىيەتلەر…" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "ئېچىلغان پۈتۈكلەرنى ئەستە تۇت:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -#, fuzzy -#| msgid "For all applications" -msgid "For a&ll applications" -msgstr "ھەممە ئەپلەر ئۈچۈن" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -#, fuzzy -#| msgid "Do not remember" -msgid "&Do not remember" -msgstr "ئەستە تۇتما" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -#, fuzzy -#| msgid "Only for specific applications" -msgid "O&nly for specific applications" -msgstr "ئالاھىدە ئەپلەر ئۈچۈنلا" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "ئىزلارنى ساقلاپ قال" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "يېقىنقى ئىزنى تازىلا" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "قارا تىزىمى بۇ تىزىملىكتە بولمىغان ھەممە ئەپلەر" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/uk/kactivities5.po kactivities-kf5-5.44.0/po/uk/kactivities5.po --- kactivities-kf5-5.18.0/po/uk/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/uk/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,280 +0,0 @@ -# Translation of kactivities5.po to Ukrainian -# Copyright (C) 2014-2015 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. -# -# Yuri Chornoivan , 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-12-27 13:47+0200\n" -"Last-Translator: Yuri Chornoivan \n" -"Language-Team: Ukrainian \n" -"Language: uk\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" -"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Lokalize 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Юрій Чорноіван" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "yurchor@ukr.net" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "Дія" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "Типовий" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Перемкнутися на простір дій «%1»" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "Простори дій" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "Завантаження…" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "Засіб керування просторами дій не запущено" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "З’єднати з поточним простором дій" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "Від’єднати від поточного простору дій" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "З’єднати з:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "Від’єднати від:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "Простір дій" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "Поточний простір дій" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "Вилучити простір дій" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "Ви справді бажаєте вилучити «%1»?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" -"Помилка під час спроби завантажити файли QML. Перевірте, чи усі файли " -"встановлено належним чином.\n" -"Не вистачає %1" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "Створити простір дій" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "Параметри простору дій" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "Загальне" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "Інше" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "Створити" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "Застосувати" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "Скасувати" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "Скорочення для перемикання на цей просторі дій:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "Дані щодо простору дій" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "Назва" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "Опис" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "Зображення тла" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "Змінити…" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "Піктограма" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "Перемикання" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "Конфіденційність" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "назавжди" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "Забути останню годину" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "Забути останні дві години" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "Забути день" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "Забути все" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " місяця" -msgstr[1] " місяців" -msgstr[2] " місяців" -msgstr[3] " місяця" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "протягом " - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "Створити простір дій…" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "Перемикання просторів дій" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "Перехід списком просторів дій" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "Перехід списком просторів дій (зворотний)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "Форма" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "Запам’ятовувати відкриті документи:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "Для &всіх програм" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "&Не запам’ятовувати" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "&Лише для певних програм" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "Зберігати журнал" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "Спорожнити журнал останніх подій" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "Не запам’ятовувати дані для всіх програм поза цим списком" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" -"Запам’ятовувати поточну віртуальну стільницю для кожного простору дій " -"(потребує перезапуску)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "Скорочення" diff -Nru kactivities-kf5-5.18.0/po/wa/kactivities5.po kactivities-kf5-5.44.0/po/wa/kactivities5.po --- kactivities-kf5-5.18.0/po/wa/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/wa/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,272 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Jean Cayron , 2010. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2010-12-17 16:59+0100\n" -"Last-Translator: Jean Cayron \n" -"Language-Team: Walloon \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.0\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Djan Cayron" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "jean.cayron@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -#, fuzzy -#| msgid "KDE Activity Manager" -msgid "The Activity Manager is not running" -msgstr "Manaedjeu di l' activité da KDE" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] "" -msgstr[1] "" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "" diff -Nru kactivities-kf5-5.18.0/po/zh_CN/kactivities5.po kactivities-kf5-5.44.0/po/zh_CN/kactivities5.po --- kactivities-kf5-5.18.0/po/zh_CN/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/zh_CN/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,271 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Weng Xuetian , 2013, 2014, 2015. -# Feng Chao , 2012, 2014. -# Xuetian Weng , 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-11-04 09:46-0800\n" -"Last-Translator: Weng Xuetian \n" -"Language-Team: Chinese \n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Lokalize 2.0\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "KDE 中国, Feng Chao" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "kde-china@kde.org, chaofeng111@gmail.com" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "活动" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "默认" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "切换到活动 \"%1\"" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "活动" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "正在载入..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "活动管理器未运行。" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "连接到当前活动" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "取消到当前活动的连接" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "连接到:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "取消连接:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "活动" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "当前活动" - -#: workspace/settings/imports/activitysettings.cpp:55 -msgid "Delete activity" -msgstr "删除活动" - -#: workspace/settings/imports/activitysettings.cpp:56 -#, kde-format -msgid "Are you sure you want to delete '%1'?" -msgstr "您真的要删除“%1”吗?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -msgid "Create a new activity" -msgstr "创建新活动..." - -#: workspace/settings/imports/dialog.cpp:142 -msgid "Activity settings" -msgstr "活动设置" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "常规" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "其它" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "创建" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "应用" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "取消" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "切换到这个活动的快捷键:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -msgid "Activity information" -msgstr "活动信息" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "名称" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "描述" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "壁纸" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "更改..." - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "图标" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "切换" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "隐私" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "永远" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "忘记最近一小时" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "忘记最近两小时" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "忘记一天" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "忘记所有" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " 月" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "于" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "创建活动..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "切换活动" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "遍历活动" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "遍历活动 (反向)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "表单" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "记住打开文档的列表:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "对全部应用程序(&L)" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "不记录(&D)" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "只对特定程序(&N)" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "保持历史" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "清除近期历史" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "将所有不在列表上的程序加入黑名单" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "每个活动记住当前虚拟桌面 (需要重启)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "快捷键" diff -Nru kactivities-kf5-5.18.0/po/zh_TW/kactivities5.po kactivities-kf5-5.44.0/po/zh_TW/kactivities5.po --- kactivities-kf5-5.18.0/po/zh_TW/kactivities5.po 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/po/zh_TW/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,278 +0,0 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Franklin Weng , 2012, 2013, 2014, 2015. -msgid "" -msgstr "" -"Project-Id-Version: \n" -"Report-Msgid-Bugs-To: http://bugs.kde.org\n" -"POT-Creation-Date: 2015-12-27 07:07+0000\n" -"PO-Revision-Date: 2015-09-02 15:34+0800\n" -"Last-Translator: Franklin\n" -"Language-Team: Chinese Traditional \n" -"Language: zh_TW\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Lokalize 1.5\n" - -msgctxt "NAME OF TRANSLATORS" -msgid "Your names" -msgstr "Franklin Weng" - -msgctxt "EMAIL OF TRANSLATORS" -msgid "Your emails" -msgstr "franklin@goodhorse.idv.tw" - -#: imports/activitymodel.cpp:589 -msgctxt "Header title for activity data model" -msgid "Activity" -msgstr "活動" - -#: service/Activities.cpp:107 -msgid "Default" -msgstr "預設" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "切換到活動 %1" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:99 -#: workspace/kio/KioActivities.cpp:306 -#: workspace/settings/ExtraActivitiesInterface.cpp:45 -#: workspace/settings/MainConfigurationWidget.cpp:45 -msgid "Activities" -msgstr "活動" - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:102 -msgid "Loading..." -msgstr "載入中..." - -#: workspace/fileitemplugin/FileItemLinkingPlugin.cpp:122 -msgid "The Activity Manager is not running" -msgstr "活動管理員並未執行。" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:59 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:126 -msgid "Link to the current activity" -msgstr "連結到目前的活動" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:62 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:131 -msgid "Unlink from the current activity" -msgstr "取消與目前的活動的連結" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:65 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:135 -msgid "Link to:" -msgstr "連結到:" - -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:70 -#: workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp:143 -msgid "Unlink from:" -msgstr "取消連結:" - -#: workspace/kio/KioActivities.cpp:107 workspace/kio/KioActivities.cpp:229 -msgid "Activity" -msgstr "活動" - -#: workspace/kio/KioActivities.cpp:228 -msgid "Current activity" -msgstr "目前活動" - -#: workspace/settings/imports/activitysettings.cpp:55 -#, fuzzy -#| msgid "Create activity..." -msgid "Delete activity" -msgstr "建立活動..." - -#: workspace/settings/imports/activitysettings.cpp:56 -#, fuzzy, kde-format -#| msgid "Are you sure you want to delete this activity?" -msgid "Are you sure you want to delete '%1'?" -msgstr "您確定要刪除此活動嗎?" - -#: workspace/settings/imports/dialog.cpp:96 -#, kde-format -msgid "" -"Error loading the QML files. Check your installation.\n" -"Missing %1" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:134 -#, fuzzy -#| msgid "Create activity..." -msgid "Create a new activity" -msgstr "建立活動..." - -#: workspace/settings/imports/dialog.cpp:142 -#, fuzzy -#| msgid "Activity switching" -msgid "Activity settings" -msgstr "活動切換" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox_2) -#: workspace/settings/imports/dialog.cpp:188 -#: workspace/settings/ui/SwitchingTabBase.ui:20 -msgid "General" -msgstr "一般" - -#: workspace/settings/imports/dialog.cpp:189 -msgid "Other" -msgstr "" - -#: workspace/settings/imports/dialog.cpp:197 -msgid "Create" -msgstr "建立" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:44 -msgid "Apply" -msgstr "套用" - -#: workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml:53 -msgid "Cancel" -msgstr "取消" - -#: workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml:36 -msgid "Shortcut for switching to this activity:" -msgstr "切換到此活動的快捷鍵:" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:58 -#, fuzzy -#| msgid "Activity switching" -msgid "Activity information" -msgstr "活動切換" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:66 -msgid "Name" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:73 -msgid "Description" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:99 -msgid "Wallpaper" -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:105 -msgid "Change..." -msgstr "" - -#: workspace/settings/imports/qml/activityDialog/GeneralTab.qml:138 -msgid "Icon" -msgstr "" - -#: workspace/settings/MainConfigurationWidget.cpp:46 -msgid "Switching" -msgstr "切換" - -#: workspace/settings/MainConfigurationWidget.cpp:47 -msgid "Privacy" -msgstr "隱私" - -#: workspace/settings/PrivacyTab.cpp:74 -msgctxt "unlimited number of months" -msgid "forever" -msgstr "永久" - -#: workspace/settings/PrivacyTab.cpp:84 -msgid "Forget the last hour" -msgstr "丟掉最後一小時" - -#: workspace/settings/PrivacyTab.cpp:86 -msgid "Forget the last two hours" -msgstr "丟掉最後兩小時" - -#: workspace/settings/PrivacyTab.cpp:88 -msgid "Forget a day" -msgstr "丟掉一天內" - -#: workspace/settings/PrivacyTab.cpp:90 -msgid "Forget everything" -msgstr "全部丟掉" - -#: workspace/settings/PrivacyTab.cpp:218 -msgctxt "unit of time. months to keep the history" -msgid " month" -msgid_plural " months" -msgstr[0] " 個月" - -#: workspace/settings/PrivacyTab.cpp:222 -msgctxt "for in 'keep history for 5 months'" -msgid "for " -msgstr "多久:" - -#: workspace/settings/qml/activitiesTab/ActivitiesView.qml:37 -msgid "Create activity..." -msgstr "建立活動..." - -#: workspace/settings/SwitchingTab.cpp:64 -msgid "Activity switching" -msgstr "活動切換" - -#: workspace/settings/SwitchingTab.cpp:68 -msgctxt "@action" -msgid "Walk through activities" -msgstr "瀏覽活動" - -#: workspace/settings/SwitchingTab.cpp:71 -msgctxt "@action" -msgid "Walk through activities (Reverse)" -msgstr "瀏覽活動(反向)" - -#. i18n: ectx: property (windowTitle), widget (QWidget, PrivacyTabBase) -#. i18n: ectx: property (windowTitle), widget (QWidget, SwitchingTabBase) -#: workspace/settings/ui/PrivacyTabBase.ui:14 -#: workspace/settings/ui/SwitchingTabBase.ui:14 -msgid "Form" -msgstr "" - -#. i18n: ectx: property (text), widget (QLabel, labelRememberDocuments) -#: workspace/settings/ui/PrivacyTabBase.ui:20 -msgid "Remember opened documents:" -msgstr "記住開啟的文件:" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberAllApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:31 -msgid "For a&ll applications" -msgstr "所有的應用程式(&L)" - -#. i18n: ectx: property (text), widget (QRadioButton, radioDontRememberApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:41 -msgid "&Do not remember" -msgstr "不要記住(&D)" - -#. i18n: ectx: property (text), widget (QRadioButton, radioRememberSpecificApplications) -#: workspace/settings/ui/PrivacyTabBase.ui:48 -msgid "O&nly for specific applications" -msgstr "只對特定的應用程式(&N)" - -#. i18n: ectx: property (text), widget (QLabel, labelKeepHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:70 -msgid "Keep history" -msgstr "保存歷史紀錄" - -#. i18n: ectx: property (text), widget (QPushButton, buttonClearRecentHistory) -#: workspace/settings/ui/PrivacyTabBase.ui:96 -msgid "Clear recent history" -msgstr "清除最近的歷史紀錄" - -#. i18n: ectx: property (text), widget (QCheckBox, checkBlacklistAllNotOnList) -#: workspace/settings/ui/PrivacyTabBase.ui:115 -msgid "Blacklist all applications not on this list" -msgstr "擋掉所有不在此清單上的應用程式" - -#. i18n: ectx: property (text), widget (QCheckBox, checkRememberVirtualDesktop) -#: workspace/settings/ui/SwitchingTabBase.ui:26 -msgid "Remember the current virtual desktop for each activity (needs restart)" -msgstr "記住每個活動目前的虛擬桌面 (需要重新啟動)" - -#. i18n: ectx: property (title), widget (QGroupBox, groupBox) -#: workspace/settings/ui/SwitchingTabBase.ui:36 -msgid "Shortcuts" -msgstr "捷徑" diff -Nru kactivities-kf5-5.18.0/.reviewboardrc kactivities-kf5-5.44.0/.reviewboardrc --- kactivities-kf5-5.18.0/.reviewboardrc 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/.reviewboardrc 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -REVIEWBOARD_URL = "https://git.reviewboard.kde.org" -REPOSITORY = 'git://anongit.kde.org/kactivities' diff -Nru kactivities-kf5-5.18.0/src/cli/CMakeLists.txt kactivities-kf5-5.44.0/src/cli/CMakeLists.txt --- kactivities-kf5-5.18.0/src/cli/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/cli/CMakeLists.txt 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,36 @@ +# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: +project (KActivitiesCLI) + +find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Core Gui Widgets) +find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Core Gui Widgets) +find_package (KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS WindowSystem) + +include_directories ( + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/ + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/autotests/ + ) + +set ( + KActivitiesCLI_SRCS + main.cpp + ) + +qt5_wrap_ui( + KActivitiesCLI_SRCS + ) + +add_executable ( + kactivities-cli + ${KActivitiesCLI_SRCS} + ) + +target_link_libraries ( + kactivities-cli + Qt5::Core + KF5::Activities + ) + +install (TARGETS + kactivities-cli + ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} + ) diff -Nru kactivities-kf5-5.18.0/src/cli/main.cpp kactivities-kf5-5.44.0/src/cli/main.cpp --- kactivities-kf5-5.18.0/src/cli/main.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/cli/main.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,297 @@ +/* + * Copyright (C) 2016 Ivan Cukic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * or (at your option) any later version, as published by the Free + * Software Foundation + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include +#include +#include + +#include + +#include "utils.h" + + +// Output modifiers + +DEFINE_COMMAND(bare, 0) +{ + flags.bare = true; + return 0; +} + +DEFINE_COMMAND(noBare, 0) +{ + flags.bare = false; + return 0; +} + +DEFINE_COMMAND(color, 0) +{ + flags.color = true; + return 0; +} + +DEFINE_COMMAND(noColor, 0) +{ + flags.color = false; + return 0; +} + +// Activity management + +DEFINE_COMMAND(createActivity, 1) +{ + auto result = awaitFuture(controller->addActivity(args(1))); + + qDebug().noquote() << result; + + return 1; +} + +DEFINE_COMMAND(removeActivity, 1) +{ + awaitFuture(controller->removeActivity(args(1))); + + return 1; +} + +DEFINE_COMMAND(startActivity, 1) +{ + awaitFuture(controller->startActivity(args(1))); + + return 1; +} + +DEFINE_COMMAND(stopActivity, 1) +{ + awaitFuture(controller->stopActivity(args(1))); + + return 1; +} + +DEFINE_COMMAND(listActivities, 0) +{ + for (const auto& activity: controller->activities()) { + printActivity(activity); + } + + return 0; +} + +DEFINE_COMMAND(currentActivity, 0) +{ + printActivity(controller->currentActivity()); + + return 0; +} + +DEFINE_COMMAND(setActivityProperty, 3) +{ + const auto what = args(1); + const auto id = args(2); + const auto value = args(3); + + awaitFuture( + what == "name" ? controller->setActivityName(id, value) : + what == "description" ? controller->setActivityDescription(id, value) : + what == "icon" ? controller->setActivityIcon(id, value) : + QFuture() + ); + + return 3; +} + +DEFINE_COMMAND(activityProperty, 2) +{ + const auto what = args(1); + const auto id = args(2); + + KActivities::Info info(id); + + out << ( + what == "name" ? info.name() : + what == "description" ? info.description() : + what == "icon" ? info.icon() : + QString() + ) << "\n"; + + return 2; +} + +// Activity switching + +DEFINE_COMMAND(setCurrentActivity, 1) +{ + switchToActivity(args(1)); + + return 1; +} + +DEFINE_COMMAND(nextActivity, 0) +{ + const auto activities = controller->activities(); + const auto currentActivity = controller->currentActivity(); + bool found = false; + + for (int i = 0; i < activities.count() - 1; ++i) { + if (activities[i] == currentActivity) { + found = true; + switchToActivity(activities[i + 1]); + break; + } + } + + if (!found) { + switchToActivity(activities[0]); + } + + return 0; +} + +DEFINE_COMMAND(previousActivity, 0) +{ + const auto activities = controller->activities(); + const auto currentActivity = controller->currentActivity(); + bool found = false; + + for (int i = 1; i < activities.count(); ++i) { + if (activities[i] == currentActivity) { + found = true; + switchToActivity(activities[i - 1]); + break; + } + } + + if (!found) { + found = true; + switchToActivity(activities.last()); + } + + return 0; +} + +void printHelp() +{ + if (!flags.bare) { + qDebug() + << "\nModifiers (applied only to trailing commands):" + << "\n --bare, --no-bare - show minimal info vs show everything" + << "\n --color, --no-color - make the output pretty" + + << "\n\nCommands:" + << "\n --list-activities - lists all activities" + << "\n --create-activity Name - creates a new activity with the specified name" + << "\n --remove-activity ID - removes the activity with the specified id" + << "\n --start-activity ID - starts the specified activity" + << "\n --stop-activity ID - stops the specified activity" + + << "\n --current-activity - show the current activity" + << "\n --set-current-activity - sets the current activity" + << "\n --next-activity - switches to the next activity (in list-activities order)" + << "\n --previous-activity - switches to the previous activity (in list-activities order)" + + << "\n --activity-property What ID" + << "\n - gets activity name, icon or description" + << "\n --set-activity-property What ID Value" + << "\n - changes activity name, icon or description" + ; + + } else { + qDebug() + << "\n--bare" + << "\n--no-bare" + << "\n--color" + << "\n--no-color" + << "\n--list-activities" + << "\n--create-activitya NAME" + << "\n--remove-activity ID" + + << "\n--current-activity" + << "\n--set-current-activity" + << "\n--next-activity" + << "\n--previous-activity" + ; + + } + +} + +int main(int argc, char *argv[]) +{ + QCoreApplication app(argc, argv); + + QTimer::singleShot(0, &app, [] { + + const auto args = QCoreApplication::arguments(); + + controller = new KActivities::Controller(); + + while (controller->serviceStatus() != KActivities::Controller::Running) { + QCoreApplication::processEvents(); + } + + #define MATCH_COMMAND(Command) \ + else if (args[argId] == QStringLiteral("--") + toDashes(#Command)) \ + { \ + argId += 1 + Command##_command({ args, argId })(); \ + } + + if (args.count() <= 1) { + printHelp(); + + } else for (int argId = 1; argId < args.count(); ) { + if (args[argId] == "--help") { + printHelp(); + argId++; + } + + MATCH_COMMAND(bare) + MATCH_COMMAND(noBare) + MATCH_COMMAND(color) + MATCH_COMMAND(noColor) + + MATCH_COMMAND(listActivities) + + MATCH_COMMAND(currentActivity) + MATCH_COMMAND(setCurrentActivity) + MATCH_COMMAND(activityProperty) + MATCH_COMMAND(setActivityProperty) + MATCH_COMMAND(nextActivity) + MATCH_COMMAND(previousActivity) + + MATCH_COMMAND(createActivity) + MATCH_COMMAND(removeActivity) + MATCH_COMMAND(startActivity) + MATCH_COMMAND(stopActivity) + + else { + qDebug() << "Skipping unknown argument" << args[argId]; + argId++; + } + + } + + delete controller; + + QCoreApplication::quit(); + + }); + + return app.exec(); +} + diff -Nru kactivities-kf5-5.18.0/src/cli/utils.h kactivities-kf5-5.44.0/src/cli/utils.h --- kactivities-kf5-5.18.0/src/cli/utils.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/cli/utils.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,168 @@ +/* + * Copyright (C) 2016 Ivan Čukić + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +QTextStream out(stdout); + +class StringListView { +public: + StringListView(const QStringList &list, int start, int end = -1) + : m_list(list) + , m_start(start) + , m_size((end == -1 ? list.count() : end) - start) + { + + } + + const QString &operator() (int index) const + { + return m_list[m_start + index]; + } + + int count() const + { + return m_size; + } + +private: + const QStringList &m_list; + int m_start; + int m_size; + +}; + +KActivities::Controller *controller = nullptr; + +class Flags { +public: + Flags() + : bare(false) + , color(true) + { + } + + bool bare; + bool color; + +} flags; + +QString toDashes(const QString &command) +{ + QString result(command); + + for (int i = 0; i < result.size() - 1; ++i) { + if (result[i].isLower() && + result[i+1].isUpper()) { + result[i+1] = result[i+1].toLower(); + result.insert(i+1, "-"); + } + } + + return result; +} + +void printActivity(const QString &id) +{ + if (flags.bare) { + out << id << "\n"; + + } else { + using namespace KActivities; + Info info(id); + + out + << ( + info.id() == controller->currentActivity() ? "[CURRENT] " : + info.state() == Info::Running ? "[RUNNING] " : + info.state() == Info::Stopped ? "[STOPPED] " : + info.state() == Info::Starting ? "[STARTING]" : + info.state() == Info::Stopping ? "[STOPPING]" : + "unknown " + ) + << info.id() + << " " + << info.name() + << " (" + << info.icon() + << ")\n" + ; + + if (info.id() == controller->currentActivity() + && info.state() != Info::Running) { + qWarning() + << "Activity is the current one, but its state is" + << ( + info.state() == Info::Running ? "running" : + info.state() == Info::Stopped ? "stopped" : + info.state() == Info::Starting ? "starting" : + info.state() == Info::Stopping ? "stopping" : + "unknown " + ); + } + } +} + +template +T awaitFuture(const QFuture &future) +{ + while (!future.isFinished()) { + QCoreApplication::processEvents(); + } + + return future.result(); +} + +void awaitFuture(const QFuture &future) +{ + while (!future.isFinished()) { + QCoreApplication::processEvents(); + } +} + +void switchToActivity(const QString &id) +{ + auto result = awaitFuture(controller->setCurrentActivity(id)); + + if (!flags.bare) { + if (result) { + qDebug() << "Current activity is" << id; + } else { + qDebug() << "Failed to change the activity"; + } + } +} + + +#define DEFINE_COMMAND(Command, MinArgCount) \ + struct Command##_command { \ + const StringListView &args; \ + Command##_command(const StringListView &args) \ + : args(args) \ + { \ + if (args.count() < MinArgCount + 1) { \ + qFatal("not enough arguments for " #Command); \ + } \ + } \ + \ + int operator()(); \ + }; \ + \ + int Command##_command::operator()() + diff -Nru kactivities-kf5-5.18.0/src/CMakeLists.txt kactivities-kf5-5.44.0/src/CMakeLists.txt --- kactivities-kf5-5.18.0/src/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/CMakeLists.txt 2018-03-03 09:51:42.000000000 +0000 @@ -22,85 +22,19 @@ add_definitions (-fexceptions) endif () -# Testing for C++0x/C++11 features -include (CheckCxxFeatures) -cxx_check_feature ("c++11" "auto" "N2546" HAVE_CXX11_AUTO "${ADDITIONAL_DEFINITIONS}") -cxx_check_feature ("c++11" "nullptr" "N2431" HAVE_CXX11_NULLPTR "${ADDITIONAL_DEFINITIONS}") -cxx_check_feature ("c++11" "lambda" "N2927" HAVE_CXX11_LAMBDA "${ADDITIONAL_DEFINITIONS}") -cxx_check_feature ("c++11" "override" "N3206" HAVE_CXX11_OVERRIDE "${ADDITIONAL_DEFINITIONS}") -cxx_check_feature ("c++11" "unique_ptr" "none" HAVE_CXX11_UNIQUE_PTR "${ADDITIONAL_DEFINITIONS}") -cxx_check_feature ("c++11" "variadic-templates" "N2242" HAVE_CXX11_VARIADIC_TEMPLATES "${ADDITIONAL_DEFINITIONS}") -cxx_check_feature ("c++11" "initializer-lists" "N2672" HAVE_CXX11_INITIALIZER_LISTS "${ADDITIONAL_DEFINITIONS}") - -# We can now actually require some C++11 features even for the library -if (NOT HAVE_CXX11_AUTO OR NOT HAVE_CXX11_LAMBDA OR NOT HAVE_CXX11_UNIQUE_PTR) - message ( - FATAL_ERROR - "You need a C++ compiler that supports the following C++11 features: auto, lambdas and move semantics." - ) -endif () - # ======================================================= # Starting the actual project definition # The libraries do not depend on any compile-time features add_subdirectory (lib) -# Config file -set (KAMD_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") -set (KAMD_DATA_DIR "${KDE_INSTALL_DATADIR_KF5}/kactivitymanagerd/") -set (KAMD_PLUGIN_VERSION 1) -set (KAMD_PLUGIN_DIR "kactivitymanagerd/${KAMD_PLUGIN_VERSION}") -set (KAMD_FULL_PLUGIN_DIR "${CMAKE_INSTALL_FULL_PLUGINDIR}/${KAMD_PLUGIN_DIR}/") -configure_file (kactivities-features.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kactivities-features.h) - -include_directories ( - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR}/lib/core - ) - -# Is the compiler modern enough to build the ActivityManager service -# and accompanying workspace addons? - -string (COMPARE EQUAL "${CXX_FEATURES_UNSUPPORTED}" "" CXX_COMPILER_IS_MODERN) - if (NOT KACTIVITIES_LIBRARY_ONLY) - - if (NOT Boost_FOUND) - message (WARNING - "WARNING: You need boost libraries (range and containers) in order to build the Activity Manager daemon. We will only build the library, setting the KACTIVITIES_LIBRARY_ONLY option to ON." - ) - set (KACTIVITIES_LIBRARY_ONLY ON) - endif () - - if (NOT HAVE_CXX11_VARIADIC_TEMPLATES OR NOT HAVE_CXX11_INITIALIZER_LISTS) - message (WARNING - "WARNING: You need a more modern compiler in order to build the Activity Manager daemon. We will only build the library, setting the KACTIVITIES_LIBRARY_ONLY option to ON." - ) - set (KACTIVITIES_LIBRARY_ONLY ON) - endif () - - include_directories (${Boost_INCLUDE_DIR}) - - # The compiler is good enough - if (CXX_COMPILER_IS_MODERN) - message (STATUS - "C++11 enabled compiler: Your compiler is state-of-the-art" - ) - else () - message (STATUS - "C++11 enabled compiler:" - "Your compiler doesn't support the following features: ${CXX_FEATURES_UNSUPPORTED} but - the list of the supported ones is sufficient for the build: ${CXX_FEATURES_SUPPORTED}" - ) - endif () - + include_directories ( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${Boost_INCLUDE_DIR} + ) add_subdirectory (imports) - add_subdirectory (service) - - # No point in having workspace addons without the service - add_subdirectory (workspace) - endif () +add_subdirectory (cli) diff -Nru kactivities-kf5-5.18.0/src/common/database/Database.cpp kactivities-kf5-5.44.0/src/common/database/Database.cpp --- kactivities-kf5-5.18.0/src/common/database/Database.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/common/database/Database.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,292 +0,0 @@ -/* - * Copyright 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License or (at your option) version 3 or any later version - * accepted by the membership of KDE e.V. (or its successor approved - * by the membership of KDE e.V.), which shall act as a proxy - * defined in Section 14 of version 3 of the license. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "Database.h" - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -namespace Common { - -namespace { -#ifdef QT_DEBUG - QString lastExecutedQuery; -#endif - - std::mutex databases_mutex; - - struct DatabaseInfo { - Qt::HANDLE thread; - Database::OpenMode openMode; - }; - - bool operator<(const DatabaseInfo &left, const DatabaseInfo &right) - { - return - left.thread < right.thread ? true : - left.thread > right.thread ? false : - left.openMode < right.openMode; - } - - std::map> databases; -}; - -class QSqlDatabaseWrapper { -private: - QSqlDatabase m_database; - bool m_open; - QString m_connectionName; - -public: - QSqlDatabaseWrapper(const DatabaseInfo &info) - : m_open(false) - { - m_connectionName = - "kactivities_db_resources_" - // Adding the thread number to the database name - + QString::number((quintptr)info.thread) - // And whether it is read-only or read-write - + (info.openMode == Database::ReadOnly ? "_readonly" : "_readwrite"); - - m_database = - QSqlDatabase::contains(m_connectionName) - ? QSqlDatabase::database(m_connectionName) - : QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"), m_connectionName); - - if (info.openMode == Database::ReadOnly) { - m_database.setConnectOptions(QStringLiteral("QSQLITE_OPEN_READONLY")); - } - - // We are allowing the database file to be overridden mostly for testing purposes - m_database.setDatabaseName(ResourcesDatabaseSchema::path()); - - m_open = m_database.open(); - - if (!m_open) { - qWarning() << "KActivities: Database is not open: " - << m_database.connectionName() - << m_database.databaseName() - << m_database.lastError(); - - if (info.openMode == Database::ReadWrite) { - qFatal("KActivities: Opening the database in RW mode should always succeed"); - } - } - } - - ~QSqlDatabaseWrapper() - { - qDebug() << "Closing SQL connection: " << m_connectionName; - } - - QSqlDatabase &get() - { - return m_database; - } - - bool isOpen() const - { - return m_open; - } - - QString connectionName() const - { - return m_connectionName; - } -}; - -class Database::Private { -public: - Private() - { - } - - QSqlQuery query(const QString &query) - { - return database ? QSqlQuery(query, database->get()) : QSqlQuery(); - } - - QSqlQuery query() - { - return database ? QSqlQuery(database->get()) : QSqlQuery(); - } - - QScopedPointer database; -}; - -Database::Locker::Locker(Database &database) - : m_database(database.d->database->get()) -{ - m_database.transaction(); -} - -Database::Locker::~Locker() -{ - m_database.commit(); -} - -Database::Ptr Database::instance(Source source, OpenMode openMode) -{ - Q_UNUSED(source) // for the time being - - std::lock_guard lock(databases_mutex); - - // We are saving instances per thread and per read/write mode - DatabaseInfo info; - info.thread = QThread::currentThreadId(); - info.openMode = openMode; - - // Do we have an instance matching the request? - auto search = databases.find(info); - if (search != databases.end()) { - auto ptr = search->second.lock(); - - if (ptr) { - return ptr; - } - } - - // Creating a new database instance - auto ptr = std::make_shared(); - - ptr->d->database.reset(new QSqlDatabaseWrapper(info)); - - if (!ptr->d->database->isOpen()) { - return Q_NULLPTR; - } - - databases[info] = ptr; - - if (info.openMode == ReadOnly) { - // From now on, only SELECT queries will work - ptr->setPragma(QStringLiteral("query_only = 1")); - - // These should not make any difference - ptr->setPragma(QStringLiteral("synchronous = 0")); - - } else { - // Using the write-ahead log and sync = NORMAL for faster writes - ptr->setPragma(QStringLiteral("synchronous = 1")); - } - - // Maybe we should use the write-ahead log - auto walResult = ptr->pragma(QStringLiteral("journal_mode = WAL")); - - if (walResult != "wal") { - qFatal("KActivities: Database can not be opened in WAL mode. Check the " - "SQLite version (required >3.7.0). And whether your filesystem " - "supports shared memory"); - } - - // We don't have a big database, lets flush the WAL when - // it reaches 400k, not 4M as is default - ptr->setPragma(QStringLiteral("wal_autocheckpoint = 100")); - - qDebug() << "KActivities: Database connection: " << ptr->d->database->connectionName() - << "\n query_only: " << ptr->pragma(QStringLiteral("query_only")) - << "\n journal_mode: " << ptr->pragma(QStringLiteral("journal_mode")) - << "\n wal_autocheckpoint: " << ptr->pragma(QStringLiteral("wal_autocheckpoint")) - << "\n synchronous: " << ptr->pragma(QStringLiteral("synchronous")) - ; - - return ptr; -} - -Database::Database() -{ -} - -Database::~Database() -{ -} - -QSqlQuery Database::createQuery() const -{ - return d->query(); -} - -QString Database::lastQuery() const -{ -#ifdef QT_DEBUG - return lastExecutedQuery; -#endif - return QString(); -} - -QSqlQuery Database::execQuery(const QString &query, bool ignoreErrors) const -{ -#ifdef QT_NO_DEBUG - return d->query(query); -#else - auto result = d->query(query); - - lastExecutedQuery = query; - - if (!ignoreErrors && result.lastError().isValid()) { - qWarning() << "SQL: " - << "\n error: " << result.lastError() - << "\n query: " << query; - } - - return result; -#endif -} - -QSqlQuery Database::execQueries(const QStringList &queries) const -{ - QSqlQuery result; - - for (const auto query: queries) { - result = execQuery(query); - } - - return result; -} - -void Database::setPragma(const QString &pragma) -{ - execQuery(QStringLiteral("PRAGMA ") + pragma); -} - -QVariant Database::pragma(const QString &pragma) const -{ - return value("PRAGMA " + pragma); -} - -QVariant Database::value(const QString &query) const -{ - auto result = execQuery(query); - return result.next() ? result.value(0) : QVariant(); -} - -} // namespace Common - diff -Nru kactivities-kf5-5.18.0/src/common/database/Database.h kactivities-kf5-5.44.0/src/common/database/Database.h --- kactivities-kf5-5.18.0/src/common/database/Database.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/common/database/Database.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,149 +0,0 @@ -/* - * Copyright 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License or (at your option) version 3 or any later version - * accepted by the membership of KDE e.V. (or its successor approved - * by the membership of KDE e.V.), which shall act as a proxy - * defined in Section 14 of version 3 of the license. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef COMMON_DATABASE_H -#define COMMON_DATABASE_H - -#include -#include -#include -#include - -namespace Common { - -class Database { -public: - typedef std::shared_ptr Ptr; - - enum Source { - ResourcesDatabase - }; - - enum OpenMode { - ReadWrite, - ReadOnly - }; - - static Ptr instance(Source source, OpenMode openMode); - - QSqlQuery execQueries(const QStringList &queries) const; - QSqlQuery execQuery(const QString &query, bool ignoreErrors = false) const; - QSqlQuery createQuery() const; - - void setPragma(const QString &pragma); - QVariant pragma(const QString &pragma) const; - QVariant value(const QString &query) const; - - // For debugging purposes only - QString lastQuery() const; - - ~Database(); - Database(); - - friend class Locker; - class Locker { - public: - Locker(Database &database); - ~Locker(); - - private: - QSqlDatabase &m_database; - }; - - #define DATABASE_TRANSACTION(A) \ - /* enable this for debugging only: qDebug() << "Location:" << __FILE__ << __LINE__; */ \ - Common::Database::Locker lock(A) - -private: - D_PTR; -}; - -template -QString parseStarPattern(const QString &pattern, const QString &joker, - EscapeFunction escape) -{ - const auto begin = pattern.constBegin(); - const auto end = pattern.constEnd(); - - auto currentStart = pattern.constBegin(); - auto currentPosition = pattern.constBegin(); - - bool isEscaped = false; - - // This should be available in the QString class... - auto stringFromIterators = [&](const QString::const_iterator ¤tStart, - const QString::const_iterator ¤tPosition) { - return pattern.mid( - std::distance(begin, currentStart), - std::distance(currentStart, currentPosition)); - }; - - // Escaping % and _ for sql like - // auto escape = [] (QString str) { - // return str.replace("%", "\\%").replace("_", "\\_"); - // }; - - QString resultPattern; - resultPattern.reserve(pattern.size() * 1.5); - - for (; currentPosition != end; ++currentPosition) { - if (isEscaped) { - // Just skip the current character - isEscaped = false; - - } else if (*currentPosition == '\\') { - // Skip two characters - isEscaped = true; - - } else if (*currentPosition == '*') { - // Replacing the star with the sql like joker - % - resultPattern.append(escape(stringFromIterators( - currentStart, currentPosition)) + joker); - currentStart = currentPosition + 1; - - } else { - // This one is boring, nothing to do - } - } - - if (currentStart != currentPosition) { - resultPattern.append(escape(stringFromIterators( - currentStart, currentPosition))); - } - - return resultPattern; -} - -inline QString starPatternToLike(const QString &pattern) -{ - return parseStarPattern(pattern, QStringLiteral("%"), [] (QString str) { - return str.replace(QLatin1String("%"), QLatin1String("\\%")).replace(QLatin1String("_"), QLatin1String("\\_")); - }); -} - -inline QRegExp starPatternToRegex(const QString &pattern) -{ - return QRegExp(parseStarPattern(pattern, QStringLiteral(".*"), QRegExp::escape)); -} - -} // namespace Common - -#endif // COMMON_DATABASE_H - diff -Nru kactivities-kf5-5.18.0/src/common/database/schema/ResourcesDatabaseSchema.cpp kactivities-kf5-5.44.0/src/common/database/schema/ResourcesDatabaseSchema.cpp --- kactivities-kf5-5.18.0/src/common/database/schema/ResourcesDatabaseSchema.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/common/database/schema/ResourcesDatabaseSchema.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,204 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "ResourcesDatabaseSchema.h" - -#include -#include -#include - -namespace Common { -namespace ResourcesDatabaseSchema { - -const QString name = QStringLiteral("Resources"); - -QString version() -{ - return QStringLiteral("2015.02.09"); -} - -QStringList schema() -{ - // If only we could use initializer lists here ... - - return QStringList() - - << // Schema informations table, used for versioning - QStringLiteral("CREATE TABLE IF NOT EXISTS SchemaInfo (" - "key text PRIMARY KEY, value text" - ")") - - << QStringLiteral("INSERT OR IGNORE INTO schemaInfo VALUES ('version', '%1')").arg(version()) - << QStringLiteral("UPDATE schemaInfo SET value = '%1' WHERE key = 'version'").arg(version()) - - - << // The ResourceEvent table saves the Opened/Closed event pairs for - // a resource. The Accessed event is mapped to those. - // Focussing events are not stored in order not to get a - // huge database file and to lessen writes to the disk. - QStringLiteral("CREATE TABLE IF NOT EXISTS ResourceEvent (" - "usedActivity TEXT, " - "initiatingAgent TEXT, " - "targettedResource TEXT, " - "start INTEGER, " - "end INTEGER " - ")") - - << // The ResourceScoreCache table stores the calcualted scores - // for resources based on the recorded events. - QStringLiteral("CREATE TABLE IF NOT EXISTS ResourceScoreCache (" - "usedActivity TEXT, " - "initiatingAgent TEXT, " - "targettedResource TEXT, " - "scoreType INTEGER, " - "cachedScore FLOAT, " - "firstUpdate INTEGER, " - "lastUpdate INTEGER, " - "PRIMARY KEY(usedActivity, initiatingAgent, targettedResource)" - ")") - - - << // @since 2014.05.05 - // The ResourceLink table stores the information, formerly kept by - // Nepomuk, of which resources are linked to which activities. - // The additional features compared to the old days are - // the ability to limit the link to specific applications, and - // to create global links. - QStringLiteral("CREATE TABLE IF NOT EXISTS ResourceLink (" - "usedActivity TEXT, " - "initiatingAgent TEXT, " - "targettedResource TEXT, " - "PRIMARY KEY(usedActivity, initiatingAgent, targettedResource)" - ")") - - << // @since 2015.01.18 - // The ResourceInfo table stores the collected information about a - // resource that is not agent nor activity related like the - // title and the mime type. - // If these are automatically retrieved (works for files), the - // flag is set to true. This is done for the agents to be able to - // override these. - QStringLiteral("CREATE TABLE IF NOT EXISTS ResourceInfo (" - "targettedResource TEXT, " - "title TEXT, " - "mimetype TEXT, " - "autoTitle INTEGER, " - "autoMimetype INTEGER, " - "PRIMARY KEY(targettedResource)" - ")") - - ; -} - -// TODO: This will require some refactoring after we introduce more databases -QString defaultPath() -{ - return QStandardPaths::writableLocation( - QStandardPaths::GenericDataLocation) - + QStringLiteral("/kactivitymanagerd/resources/database"); -} - -const char *overrideFlagProperty = "org.kde.KActivities.ResourcesDatabase.overrideDatabase"; -const char *overrideFileProperty = "org.kde.KActivities.ResourcesDatabase.overrideDatabaseFile"; - -QString path() -{ - auto app = QCoreApplication::instance(); - - return - (app->property(overrideFlagProperty).toBool()) ? - app->property(overrideFileProperty).toString() : - defaultPath(); -} - -void overridePath(const QString &path) -{ - auto app = QCoreApplication::instance(); - - app->setProperty(overrideFlagProperty, true); - app->setProperty(overrideFileProperty, path); -} - -void initSchema(Database &database) -{ - QString dbSchemaVersion; - - auto query = database.execQuery( - QStringLiteral("SELECT value FROM SchemaInfo WHERE key = 'version'"), - /* ignore error */ true); - - if (query.next()) { - dbSchemaVersion = query.value(0).toString(); - } - - // Early bail-out if the schema is up-to-date - if (dbSchemaVersion == version()) { - return; - } - - // Transition to KF5: - // We left the world of Nepomuk, and all the ontologies went - // across the sea to the Undying Lands. - // This needs to be done before executing the schema() queries - // so that we do not create new (empty) tables and block these - // queries from being executed. - if (dbSchemaVersion < QStringLiteral("2014.04.14")) { - database.execQuery( - QStringLiteral("ALTER TABLE nuao_DesktopEvent RENAME TO ResourceEvent"), - /* ignore error */ true); - database.execQuery( - QStringLiteral("ALTER TABLE kext_ResourceScoreCache RENAME TO ResourceScoreCache"), - /* ignore error */ true); - } - - database.execQueries(ResourcesDatabaseSchema::schema()); - - // 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. - if (dbSchemaVersion < QStringLiteral("2015.02.09")) { - const QString updateActivity = - QStringLiteral("SET usedActivity=':global' " - "WHERE usedActivity IS NULL OR usedActivity = ''"); - - const QString updateAgent = - QStringLiteral("SET initiatingAgent=':global' " - "WHERE initiatingAgent IS NULL OR initiatingAgent = ''"); - - // When the activity field was empty, it meant the file was - // linked to all activities (aka :global) - database.execQuery("UPDATE ResourceLink " + updateActivity); - - // When the agent field was empty, it meant the file was not - // linked to a specified agent (aka :global) - database.execQuery("UPDATE ResourceLink " + updateAgent); - - // These were not supposed to be empty, but in the case they were, - // deal with them as well - database.execQuery("UPDATE ResourceEvent " + updateActivity); - database.execQuery("UPDATE ResourceEvent " + updateAgent); - database.execQuery("UPDATE ResourceScoreCache " + updateActivity); - database.execQuery("UPDATE ResourceScoreCache " + updateAgent); - - } -} - -} // namespace Common -} // namespace ResourcesDatabaseSchema - diff -Nru kactivities-kf5-5.18.0/src/common/database/schema/ResourcesDatabaseSchema.h kactivities-kf5-5.44.0/src/common/database/schema/ResourcesDatabaseSchema.h --- kactivities-kf5-5.18.0/src/common/database/schema/ResourcesDatabaseSchema.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/common/database/schema/ResourcesDatabaseSchema.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2011, 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef RESOURCESDATABASESCHEMA_H -#define RESOURCESDATABASESCHEMA_H - -#include -#include "../Database.h" - -namespace Common { -namespace ResourcesDatabaseSchema { - - QString version(); - - QStringList schema(); - - QString path(); - void overridePath(const QString &path); - - void initSchema(Database &database); - -} // namespace ResourcesDatabase -} // namespace Common - -#endif // RESOURCESDATABASESCHEMA_H - diff -Nru kactivities-kf5-5.18.0/src/common/dbus/common.h kactivities-kf5-5.44.0/src/common/dbus/common.h --- kactivities-kf5-5.18.0/src/common/dbus/common.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/common/dbus/common.h 2018-03-03 09:51:42.000000000 +0000 @@ -1,20 +1,22 @@ /* - * Copyright (C) 2010, 2011, 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * License along with this library. + * If not, see . */ #ifndef DBUS_COMMON_H @@ -45,7 +47,7 @@ KAMD_DBUS_OBJECT_PATH(OBJECT_PATH), \ KAMD_DBUS_OBJECT(OBJECT), \ QDBusConnection::sessionBus(), \ - Q_NULLPTR) + nullptr) #define KAMD_DBUS_CLASS_INTERFACE(OBJECT_PATH, OBJECT, PARENT) \ org::kde::ActivityManager::OBJECT( \ diff -Nru kactivities-kf5-5.18.0/src/common/dbus/org.kde.ActivityManager.Activities.cpp kactivities-kf5-5.44.0/src/common/dbus/org.kde.ActivityManager.Activities.cpp --- kactivities-kf5-5.18.0/src/common/dbus/org.kde.ActivityManager.Activities.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/common/dbus/org.kde.ActivityManager.Activities.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -1,20 +1,22 @@ /* - * Copyright (C) 2010, 2011, 2012 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . */ #include "org.kde.ActivityManager.Activities.h" diff -Nru kactivities-kf5-5.18.0/src/common/dbus/org.kde.ActivityManager.Activities.h kactivities-kf5-5.44.0/src/common/dbus/org.kde.ActivityManager.Activities.h --- kactivities-kf5-5.18.0/src/common/dbus/org.kde.ActivityManager.Activities.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/common/dbus/org.kde.ActivityManager.Activities.h 2018-03-03 09:51:42.000000000 +0000 @@ -1,20 +1,22 @@ /* - * Copyright (C) 2010, 2011, 2012 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . */ #ifndef KAMD_ACTIVITIES_DBUS_H @@ -44,16 +46,6 @@ , state(state) { } - - bool operator<(const ActivityInfo &other) const - { - return id < other.id; - } - - bool operator==(const ActivityInfo &other) const - { - return id == other.id; - } }; typedef QList ActivityInfoList; diff -Nru kactivities-kf5-5.18.0/src/common/specialvalues.h kactivities-kf5-5.44.0/src/common/specialvalues.h --- kactivities-kf5-5.18.0/src/common/specialvalues.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/common/specialvalues.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef SPECIALVALUES_H -#define SPECIALVALUES_H - -#include - -#define GLOBAL_ACTIVITY_TAG QStringLiteral(":global") -#define ANY_ACTIVITY_TAG QStringLiteral(":any") -#define CURRENT_ACTIVITY_TAG QStringLiteral(":current") - -#define GLOBAL_AGENT_TAG QStringLiteral(":global") -#define ANY_AGENT_TAG QStringLiteral(":any") -#define CURRENT_AGENT_TAG QStringLiteral(":current") - -#define ANY_TYPE_TAG QStringLiteral(":any") - - -#endif // SPECIALVALUES_H - diff -Nru kactivities-kf5-5.18.0/src/imports/activitiesextensionplugin.cpp kactivities-kf5-5.44.0/src/imports/activitiesextensionplugin.cpp --- kactivities-kf5-5.18.0/src/imports/activitiesextensionplugin.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/imports/activitiesextensionplugin.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -23,9 +23,16 @@ #include "activitymodel.h" #include "activityinfo.h" -#include "resourcemodel.h" #include "resourceinstance.h" +// #include "resourcemodel.h" + +// TODO: Clean up unused classes from the imports module + +// TODO: Since plasma is now dealing with activity model wallpapers, +// replace ActivityModel with the KActivities::ActivitiesModel +// (but keep the name) + #include ActivitiesExtensionPlugin::ActivitiesExtensionPlugin(QObject *parent) @@ -37,9 +44,14 @@ { Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.activities")); + // Used by applets/activitybar qmlRegisterType(uri, 0, 1, "ActivityModel"); + qmlRegisterType(uri, 0, 1, "ActivityInfo"); - qmlRegisterType(uri, 0, 1, "ResourceModel"); qmlRegisterType(uri, 0, 1, "ResourceInstance"); + + // This one is removed in favor of KActivities::Stats::ResultModel. + // Subclass it, and make it do what you want. + // qmlRegisterType(uri, 0, 1, "ResourceModel"); } diff -Nru kactivities-kf5-5.18.0/src/imports/activitiesextensionplugin.h kactivities-kf5-5.44.0/src/imports/activitiesextensionplugin.h --- kactivities-kf5-5.18.0/src/imports/activitiesextensionplugin.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/imports/activitiesextensionplugin.h 2018-03-03 09:51:42.000000000 +0000 @@ -27,7 +27,7 @@ Q_PLUGIN_METADATA(IID "org.kde.activities") public: - ActivitiesExtensionPlugin(QObject *parent = Q_NULLPTR); + ActivitiesExtensionPlugin(QObject *parent = nullptr); void registerTypes(const char *uri) Q_DECL_OVERRIDE; }; diff -Nru kactivities-kf5-5.18.0/src/imports/activityinfo.h kactivities-kf5-5.44.0/src/imports/activityinfo.h --- kactivities-kf5-5.18.0/src/imports/activityinfo.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/imports/activityinfo.h 2018-03-03 09:51:42.000000000 +0000 @@ -27,8 +27,8 @@ #include // Local -#include -#include +#include +#include namespace KActivities { namespace Imports { @@ -66,7 +66,7 @@ Q_PROPERTY(bool valid READ valid NOTIFY validChanged) public: - ActivityInfo(QObject *parent = 0); + ActivityInfo(QObject *parent = nullptr); virtual ~ActivityInfo(); public Q_SLOTS: diff -Nru kactivities-kf5-5.18.0/src/imports/activitymodel.cpp kactivities-kf5-5.44.0/src/imports/activitymodel.cpp --- kactivities-kf5-5.18.0/src/imports/activitymodel.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/imports/activitymodel.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -32,7 +32,6 @@ #include // KDE -#include #include #include #include @@ -47,7 +46,7 @@ #include "utils/remove_if.h" #define ENABLE_QJSVALUE_CONTINUATION #include "utils/continue_with.h" -#include "utils_p.h" +#include "utils/model_updaters.h" using kamd::utils::continue_with; @@ -583,11 +582,9 @@ QVariant ActivityModel::headerData(int section, Qt::Orientation orientation, int role) const { + Q_UNUSED(section); Q_UNUSED(orientation); - - if (section == 0 && role == Qt::DisplayRole) { - return i18nc("Header title for activity data model", "Activity"); - } + Q_UNUSED(role); return QVariant(); } diff -Nru kactivities-kf5-5.18.0/src/imports/activitymodel.h kactivities-kf5-5.44.0/src/imports/activitymodel.h --- kactivities-kf5-5.18.0/src/imports/activitymodel.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/imports/activitymodel.h 2018-03-03 09:51:42.000000000 +0000 @@ -30,9 +30,9 @@ #include // Local -#include -#include -#include +#include +#include +#include class QModelIndex; class QDBusPendingCallWatcher; @@ -47,11 +47,10 @@ class ActivityModel : public QAbstractListModel { Q_OBJECT - Q_ENUMS(State) Q_PROPERTY(QString shownStates READ shownStates WRITE setShownStates NOTIFY shownStatesChanged) public: - ActivityModel(QObject *parent = 0); + ActivityModel(QObject *parent = nullptr); virtual ~ActivityModel(); int rowCount(const QModelIndex &parent = QModelIndex()) const @@ -82,6 +81,7 @@ Stopped = 4, Stopping = 5 }; + Q_ENUM(State) public Q_SLOTS: // Activity control methods diff -Nru kactivities-kf5-5.18.0/src/imports/CMakeLists.txt kactivities-kf5-5.44.0/src/imports/CMakeLists.txt --- kactivities-kf5-5.18.0/src/imports/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/imports/CMakeLists.txt 2018-03-03 09:51:42.000000000 +0000 @@ -4,19 +4,16 @@ find_package (ECM 0.0.8 REQUIRED NO_MODULE) set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) -find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Sql Gui Widgets Qml Quick Sql) -find_package (KF5DBusAddons ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5I18n ${KF5_DEP_VERSION} CONFIG REQUIRED) +find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Sql Gui Qml Quick Sql) find_package (KF5Config ${KF5_DEP_VERSION} CONFIG REQUIRED) find_package (KF5CoreAddons ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5KIO ${KF5_DEP_VERSION} CONFIG REQUIRED) set ( kactivities_imports_LIB_SRCS activitiesextensionplugin.cpp activitymodel.cpp activityinfo.cpp - resourcemodel.cpp +# resourcemodel.cpp resourceinstance.cpp ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/dbusfuture_p.cpp @@ -32,12 +29,9 @@ Qt5::Qml Qt5::Quick Qt5::Sql - KF5::I18n - KF5::DBusAddons KF5::Activities KF5::ConfigCore KF5::CoreAddons - KF5::KIOCore ) ## install diff -Nru kactivities-kf5-5.18.0/src/imports/resourceinstance.h kactivities-kf5-5.44.0/src/imports/resourceinstance.h --- kactivities-kf5-5.18.0/src/imports/resourceinstance.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/imports/resourceinstance.h 2018-03-03 09:51:42.000000000 +0000 @@ -45,7 +45,7 @@ Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged) public: - ResourceInstance(QQuickItem *parent = 0); + ResourceInstance(QQuickItem *parent = nullptr); ~ResourceInstance(); QUrl uri() const; diff -Nru kactivities-kf5-5.18.0/src/imports/resourcemodel.cpp kactivities-kf5-5.44.0/src/imports/resourcemodel.cpp --- kactivities-kf5-5.18.0/src/imports/resourcemodel.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/imports/resourcemodel.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -31,12 +31,10 @@ #include // KDE -#include #include #include #include #include -#include #include // STL and Boost @@ -69,7 +67,7 @@ class ResourceModel::LinkerService: public QDBusInterface { private: LinkerService() - : KAMD_DBUS_INTERFACE(Resources/Linking, ResourcesLinking, Q_NULLPTR) + : KAMD_DBUS_INTERFACE(Resources/Linking, ResourcesLinking, nullptr) { } diff -Nru kactivities-kf5-5.18.0/src/imports/resourcemodel.h kactivities-kf5-5.44.0/src/imports/resourcemodel.h --- kactivities-kf5-5.18.0/src/imports/resourcemodel.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/imports/resourcemodel.h 2018-03-03 09:51:42.000000000 +0000 @@ -35,9 +35,9 @@ #include // Local -#include -#include -#include +#include +#include +#include class QModelIndex; class QDBusPendingCallWatcher; diff -Nru kactivities-kf5-5.18.0/src/imports/utils_p.h kactivities-kf5-5.44.0/src/imports/utils_p.h --- kactivities-kf5-5.18.0/src/imports/utils_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/imports/utils_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KACTIVITIES_IMPORTS_UTILS_P_H -#define KACTIVITIES_IMPORTS_UTILS_P_H - -// ----------------------------------------- -// RAII classes for model updates ---------- -// ----------------------------------------- - -#define DECLARE_RAII_MODEL_UPDATERS(Class) \ - template class _model_reset { \ - T *model; \ - \ - public: \ - _model_reset(T *m) : model(m) \ - { \ - model->beginResetModel(); \ - } \ - ~_model_reset() \ - { \ - model->endResetModel(); \ - } \ - }; \ - template class _model_insert { \ - T *model; \ - \ - public: \ - _model_insert(T *m, const QModelIndex &parent, int first, int last) \ - : model(m) \ - { \ - model->beginInsertRows(parent, first, last); \ - } \ - ~_model_insert() \ - { \ - model->endInsertRows(); \ - } \ - }; \ - template class _model_remove { \ - T *model; \ - \ - public: \ - _model_remove(T *m, const QModelIndex &parent, int first, int last) \ - : model(m) \ - { \ - model->beginRemoveRows(parent, first, last); \ - } \ - ~_model_remove() \ - { \ - model->endRemoveRows(); \ - } \ - }; \ - typedef _model_reset model_reset; \ - typedef _model_remove model_remove; \ - typedef _model_insert model_insert; - -// ----------------------------------------- - -#endif // KACTIVITIES_IMPORTS_UTILS_P_H - diff -Nru kactivities-kf5-5.18.0/src/lib/activitiescache_p.cpp kactivities-kf5-5.44.0/src/lib/activitiescache_p.cpp --- kactivities-kf5-5.18.0/src/lib/activitiescache_p.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/activitiescache_p.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,318 @@ +/* + * Copyright (C) 2013 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#include "activitiescache_p.h" +#include "manager_p.h" + +#include +#include + +#include + +#include "mainthreadexecutor_p.h" + +namespace KActivities { + +static QString nulluuid = QStringLiteral("00000000-0000-0000-0000-000000000000"); + +using kamd::utils::Mutable; + +std::shared_ptr ActivitiesCache::self() +{ + static std::weak_ptr s_instance; + static std::mutex singleton; + std::lock_guard singleton_lock(singleton); + + auto result = s_instance.lock(); + + if (s_instance.expired()) { + runInMainThread([&result] { + result.reset(new ActivitiesCache()); + s_instance = result; + }); + } + + return result; +} + +ActivitiesCache::ActivitiesCache() + : m_status(Consumer::NotRunning) +{ + // qDebug() << "ActivitiesCache: Creating a new instance"; + using org::kde::ActivityManager::Activities; + + auto activities = Manager::self()->activities(); + + connect(activities, &Activities::ActivityAdded, + this, &ActivitiesCache::updateActivity); + connect(activities, &Activities::ActivityChanged, + this, &ActivitiesCache::updateActivity); + connect(activities, &Activities::ActivityRemoved, + this, &ActivitiesCache::removeActivity); + + connect(activities, &Activities::ActivityStateChanged, + this, &ActivitiesCache::updateActivityState); + connect(activities, &Activities::ActivityNameChanged, + this, &ActivitiesCache::setActivityName); + connect(activities, &Activities::ActivityDescriptionChanged, + this, &ActivitiesCache::setActivityDescription); + connect(activities, &Activities::ActivityIconChanged, + this, &ActivitiesCache::setActivityIcon); + + connect(activities, &Activities::CurrentActivityChanged, + this, &ActivitiesCache::setCurrentActivity); + + connect(Manager::self(), &Manager::serviceStatusChanged, + this, &ActivitiesCache::setServiceStatus); + + // These are covered by ActivityStateChanged + // signal void org.kde.ActivityManager.Activities.ActivityStarted(QString activity) + // signal void org.kde.ActivityManager.Activities.ActivityStopped(QString activity) + + setServiceStatus(Manager::self()->isServiceRunning()); +} + +void ActivitiesCache::setServiceStatus(bool status) +{ + // qDebug() << "Setting service status to:" << status; + loadOfflineDefaults(); + + if (status) { + updateAllActivities(); + } +} + +void ActivitiesCache::loadOfflineDefaults() +{ + m_status = Consumer::NotRunning; + + m_activities.clear(); + m_activities << ActivityInfo(nulluuid, QString(), QString(), QString(), + Info::Running); + m_currentActivity = nulluuid; + + emit serviceStatusChanged(m_status); + emit activityListChanged(); +} + +ActivitiesCache::~ActivitiesCache() +{ + // qDebug() << "ActivitiesCache: Destroying the instance"; +} + +void ActivitiesCache::removeActivity(const QString &id) +{ + // qDebug() << "Removing the activity"; + + // Since we are sorting the activities by name now, + // we can not use lower_bound to search for an activity + // with a specified id + const auto where = find(id); + + if (where != m_activities.end() && where->id == id) { + m_activities.erase(where); + emit activityRemoved(id); + emit activityListChanged(); + + } else { + // qFatal("Requested to delete an non-existent activity"); + } +} + +void ActivitiesCache::updateAllActivities() +{ + // qDebug() << "Updating all"; + m_status = Consumer::Unknown; + emit serviceStatusChanged(m_status); + + // Loading the current activity + auto call = Manager::self()->activities()->asyncCall( + QStringLiteral("CurrentActivity")); + + onCallFinished(call, SLOT(setCurrentActivityFromReply(QDBusPendingCallWatcher *))); + + // Loading all the activities + call = Manager::self()->activities()->asyncCall( + QStringLiteral("ListActivitiesWithInformation")); + + onCallFinished(call, SLOT(setAllActivitiesFromReply(QDBusPendingCallWatcher *))); +} + +void ActivitiesCache::updateActivity(const QString &id) +{ + // qDebug() << "Updating activity" << id; + + auto call = Manager::self()->activities()->asyncCall( + QStringLiteral("ActivityInformation"), id); + + onCallFinished(call, SLOT(setActivityInfoFromReply(QDBusPendingCallWatcher *))); +} + +void ActivitiesCache::updateActivityState(const QString &id, int state) +{ + auto where = getInfo(id); + + if (where && where->state != state) { + auto isInvalid = [](int state) { + return state == Info::Invalid || state == Info::Unknown; + }; + auto isStopped = [](int state) { + return state == Info::Stopped || state == Info::Starting; + }; + auto isRunning = [](int state) { + return state == Info::Running || state == Info::Stopping; + }; + + const bool runningStateChanged + = (isInvalid(state) || isInvalid(where->state) + || (isStopped(state) && isRunning(where->state)) + || (isRunning(state) && isStopped(where->state))); + + where->state = state; + + if (runningStateChanged) { + emit runningActivityListChanged(); + } + + emit activityStateChanged(id, state); + + } else { + // qFatal("Requested to update the state of an non-existent activity"); + } +} + +template +void ActivitiesCache::passInfoFromReply(QDBusPendingCallWatcher *watcher, _Functor f) +{ + QDBusPendingReply<_Result> reply = *watcher; + + if (!reply.isError()) { + auto replyValue = reply.template argumentAt <0>(); + // qDebug() << "Got some reply" << replyValue; + + ((*this).*f)(replyValue); + } + + watcher->deleteLater(); +} + +void ActivitiesCache::setActivityInfoFromReply(QDBusPendingCallWatcher *watcher) +{ + // qDebug() << "reply..."; + passInfoFromReply(watcher, &ActivitiesCache::setActivityInfo); +} + +void ActivitiesCache::setAllActivitiesFromReply(QDBusPendingCallWatcher *watcher) +{ + // qDebug() << "reply..."; + passInfoFromReply(watcher, &ActivitiesCache::setAllActivities); +} + +void ActivitiesCache::setCurrentActivityFromReply(QDBusPendingCallWatcher *watcher) +{ + // qDebug() << "reply..."; + passInfoFromReply(watcher, &ActivitiesCache::setCurrentActivity); +} + +void ActivitiesCache::setActivityInfo(const ActivityInfo &info) +{ + // qDebug() << "Setting activity info" << info.id; + + // Are we updating an existing activity, or adding a new one? + const auto iter = find(info.id); + const auto present = iter != m_activities.end(); + bool runningChanged = true; + // If there is an activity with the specified id, + // we are going to remove it, temporarily. + if (present) { + runningChanged = (*iter).state != info.state; + m_activities.erase(iter); + } + + // Now, we need to find where to insert the activity + // and keep the cache sorted by name + const auto where = lower_bound(info); + + m_activities.insert(where, info); + + if (present) { + emit activityChanged(info.id); + } else { + emit activityAdded(info.id); + emit activityListChanged(); + if (runningChanged) { + emit runningActivityListChanged(); + } + } +} + +#define CREATE_SETTER(WHAT, What) \ + void ActivitiesCache::setActivity##WHAT(const QString &id, \ + const QString &value) \ + { \ + auto where = getInfo(id); \ + \ + if (where) { \ + where->What = value; \ + emit activity##WHAT##Changed(id, value); \ + } \ + } + +CREATE_SETTER(Name, name) +CREATE_SETTER(Description, description) +CREATE_SETTER(Icon, icon) + +#undef CREATE_SETTER + +void ActivitiesCache::setAllActivities(const ActivityInfoList &_activities) +{ + // qDebug() << "Setting all activities"; + + m_activities.clear(); + + ActivityInfoList activities = _activities; + + foreach (const ActivityInfo &info, activities) { + m_activities << info; + } + + std::sort(m_activities.begin(), m_activities.end(), &infoLessThan); + + m_status = Consumer::Running; + emit serviceStatusChanged(m_status); + emit activityListChanged(); +} + +void ActivitiesCache::setCurrentActivity(const QString &activity) +{ + // qDebug() << "Setting current activity to" << activity; + + if (m_currentActivity == activity) { + return; + } + + m_currentActivity = activity; + + emit currentActivityChanged(activity); +} + +} // namespace KActivities + diff -Nru kactivities-kf5-5.18.0/src/lib/activitiescache_p.h kactivities-kf5-5.44.0/src/lib/activitiescache_p.h --- kactivities-kf5-5.18.0/src/lib/activitiescache_p.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/activitiescache_p.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2013 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef ACTIVITIES_CACHE_P_H +#define ACTIVITIES_CACHE_P_H + +#include + +#include + +#include +#include + +#include "activities_interface.h" +#include "consumer.h" + +namespace KActivities { + +class ActivitiesCache : public QObject { + Q_OBJECT + +public: + static std::shared_ptr self(); + + ~ActivitiesCache(); + +Q_SIGNALS: + void activityAdded(const QString &id); + void activityChanged(const QString &id); + void activityRemoved(const QString &id); + + void activityStateChanged(const QString &id, int state); + void activityNameChanged(const QString &id, const QString &name); + void activityDescriptionChanged(const QString &id, const QString &description); + void activityIconChanged(const QString &id, const QString &icon); + + void currentActivityChanged(const QString &id); + void serviceStatusChanged(Consumer::ServiceStatus status); + void activityListChanged(); + void runningActivityListChanged(); + +private Q_SLOTS: + void updateAllActivities(); + void loadOfflineDefaults(); + + void updateActivity(const QString &id); + void updateActivityState(const QString &id, int state); + void removeActivity(const QString &id); + + void setActivityInfoFromReply(QDBusPendingCallWatcher *watcher); + void setAllActivitiesFromReply(QDBusPendingCallWatcher *watcher); + void setCurrentActivityFromReply(QDBusPendingCallWatcher *watcher); + + void setActivityName(const QString &id, const QString &name); + void setActivityDescription(const QString &id, const QString &description); + void setActivityIcon(const QString &id, const QString &icon); + + void setActivityInfo(const ActivityInfo &info); + void setAllActivities(const ActivityInfoList &activities); + void setCurrentActivity(const QString &activity); + + void setServiceStatus(bool status); + +public: + template + void passInfoFromReply(QDBusPendingCallWatcher *watcher, _Functor f); + + static + bool infoLessThan(const ActivityInfo &info, const ActivityInfo &other) + { + const auto comp = + QString::compare(info.name, other.name, Qt::CaseInsensitive); + return comp < 0 || (comp == 0 && info.id < other.id); + } + + ActivityInfoList::iterator + find(const QString &id) + { + return std::find_if(m_activities.begin(), m_activities.end(), + [&id] (const ActivityInfo &info) { + return info.id == id; + }); + } + + ActivityInfoList::iterator + lower_bound(const ActivityInfo &info) + { + return std::lower_bound(m_activities.begin(), m_activities.end(), + info, &infoLessThan); + } + + template + inline typename kamd::utils::ptr_to::type + getInfo(const QString &id) + { + const auto where = find(id); + + if (where != m_activities.end()) { + return &(*where); + } + + return nullptr; + } + + template + void onCallFinished(QDBusPendingCall &call, TargetSlot slot) { + auto watcher = new QDBusPendingCallWatcher(call, this); + + connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher *)), + this, slot); + } + + + ActivitiesCache(); + + QList m_activities; + QString m_currentActivity; + Consumer::ServiceStatus m_status; +}; + +} // namespace KActivities + + +#endif /* ACTIVITIES_CACHE_P_H */ + diff -Nru kactivities-kf5-5.18.0/src/lib/activitiesmodel.cpp kactivities-kf5-5.44.0/src/lib/activitiesmodel.cpp --- kactivities-kf5-5.18.0/src/lib/activitiesmodel.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/activitiesmodel.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,445 @@ +/* + * Copyright (C) 2012 - 2016 Ivan Cukic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * or (at your option) any later version, as published by the Free + * Software Foundation + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +// Self +#include "activitiesmodel.h" +#include "activitiesmodel_p.h" + +// Qt +#include +#include +#include +#include +#include +#include +#include +#include + +// Local +#include "utils/remove_if.h" + +namespace KActivities { + +namespace Private { + template + struct ActivityPosition { + ActivityPosition() + : isValid(false) + , index(0) + , iterator() + { + } + + ActivityPosition(unsigned int index, + typename _Container::const_iterator iterator) + : isValid(true) + , index(index) + , iterator(iterator) + { + } + + operator bool() const + { + return isValid; + } + + const bool isValid; + const unsigned int index; + const typename _Container::const_iterator iterator; + + typedef typename _Container::value_type ContainerElement; + }; + + /** + * Returns whether the the activity has a desired state. + * If the state is 0, returns true + */ + template + inline bool matchingState(ActivitiesModelPrivate::InfoPtr activity, + const T &states) + { + return states.empty() || states.contains(activity->state()); + } + + /** + * Searches for the activity. + * Returns an option(index, iterator) for the found activity. + */ + template + inline + ActivityPosition<_Container> + activityPosition(const _Container &container, const QString &activityId) + { + auto position = std::find_if(container.begin(), container.end(), + [&] (const typename ActivityPosition<_Container>::ContainerElement &activity) { + return activity->id() == activityId; + } + ); + + return (position != container.end()) ? + ActivityPosition<_Container>(position - container.begin(), position) : + ActivityPosition<_Container>(); + } + + /** + * Notifies the model that an activity was updated + */ + template + inline + void emitActivityUpdated(_Model *model, + const _Container &container, + const QString &activity, int role) + { + auto position = Private::activityPosition(container, activity); + + if (position) { + emit model->q->dataChanged( + model->q->index(position.index), + model->q->index(position.index), + role == Qt::DecorationRole ? + QVector {role, ActivitiesModel::ActivityIconSource} : + QVector {role} + ); + } + } + + /** + * Notifies the model that an activity was updated + */ + template + inline + void emitActivityUpdated(_Model *model, + const _Container &container, + QObject *activityInfo, int role) + { + const auto activity = static_cast (activityInfo); + emitActivityUpdated(model, container, activity->id(), role); + } + +} + +ActivitiesModelPrivate::ActivitiesModelPrivate(ActivitiesModel *parent) + : q(parent) +{ +} + +ActivitiesModel::ActivitiesModel(QObject *parent) + : QAbstractListModel(parent) + , d(new ActivitiesModelPrivate(this)) +{ + // Initializing role names for qml + connect(&d->activities, &Consumer::serviceStatusChanged, + this, [this] (Consumer::ServiceStatus status) { d->setServiceStatus(status); }); + + connect(&d->activities, &Consumer::activityAdded, + this, [this] (const QString &activity) { d->onActivityAdded(activity); }); + connect(&d->activities, &Consumer::activityRemoved, + this, [this] (const QString &activity) { d->onActivityRemoved(activity); }); + connect(&d->activities, &Consumer::currentActivityChanged, + this, [this] (const QString &activity) { d->onCurrentActivityChanged(activity); }); + + d->setServiceStatus(d->activities.serviceStatus()); +} + +ActivitiesModel::ActivitiesModel(QVector shownStates, QObject *parent) + : QAbstractListModel(parent) + , d(new ActivitiesModelPrivate(this)) +{ + d->shownStates = shownStates; + + // Initializing role names for qml + connect(&d->activities, &Consumer::serviceStatusChanged, + this, [this] (Consumer::ServiceStatus status) { d->setServiceStatus(status); }); + + connect(&d->activities, &Consumer::activityAdded, + this, [this] (const QString &activity) { d->onActivityAdded(activity); }); + connect(&d->activities, &Consumer::activityRemoved, + this, [this] (const QString &activity) { d->onActivityRemoved(activity); }); + connect(&d->activities, &Consumer::currentActivityChanged, + this, [this] (const QString &activity) { d->onCurrentActivityChanged(activity); }); + + d->setServiceStatus(d->activities.serviceStatus()); +} + +ActivitiesModel::~ActivitiesModel() +{ + delete d; +} + +QHash ActivitiesModel::roleNames() const +{ + return { + {ActivityName, "name"}, + {ActivityState, "state"}, + {ActivityId, "id"}, + {ActivityIconSource, "iconSource"}, + {ActivityDescription, "description"}, + {ActivityBackground, "background"}, + {ActivityIsCurrent, "isCurrent"} + }; +} + + +void ActivitiesModelPrivate::setServiceStatus(Consumer::ServiceStatus) +{ + replaceActivities(activities.activities()); +} + +void ActivitiesModelPrivate::replaceActivities(const QStringList &activities) +{ + q->beginResetModel(); + + knownActivities.clear(); + shownActivities.clear(); + + for (const QString &activity: activities) { + onActivityAdded(activity, false); + } + + q->endResetModel(); +} + +void ActivitiesModelPrivate::onActivityAdded(const QString &id, bool notifyClients) +{ + auto info = registerActivity(id); + + showActivity(info, notifyClients); +} + +void ActivitiesModelPrivate::onActivityRemoved(const QString &id) +{ + hideActivity(id); + unregisterActivity(id); +} + +void ActivitiesModelPrivate::onCurrentActivityChanged(const QString &id) +{ + Q_UNUSED(id); + + for (const auto &activity: shownActivities) { + Private::emitActivityUpdated(this, shownActivities, activity->id(), + ActivitiesModel::ActivityIsCurrent); + } +} + +ActivitiesModelPrivate::InfoPtr ActivitiesModelPrivate::registerActivity(const QString &id) +{ + auto position = Private::activityPosition(knownActivities, id); + + if (position) { + return *(position.iterator); + + } else { + auto activityInfo = std::make_shared(id); + + auto ptr = activityInfo.get(); + + connect(ptr, &Info::nameChanged, + this, &ActivitiesModelPrivate::onActivityNameChanged); + connect(ptr, &Info::descriptionChanged, + this, &ActivitiesModelPrivate::onActivityDescriptionChanged); + connect(ptr, &Info::iconChanged, + this, &ActivitiesModelPrivate::onActivityIconChanged); + connect(ptr, &Info::stateChanged, + this, &ActivitiesModelPrivate::onActivityStateChanged); + + knownActivities.insert(InfoPtr(activityInfo)); + + return activityInfo; + } +} + +void ActivitiesModelPrivate::unregisterActivity(const QString &id) +{ + auto position = Private::activityPosition(knownActivities, id); + + if (position) { + if (auto shown = Private::activityPosition(shownActivities, id)) { + q->beginRemoveRows(QModelIndex(), shown.index, shown.index); + shownActivities.removeAt(shown.index); + q->endRemoveRows(); + } + + knownActivities.removeAt(position.index); + } +} + +void ActivitiesModelPrivate::showActivity(InfoPtr activityInfo, bool notifyClients) +{ + // Should it really be shown? + if (!Private::matchingState(activityInfo, shownStates)) return; + + // Is it already shown? + if (std::binary_search(shownActivities.cbegin(), shownActivities.cend(), + activityInfo, InfoPtrComparator())) return; + + auto registeredPosition + = Private::activityPosition(knownActivities, activityInfo->id()); + + if (!registeredPosition) { + qDebug() << "Got a request to show an unknown activity, ignoring"; + return; + } + + const auto activityInfoPtr = *(registeredPosition.iterator); + + // In C++17, this would be: + // const auto [iterator, index, found] = shownActivities.insert(...); + const auto _result = shownActivities.insert(activityInfoPtr); + // const auto iterator = std::get<0>(_result); + const auto index = std::get<1>(_result); + const auto found = std::get<2>(_result); + + + if (notifyClients) { + q->beginInsertRows(QModelIndex(), index, index); + q->endInsertRows(); + } +} + +void ActivitiesModelPrivate::hideActivity(const QString &id) +{ + auto position = Private::activityPosition(shownActivities, id); + + if (position) { + q->beginRemoveRows(QModelIndex(), position.index, position.index); + shownActivities.removeAt(position.index); + q->endRemoveRows(); + } +} + +#define CREATE_SIGNAL_EMITTER(What, Role) \ + void ActivitiesModelPrivate::onActivity##What##Changed(const QString &) \ + { \ + Private::emitActivityUpdated(this, shownActivities, sender(), Role); \ + } + +CREATE_SIGNAL_EMITTER(Name, Qt::DisplayRole) +CREATE_SIGNAL_EMITTER(Description, ActivitiesModel::ActivityDescription) +CREATE_SIGNAL_EMITTER(Icon, Qt::DecorationRole) + +#undef CREATE_SIGNAL_EMITTER + +void ActivitiesModelPrivate::onActivityStateChanged(Info::State state) +{ + if (shownStates.empty()) { + Private::emitActivityUpdated(this, shownActivities, sender(), + ActivitiesModel::ActivityState); + + } else { + auto info = findActivity(sender()); + + if (!info) { + return; + } + + if (shownStates.contains(state)) { + showActivity(info, true); + } else { + hideActivity(info->id()); + } + } +} + +void ActivitiesModel::setShownStates(const QVector &states) +{ + d->shownStates = states; + + d->replaceActivities(d->activities.activities()); + + emit shownStatesChanged(states); +} + +QVector ActivitiesModel::shownStates() const +{ + return d->shownStates; +} + +int ActivitiesModel::rowCount(const QModelIndex &parent) const +{ + if (parent.isValid()) return 0; + + return d->shownActivities.size(); +} + +QVariant ActivitiesModel::data(const QModelIndex &index, int role) const +{ + const int row = index.row(); + const auto &item = d->shownActivities.at(row); + + switch (role) { + case Qt::DisplayRole: + case ActivityName: + return item->name(); + + case ActivityId: + return item->id(); + + case ActivityState: + return item->state(); + + case Qt::DecorationRole: + case ActivityIconSource: + { + const QString &icon = item->icon(); + + // We need a default icon for activities + return icon.isEmpty() ? "preferences-activities" : icon; + } + + case ActivityDescription: + return item->description(); + + case ActivityIsCurrent: + return d->activities.currentActivity() == item->id(); + + default: + return QVariant(); + } +} + +QVariant ActivitiesModel::headerData(int section, Qt::Orientation orientation, + int role) const +{ + Q_UNUSED(section); + Q_UNUSED(orientation); + Q_UNUSED(role); + + return QVariant(); +} + +ActivitiesModelPrivate::InfoPtr ActivitiesModelPrivate::findActivity(QObject *ptr) const +{ + auto info = std::find_if(knownActivities.cbegin(), knownActivities.cend(), + [ptr] (const InfoPtr &info) { + return ptr == info.get(); + } + ); + + if (info == knownActivities.end()) { + return nullptr; + } else { + return *info; + } +} + +} // namespace KActivities + +// #include "activitiesmodel.moc" + diff -Nru kactivities-kf5-5.18.0/src/lib/activitiesmodel.h kactivities-kf5-5.44.0/src/lib/activitiesmodel.h --- kactivities-kf5-5.18.0/src/lib/activitiesmodel.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/activitiesmodel.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2012, 2013, 2014 Ivan Cukic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * or (at your option) any later version, as published by the Free + * Software Foundation + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef ACTIVITIES_ACTIVITIESMODEL_H +#define ACTIVITIES_ACTIVITIESMODEL_H + +// Qt +#include +#include + +// STL +#include + +// Local +#include "info.h" + +class QModelIndex; +class QDBusPendingCallWatcher; + +namespace KActivities { + +class ActivitiesModelPrivate; + +/** + * Data model that shows existing activities + */ +class KACTIVITIES_EXPORT ActivitiesModel : public QAbstractListModel { + Q_OBJECT + + Q_PROPERTY(QVector shownStates READ shownStates WRITE setShownStates NOTIFY shownStatesChanged) + +public: + ActivitiesModel(QObject *parent = nullptr); + + /** + * Constructs the model and sets the shownStates + */ + ActivitiesModel(QVector shownStates, QObject *parent = nullptr); + virtual ~ActivitiesModel(); + + int rowCount(const QModelIndex &parent = QModelIndex()) const + Q_DECL_OVERRIDE; + + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const + Q_DECL_OVERRIDE; + + QVariant headerData(int section, Qt::Orientation orientation, + int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; + + QHash roleNames() const Q_DECL_OVERRIDE; + + enum Roles { + ActivityId = Qt::UserRole, ///< UUID of the activity + ActivityName = Qt::UserRole + 1, ///< Activity name + ActivityDescription = Qt::UserRole + 2, ///< Activity description + ActivityIconSource = Qt::UserRole + 3, ///< Activity icon source name + ActivityState = Qt::UserRole + 4, ///< The current state of the activity @see Info::State + ActivityBackground = Qt::UserRole + 5, ///< Activity wallpaper (currently unsupported) + ActivityIsCurrent = Qt::UserRole + 6, ///< Is this activity the current one current + + UserRole = Qt::UserRole + 32 ///< To be used by models that inherit this one + }; + +public Q_SLOTS: + /** + * The model can filter the list of activities based on their state. + * This method sets which states should be shown. + */ + void setShownStates(const QVector &shownStates); + + /** + * The model can filter the list of activities based on their state. + * This method returns which states are currently shown. + */ + QVector shownStates() const; + +Q_SIGNALS: + void shownStatesChanged(const QVector &state); + +private: + friend class ActivitiesModelPrivate; + ActivitiesModelPrivate * const d; +}; + +} // namespace KActivities + +#endif // ACTIVITIES_ACTIVITIESMODEL_H + diff -Nru kactivities-kf5-5.18.0/src/lib/activitiesmodel_p.h kactivities-kf5-5.44.0/src/lib/activitiesmodel_p.h --- kactivities-kf5-5.18.0/src/lib/activitiesmodel_p.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/activitiesmodel_p.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2016 Ivan Čukić + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef ACTIVITIES_ACTIVITYMODEL_P_H +#define ACTIVITIES_ACTIVITYMODEL_P_H + +#include "activitiesmodel.h" + +#include "consumer.h" + +#include "utils/qflatset.h" + +namespace KActivities { + +class ActivitiesModelPrivate : public QObject { + Q_OBJECT +public: + ActivitiesModelPrivate(ActivitiesModel *parent); + +public Q_SLOTS: + void onActivityNameChanged(const QString &name); + void onActivityDescriptionChanged(const QString &description); + void onActivityIconChanged(const QString &icon); + void onActivityStateChanged(KActivities::Info::State state); + + void replaceActivities(const QStringList &activities); + void onActivityAdded(const QString &id, bool notifyClients = true); + void onActivityRemoved(const QString &id); + void onCurrentActivityChanged(const QString &id); + + void setServiceStatus(KActivities::Consumer::ServiceStatus status); + +public: + KActivities::Consumer activities; + QVector shownStates; + + typedef std::shared_ptr InfoPtr; + + struct InfoPtrComparator { + bool operator() (const InfoPtr& left, const InfoPtr& right) const + { + const QString &leftName = left->name().toLower(); + const QString &rightName = right->name().toLower(); + + return + (leftName < rightName) || + (leftName == rightName && left->id() < right->id()); + } + }; + + QFlatSet knownActivities; + QFlatSet shownActivities; + + InfoPtr registerActivity(const QString &id); + void unregisterActivity(const QString &id); + void showActivity(InfoPtr activityInfo, bool notifyClients); + void hideActivity(const QString &id); + void backgroundsUpdated(const QStringList &activities); + + InfoPtr findActivity(QObject *ptr) const; + + ActivitiesModel *const q; +}; + + +} // namespace KActivities + +#endif // ACTIVITIES_ACTIVITYMODEL_P_H + diff -Nru kactivities-kf5-5.18.0/src/lib/CMakeLists.txt kactivities-kf5-5.44.0/src/lib/CMakeLists.txt --- kactivities-kf5-5.18.0/src/lib/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/CMakeLists.txt 2018-03-03 09:51:42.000000000 +0000 @@ -1,8 +1,178 @@ # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: -add_subdirectory (core) +# ======================================================= +# Now that we finished with the boilerplate, start +# with the library definition -if (KACTIVITIES_INSTALL_EXPERIMENTAL_LIBRARIES) - add_subdirectory (stats) +set ( + KActivities_LIB_SRCS + + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.cpp + + consumer.cpp + controller.cpp + info.cpp + resourceinstance.cpp + activitiesmodel.cpp + + mainthreadexecutor_p.cpp + manager_p.cpp + activitiescache_p.cpp + debug_p.cpp + + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/dbusfuture_p.cpp + + version.cpp + ) + +set_source_files_properties ( + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.xml + PROPERTIES + INCLUDE ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.h + ) + +qt5_add_dbus_interface ( + KActivities_LIB_SRCS + + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.xml + activities_interface + ) + +qt5_add_dbus_interface ( + KActivities_LIB_SRCS + + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Resources.xml + resources_interface + ) + +qt5_add_dbus_interface ( + KActivities_LIB_SRCS + + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Features.xml + features_interface + ) + +qt5_add_dbus_interface ( + KActivities_LIB_SRCS + + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.ResourcesLinking.xml + resources_linking_interface + ) + +qt5_add_dbus_interface ( + KActivities_LIB_SRCS + + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Application.xml + application_interface + ) + +add_library ( + KF5Activities SHARED + ${KActivities_LIB_SRCS} + ) +add_library (KF5::Activities ALIAS KF5Activities) + +include_directories ( + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src + ${CMAKE_BINARY_DIR}/ + ) + +set_target_properties ( + KF5Activities + PROPERTIES + VERSION ${KACTIVITIES_VERSION_STRING} + SOVERSION ${KACTIVITIES_SOVERSION} + EXPORT_NAME Activities + ) + +target_link_libraries ( + KF5Activities + PUBLIC + Qt5::Core + PRIVATE + Qt5::DBus + ) + +target_include_directories ( + KF5Activities + INTERFACE "$" + ) + +# install +generate_export_header (KF5Activities BASE_NAME KActivities) + +ecm_generate_headers ( + KActivities_CamelCase_HEADERS + HEADER_NAMES + Consumer + Controller + Info + ResourceInstance + ActivitiesModel + Version + PREFIX KActivities + REQUIRED_HEADERS KActivities_HEADERS + ) +install ( + FILES ${KActivities_CamelCase_HEADERS} + DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivities/KActivities + COMPONENT Devel + ) + +install ( + FILES ${KActivities_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/kactivities_export.h + DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivities/kactivities + COMPONENT Devel + ) + +install ( + TARGETS KF5Activities + EXPORT KF5ActivitiesLibraryTargets + ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} + ) + +if(BUILD_QCH) + ecm_add_qch( + KF5Activities_QCH + NAME KActivities + BASE_NAME KF5Activities + VERSION ${KF5_VERSION} + ORG_DOMAIN org.kde + SOURCES # using only public headers, to cover only public API + ${KActivities_HEADERS} + MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" + LINK_QCHS + Qt5Core_QCH + BLANK_MACROS + KACTIVITIES_EXPORT + KACTIVITIES_DEPRECATED + KACTIVITIES_DEPRECATED_EXPORT + TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} + QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} + COMPONENT Devel + ) endif() + +if (NOT WIN32) + configure_file ( + ${CMAKE_CURRENT_SOURCE_DIR}/libKActivities.pc.cmake + ${CMAKE_CURRENT_BINARY_DIR}/libKActivities.pc + ) + install ( + FILES ${CMAKE_CURRENT_BINARY_DIR}/libKActivities.pc + DESTINATION ${KDE_INSTALL_LIBDIR}/pkgconfig + ) +endif () + +include (ECMGeneratePriFile) +ecm_generate_pri_file ( + BASE_NAME KActivities + LIB_NAME KF5Activities + FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivities + ) +install ( + FILES ${PRI_FILENAME} + DESTINATION ${ECM_MKSPECS_INSTALL_DIR} + ) + diff -Nru kactivities-kf5-5.18.0/src/lib/consumer.cpp kactivities-kf5-5.44.0/src/lib/consumer.cpp --- kactivities-kf5-5.18.0/src/lib/consumer.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/consumer.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,122 @@ +/* + * Copyright (C) 2010 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#include "consumer.h" +#include "consumer_p.h" +#include "manager_p.h" + +#include "debug_p.h" + +namespace KActivities { + +ConsumerPrivate::ConsumerPrivate() + : cache(ActivitiesCache::self()) +{ +} + +void ConsumerPrivate::setServiceStatus(Consumer::ServiceStatus status) +{ + emit serviceStatusChanged(status); +} + +Consumer::Consumer(QObject *parent) + : QObject(parent) + , d(new ConsumerPrivate()) +{ + connect(d->cache.get(), SIGNAL(currentActivityChanged(QString)), + this, SIGNAL(currentActivityChanged(QString))); + connect(d->cache.get(), SIGNAL(activityAdded(QString)), + this, SIGNAL(activityAdded(QString))); + connect(d->cache.get(), SIGNAL(activityRemoved(QString)), + this, SIGNAL(activityRemoved(QString))); + connect(d->cache.get(), SIGNAL(serviceStatusChanged(Consumer::ServiceStatus)), + this, SIGNAL(serviceStatusChanged(Consumer::ServiceStatus))); + + connect(d->cache.get(), &ActivitiesCache::activityListChanged, + this, [=]() { emit activitiesChanged(activities()); }); + connect(d->cache.get(), &ActivitiesCache::runningActivityListChanged, + this, [=]() { emit runningActivitiesChanged(runningActivities()); }); + + // connect(d->cache.get(), SIGNAL(activityStateChanged(QString,int)), + // this, SIGNAL(activityStateChanged(QString,int))); +} + +Consumer::~Consumer() +{ + qCDebug(KAMD_CORELIB) << "Killing the consumer"; +} + +QString Consumer::currentActivity() const +{ + return d->cache->m_currentActivity; +} + +QStringList Consumer::activities(Info::State state) const +{ + QStringList result; + + result.reserve(d->cache->m_activities.size()); + + foreach (const auto & info, d->cache->m_activities) { + if (info.state == state) { + result << info.id; + } + } + + return result; +} + +QStringList Consumer::activities() const +{ + QStringList result; + + result.reserve(d->cache->m_activities.size()); + + foreach (const auto & info, d->cache->m_activities) { + result << info.id; + } + + return result; +} + +QStringList Consumer::runningActivities() const +{ + QStringList result; + + result.reserve(d->cache->m_activities.size()); + + foreach (const auto & info, d->cache->m_activities) { + if (info.state == Info::Running || info.state == Info::Stopping) { + result << info.id; + } + } + + return result; + return activities(Info::Running); +} + + +Consumer::ServiceStatus Consumer::serviceStatus() +{ + return d->cache->m_status; +} + +} // namespace KActivities diff -Nru kactivities-kf5-5.18.0/src/lib/consumer.h kactivities-kf5-5.44.0/src/lib/consumer.h --- kactivities-kf5-5.18.0/src/lib/consumer.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/consumer.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,180 @@ +/* + * Copyright (C) 2010 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef ACTIVITIES_CONSUMER_H +#define ACTIVITIES_CONSUMER_H + +#include +#include +#include +#include + +#include "info.h" + +#include "kactivities_export.h" + +namespace KActivities { + +class ConsumerPrivate; + +/** + * Contextual information can be, from the user's point of view, divided + * into three aspects - "who am I?", "where am I?" (what are my surroundings?) + * and "what am I doing?". + * + * Activities deal with the last one - "what am I doing?". The current activity + * refers to what the user is doing at the moment, while the other activities + * represent things that he/she was doing before, and probably will be doing + * again. + * + * Activity is an abstract concept whose meaning can differ from one user to + * another. Typical examples of activities are "developing a KDE project", + * "studying the 19th century art", "composing music", "lazing on a Sunday + * afternoon" etc. + * + * Consumer provides read-only information about activities. + * + * Before relying on the values retrieved by the class, make sure that the + * serviceStatus is set to Running. Otherwise, you can get invalid data either + * because the service is not functioning properly (or at all) or because + * the class did not have enough time to synchronize the data with it. + * + * For example, if this is the only existing instance of the Consumer class, + * the listActivities method will return an empty list. + * + * @code + * void someMethod() { + * // Do not copy. This approach is not a good one! + * Consumer c; + * doSomethingWith(c.listActivities()); + * } + * @endcode + * + * Instances of the Consumer class should be long-lived. For example, members + * of the classes that use them, and you should listen for the changes in the + * provided properties. + * + * @since 4.5 + */ +class KACTIVITIES_EXPORT Consumer : public QObject { + Q_OBJECT + + Q_PROPERTY(QString currentActivity READ currentActivity NOTIFY currentActivityChanged) + Q_PROPERTY(QStringList activities READ activities NOTIFY activitiesChanged) + Q_PROPERTY(QStringList runningActivities READ runningActivities NOTIFY runningActivitiesChanged) + Q_PROPERTY(ServiceStatus serviceStatus READ serviceStatus NOTIFY serviceStatusChanged) + +public: + /** + * Different states of the activities service + */ + enum ServiceStatus { + NotRunning, ///< Service is not running + Unknown, ///< Unable to determine the status of the service + Running ///< Service is running properly + }; + + explicit Consumer(QObject *parent = nullptr); + + ~Consumer(); + + /** + * @returns the id of the current activity + * @note Activity ID is a UUID-formatted string. If the serviceStatus + * is not Running, a null UUID is returned. The ID can also be an empty + * string in the case there is no current activity. + */ + QString currentActivity() const; + + /** + * @returns the list of activities filtered by state + * @param state state of the activity + * @note If the serviceStatus is not Running, only a null activity will be + * returned. + */ + QStringList activities(Info::State state) const; + + + /** + * @returns a list of running activities + * This is a convenience method that returns Running and Stopping activities + */ + QStringList runningActivities() const; + + /** + * @returns the list of all existing activities + * @note If the serviceStatus is not Running, only a null activity will be + * returned. + */ + QStringList activities() const; + + /** + * @returns status of the activities service + */ + ServiceStatus serviceStatus(); + +Q_SIGNALS: + /** + * This signal is emitted when the current activity is changed + * @param id id of the new current activity + */ + void currentActivityChanged(const QString &id); + + /** + * This signal is emitted when the activity service goes online or offline, + * or when the class manages to synchronise the data with the service. + * @param status new status of the service + */ + void serviceStatusChanged(Consumer::ServiceStatus status); + + /** + * This signal is emitted when a new activity is added + * @param id id of the new activity + */ + void activityAdded(const QString &id); + + /** + * This signal is emitted when an activity has been removed + * @param id id of the removed activity + */ + void activityRemoved(const QString &id); + + /** + * This signal is emitted when the activity list changes + * @param activities list of activities + */ + void activitiesChanged(const QStringList &activities); + + /** + * This signal is emitted when the list of running activities changes + * @param runningActivities list of running activities + */ + void runningActivitiesChanged(const QStringList &runningActivities); + + + +private: + const QScopedPointer d; +}; + +} // namespace KActivities + +#endif // ACTIVITIES_CONSUMER_H diff -Nru kactivities-kf5-5.18.0/src/lib/consumer_p.h kactivities-kf5-5.44.0/src/lib/consumer_p.h --- kactivities-kf5-5.18.0/src/lib/consumer_p.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/consumer_p.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2010 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef ACTIVITIES_CONSUMER_P_H +#define ACTIVITIES_CONSUMER_P_H + +#include "consumer.h" + +#include + +#include + +#include "activitiescache_p.h" + +namespace KActivities { + +class ConsumerPrivate : public QObject { + Q_OBJECT + +public: + ConsumerPrivate(); + + std::shared_ptr cache; + +public Q_SLOTS: + void setServiceStatus(Consumer::ServiceStatus status); + +Q_SIGNALS: + void serviceStatusChanged(Consumer::ServiceStatus status); + +}; + +} // namespace KActivities + +#endif // ACTIVITIES_CONSUMER_P_H diff -Nru kactivities-kf5-5.18.0/src/lib/controller.cpp kactivities-kf5-5.44.0/src/lib/controller.cpp --- kactivities-kf5-5.18.0/src/lib/controller.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/controller.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,125 @@ +/* + * Copyright (C) 2010 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#include "controller.h" +#include "consumer_p.h" +#include "manager_p.h" + +#include "utils/dbusfuture_p.h" + +#include + +namespace KActivities { + +Controller::Controller(QObject *parent) + : Consumer(parent) +{ +} + +Controller::~Controller() +{ +} + +#define CREATE_SETTER(What) \ + QFuture Controller::setActivity##What(const QString &id, \ + const QString &value) \ + { \ + return Manager::isServiceRunning() \ + ? DBusFuture::asyncCall( \ + Manager::activities(), \ + QString::fromLatin1("SetActivity" #What), id, value) \ + : DBusFuture::fromVoid(); \ + } + +CREATE_SETTER(Name) +CREATE_SETTER(Description) +CREATE_SETTER(Icon) + +#undef CREATE_SETTER + +QFuture Controller::setCurrentActivity(const QString &id) +{ + // Q_ASSERT_X(activities().contains(id), "Controller::setCurrentActivity", + // "You can not set an non-existent activity to be the current"); + + // return Manager::activities()->SetCurrentActivity(id); + return Manager::isServiceRunning() ? + DBusFuture::asyncCall( + Manager::activities(), QStringLiteral("SetCurrentActivity"), id) + : + DBusFuture::fromValue(false); +} + +QFuture Controller::addActivity(const QString &name) +{ + Q_ASSERT_X(!name.isEmpty(), "Controller::addActivity", + "The activity name can not be an empty string"); + + // return Manager::activities()->AddActivity(name); + return Manager::isServiceRunning() ? + DBusFuture::asyncCall( + Manager::activities(), QStringLiteral("AddActivity"), name) + : + DBusFuture::fromValue(QString()); +} + +QFuture Controller::removeActivity(const QString &id) +{ + // Q_ASSERT_X(activities().contains(id), "Controller::removeActivity", + // "You can not remove an non-existent activity"); + + // Manager::activities()->RemoveActivity(id); + return Manager::isServiceRunning() ? + DBusFuture::asyncCall( + Manager::activities(), QStringLiteral("RemoveActivity"), id) + : + DBusFuture::fromVoid(); +} + +QFuture Controller::stopActivity(const QString &id) +{ + // Q_ASSERT_X(activities().contains(id), "Controller::stopActivity", + // "You can not stop an non-existent activity"); + + // Manager::activities()->StopActivity(id); + return Manager::isServiceRunning() ? + DBusFuture::asyncCall( + Manager::activities(), QStringLiteral("StopActivity"), id) + : + DBusFuture::fromVoid(); +} + +QFuture Controller::startActivity(const QString &id) +{ + // Q_ASSERT_X(activities().contains(id), "Controller::startActivity", + // "You can not start an non-existent activity"); + + // Manager::activities()->StartActivity(id); + return Manager::isServiceRunning() ? + DBusFuture::asyncCall( + Manager::activities(), QStringLiteral("StartActivity"), id) + : + DBusFuture::fromVoid(); +} + +} // namespace KActivities + +// #include "controller.moc" diff -Nru kactivities-kf5-5.18.0/src/lib/controller.h kactivities-kf5-5.44.0/src/lib/controller.h --- kactivities-kf5-5.18.0/src/lib/controller.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/controller.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2010 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef ACTIVITIES_CONTROLLER_H +#define ACTIVITIES_CONTROLLER_H + +#include +#include +#include +#include + +#include "consumer.h" + +#include "kactivities_export.h" + +namespace KActivities { + +class ControllerPrivate; + +/** + * This class provides methods for controlling and managing + * the activities. + * + * @note The QFuture objects returned by these methods are not thread-based, + * you can not call synchronous methods like waitForFinished, cancel, pause on + * them. You need either to register watchers to check when those have finished, + * or to check whether they are ready from time to time manually. + * + * @see Consumer for info about activities + * + * @since 5.0 + */ +class KACTIVITIES_EXPORT Controller : public Consumer { + Q_OBJECT + + Q_PROPERTY(QString currentActivity READ currentActivity WRITE setCurrentActivity) + +public: + explicit Controller(QObject *parent = nullptr); + + ~Controller(); + + /** + * Sets the name of the specified activity + * @param id id of the activity + * @param name name to be set + */ + QFuture setActivityName(const QString &id, const QString &name); + + /** + * Sets the description of the specified activity + * @param id id of the activity + * @param description description to be set + */ + QFuture setActivityDescription(const QString &id, + const QString &description); + + /** + * Sets the icon of the specified activity + * @param id id of the activity + * @param icon icon to be set - freedesktop.org name or file path + */ + QFuture setActivityIcon(const QString &id, const QString &icon); + + /** + * Sets the current activity + * @param id id of the activity to make current + * @returns true if successful + */ + QFuture setCurrentActivity(const QString &id); + + /** + * Adds a new activity + * @param name name of the activity + * @returns id of the newly created activity + */ + QFuture addActivity(const QString &name); + + /** + * Removes the specified activity + * @param id id of the activity to delete + */ + QFuture removeActivity(const QString &id); + + /** + * Stops the activity + * @param id id of the activity to stop + */ + QFuture stopActivity(const QString &id); + + /** + * Starts the activity + * @param id id of the activity to start + */ + QFuture startActivity(const QString &id); + +private: + // const QScopedPointer d; +}; + +} // namespace KActivities + +#endif // ACTIVITIES_CONTROLLER_H diff -Nru kactivities-kf5-5.18.0/src/lib/core/activitiescache_p.cpp kactivities-kf5-5.44.0/src/lib/core/activitiescache_p.cpp --- kactivities-kf5-5.18.0/src/lib/core/activitiescache_p.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/activitiescache_p.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,290 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "activitiescache_p.h" -#include "manager_p.h" - -#include -#include - -#include - -#include "mainthreadexecutor_p.h" - -namespace KActivities { - -static QString nulluuid = QStringLiteral("00000000-0000-0000-0000-000000000000"); - -using kamd::utils::Mutable; - -std::shared_ptr ActivitiesCache::self() -{ - static std::weak_ptr s_instance; - static std::mutex singleton; - std::lock_guard singleton_lock(singleton); - - auto result = s_instance.lock(); - - if (s_instance.expired()) { - runInMainThread([&result] { - result.reset(new ActivitiesCache()); - s_instance = result; - }); - } - - return result; -} - -ActivitiesCache::ActivitiesCache() - : m_status(Consumer::NotRunning) -{ - // qDebug() << "ActivitiesCache: Creating a new instance"; - using org::kde::ActivityManager::Activities; - - auto activities = Manager::self()->activities(); - - connect(activities, &Activities::ActivityAdded, - this, &ActivitiesCache::updateActivity); - connect(activities, &Activities::ActivityChanged, - this, &ActivitiesCache::updateActivity); - connect(activities, &Activities::ActivityRemoved, - this, &ActivitiesCache::removeActivity); - - connect(activities, &Activities::ActivityStateChanged, - this, &ActivitiesCache::updateActivityState); - connect(activities, &Activities::ActivityNameChanged, - this, &ActivitiesCache::setActivityName); - connect(activities, &Activities::ActivityDescriptionChanged, - this, &ActivitiesCache::setActivityDescription); - connect(activities, &Activities::ActivityIconChanged, - this, &ActivitiesCache::setActivityIcon); - - connect(activities, &Activities::CurrentActivityChanged, - this, &ActivitiesCache::setCurrentActivity); - - connect(Manager::self(), &Manager::serviceStatusChanged, - this, &ActivitiesCache::setServiceStatus); - - // These are covered by ActivityStateChanged - // signal void org.kde.ActivityManager.Activities.ActivityStarted(QString activity) - // signal void org.kde.ActivityManager.Activities.ActivityStopped(QString activity) - - setServiceStatus(Manager::self()->isServiceRunning()); -} - -void ActivitiesCache::setServiceStatus(bool status) -{ - // qDebug() << "Setting service status to:" << status; - loadOfflineDefaults(); - - if (status) { - updateAllActivities(); - } -} - -void ActivitiesCache::loadOfflineDefaults() -{ - m_status = Consumer::NotRunning; - - m_activities.clear(); - m_activities << ActivityInfo(nulluuid, QString(), QString(), QString(), - Info::Running); - m_currentActivity = nulluuid; - - emit serviceStatusChanged(m_status); - emit activityListChanged(); -} - -ActivitiesCache::~ActivitiesCache() -{ - // qDebug() << "ActivitiesCache: Destroying the instance"; -} - -void ActivitiesCache::removeActivity(const QString &id) -{ - // qDebug() << "Removing the activity"; - - auto where = std::lower_bound(m_activities.begin(), m_activities.end(), - ActivityInfo(id)); - - if (where != m_activities.end() && where->id == id) { - m_activities.erase(where); - emit activityRemoved(id); - emit activityListChanged(); - - } else { - // qFatal("Requested to delete an non-existent activity"); - } -} - -void ActivitiesCache::updateAllActivities() -{ - // qDebug() << "Updating all"; - m_status = Consumer::Unknown; - emit serviceStatusChanged(m_status); - - // Loading the current activity - auto call = Manager::self()->activities()->asyncCall( - QStringLiteral("CurrentActivity")); - auto watcher = new QDBusPendingCallWatcher(call, this); - - connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher *)), - this, SLOT(setCurrentActivityFromReply(QDBusPendingCallWatcher *))); - - // Loading all the activities - call = Manager::self()->activities()->asyncCall( - QStringLiteral("ListActivitiesWithInformation")); - watcher = new QDBusPendingCallWatcher(call, this); - - connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher *)), - this, SLOT(setAllActivitiesFromReply(QDBusPendingCallWatcher *))); -} - -void ActivitiesCache::updateActivity(const QString &id) -{ - // qDebug() << "Updating activity" << id; - - auto call = Manager::self()->activities()->asyncCall( - QStringLiteral("ActivityInformation"), id); - auto watcher = new QDBusPendingCallWatcher(call, this); - - connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher *)), - this, SLOT(setActivityInfoFromReply(QDBusPendingCallWatcher *))); -} - -void ActivitiesCache::updateActivityState(const QString &id, int state) -{ - auto where = find(id); - - if (where) { - where->state = state; - - emit activityStateChanged(id, state); - - } else { - // qFatal("Requested to update the state of an non-existent activity"); - } -} - -template -void ActivitiesCache::passInfoFromReply(QDBusPendingCallWatcher *watcher, _Functor f) -{ - QDBusPendingReply<_Result> reply = *watcher; - - if (!reply.isError()) { - auto replyValue = reply.template argumentAt <0>(); - // qDebug() << "Got some reply" << replyValue; - - ((*this).*f)(replyValue); - } - - watcher->deleteLater(); -} - -void ActivitiesCache::setActivityInfoFromReply(QDBusPendingCallWatcher *watcher) -{ - // qDebug() << "reply..."; - passInfoFromReply(watcher, &ActivitiesCache::setActivityInfo); -} - -void ActivitiesCache::setAllActivitiesFromReply(QDBusPendingCallWatcher *watcher) -{ - // qDebug() << "reply..."; - passInfoFromReply(watcher, &ActivitiesCache::setAllActivities); -} - -void ActivitiesCache::setCurrentActivityFromReply(QDBusPendingCallWatcher *watcher) -{ - // qDebug() << "reply..."; - passInfoFromReply(watcher, &ActivitiesCache::setCurrentActivity); -} - -void ActivitiesCache::setActivityInfo(const ActivityInfo &info) -{ - // qDebug() << "Setting activity info" << info.id; - - auto where - = std::lower_bound(m_activities.begin(), m_activities.end(), info); - - if (where == m_activities.end() || where->id != info.id) { - // We haven't found the activity with the specified id. - // This means it is a new activity. - m_activities.insert(where, info); - emit activityAdded(info.id); - emit activityListChanged(); - - } else { - // An existing activity changed - *where = info; - emit activityChanged(info.id); - } -} - -#define CREATE_SETTER(WHAT, What) \ - void ActivitiesCache::setActivity##WHAT(const QString &id, \ - const QString &value) \ - { \ - auto where = find(id); \ - \ - if (where) { \ - where->What = value; \ - emit activity##WHAT##Changed(id, value); \ - } \ - } - -CREATE_SETTER(Name, name) -CREATE_SETTER(Description, description) -CREATE_SETTER(Icon, icon) - -#undef CREATE_SETTER - -void ActivitiesCache::setAllActivities(const ActivityInfoList &_activities) -{ - // qDebug() << "Setting all activities"; - - m_activities.clear(); - - ActivityInfoList activities = _activities; - - qSort(activities.begin(), activities.end()); - - foreach (const ActivityInfo &info, activities) { - m_activities << info; - } - - m_status = Consumer::Running; - emit serviceStatusChanged(m_status); - emit activityListChanged(); -} - -void ActivitiesCache::setCurrentActivity(const QString &activity) -{ - // qDebug() << "Setting current activity to" << activity; - - if (m_currentActivity == activity) { - return; - } - - m_currentActivity = activity; - - emit currentActivityChanged(activity); -} - -} // namespace KActivities - diff -Nru kactivities-kf5-5.18.0/src/lib/core/activitiescache_p.h kactivities-kf5-5.44.0/src/lib/core/activitiescache_p.h --- kactivities-kf5-5.18.0/src/lib/core/activitiescache_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/activitiescache_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_CACHE_P_H -#define ACTIVITIES_CACHE_P_H - -#include - -#include - -#include -#include - -#include "activities_interface.h" -#include "consumer.h" - -namespace KActivities { - -class ActivitiesCache : public QObject { - Q_OBJECT - -public: - static std::shared_ptr self(); - - ~ActivitiesCache(); - -Q_SIGNALS: - void activityAdded(const QString &id); - void activityChanged(const QString &id); - void activityRemoved(const QString &id); - - void activityStateChanged(const QString &id, int state); - void activityNameChanged(const QString &id, const QString &name); - void activityDescriptionChanged(const QString &id, const QString &description); - void activityIconChanged(const QString &id, const QString &icon); - - void currentActivityChanged(const QString &id); - void serviceStatusChanged(Consumer::ServiceStatus status); - void activityListChanged(); - -private Q_SLOTS: - void updateAllActivities(); - void loadOfflineDefaults(); - - void updateActivity(const QString &id); - void updateActivityState(const QString &id, int state); - void removeActivity(const QString &id); - - void setActivityInfoFromReply(QDBusPendingCallWatcher *watcher); - void setAllActivitiesFromReply(QDBusPendingCallWatcher *watcher); - void setCurrentActivityFromReply(QDBusPendingCallWatcher *watcher); - - void setActivityName(const QString &id, const QString &name); - void setActivityDescription(const QString &id, const QString &description); - void setActivityIcon(const QString &id, const QString &icon); - - void setActivityInfo(const ActivityInfo &info); - void setAllActivities(const ActivityInfoList &activities); - void setCurrentActivity(const QString &activity); - - void setServiceStatus(bool status); - -public: - template - void passInfoFromReply(QDBusPendingCallWatcher *watcher, _Functor f); - - template - inline typename kamd::utils::ptr_to::type - find(const ActivityInfo &info) - { - auto where - = std::lower_bound(m_activities.begin(), m_activities.end(), info); - - if (where != m_activities.end() && where->id == info.id) { - return &(*where); - } - - return Q_NULLPTR; - } - - template - inline typename kamd::utils::ptr_to::type - find(const QString &id) - { - return find(ActivityInfo(id)); - } - - ActivitiesCache(); - - QList m_activities; - QString m_currentActivity; - Consumer::ServiceStatus m_status; -}; - -} // namespace KActivities - - -#endif /* ACTIVITIES_CACHE_P_H */ - diff -Nru kactivities-kf5-5.18.0/src/lib/core/CMakeLists.txt kactivities-kf5-5.44.0/src/lib/core/CMakeLists.txt --- kactivities-kf5-5.18.0/src/lib/core/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,157 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -# ======================================================= -# Now that we finished with the boilerplate, start -# with the library definition - -set ( - KActivities_LIB_SRCS - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.cpp - - consumer.cpp - controller.cpp - info.cpp - resourceinstance.cpp - - mainthreadexecutor_p.cpp - manager_p.cpp - activitiescache_p.cpp - debug_p.cpp - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/dbusfuture_p.cpp - - version.cpp - ) - -set_source_files_properties ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.xml - PROPERTIES - INCLUDE ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.h - ) - -qt5_add_dbus_interface ( - KActivities_LIB_SRCS - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.xml - activities_interface - ) - -qt5_add_dbus_interface ( - KActivities_LIB_SRCS - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Resources.xml - resources_interface - ) - -qt5_add_dbus_interface ( - KActivities_LIB_SRCS - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Features.xml - features_interface - ) - -qt5_add_dbus_interface ( - KActivities_LIB_SRCS - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.ResourcesLinking.xml - resources_linking_interface - ) - -qt5_add_dbus_interface ( - KActivities_LIB_SRCS - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Application.xml - application_interface - ) - -add_library ( - KF5Activities SHARED - ${KActivities_LIB_SRCS} - ) -add_library (KF5::Activities ALIAS KF5Activities) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${KDBusAddons_INCLUDE_DIR} - ${Boost_INCLUDE_DIR} - ) - -set_target_properties ( - KF5Activities - PROPERTIES - VERSION ${KACTIVITIES_VERSION_STRING} - SOVERSION ${KACTIVITIES_SOVERSION} - EXPORT_NAME Activities - ) - -target_link_libraries ( - KF5Activities - PUBLIC - Qt5::Core - PRIVATE - Qt5::DBus - KF5::DBusAddons - ) - -target_include_directories ( - KF5Activities - INTERFACE "$" - ) - -# install -generate_export_header (KF5Activities BASE_NAME KActivities) - -ecm_generate_headers ( - KActivities_CamelCase_HEADERS - HEADER_NAMES - Consumer - Controller - Info - ResourceInstance - Version - PREFIX KActivities - REQUIRED_HEADERS KActivities_HEADERS - ) -install ( - FILES ${KActivities_CamelCase_HEADERS} - DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivities/KActivities - COMPONENT Devel - ) - -install ( - FILES ${KActivities_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/kactivities_export.h - DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivities/kactivities - COMPONENT Devel - ) - -install ( - TARGETS KF5Activities - EXPORT KF5ActivitiesLibraryTargets - ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} - ) - - -if (NOT WIN32) - configure_file ( - ${CMAKE_CURRENT_SOURCE_DIR}/libKActivities.pc.cmake - ${CMAKE_CURRENT_BINARY_DIR}/libKActivities.pc - ) - install ( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libKActivities.pc - DESTINATION ${KDE_INSTALL_LIBDIR}/pkgconfig - ) -endif () - -include (ECMGeneratePriFile) -ecm_generate_pri_file ( - BASE_NAME KActivities - LIB_NAME KF5Activities - DEPS "KDBusAddons" - FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivities - ) -install ( - FILES ${PRI_FILENAME} - DESTINATION ${ECM_MKSPECS_INSTALL_DIR} - ) - diff -Nru kactivities-kf5-5.18.0/src/lib/core/consumer.cpp kactivities-kf5-5.44.0/src/lib/core/consumer.cpp --- kactivities-kf5-5.18.0/src/lib/core/consumer.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/consumer.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2010, 2011, 2012 Ivan Cukic - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "consumer.h" -#include "consumer_p.h" -#include "manager_p.h" - -#include "debug_p.h" - -namespace KActivities { - -ConsumerPrivate::ConsumerPrivate() - : cache(ActivitiesCache::self()) -{ -} - -void ConsumerPrivate::setServiceStatus(Consumer::ServiceStatus status) -{ - emit serviceStatusChanged(status); -} - -Consumer::Consumer(QObject *parent) - : QObject(parent) - , d(new ConsumerPrivate()) -{ - connect(d->cache.get(), SIGNAL(currentActivityChanged(QString)), - this, SIGNAL(currentActivityChanged(QString))); - connect(d->cache.get(), SIGNAL(activityAdded(QString)), - this, SIGNAL(activityAdded(QString))); - connect(d->cache.get(), SIGNAL(activityRemoved(QString)), - this, SIGNAL(activityRemoved(QString))); - connect(d->cache.get(), SIGNAL(serviceStatusChanged(Consumer::ServiceStatus)), - this, SIGNAL(serviceStatusChanged(Consumer::ServiceStatus))); - - connect(d->cache.get(), &ActivitiesCache::activityListChanged, - this, [=]() { emit activitiesChanged(activities()); }); - - // connect(d->cache.get(), SIGNAL(activityStateChanged(QString,int)), - // this, SIGNAL(activityStateChanged(QString,int))); -} - -Consumer::~Consumer() -{ - qCDebug(KAMD_CORELIB) << "Killing the consumer"; -} - -QString Consumer::currentActivity() const -{ - return d->cache->m_currentActivity; -} - -QStringList Consumer::activities(Info::State state) const -{ - QStringList result; - - result.reserve(d->cache->m_activities.size()); - - foreach (const auto & info, d->cache->m_activities) { - if (info.state == state) - result << info.id; - } - - return result; -} - -QStringList Consumer::activities() const -{ - QStringList result; - - result.reserve(d->cache->m_activities.size()); - - foreach (const auto & info, d->cache->m_activities) { - result << info.id; - } - - return result; -} - -Consumer::ServiceStatus Consumer::serviceStatus() -{ - return d->cache->m_status; -} - -} // namespace KActivities diff -Nru kactivities-kf5-5.18.0/src/lib/core/consumer.h kactivities-kf5-5.44.0/src/lib/core/consumer.h --- kactivities-kf5-5.18.0/src/lib/core/consumer.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/consumer.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,161 +0,0 @@ -/* - * Copyright (c) 2010, 2011, 2012 Ivan Cukic - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_CONSUMER_H -#define ACTIVITIES_CONSUMER_H - -#include -#include -#include -#include - -#include "info.h" - -#include "kactivities_export.h" - -namespace KActivities { - -class ConsumerPrivate; - -/** - * Contextual information can be, from the user's point of view, divided - * into three aspects - "who am I?", "where am I?" (what are my surroundings?) - * and "what am I doing?". - * - * Activities deal with the last one - "what am I doing?". The current activity - * refers to what the user is doing at the moment, while the other activities - * represent things that he/she was doing before, and probably will be doing - * again. - * - * Activity is an abstract concept whose meaning can differ from one user to - * another. Typical examples of activities are "developing a KDE project", - * "studying the 19th century art", "composing music", "lazing on a Sunday - * afternoon" etc. - * - * Consumer provides read-only information about activities. - * - * Before relying on the values retrieved by the class, make sure that the - * serviceStatus is set to Running. Otherwise, you can get invalid data either - * because the service is not functioning properly (or at all) or because - * the class did not have enough time to synchronize the data with it. - * - * For example, if this is the only existing instance of the Consumer class, - * the listActivities method will return an empty list. - * - * @code - * void someMethod() { - * // Do not copy. This approach is not a good one! - * Consumer c; - * doSomethingWith(c.listActivities()); - * } - * @endcode - * - * Instances of the Consumer class should be long-lived. For example, members - * of the classes that use them, and you should listen for the changes in the - * provided properties. - * - * @since 4.5 - */ -class KACTIVITIES_EXPORT Consumer : public QObject { - Q_OBJECT - - Q_PROPERTY(QString currentActivity READ currentActivity NOTIFY currentActivityChanged) - Q_PROPERTY(QStringList activities READ activities NOTIFY activitiesChanged) - Q_PROPERTY(ServiceStatus serviceStatus READ serviceStatus NOTIFY serviceStatusChanged) - -public: - /** - * Different states of the activities service - */ - enum ServiceStatus { - NotRunning, ///< Service is not running - Unknown, ///< Unable to determine the status of the service - Running ///< Service is running properly - }; - - explicit Consumer(QObject *parent = Q_NULLPTR); - - ~Consumer(); - - /** - * @returns the id of the current activity - * @note Activity ID is a UUID-formatted string. If the serviceStatus - * is not Running, a null UUID is returned. The ID can also be an empty - * string in the case there is no current activity. - */ - QString currentActivity() const; - - /** - * @returns the list of activities filtered by state - * @param state state of the activity - * @note If the serviceStatus is not Running, only a null activity will be - * returned. - */ - QStringList activities(Info::State state) const; - - /** - * @returns the list of all existing activities - * @note If the serviceStatus is not Running, only a null activity will be - * returned. - */ - QStringList activities() const; - - /** - * @returns status of the activities service - */ - ServiceStatus serviceStatus(); - -Q_SIGNALS: - /** - * This signal is emitted when the current activity is changed - * @param id id of the new current activity - */ - void currentActivityChanged(const QString &id); - - /** - * This signal is emitted when the activity service goes online or offline, - * or when the class manages to synchronise the data with the service. - * @param status new status of the service - */ - void serviceStatusChanged(Consumer::ServiceStatus status); - - /** - * This signal is emitted when a new activity is added - * @param id id of the new activity - */ - void activityAdded(const QString &id); - - /** - * This signal is emitted when an activity has been removed - * @param id id of the removed activity - */ - void activityRemoved(const QString &id); - - /** - * This signal is emitted when the activity list changes - * @param activities list of activities - */ - void activitiesChanged(const QStringList & activities); - -private: - const QScopedPointer d; -}; - -} // namespace KActivities - -#endif // ACTIVITIES_CONSUMER_H diff -Nru kactivities-kf5-5.18.0/src/lib/core/consumer_p.h kactivities-kf5-5.44.0/src/lib/core/consumer_p.h --- kactivities-kf5-5.18.0/src/lib/core/consumer_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/consumer_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2010, 2011, 2012, 2013, 2014, 2015 Ivan Cukic - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_CONSUMER_P_H -#define ACTIVITIES_CONSUMER_P_H - -#include "consumer.h" - -#include - -#include - -#include "activitiescache_p.h" - -namespace KActivities { - -class ConsumerPrivate : public QObject { - Q_OBJECT - -public: - ConsumerPrivate(); - - std::shared_ptr cache; - -public Q_SLOTS: - void setServiceStatus(Consumer::ServiceStatus status); - -Q_SIGNALS: - void serviceStatusChanged(Consumer::ServiceStatus status); - -}; - -} // namespace KActivities - -#endif // ACTIVITIES_CONSUMER_P_H diff -Nru kactivities-kf5-5.18.0/src/lib/core/controller.cpp kactivities-kf5-5.44.0/src/lib/core/controller.cpp --- kactivities-kf5-5.18.0/src/lib/core/controller.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/controller.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2010, 2011, 2012 Ivan Cukic - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "controller.h" -#include "consumer_p.h" -#include "manager_p.h" - -#include "utils/dbusfuture_p.h" - -#include - -namespace KActivities { - -Controller::Controller(QObject *parent) - : Consumer(parent) -{ -} - -Controller::~Controller() -{ -} - -#define CREATE_SETTER(What) \ - QFuture Controller::setActivity##What(const QString &id, \ - const QString &value) \ - { \ - return Manager::isServiceRunning() \ - ? DBusFuture::asyncCall( \ - Manager::activities(), \ - QString::fromLatin1("SetActivity" #What), id, value) \ - : DBusFuture::fromVoid(); \ - } - -CREATE_SETTER(Name) -CREATE_SETTER(Description) -CREATE_SETTER(Icon) - -#undef CREATE_SETTER - -QFuture Controller::setCurrentActivity(const QString &id) -{ - // Q_ASSERT_X(activities().contains(id), "Controller::setCurrentActivity", - // "You can not set an non-existent activity to be the current"); - - // return Manager::activities()->SetCurrentActivity(id); - return Manager::isServiceRunning() ? - DBusFuture::asyncCall( - Manager::activities(), QStringLiteral("SetCurrentActivity"), id) - : - DBusFuture::fromValue(false); -} - -QFuture Controller::addActivity(const QString &name) -{ - Q_ASSERT_X(!name.isEmpty(), "Controller::addActivity", - "The activity name can not be an empty string"); - - // return Manager::activities()->AddActivity(name); - return Manager::isServiceRunning() ? - DBusFuture::asyncCall( - Manager::activities(), QStringLiteral("AddActivity"), name) - : - DBusFuture::fromValue(QString()); -} - -QFuture Controller::removeActivity(const QString &id) -{ - // Q_ASSERT_X(activities().contains(id), "Controller::removeActivity", - // "You can not remove an non-existent activity"); - - // Manager::activities()->RemoveActivity(id); - return Manager::isServiceRunning() ? - DBusFuture::asyncCall( - Manager::activities(), QStringLiteral("RemoveActivity"), id) - : - DBusFuture::fromVoid(); -} - -QFuture Controller::stopActivity(const QString &id) -{ - // Q_ASSERT_X(activities().contains(id), "Controller::stopActivity", - // "You can not stop an non-existent activity"); - - // Manager::activities()->StopActivity(id); - return Manager::isServiceRunning() ? - DBusFuture::asyncCall( - Manager::activities(), QStringLiteral("StopActivity"), id) - : - DBusFuture::fromVoid(); -} - -QFuture Controller::startActivity(const QString &id) -{ - // Q_ASSERT_X(activities().contains(id), "Controller::startActivity", - // "You can not start an non-existent activity"); - - // Manager::activities()->StartActivity(id); - return Manager::isServiceRunning() ? - DBusFuture::asyncCall( - Manager::activities(), QStringLiteral("StartActivity"), id) - : - DBusFuture::fromVoid(); -} - -} // namespace KActivities - -// #include "controller.moc" diff -Nru kactivities-kf5-5.18.0/src/lib/core/controller.h kactivities-kf5-5.44.0/src/lib/core/controller.h --- kactivities-kf5-5.18.0/src/lib/core/controller.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/controller.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,118 +0,0 @@ -/* - * Copyright (c) 2010, 2011, 2012 Ivan Cukic - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_CONTROLLER_H -#define ACTIVITIES_CONTROLLER_H - -#include -#include -#include -#include - -#include "consumer.h" - -#include "kactivities_export.h" - -namespace KActivities { - -class ControllerPrivate; - -/** - * This class provides methods for controlling and managing - * the activities. - * - * @note The QFuture objects returned by these methods are not thread-based, - * you can not call synchronous methods like waitForFinished, cancel, pause on - * them. You need either to register watchers to check when those have finished, - * or to check whether they are ready from time to time manually. - * - * @see Consumer for info about activities - * - * @since 5.0 - */ -class KACTIVITIES_EXPORT Controller : public Consumer { - Q_OBJECT - - Q_PROPERTY(QString currentActivity READ currentActivity WRITE setCurrentActivity) - -public: - explicit Controller(QObject *parent = Q_NULLPTR); - - ~Controller(); - - /** - * Sets the name of the specified activity - * @param id id of the activity - * @param name name to be set - */ - QFuture setActivityName(const QString &id, const QString &name); - - /** - * Sets the description of the specified activity - * @param id id of the activity - * @param description description to be set - */ - QFuture setActivityDescription(const QString &id, - const QString &description); - - /** - * Sets the icon of the specified activity - * @param id id of the activity - * @param icon icon to be set - freedesktop.org name or file path - */ - QFuture setActivityIcon(const QString &id, const QString &icon); - - /** - * Sets the current activity - * @param id id of the activity to make current - * @returns true if successful - */ - QFuture setCurrentActivity(const QString &id); - - /** - * Adds a new activity - * @param name name of the activity - * @returns id of the newly created activity - */ - QFuture addActivity(const QString &name); - - /** - * Removes the specified activity - * @param id id of the activity to delete - */ - QFuture removeActivity(const QString &id); - - /** - * Stops the activity - * @param id id of the activity to stop - */ - QFuture stopActivity(const QString &id); - - /** - * Starts the activity - * @param id id of the activity to start - */ - QFuture startActivity(const QString &id); - -private: - // const QScopedPointer d; -}; - -} // namespace KActivities - -#endif // ACTIVITIES_CONTROLLER_H diff -Nru kactivities-kf5-5.18.0/src/lib/core/debug_p.cpp kactivities-kf5-5.44.0/src/lib/core/debug_p.cpp --- kactivities-kf5-5.18.0/src/lib/core/debug_p.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/debug_p.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "debug_p.h" - -#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) -// logging category for this framework, default: log stuff >= warning -Q_LOGGING_CATEGORY(KAMD_CORELIB, "org.kde.kactivities.lib.core", QtWarningMsg) -#else -Q_LOGGING_CATEGORY(KAMD_CORELIB, "org.kde.kactivities.lib.core") -#endif diff -Nru kactivities-kf5-5.18.0/src/lib/core/debug_p.h kactivities-kf5-5.44.0/src/lib/core/debug_p.h --- kactivities-kf5-5.18.0/src/lib/core/debug_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/debug_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_DEBUG_P_H -#define ACTIVITIES_DEBUG_P_H - -#include - -Q_DECLARE_LOGGING_CATEGORY(KAMD_CORELIB) - -#endif /* ACTIVITIES_DEBUG_P_H */ - diff -Nru kactivities-kf5-5.18.0/src/lib/core/info.cpp kactivities-kf5-5.44.0/src/lib/core/info.cpp --- kactivities-kf5-5.18.0/src/lib/core/info.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/info.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,193 +0,0 @@ -/* - * Copyright (c) 2010, 2011, 2012 Ivan Cukic - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "info.h" -#include "info_p.h" -#include "manager_p.h" - -#include "utils/dbusfuture_p.h" - -#include - -namespace KActivities { - -// InfoPrivate - -InfoPrivate::InfoPrivate(Info *info, const QString &activity) - : q(info) - , cache(ActivitiesCache::self()) - , id(activity) -{ -} - -// Filters out signals for only this activity -#define IMPLEMENT_SIGNAL_HANDLER(INTERNAL) \ - void InfoPrivate::INTERNAL(const QString &_id) const \ - { if (id == _id) emit q->INTERNAL(); } - -IMPLEMENT_SIGNAL_HANDLER(added) -IMPLEMENT_SIGNAL_HANDLER(removed) -IMPLEMENT_SIGNAL_HANDLER(started) -IMPLEMENT_SIGNAL_HANDLER(stopped) -IMPLEMENT_SIGNAL_HANDLER(infoChanged) - -#undef IMPLEMENT_SIGNAL_HANDLER - -#define IMPLEMENT_SIGNAL_HANDLER(INTERNAL) \ - void InfoPrivate::INTERNAL##Changed(const QString &_id, \ - const QString &val) const \ - { \ - if (id == _id) { \ - emit q->INTERNAL##Changed(val); \ - } \ - } - -IMPLEMENT_SIGNAL_HANDLER(name) -IMPLEMENT_SIGNAL_HANDLER(description) -IMPLEMENT_SIGNAL_HANDLER(icon) - -#undef IMPLEMENT_SIGNAL_HANDLER - -void InfoPrivate::activityStateChanged(const QString &idChanged, - int newState) const -{ - if (idChanged == id) { - auto state = static_cast(newState); - emit q->stateChanged(state); - - if (state == KActivities::Info::Stopped) { - emit q->stopped(); - } else if (state == KActivities::Info::Running) { - emit q->started(); - } - } -} - -// Info -Info::Info(const QString &activity, QObject *parent) - : QObject(parent) - , d(new InfoPrivate(this, activity)) -{ - // qDebug() << "Created an instance of Info: " << (void*)this; -#define PASS_SIGNAL_HANDLER(SIGNAL_NAME, SLOT_NAME) \ - connect(d->cache.get(), SIGNAL(SIGNAL_NAME(QString)), \ - this, SLOT(SLOT_NAME(QString))); - - PASS_SIGNAL_HANDLER(activityAdded, added) - PASS_SIGNAL_HANDLER(activityRemoved, removed) - // PASS_SIGNAL_HANDLER(started) - // PASS_SIGNAL_HANDLER(stopped) - PASS_SIGNAL_HANDLER(activityChanged, infoChanged) -#undef PASS_SIGNAL_HANDLER - -#define PASS_SIGNAL_HANDLER(SIGNAL_NAME, SLOT_NAME, TYPE) \ - connect(d->cache.get(), SIGNAL(SIGNAL_NAME(QString, TYPE)), \ - this, SLOT(SLOT_NAME(QString, TYPE))); \ - - PASS_SIGNAL_HANDLER(activityStateChanged, activityStateChanged, int); - PASS_SIGNAL_HANDLER(activityNameChanged, nameChanged, QString); - PASS_SIGNAL_HANDLER(activityDescriptionChanged, descriptionChanged, QString); - PASS_SIGNAL_HANDLER(activityIconChanged, iconChanged, QString); -#undef PASS_SIGNAL_HANDLER - -} - -Info::~Info() -{ - // qDebug() << "Deleted an instance of Info: " << (void*)this; -} - -bool Info::isValid() const -{ - auto currentState = state(); - return (currentState != Invalid && currentState != Unknown); -} - -QString Info::uri() const -{ - return QStringLiteral("activities://") + d->id; -} - -QString Info::id() const -{ - return d->id; -} - -Info::State Info::state() const -{ - if (d->cache->m_status == Consumer::Unknown) return Info::Unknown; - - auto info = d->cache->find(d->id); - - if (!info) return Info::Invalid; - - return static_cast (info->state); -} - -void InfoPrivate::setServiceStatus(Consumer::ServiceStatus status) const -{ - switch (status) { - case Consumer::NotRunning: - case Consumer::Unknown: - activityStateChanged(id, Info::Unknown); - break; - - default: - activityStateChanged(id, q->state()); - break; - - } -} - -Info::Availability Info::availability() const -{ - Availability result = Nothing; - - if (!Manager::isServiceRunning()) { - return result; - } - - if (Manager::activities()->ListActivities().value().contains(d->id)) { - result = BasicInfo; - - // TODO: This needs to be changed, test for the new linking feature - if (Manager::features()->IsFeatureOperational(QStringLiteral("resources/linking"))) { - result = Everything; - } - } - - return result; -} - -#define CREATE_GETTER(What) \ - QString Info::What() const \ - { \ - auto info = d->cache->find(d->id); \ - return info ? info->What : QString(); \ - } - -CREATE_GETTER(name) -CREATE_GETTER(description) -CREATE_GETTER(icon) - -#undef CREATE_GETTER - -} // namespace KActivities - -#include "moc_info.cpp" -// #include "moc_info_p.cpp" diff -Nru kactivities-kf5-5.18.0/src/lib/core/info.h kactivities-kf5-5.44.0/src/lib/core/info.h --- kactivities-kf5-5.18.0/src/lib/core/info.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/info.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,235 +0,0 @@ -/* - * Copyright (c) 2010, 2011, 2012 Ivan Cukic - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_INFO_H -#define ACTIVITIES_INFO_H - -#include -#include -#include -#include - -#include "kactivities_export.h" - -namespace KActivities { - -class InfoPrivate; - -/** - * This class provides info about an activity. Most methods in it require a - * semantic backend running to function properly. - * - * This class is not thread-safe. - * - * @see Consumer for info about activities - * - * The API of the class is synchronous, but the most used properties - * are pre-fetched and cached. This means that, in order to get the least - * amount of d-bus related locks, you should declare long-lived instances - * of this class. - * - * Before relying on the values retrieved by the class, make sure that the - * state is not Info::Unknown. You can get invalid data either because the - * service is not functioning properly (or at all) or because the class did - * not have enough time to synchronize the data with it. - * - * For example, if this is the only existing instance of the Info class, the - * name method will return an empty string. - * - * For example, this is wrong (works, but blocks): - * @code - * void someMethod(const QString & activity) { - * // Do not copy. This approach is not a good one! - * Info info(activity); - * doSomethingWith(info.name()); - * } - * @endcode - * - * Instances of the Info class should be long-lived. For example, members - * of the classes that use them, and you should listen for the changes in the - * provided properties. - * - * @since 4.5 - */ -class KACTIVITIES_EXPORT Info : public QObject { - Q_OBJECT - - Q_PROPERTY(QString id READ id) - Q_PROPERTY(QString name READ name NOTIFY nameChanged) - Q_PROPERTY(QString description READ description NOTIFY descriptionChanged) - Q_PROPERTY(QString icon READ icon NOTIFY iconChanged) - Q_PROPERTY(Info::State state READ state NOTIFY stateChanged) - -public: - explicit Info(const QString &activity, QObject *parent = Q_NULLPTR); - ~Info(); - - /** - * @return true if the activity represented by this object exists and is valid - */ - bool isValid() const; - - /** - * Specifies which parts of this class are functional - */ - enum Availability { - Nothing = 0, ///< No activity info provided (isValid is false) - BasicInfo = 1, ///< Basic info is provided - Everything = 2 ///< Everything is available - }; - - /** - * State of the activity - */ - enum State { - Invalid = 0, ///< This activity does not exist - Unknown = 1, ///< Information is not yet retrieved from the service - Running = 2, ///< Activity is running - Starting = 3, ///< Activity is begin started - Stopped = 4, ///< Activity is stopped - Stopping = 5 ///< Activity is begin started - }; - - /** - * @returns what info is provided by this instance of Info - */ - Availability availability() const; - - /** - * @returns the URI of this activity. The same URI is used by activities - * KIO slave. - */ - QString uri() const; - - /** - * @returns the id of the activity - */ - QString id() const; - - /** - * @returns the name of the activity - */ - QString name() const; - - /** - * @returns the description of the activity - */ - QString description() const; - - /** - * @returns the icon of the activity. Icon can be a freedesktop.org name or - * a file path. Or empty if no icon is set. - */ - QString icon() const; - - /** - * @returns the state of the activity - */ - State state() const; - - /** - * Links the specified resource to the activity - * @param resourceUri resource URI - * @note This method is asynchronous. It will return before the - * resource is actually linked to the activity. - */ - // QFuture linkResource(const QString &resourceUri); - - /** - * Unlinks the specified resource from the activity - * @param resourceUri resource URI - * @note This method is asynchronous. It will return before the - * resource is actually unlinked from the activity. - */ - // QFuture unlinkResource(const QString &resourceUri); - - /** - * @returns whether a resource is linked to this activity - * @note This QFuture is not thread-based, you can not call synchronous - * methods like waitForFinished, cancel, pause on it. - * @since 5.0 - */ - // QFuture isResourceLinked(const QString &resourceUri); - -Q_SIGNALS: - /** - * Emitted when the activity's name, icon or some custom property is changed - */ - void infoChanged(); - - /** - * Emitted when the name is changed - */ - void nameChanged(const QString &name); - - /** - * Emitted when the description is changed - */ - void descriptionChanged(const QString &description); - - /** - * Emitted when the icon was changed - */ - void iconChanged(const QString &icon); - - /** - * Emitted when the activity is added - */ - void added(); - - /** - * Emitted when the activity is removed - */ - void removed(); - - /** - * Emitted when the activity is started - */ - void started(); - - /** - * Emitted when the activity is stopped - */ - void stopped(); - - /** - * Emitted when the activity changes state - * @param state new state of the activity - */ - void stateChanged(KActivities::Info::State state); - -private: - const QScopedPointer d; - - Q_PRIVATE_SLOT(d, void activityStateChanged(const QString &, int)) - Q_PRIVATE_SLOT(d, void added(const QString &)) - Q_PRIVATE_SLOT(d, void removed(const QString &)) - Q_PRIVATE_SLOT(d, void started(const QString &)) - Q_PRIVATE_SLOT(d, void stopped(const QString &)) - Q_PRIVATE_SLOT(d, void infoChanged(const QString &)) - Q_PRIVATE_SLOT(d, void nameChanged(const QString &, const QString &)) - Q_PRIVATE_SLOT(d, void descriptionChanged(const QString &, const QString &)) - Q_PRIVATE_SLOT(d, void iconChanged(const QString &, const QString &)) - Q_PRIVATE_SLOT(d, void setServiceStatus(Consumer::ServiceStatus)) - - friend class InfoPrivate; -}; - -} // namespace KActivities - -#endif // ACTIVITIES_INFO_H diff -Nru kactivities-kf5-5.18.0/src/lib/core/info_p.h kactivities-kf5-5.44.0/src/lib/core/info_p.h --- kactivities-kf5-5.18.0/src/lib/core/info_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/info_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2010, 2011, 2012, 2013, 2014, 2015 Ivan Cukic - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License version 2 as published by the Free Software Foundation. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef KACTIVITIESINFO_P_H -#define KACTIVITIESINFO_P_H - -#include "info.h" -#include -#include - -#include "activitiescache_p.h" - -namespace KActivities { - -class InfoPrivate { -public: - InfoPrivate(Info *info, const QString &activity); - - void activityStateChanged(const QString &, int) const; - - void added(const QString &) const; - void removed(const QString &) const; - void started(const QString &) const; - void stopped(const QString &) const; - void infoChanged(const QString &) const; - void nameChanged(const QString &, const QString &) const; - void descriptionChanged(const QString &, const QString &) const; - void iconChanged(const QString &, const QString &) const; - void setServiceStatus(Consumer::ServiceStatus status) const; - - Info *const q; - std::shared_ptr cache; - - const QString id; -}; - -} // namespace KActivities - -#endif // ACTIVITIES_INFO_P_H diff -Nru kactivities-kf5-5.18.0/src/lib/core/libKActivities.pc.cmake kactivities-kf5-5.44.0/src/lib/core/libKActivities.pc.cmake --- kactivities-kf5-5.18.0/src/lib/core/libKActivities.pc.cmake 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/libKActivities.pc.cmake 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -prefix=${CMAKE_INSTALL_PREFIX} -exec_prefix=${BIN_INSTALL_DIR} -libdir=${LIB_INSTALL_DIR} -includedir=${INCLUDE_INSTALL_DIR} - -Name: libKActivities -Description: libKActivities is a C++ library for using KDE activities -URL: http://www.kde.org -Requires: -Version: ${KACTIVITIES_LIB_VERSION_STRING} -Libs: -L${LIB_INSTALL_DIR} -lKF5Activities -Cflags: -I${INCLUDE_INSTALL_DIR} diff -Nru kactivities-kf5-5.18.0/src/lib/core/mainthreadexecutor_p.cpp kactivities-kf5-5.44.0/src/lib/core/mainthreadexecutor_p.cpp --- kactivities-kf5-5.18.0/src/lib/core/mainthreadexecutor_p.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/mainthreadexecutor_p.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "mainthreadexecutor_p.h" - -#include - -#include -#include -#include -#include - -namespace KActivities { - -namespace detail { - -MainThreadExecutor::MainThreadExecutor(std::function &&f) - : m_function(std::forward>(f)) -{ -} - -void MainThreadExecutor::start() -{ - m_function(); - deleteLater(); -} - -} // namespace detail - -void runInMainThread(std::function &&f) -{ - static auto mainThread = QCoreApplication::instance()->thread(); - - if (QThread::currentThread() == mainThread) { - f(); - - } else { - auto executor = new detail::MainThreadExecutor(std::forward>(f)); - - executor->moveToThread(mainThread); - - QMetaObject::invokeMethod(executor, "start", Qt::BlockingQueuedConnection); - } -} - -} // namespace KActivities diff -Nru kactivities-kf5-5.18.0/src/lib/core/mainthreadexecutor_p.h kactivities-kf5-5.44.0/src/lib/core/mainthreadexecutor_p.h --- kactivities-kf5-5.18.0/src/lib/core/mainthreadexecutor_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/mainthreadexecutor_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_MAINTHREADEXECUTOR_P -#define ACTIVITIES_MAINTHREADEXECUTOR_P - -#include - -#include - -namespace KActivities { - -namespace detail { - class MainThreadExecutor: public QObject { - Q_OBJECT - - public: - MainThreadExecutor(std::function &&f); - - Q_INVOKABLE void start(); - - private: - std::function m_function; - }; -} // namespace detail - -void runInMainThread(std::function &&f); - -} // namespace KActivities - -#endif // ACTIVITIES_MAINTHREADEXECUTOR_P diff -Nru kactivities-kf5-5.18.0/src/lib/core/manager_p.cpp kactivities-kf5-5.44.0/src/lib/core/manager_p.cpp --- kactivities-kf5-5.18.0/src/lib/core/manager_p.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/manager_p.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,179 +0,0 @@ -/* - * Copyright (C) 2010, 2011, 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "manager_p.h" - -#include - -#include -#include -#include -#include - -#include "debug_p.h" -#include "mainthreadexecutor_p.h" - -#include "common/dbus/common.h" -#include "utils/dbusfuture_p.h" -#include "utils/continue_with.h" -#include "version.h" - -namespace KActivities { - -Manager *Manager::s_instance = Q_NULLPTR; - -Manager::Manager() - : QObject() - , m_watcher(KAMD_DBUS_SERVICE, QDBusConnection::sessionBus()) - , m_service(new KAMD_DBUS_CLASS_INTERFACE(/, Application, this)) - , m_activities(new KAMD_DBUS_CLASS_INTERFACE(Activities, Activities, this)) - , m_resources(new KAMD_DBUS_CLASS_INTERFACE(Resources, Resources, this)) - , m_resourcesLinking(new KAMD_DBUS_CLASS_INTERFACE(Resources/Linking, ResourcesLinking, this)) - , m_features(new KAMD_DBUS_CLASS_INTERFACE(Features, Features, this)) - , m_serviceRunning(false) -{ - connect(&m_watcher, &QDBusServiceWatcher::serviceOwnerChanged, - this, &Manager::serviceOwnerChanged); - - if (isServiceRunning()) { - serviceOwnerChanged(KAMD_DBUS_SERVICE, QString(), KAMD_DBUS_SERVICE); - } -} - -Manager *Manager::self() -{ - static std::mutex singleton; - std::lock_guard singleton_lock(singleton); - - if (!s_instance) { - - runInMainThread([] () { - // check if the activity manager is already running - if (!Manager::isServiceRunning()) { - - #if defined(QT_DEBUG) - QLoggingCategory::setFilterRules(QStringLiteral("org.kde.kactivities.lib.core.debug=true")); - - qCDebug(KAMD_CORELIB) << "Should we start the daemon?"; - if (!QCoreApplication::instance() - ->property("org.kde.KActivities.core.disableAutostart") - .toBool()) { - qCDebug(KAMD_CORELIB) << "Starting the activity manager daemon"; - QProcess::startDetached(QStringLiteral("kactivitymanagerd")); - } - - #else - QProcess::startDetached(QStringLiteral("kactivitymanagerd")); - #endif - } - - // creating a new instance of the class - Manager::s_instance = new Manager(); - - }); - } - - return s_instance; -} - -bool Manager::isServiceRunning() -{ - return - (s_instance ? s_instance->m_serviceRunning : true) - && QDBusConnection::sessionBus().interface()->isServiceRegistered(KAMD_DBUS_SERVICE); -} - -void Manager::serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner) -{ - Q_UNUSED(oldOwner); - - if (serviceName == KAMD_DBUS_SERVICE) { - m_serviceRunning = !newOwner.isEmpty(); - emit serviceStatusChanged(m_serviceRunning); - - if (m_serviceRunning) { - using namespace kamd::utils; - - continue_with( - DBusFuture::fromReply(m_service->serviceVersion()), - [this] (const optional_view &serviceVersion) { - // Test whether the service is older than the library. - // If it is, we need to end this - - if (!serviceVersion.is_initialized()) { - qWarning() << "KActivities: FATAL ERROR: Failed to contact the activity manager daemon"; - m_serviceRunning = false; - return; - } - - auto split = serviceVersion->split('.'); - QList version; - - const int requiredVersion[] = { - KACTIVITIES_VERSION_MAJOR, - KACTIVITIES_VERSION_MINOR, - KACTIVITIES_VERSION_RELEASE - }; - - std::transform( - split.cbegin(), split.cend(), - std::back_inserter(version), [] (const QString &component) { - return component.toInt(); - }); - - // if required version is greater than the current version - if (std::lexicographical_compare( - version.cbegin(), version.cend(), - std::begin(requiredVersion), std::end(requiredVersion) - )) { - QString libraryVersion = QString::number(requiredVersion[0]) + '.' - + QString::number(requiredVersion[1]) + '.' - + QString::number(requiredVersion[2]); - - qDebug() << "KActivities service version: " << serviceVersion.get(); - qDebug() << "KActivities library version: " << libraryVersion; - qFatal("KActivities: FATAL ERROR: The service is older than the library"); - - } - }); - } - } -} - -Service::Activities *Manager::activities() -{ - return self()->m_activities; -} - -Service::Resources *Manager::resources() -{ - return self()->m_resources; -} - -Service::ResourcesLinking *Manager::resourcesLinking() -{ - return self()->m_resourcesLinking; -} - -Service::Features *Manager::features() -{ - return self()->m_features; -} - -} // namespace KActivities diff -Nru kactivities-kf5-5.18.0/src/lib/core/manager_p.h kactivities-kf5-5.44.0/src/lib/core/manager_p.h --- kactivities-kf5-5.18.0/src/lib/core/manager_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/manager_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2010, 2011, 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_MANAGER_P -#define ACTIVITIES_MANAGER_P - -#include - -#include "application_interface.h" -#include "activities_interface.h" -#include "resources_interface.h" -#include "resources_linking_interface.h" -#include "features_interface.h" - -#include - -namespace Service = org::kde::ActivityManager; - -namespace KActivities { - -class Manager : public QObject { - Q_OBJECT - -public: - static Manager *self(); - - static bool isServiceRunning(); - - static Service::Activities *activities(); - static Service::Resources *resources(); - static Service::ResourcesLinking *resourcesLinking(); - static Service::Features *features(); - -public Q_SLOTS: - void serviceOwnerChanged(const QString &serviceName, - const QString &oldOwner, const QString &newOwner); - -Q_SIGNALS: - void serviceStatusChanged(bool status); - -private: - Manager(); - - QDBusServiceWatcher m_watcher; - - static Manager *s_instance; - - Service::Application *const m_service; - Service::Activities *const m_activities; - Service::Resources *const m_resources; - Service::ResourcesLinking *const m_resourcesLinking; - Service::Features *const m_features; - bool m_serviceRunning; - - friend class ManagerInstantiator; -}; - -} // namespace KActivities - -#endif // ACTIVITIES_MANAGER_P diff -Nru kactivities-kf5-5.18.0/src/lib/core/resourceinstance.cpp kactivities-kf5-5.44.0/src/lib/core/resourceinstance.cpp --- kactivities-kf5-5.18.0/src/lib/core/resourceinstance.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/resourceinstance.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,190 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "resourceinstance.h" -#include "manager_p.h" - -#include -#include "debug_p.h" - -namespace KActivities { - -class ResourceInstancePrivate { -public: - quintptr wid; - QUrl uri; - QString mimetype; - QString title; - QString application; - - void closeResource(); - void openResource(); - - enum Type { - Accessed = 0, - Opened = 1, - Modified = 2, - Closed = 3, - FocusedIn = 4, - FocusedOut = 5 - }; - - static void registerResourceEvent(const QString &application, quintptr wid, const QUrl &uri, Type event) - { - Q_ASSERT_X(!application.isEmpty(), "ResourceInstance::event", - "The application id must not be empty"); - - if (uri.isEmpty()) { - return; - } - - Manager::resources()->RegisterResourceEvent(application, wid, uri.toString(), uint(event)); - } -}; - -void ResourceInstancePrivate::closeResource() -{ - registerResourceEvent(application, wid, uri, Closed); -} - -void ResourceInstancePrivate::openResource() -{ - registerResourceEvent(application, wid, uri, Opened); -} - -ResourceInstance::ResourceInstance(quintptr wid, QObject *parent) - : QObject(parent) - , d(new ResourceInstancePrivate()) -{ - qCDebug(KAMD_CORELIB) << "Creating ResourceInstance: empty for now"; - d->wid = wid; - d->application = QCoreApplication::instance()->applicationName(); -} - -ResourceInstance::ResourceInstance(quintptr wid, const QString &application, QObject *parent) - : QObject(parent) - , d(new ResourceInstancePrivate()) -{ - qCDebug(KAMD_CORELIB) << "Creating ResourceInstance: empty for now"; - d->wid = wid; - d->application = application.isEmpty() ? QCoreApplication::instance()->applicationName() : application; -} - -ResourceInstance::ResourceInstance(quintptr wid, QUrl resourceUri, const QString &mimetype, - const QString &title, const QString &application, QObject *parent) - : QObject(parent) - , d(new ResourceInstancePrivate()) -{ - qCDebug(KAMD_CORELIB) << "Creating ResourceInstance: " << resourceUri; - d->wid = wid; - d->uri = resourceUri; - d->application = application.isEmpty() ? QCoreApplication::instance()->applicationName() : application; - - d->openResource(); - - setTitle(title); - setMimetype(mimetype); -} - -ResourceInstance::~ResourceInstance() -{ - d->closeResource(); -} - -void ResourceInstance::notifyModified() -{ - d->registerResourceEvent(d->application, d->wid, d->uri, ResourceInstancePrivate::Modified); -} - -void ResourceInstance::notifyFocusedIn() -{ - d->registerResourceEvent(d->application, d->wid, d->uri, ResourceInstancePrivate::FocusedIn); -} - -void ResourceInstance::notifyFocusedOut() -{ - d->registerResourceEvent(d->application, d->wid, d->uri, ResourceInstancePrivate::FocusedOut); -} - -void ResourceInstance::setUri(const QUrl &newUri) -{ - if (d->uri == newUri) { - return; - } - - if (!d->uri.isEmpty()) { - d->closeResource(); - } - - d->uri = newUri; - - d->openResource(); -} - -void ResourceInstance::setMimetype(const QString &mimetype) -{ - if (mimetype.isEmpty()) { - return; - } - - d->mimetype = mimetype; - // TODO: update the service info - Manager::resources()->RegisterResourceMimetype(d->uri.toString(), mimetype); -} - -void ResourceInstance::setTitle(const QString &title) -{ - qCDebug(KAMD_CORELIB) << "Setting the title: " << title; - if (title.isEmpty()) { - return; - } - - d->title = title; - // TODO: update the service info - Manager::resources()->RegisterResourceTitle(d->uri.toString(), title); -} - -QUrl ResourceInstance::uri() const -{ - return d->uri; -} - -QString ResourceInstance::mimetype() const -{ - return d->mimetype; -} - -QString ResourceInstance::title() const -{ - return d->title; -} - -quintptr ResourceInstance::winId() const -{ - return d->wid; -} - -void ResourceInstance::notifyAccessed(const QUrl &uri, const QString &application) -{ - ResourceInstancePrivate::registerResourceEvent( - application.isEmpty() ? QCoreApplication::instance()->applicationName() : application, - 0, uri, ResourceInstancePrivate::Accessed); -} - -} // namespace KActivities diff -Nru kactivities-kf5-5.18.0/src/lib/core/resourceinstance.h kactivities-kf5-5.44.0/src/lib/core/resourceinstance.h --- kactivities-kf5-5.18.0/src/lib/core/resourceinstance.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/resourceinstance.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,201 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_RESOURCEINSTANCE_H -#define ACTIVITIES_RESOURCEINSTANCE_H - -#include -#include - -#include "kactivities_export.h" - -namespace KActivities { - -class ResourceInstancePrivate; - -/** - * This class is used to notify the system that a file, web page - * or some other resource has been accessed. - * - * It provides methods to notify the system when the resource was - * opened, modified and closed, along with in what window the - * resource is shown. - * - * You should create an instance of this class for every resource - * you open. - * - * "The system" in this case can be the backend for tracking - * and automatically scoring files that are being accessed, the - * system to show the open files per window in the taskbar, - * the share-like-connect, etc. - * - * The user of this class shouldn't care about the backend - * systems - everything is done under-the-hood automatically. - * - */ -class KACTIVITIES_EXPORT ResourceInstance : public QObject { - Q_OBJECT - - Q_PROPERTY(QUrl uri READ uri WRITE setUri) - Q_PROPERTY(QString mimetype READ mimetype WRITE setMimetype) - Q_PROPERTY(QString title READ title WRITE setTitle) - Q_PROPERTY(quintptr winId READ winId) - -public: - /** - * Creates a new resource instance - * @param wid id of the window that will show the resource - * @param parent pointer to the parent object - * @since 4.10 - */ - explicit ResourceInstance(quintptr wid, QObject *parent = Q_NULLPTR); - - /** - * Creates a new resource instance - * @param wid id of the window that will show the resource - * @param application application's name (the name used for the .desktop file). - * If not specified, QCoreApplication::applicationName is used - * @param parent pointer to the parent object - */ - explicit ResourceInstance(quintptr wid, const QString &application, QObject *parent = Q_NULLPTR); - - /** - * Creates a new resource instance and automatically - * notifies the system that it was opened. - * - * In some special cases, where the URI of the resource is - * being constantly changed (for example, in the world globe, - * street map applications) you have two options: - * - to pass an empty resourceUri while passing the mimetype - * - to update the uri from time to time (in the example of - * the world map - to send URIs for major objects - cities - * or main streets. - * and in both cases reimplementing the currentUri() method - * which will return the exact URI shown at that specific moment. - * - * @param wid window id in which the resource is shown - * @param resourceUri URI of the resource that is shown - * @param mimetype the mime type of the resource - * @param title the title of the resource - * @param application application's name (the name used for the .desktop file). - * If not specified, QCoreApplication::applicationName is used - * @param parent pointer to the parent object - */ - ResourceInstance(quintptr wid, QUrl resourceUri, const QString &mimetype = QString(), - const QString &title = QString(), const QString &application = QString(), - QObject *parent = Q_NULLPTR); - - /** - * Destroys the ResourceInstance and notifies the system - * that the resource has been closed - */ - ~ResourceInstance(); - -public Q_SLOTS: - /** - * Call this method to notify the system that you modified - * (the contents of) the resource - */ - void notifyModified(); - - /** - * Call this method to notify the system that the resource - * has the focus in your application - * @note You only need to call this in MDI applications - */ - void notifyFocusedIn(); - - /** - * Call this method to notify the system that the resource - * lost the focus in your application - * @note You only need to call this in MDI applications - */ - void notifyFocusedOut(); - - /** - * This is a convenience method that sets the new URI. - * This is usually handled by sending the close event for - * the previous URI, and an open event for the new one. - */ - void setUri(const QUrl &newUri); - - /** - * Sets the mimetype for this resource - */ - void setMimetype(const QString &mimetype); - - /** - * Sets the title for this resource - */ - void setTitle(const QString &title); - -Q_SIGNALS: - /** - * Emitted when the system wants to show the resource - * represented by this ResourceInstance. - * - * You should listen to this signal if you have multiple - * resources shown in one window (MDI). On catching it, show - * the resource and give it focus. - */ - void requestsFocus(); - -public: - /** - * @returns the current uri - * The default implementation returns the URI that was passed - * to the constructor. - * You need to reimplement it only for the applications with - * frequently updated URIs. - */ - virtual QUrl uri() const; - - /** - * @returns mimetype of the resource - */ - QString mimetype() const; - - /** - * @returns title of the resource - */ - QString title() const; - - /** - * @returns the window id - */ - quintptr winId() const; - - /** - * If there's no way to tell for how long an application is keeping - * the resource open, you can just call this static method - it - * will notify the system that the application has accessed the - * resource - * @param uri URI of the resource - * @param application application's name (the name used for the .desktop file). - * If not specified, QCoreApplication::applicationName is used - * - */ - static void notifyAccessed(const QUrl &uri, const QString &application = QString()); - -private: - const QScopedPointer d; -}; -} - -#endif // ACTIVITIES_RESOURCEINSTANCE_H diff -Nru kactivities-kf5-5.18.0/src/lib/core/version.cpp kactivities-kf5-5.44.0/src/lib/core/version.cpp --- kactivities-kf5-5.18.0/src/lib/core/version.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/version.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -/* - * Copyright 2008 by Aaron Seigo - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "version.h" - -namespace KActivities { - -unsigned int version() -{ - return KACTIVITIES_VERSION; -} - -unsigned int versionMajor() -{ - return KACTIVITIES_VERSION_MAJOR; -} - -unsigned int versionMinor() -{ - return KACTIVITIES_VERSION_MINOR; -} - -unsigned int versionRelease() -{ - return KACTIVITIES_VERSION_RELEASE; -} - -const char *versionString() -{ - return KACTIVITIES_VERSION_STRING; -} - -} // KActivities namespace diff -Nru kactivities-kf5-5.18.0/src/lib/core/version.h kactivities-kf5-5.44.0/src/lib/core/version.h --- kactivities-kf5-5.18.0/src/lib/core/version.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/core/version.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,92 +0,0 @@ -/* - * Copyright 2008 by Aaron Seigo - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KACTIVITIES_VERSION_H -#define KACTIVITIES_VERSION_H - -/** @file version.h */ - -#include "kactivities_export.h" - -/** - * String version of libkactivities version, suitable for use in - * file formats or network protocols - */ -#define KACTIVITIES_VERSION_STRING \ - "6.2.0" - -/// @brief Major version of libkactivities, at compile time -#define KACTIVITIES_VERSION_MAJOR \ - 6 -/// @brief Minor version of libkactivities, at compile time -#define KACTIVITIES_VERSION_MINOR \ - 2 -/// @brief Release version of libkactivities, at compile time -#define KACTIVITIES_VERSION_RELEASE \ - 0 - -#define KACTIVITIES_MAKE_VERSION(a, b, c) \ - (((a) << 16) | ((b) << 8) | (c)) - -/** - * Compile time macro for the version number of libkactivities - */ -#define KACTIVITIES_VERSION \ - KACTIVITIES_MAKE_VERSION(KACTIVITIES_VERSION_MAJOR, KACTIVITIES_VERSION_MINOR, KACTIVITIES_VERSION_RELEASE) - -/** - * Compile-time macro for checking the kactivities version. Not useful for - * detecting the version of libkactivities at runtime. - */ -#define KACTIVITIES_IS_VERSION(a, b, c) \ - (KACTIVITIES_VERSION >= KACTIVITIES_MAKE_VERSION(a, b, c)) - -/** - * Namespace for everything in libkactivities - */ -namespace KActivities { - -/** - * The runtime version of libkactivities - */ -KACTIVITIES_EXPORT unsigned int version(); - -/** - * The runtime major version of libkactivities - */ -KACTIVITIES_EXPORT unsigned int versionMajor(); - -/** - * The runtime major version of libkactivities - */ -KACTIVITIES_EXPORT unsigned int versionMinor(); - -/** - * The runtime major version of libkactivities - */ -KACTIVITIES_EXPORT unsigned int versionRelease(); - -/** - * The runtime version string of libkactivities - */ -KACTIVITIES_EXPORT const char *versionString(); - -} // KActivities namespace - -#endif // multiple inclusion guard diff -Nru kactivities-kf5-5.18.0/src/lib/debug_p.cpp kactivities-kf5-5.44.0/src/lib/debug_p.cpp --- kactivities-kf5-5.18.0/src/lib/debug_p.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/debug_p.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2013 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#include "debug_p.h" + +// logging category for this framework, default: log stuff >= warning +Q_LOGGING_CATEGORY(KAMD_CORELIB, "org.kde.kactivities.lib.core", QtWarningMsg) diff -Nru kactivities-kf5-5.18.0/src/lib/debug_p.h kactivities-kf5-5.44.0/src/lib/debug_p.h --- kactivities-kf5-5.18.0/src/lib/debug_p.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/debug_p.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2013 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef ACTIVITIES_DEBUG_P_H +#define ACTIVITIES_DEBUG_P_H + +#include + +Q_DECLARE_LOGGING_CATEGORY(KAMD_CORELIB) + +#endif /* ACTIVITIES_DEBUG_P_H */ + diff -Nru kactivities-kf5-5.18.0/src/lib/info.cpp kactivities-kf5-5.44.0/src/lib/info.cpp --- kactivities-kf5-5.18.0/src/lib/info.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/info.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,221 @@ +/* + * Copyright (C) 2010 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#include "info.h" +#include "info_p.h" +#include "manager_p.h" + +#include "utils/dbusfuture_p.h" + +#include + +namespace KActivities { + +// InfoPrivate + +InfoPrivate::InfoPrivate(Info *info, const QString &activity) + : q(info) + , cache(ActivitiesCache::self()) + , id(activity) +{ +} + +// Filters out signals for only this activity +#define IMPLEMENT_SIGNAL_HANDLER(INTERNAL) \ + void InfoPrivate::INTERNAL(const QString &_id) const \ + { if (id == _id) emit q->INTERNAL(); } + +IMPLEMENT_SIGNAL_HANDLER(added) +IMPLEMENT_SIGNAL_HANDLER(removed) +IMPLEMENT_SIGNAL_HANDLER(started) +IMPLEMENT_SIGNAL_HANDLER(stopped) +IMPLEMENT_SIGNAL_HANDLER(infoChanged) + +#undef IMPLEMENT_SIGNAL_HANDLER + +#define IMPLEMENT_SIGNAL_HANDLER(INTERNAL) \ + void InfoPrivate::INTERNAL##Changed(const QString &_id, \ + const QString &val) const \ + { \ + if (id == _id) { \ + emit q->INTERNAL##Changed(val); \ + } \ + } + +IMPLEMENT_SIGNAL_HANDLER(name) +IMPLEMENT_SIGNAL_HANDLER(description) +IMPLEMENT_SIGNAL_HANDLER(icon) + +#undef IMPLEMENT_SIGNAL_HANDLER + +void InfoPrivate::activityStateChanged(const QString &idChanged, + int newState) const +{ + if (idChanged == id) { + auto state = static_cast(newState); + emit q->stateChanged(state); + + if (state == KActivities::Info::Stopped) { + emit q->stopped(); + } else if (state == KActivities::Info::Running) { + emit q->started(); + } + } +} + +void InfoPrivate::setCurrentActivity(const QString ¤tActivity) +{ + if (isCurrent) { + if (currentActivity != id) { + // We are no longer the current activity + isCurrent = false; + emit q->isCurrentChanged(false); + } + } else { + if (currentActivity == id) { + // We are the current activity + isCurrent = true; + emit q->isCurrentChanged(true); + } + } +} + +// Info +Info::Info(const QString &activity, QObject *parent) + : QObject(parent) + , d(new InfoPrivate(this, activity)) +{ + // qDebug() << "Created an instance of Info: " << (void*)this; +#define PASS_SIGNAL_HANDLER(SIGNAL_NAME, SLOT_NAME) \ + connect(d->cache.get(), SIGNAL(SIGNAL_NAME(QString)), \ + this, SLOT(SLOT_NAME(QString))); + + PASS_SIGNAL_HANDLER(activityAdded, added) + PASS_SIGNAL_HANDLER(activityRemoved, removed) + // PASS_SIGNAL_HANDLER(started) + // PASS_SIGNAL_HANDLER(stopped) + PASS_SIGNAL_HANDLER(activityChanged, infoChanged) +#undef PASS_SIGNAL_HANDLER + +#define PASS_SIGNAL_HANDLER(SIGNAL_NAME, SLOT_NAME, TYPE) \ + connect(d->cache.get(), SIGNAL(SIGNAL_NAME(QString, TYPE)), \ + this, SLOT(SLOT_NAME(QString, TYPE))); \ + + PASS_SIGNAL_HANDLER(activityStateChanged, activityStateChanged, int); + PASS_SIGNAL_HANDLER(activityNameChanged, nameChanged, QString); + PASS_SIGNAL_HANDLER(activityDescriptionChanged, descriptionChanged, QString); + PASS_SIGNAL_HANDLER(activityIconChanged, iconChanged, QString); +#undef PASS_SIGNAL_HANDLER + + connect(d->cache.get(), SIGNAL(currentActivityChanged(QString)), + this, SLOT(setCurrentActivity(QString))); + + d->isCurrent = (d->cache.get()->m_currentActivity == activity); +} + +Info::~Info() +{ + // qDebug() << "Deleted an instance of Info: " << (void*)this; +} + +bool Info::isValid() const +{ + auto currentState = state(); + return (currentState != Invalid && currentState != Unknown); +} + +QString Info::uri() const +{ + return QStringLiteral("activities://") + d->id; +} + +QString Info::id() const +{ + return d->id; +} + +bool Info::isCurrent() const +{ + return d->isCurrent; +} + +Info::State Info::state() const +{ + if (d->cache->m_status == Consumer::Unknown) return Info::Unknown; + + auto info = d->cache->getInfo(d->id); + + if (!info) return Info::Invalid; + + return static_cast (info->state); +} + +void InfoPrivate::setServiceStatus(Consumer::ServiceStatus status) const +{ + switch (status) { + case Consumer::NotRunning: + case Consumer::Unknown: + activityStateChanged(id, Info::Unknown); + break; + + default: + activityStateChanged(id, q->state()); + break; + + } +} + +Info::Availability Info::availability() const +{ + Availability result = Nothing; + + if (!Manager::isServiceRunning()) { + return result; + } + + if (Manager::activities()->ListActivities().value().contains(d->id)) { + result = BasicInfo; + + if (Manager::features()->IsFeatureOperational(QStringLiteral("resources/linking"))) { + result = Everything; + } + } + + return result; +} + +#define CREATE_GETTER(What) \ + QString Info::What() const \ + { \ + auto info = d->cache->getInfo(d->id); \ + return info ? info->What : QString(); \ + } + +CREATE_GETTER(name) +CREATE_GETTER(description) +CREATE_GETTER(icon) + +#undef CREATE_GETTER + +} // namespace KActivities + +#include "moc_info.cpp" +// #include "moc_info_p.cpp" diff -Nru kactivities-kf5-5.18.0/src/lib/info.h kactivities-kf5-5.44.0/src/lib/info.h --- kactivities-kf5-5.18.0/src/lib/info.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/info.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,251 @@ +/* + * Copyright (C) 2010 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef ACTIVITIES_INFO_H +#define ACTIVITIES_INFO_H + +#include +#include +#include +#include + +#include "kactivities_export.h" + +namespace KActivities { + +class InfoPrivate; + +/** + * This class provides info about an activity. Most methods in it require a + * semantic backend running to function properly. + * + * This class is not thread-safe. + * + * @see Consumer for info about activities + * + * The API of the class is synchronous, but the most used properties + * are pre-fetched and cached. This means that, in order to get the least + * amount of d-bus related locks, you should declare long-lived instances + * of this class. + * + * Before relying on the values retrieved by the class, make sure that the + * state is not Info::Unknown. You can get invalid data either because the + * service is not functioning properly (or at all) or because the class did + * not have enough time to synchronize the data with it. + * + * For example, if this is the only existing instance of the Info class, the + * name method will return an empty string. + * + * For example, this is wrong (works, but blocks): + * @code + * void someMethod(const QString & activity) { + * // Do not copy. This approach is not a good one! + * Info info(activity); + * doSomethingWith(info.name()); + * } + * @endcode + * + * Instances of the Info class should be long-lived. For example, members + * of the classes that use them, and you should listen for the changes in the + * provided properties. + * + * @since 4.5 + */ +class KACTIVITIES_EXPORT Info : public QObject { + Q_OBJECT + + Q_PROPERTY(QString id READ id) + Q_PROPERTY(QString name READ name NOTIFY nameChanged) + Q_PROPERTY(QString description READ description NOTIFY descriptionChanged) + Q_PROPERTY(QString icon READ icon NOTIFY iconChanged) + Q_PROPERTY(bool isCurrent READ isCurrent NOTIFY isCurrentChanged) + Q_PROPERTY(Info::State state READ state NOTIFY stateChanged) + +public: + explicit Info(const QString &activity, QObject *parent = nullptr); + ~Info(); + + /** + * @return true if the activity represented by this object exists and is valid + */ + bool isValid() const; + + /** + * Specifies which parts of this class are functional + */ + enum Availability { + Nothing = 0, ///< No activity info provided (isValid is false) + BasicInfo = 1, ///< Basic info is provided + Everything = 2 ///< Everything is available + }; + + /** + * State of the activity + */ + enum State { + Invalid = 0, ///< This activity does not exist + Unknown = 1, ///< Information is not yet retrieved from the service + Running = 2, ///< Activity is running + Starting = 3, ///< Activity is begin started + Stopped = 4, ///< Activity is stopped + Stopping = 5 ///< Activity is begin started + }; + + /** + * @returns what info is provided by this instance of Info + */ + Availability availability() const; + + /** + * @returns the URI of this activity. The same URI is used by activities + * KIO slave. + */ + QString uri() const; + + /** + * @returns the id of the activity + */ + QString id() const; + + /** + * @returns whether this activity is the current one + */ + bool isCurrent() const; + + /** + * @returns the name of the activity + */ + QString name() const; + + /** + * @returns the description of the activity + */ + QString description() const; + + /** + * @returns the icon of the activity. Icon can be a freedesktop.org name or + * a file path. Or empty if no icon is set. + */ + QString icon() const; + + /** + * @returns the state of the activity + */ + State state() const; + + /** + * Links the specified resource to the activity + * @param resourceUri resource URI + * @note This method is asynchronous. It will return before the + * resource is actually linked to the activity. + */ + // QFuture linkResource(const QString &resourceUri); + + /** + * Unlinks the specified resource from the activity + * @param resourceUri resource URI + * @note This method is asynchronous. It will return before the + * resource is actually unlinked from the activity. + */ + // QFuture unlinkResource(const QString &resourceUri); + + /** + * @returns whether a resource is linked to this activity + * @note This QFuture is not thread-based, you can not call synchronous + * methods like waitForFinished, cancel, pause on it. + * @since 5.0 + */ + // QFuture isResourceLinked(const QString &resourceUri); + +Q_SIGNALS: + /** + * Emitted when the activity's name, icon or some custom property is changed + */ + void infoChanged(); + + /** + * Emitted when the name is changed + */ + void nameChanged(const QString &name); + + /** + * Emitted when the activity becomes the current one, or when it stops + * being the current one + */ + void isCurrentChanged(bool current); + + /** + * Emitted when the description is changed + */ + void descriptionChanged(const QString &description); + + /** + * Emitted when the icon was changed + */ + void iconChanged(const QString &icon); + + /** + * Emitted when the activity is added + */ + void added(); + + /** + * Emitted when the activity is removed + */ + void removed(); + + /** + * Emitted when the activity is started + */ + void started(); + + /** + * Emitted when the activity is stopped + */ + void stopped(); + + /** + * Emitted when the activity changes state + * @param state new state of the activity + */ + void stateChanged(KActivities::Info::State state); + +private: + const QScopedPointer d; + + Q_PRIVATE_SLOT(d, void activityStateChanged(const QString &, int)) + Q_PRIVATE_SLOT(d, void added(const QString &)) + Q_PRIVATE_SLOT(d, void removed(const QString &)) + Q_PRIVATE_SLOT(d, void started(const QString &)) + Q_PRIVATE_SLOT(d, void stopped(const QString &)) + Q_PRIVATE_SLOT(d, void infoChanged(const QString &)) + Q_PRIVATE_SLOT(d, void nameChanged(const QString &, const QString &)) + Q_PRIVATE_SLOT(d, void descriptionChanged(const QString &, const QString &)) + Q_PRIVATE_SLOT(d, void iconChanged(const QString &, const QString &)) + Q_PRIVATE_SLOT(d, void setServiceStatus(Consumer::ServiceStatus)) + Q_PRIVATE_SLOT(d, void setCurrentActivity(const QString &)) + + friend class InfoPrivate; +}; + +} // namespace KActivities + +#endif // ACTIVITIES_INFO_H diff -Nru kactivities-kf5-5.18.0/src/lib/info_p.h kactivities-kf5-5.44.0/src/lib/info_p.h --- kactivities-kf5-5.18.0/src/lib/info_p.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/info_p.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2010 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef KACTIVITIESINFO_P_H +#define KACTIVITIESINFO_P_H + +#include "info.h" +#include +#include + +#include "activitiescache_p.h" + +namespace KActivities { + +class InfoPrivate { +public: + InfoPrivate(Info *info, const QString &activity); + + void activityStateChanged(const QString &, int) const; + + void added(const QString &) const; + void removed(const QString &) const; + void started(const QString &) const; + void stopped(const QString &) const; + void infoChanged(const QString &) const; + void nameChanged(const QString &, const QString &) const; + void descriptionChanged(const QString &, const QString &) const; + void iconChanged(const QString &, const QString &) const; + void setServiceStatus(Consumer::ServiceStatus status) const; + void setCurrentActivity(const QString ¤tActivity); + + Info *const q; + std::shared_ptr cache; + bool isCurrent; + + const QString id; +}; + +} // namespace KActivities + +#endif // ACTIVITIES_INFO_P_H diff -Nru kactivities-kf5-5.18.0/src/lib/libKActivities.pc.cmake kactivities-kf5-5.44.0/src/lib/libKActivities.pc.cmake --- kactivities-kf5-5.18.0/src/lib/libKActivities.pc.cmake 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/libKActivities.pc.cmake 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,12 @@ +prefix=${CMAKE_INSTALL_PREFIX} +exec_prefix=${BIN_INSTALL_DIR} +libdir=${LIB_INSTALL_DIR} +includedir=${INCLUDE_INSTALL_DIR} + +Name: libKActivities +Description: libKActivities is a C++ library for using KDE activities +URL: http://www.kde.org +Requires: Qt5Core +Version: ${KACTIVITIES_LIB_VERSION_STRING} +Libs: -L${LIB_INSTALL_DIR} -lKF5Activities +Cflags: -I${INCLUDE_INSTALL_DIR} diff -Nru kactivities-kf5-5.18.0/src/lib/mainthreadexecutor_p.cpp kactivities-kf5-5.44.0/src/lib/mainthreadexecutor_p.cpp --- kactivities-kf5-5.18.0/src/lib/mainthreadexecutor_p.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/mainthreadexecutor_p.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2014 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#include "mainthreadexecutor_p.h" + +#include + +#include +#include +#include +#include + +namespace KActivities { + +namespace detail { + +MainThreadExecutor::MainThreadExecutor(std::function &&f) + : m_function(std::forward>(f)) +{ +} + +void MainThreadExecutor::start() +{ + m_function(); + deleteLater(); +} + +} // namespace detail + +void runInMainThread(std::function &&f) +{ + static auto mainThread = QCoreApplication::instance()->thread(); + + if (QThread::currentThread() == mainThread) { + f(); + + } else { + auto executor = new detail::MainThreadExecutor(std::forward>(f)); + + executor->moveToThread(mainThread); + + QMetaObject::invokeMethod(executor, "start", Qt::BlockingQueuedConnection); + } +} + +} // namespace KActivities diff -Nru kactivities-kf5-5.18.0/src/lib/mainthreadexecutor_p.h kactivities-kf5-5.44.0/src/lib/mainthreadexecutor_p.h --- kactivities-kf5-5.18.0/src/lib/mainthreadexecutor_p.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/mainthreadexecutor_p.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2014 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef ACTIVITIES_MAINTHREADEXECUTOR_P +#define ACTIVITIES_MAINTHREADEXECUTOR_P + +#include + +#include + +namespace KActivities { + +namespace detail { + class MainThreadExecutor: public QObject { + Q_OBJECT + + public: + MainThreadExecutor(std::function &&f); + + Q_INVOKABLE void start(); + + private: + std::function m_function; + }; +} // namespace detail + +void runInMainThread(std::function &&f); + +} // namespace KActivities + +#endif // ACTIVITIES_MAINTHREADEXECUTOR_P diff -Nru kactivities-kf5-5.18.0/src/lib/manager_p.cpp kactivities-kf5-5.44.0/src/lib/manager_p.cpp --- kactivities-kf5-5.18.0/src/lib/manager_p.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/manager_p.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,180 @@ +/* + * Copyright (C) 2010 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#include "manager_p.h" + +#include + +#include +#include +#include +#include + +#include "debug_p.h" +#include "mainthreadexecutor_p.h" + +#include "common/dbus/common.h" +#include "utils/dbusfuture_p.h" +#include "utils/continue_with.h" +#include "version.h" + +namespace KActivities { + +Manager *Manager::s_instance = nullptr; + +Manager::Manager() + : QObject() + , m_watcher(KAMD_DBUS_SERVICE, QDBusConnection::sessionBus()) + , m_service(new KAMD_DBUS_CLASS_INTERFACE(/, Application, this)) + , m_activities(new KAMD_DBUS_CLASS_INTERFACE(Activities, Activities, this)) + , m_resources(new KAMD_DBUS_CLASS_INTERFACE(Resources, Resources, this)) + , m_resourcesLinking(new KAMD_DBUS_CLASS_INTERFACE(Resources/Linking, ResourcesLinking, this)) + , m_features(new KAMD_DBUS_CLASS_INTERFACE(Features, Features, this)) + , m_serviceRunning(false) +{ + connect(&m_watcher, &QDBusServiceWatcher::serviceOwnerChanged, + this, &Manager::serviceOwnerChanged); + + if (isServiceRunning()) { + serviceOwnerChanged(KAMD_DBUS_SERVICE, QString(), KAMD_DBUS_SERVICE); + } +} + +Manager *Manager::self() +{ + static std::mutex singleton; + std::lock_guard singleton_lock(singleton); + #if defined(QT_DEBUG) + QLoggingCategory::setFilterRules(QStringLiteral("org.kde.kactivities.lib.core.debug=true")); + #endif + + if (!s_instance) { + + runInMainThread([] () { + + // check if the activity manager is already running + if (!Manager::isServiceRunning()) { + bool disableAutolaunch = QCoreApplication::instance()->property("org.kde.KActivities.core.disableAutostart").toBool(); + + qCDebug(KAMD_CORELIB) << "Should we start the daemon?"; + // start only if not disabled and we have a dbus connection at all + if (!disableAutolaunch && QDBusConnection::sessionBus().interface()) { + qCDebug(KAMD_CORELIB) << "Starting the activity manager daemon"; + auto reply = QDBusConnection::sessionBus().interface()->startService(KAMD_DBUS_SERVICE); + if (!reply.isValid()) { + //pre Plasma 5.12 the daemon did not support DBus activation. Fall back to manually forking + QProcess::startDetached(QStringLiteral("kactivitymanagerd")); + } + } + } + + // creating a new instance of the class + Manager::s_instance = new Manager(); + + }); + } + + return s_instance; +} + +bool Manager::isServiceRunning() +{ + return + (s_instance ? s_instance->m_serviceRunning : true) + && QDBusConnection::sessionBus().interface() && QDBusConnection::sessionBus().interface()->isServiceRegistered(KAMD_DBUS_SERVICE); +} + +void Manager::serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner) +{ + Q_UNUSED(oldOwner); + + if (serviceName == KAMD_DBUS_SERVICE) { + m_serviceRunning = !newOwner.isEmpty(); + emit serviceStatusChanged(m_serviceRunning); + + if (m_serviceRunning) { + using namespace kamd::utils; + + continue_with( + DBusFuture::fromReply(m_service->serviceVersion()), + [this] (const optional_view &serviceVersion) { + // Test whether the service is older than the library. + // If it is, we need to end this + + if (!serviceVersion.is_initialized()) { + qWarning() << "KActivities: FATAL ERROR: Failed to contact the activity manager daemon"; + m_serviceRunning = false; + return; + } + + auto split = serviceVersion->split('.'); + QList version; + + // We require kactivitymanagerd version to be at least the + // one before the repository split + const int requiredVersion[] = { 6, 2, 0 }; + + std::transform( + split.cbegin(), split.cend(), + std::back_inserter(version), [] (const QString &component) { + return component.toInt(); + }); + + // if required version is greater than the current version + if (std::lexicographical_compare( + version.cbegin(), version.cend(), + std::begin(requiredVersion), std::end(requiredVersion) + )) { + QString libraryVersion = QString::number(requiredVersion[0]) + '.' + + QString::number(requiredVersion[1]) + '.' + + QString::number(requiredVersion[2]); + + qDebug() << "KActivities service version: " << serviceVersion.get(); + qDebug() << "KActivities library version: " << libraryVersion; + qFatal("KActivities: FATAL ERROR: The service is older than the library"); + + } + }); + } + } +} + +Service::Activities *Manager::activities() +{ + return self()->m_activities; +} + +Service::Resources *Manager::resources() +{ + return self()->m_resources; +} + +Service::ResourcesLinking *Manager::resourcesLinking() +{ + return self()->m_resourcesLinking; +} + +Service::Features *Manager::features() +{ + return self()->m_features; +} + +} // namespace KActivities diff -Nru kactivities-kf5-5.18.0/src/lib/manager_p.h kactivities-kf5-5.44.0/src/lib/manager_p.h --- kactivities-kf5-5.18.0/src/lib/manager_p.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/manager_p.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2010 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef ACTIVITIES_MANAGER_P +#define ACTIVITIES_MANAGER_P + +#include + +#include "application_interface.h" +#include "activities_interface.h" +#include "resources_interface.h" +#include "resources_linking_interface.h" +#include "features_interface.h" + +#include + +namespace Service = org::kde::ActivityManager; + +namespace KActivities { + +class Manager : public QObject { + Q_OBJECT + +public: + static Manager *self(); + + static bool isServiceRunning(); + + static Service::Activities *activities(); + static Service::Resources *resources(); + static Service::ResourcesLinking *resourcesLinking(); + static Service::Features *features(); + +public Q_SLOTS: + void serviceOwnerChanged(const QString &serviceName, + const QString &oldOwner, const QString &newOwner); + +Q_SIGNALS: + void serviceStatusChanged(bool status); + +private: + Manager(); + + QDBusServiceWatcher m_watcher; + + static Manager *s_instance; + + Service::Application *const m_service; + Service::Activities *const m_activities; + Service::Resources *const m_resources; + Service::ResourcesLinking *const m_resourcesLinking; + Service::Features *const m_features; + bool m_serviceRunning; + + friend class ManagerInstantiator; +}; + +} // namespace KActivities + +#endif // ACTIVITIES_MANAGER_P diff -Nru kactivities-kf5-5.18.0/src/lib/resourceinstance.cpp kactivities-kf5-5.44.0/src/lib/resourceinstance.cpp --- kactivities-kf5-5.18.0/src/lib/resourceinstance.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/resourceinstance.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,192 @@ +/* + * Copyright (C) 2011 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#include "resourceinstance.h" +#include "manager_p.h" + +#include +#include "debug_p.h" + +namespace KActivities { + +class ResourceInstancePrivate { +public: + quintptr wid; + QUrl uri; + QString mimetype; + QString title; + QString application; + + void closeResource(); + void openResource(); + + enum Type { + Accessed = 0, + Opened = 1, + Modified = 2, + Closed = 3, + FocusedIn = 4, + FocusedOut = 5 + }; + + static void registerResourceEvent(const QString &application, quintptr wid, const QUrl &uri, Type event) + { + Q_ASSERT_X(!application.isEmpty(), "ResourceInstance::event", + "The application id must not be empty"); + + if (uri.isEmpty()) { + return; + } + + Manager::resources()->RegisterResourceEvent(application, wid, uri.toString(), uint(event)); + } +}; + +void ResourceInstancePrivate::closeResource() +{ + registerResourceEvent(application, wid, uri, Closed); +} + +void ResourceInstancePrivate::openResource() +{ + registerResourceEvent(application, wid, uri, Opened); +} + +ResourceInstance::ResourceInstance(quintptr wid, QObject *parent) + : QObject(parent) + , d(new ResourceInstancePrivate()) +{ + qCDebug(KAMD_CORELIB) << "Creating ResourceInstance: empty for now"; + d->wid = wid; + d->application = QCoreApplication::instance()->applicationName(); +} + +ResourceInstance::ResourceInstance(quintptr wid, const QString &application, QObject *parent) + : QObject(parent) + , d(new ResourceInstancePrivate()) +{ + qCDebug(KAMD_CORELIB) << "Creating ResourceInstance: empty for now"; + d->wid = wid; + d->application = application.isEmpty() ? QCoreApplication::instance()->applicationName() : application; +} + +ResourceInstance::ResourceInstance(quintptr wid, QUrl resourceUri, const QString &mimetype, + const QString &title, const QString &application, QObject *parent) + : QObject(parent) + , d(new ResourceInstancePrivate()) +{ + qCDebug(KAMD_CORELIB) << "Creating ResourceInstance: " << resourceUri; + d->wid = wid; + d->uri = resourceUri; + d->application = application.isEmpty() ? QCoreApplication::instance()->applicationName() : application; + + d->openResource(); + + setTitle(title); + setMimetype(mimetype); +} + +ResourceInstance::~ResourceInstance() +{ + d->closeResource(); +} + +void ResourceInstance::notifyModified() +{ + d->registerResourceEvent(d->application, d->wid, d->uri, ResourceInstancePrivate::Modified); +} + +void ResourceInstance::notifyFocusedIn() +{ + d->registerResourceEvent(d->application, d->wid, d->uri, ResourceInstancePrivate::FocusedIn); +} + +void ResourceInstance::notifyFocusedOut() +{ + d->registerResourceEvent(d->application, d->wid, d->uri, ResourceInstancePrivate::FocusedOut); +} + +void ResourceInstance::setUri(const QUrl &newUri) +{ + if (d->uri == newUri) { + return; + } + + if (!d->uri.isEmpty()) { + d->closeResource(); + } + + d->uri = newUri; + + d->openResource(); +} + +void ResourceInstance::setMimetype(const QString &mimetype) +{ + if (mimetype.isEmpty()) { + return; + } + + d->mimetype = mimetype; + // TODO: update the service info + Manager::resources()->RegisterResourceMimetype(d->uri.toString(), mimetype); +} + +void ResourceInstance::setTitle(const QString &title) +{ + qCDebug(KAMD_CORELIB) << "Setting the title: " << title; + if (title.isEmpty()) { + return; + } + + d->title = title; + // TODO: update the service info + Manager::resources()->RegisterResourceTitle(d->uri.toString(), title); +} + +QUrl ResourceInstance::uri() const +{ + return d->uri; +} + +QString ResourceInstance::mimetype() const +{ + return d->mimetype; +} + +QString ResourceInstance::title() const +{ + return d->title; +} + +quintptr ResourceInstance::winId() const +{ + return d->wid; +} + +void ResourceInstance::notifyAccessed(const QUrl &uri, const QString &application) +{ + ResourceInstancePrivate::registerResourceEvent( + application.isEmpty() ? QCoreApplication::instance()->applicationName() : application, + 0, uri, ResourceInstancePrivate::Accessed); +} + +} // namespace KActivities diff -Nru kactivities-kf5-5.18.0/src/lib/resourceinstance.h kactivities-kf5-5.44.0/src/lib/resourceinstance.h --- kactivities-kf5-5.18.0/src/lib/resourceinstance.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/resourceinstance.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,203 @@ +/* + * Copyright (C) 2011 - 2016 by Ivan Cukic + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef ACTIVITIES_RESOURCEINSTANCE_H +#define ACTIVITIES_RESOURCEINSTANCE_H + +#include +#include + +#include "kactivities_export.h" + +namespace KActivities { + +class ResourceInstancePrivate; + +/** + * This class is used to notify the system that a file, web page + * or some other resource has been accessed. + * + * It provides methods to notify the system when the resource was + * opened, modified and closed, along with in what window the + * resource is shown. + * + * You should create an instance of this class for every resource + * you open. + * + * "The system" in this case can be the backend for tracking + * and automatically scoring files that are being accessed, the + * system to show the open files per window in the taskbar, + * the share-like-connect, etc. + * + * The user of this class shouldn't care about the backend + * systems - everything is done under-the-hood automatically. + * + */ +class KACTIVITIES_EXPORT ResourceInstance : public QObject { + Q_OBJECT + + Q_PROPERTY(QUrl uri READ uri WRITE setUri) + Q_PROPERTY(QString mimetype READ mimetype WRITE setMimetype) + Q_PROPERTY(QString title READ title WRITE setTitle) + Q_PROPERTY(quintptr winId READ winId) + +public: + /** + * Creates a new resource instance + * @param wid id of the window that will show the resource + * @param parent pointer to the parent object + * @since 4.10 + */ + explicit ResourceInstance(quintptr wid, QObject *parent = nullptr); + + /** + * Creates a new resource instance + * @param wid id of the window that will show the resource + * @param application application's name (the name used for the .desktop file). + * If not specified, QCoreApplication::applicationName is used + * @param parent pointer to the parent object + */ + explicit ResourceInstance(quintptr wid, const QString &application, QObject *parent = nullptr); + + /** + * Creates a new resource instance and automatically + * notifies the system that it was opened. + * + * In some special cases, where the URI of the resource is + * being constantly changed (for example, in the world globe, + * street map applications) you have two options: + * - to pass an empty resourceUri while passing the mimetype + * - to update the uri from time to time (in the example of + * the world map - to send URIs for major objects - cities + * or main streets. + * and in both cases reimplementing the currentUri() method + * which will return the exact URI shown at that specific moment. + * + * @param wid window id in which the resource is shown + * @param resourceUri URI of the resource that is shown + * @param mimetype the mime type of the resource + * @param title the title of the resource + * @param application application's name (the name used for the .desktop file). + * If not specified, QCoreApplication::applicationName is used + * @param parent pointer to the parent object + */ + ResourceInstance(quintptr wid, QUrl resourceUri, const QString &mimetype = QString(), + const QString &title = QString(), const QString &application = QString(), + QObject *parent = nullptr); + + /** + * Destroys the ResourceInstance and notifies the system + * that the resource has been closed + */ + ~ResourceInstance(); + +public Q_SLOTS: + /** + * Call this method to notify the system that you modified + * (the contents of) the resource + */ + void notifyModified(); + + /** + * Call this method to notify the system that the resource + * has the focus in your application + * @note You only need to call this in MDI applications + */ + void notifyFocusedIn(); + + /** + * Call this method to notify the system that the resource + * lost the focus in your application + * @note You only need to call this in MDI applications + */ + void notifyFocusedOut(); + + /** + * This is a convenience method that sets the new URI. + * This is usually handled by sending the close event for + * the previous URI, and an open event for the new one. + */ + void setUri(const QUrl &newUri); + + /** + * Sets the mimetype for this resource + */ + void setMimetype(const QString &mimetype); + + /** + * Sets the title for this resource + */ + void setTitle(const QString &title); + +Q_SIGNALS: + /** + * Emitted when the system wants to show the resource + * represented by this ResourceInstance. + * + * You should listen to this signal if you have multiple + * resources shown in one window (MDI). On catching it, show + * the resource and give it focus. + */ + void requestsFocus(); + +public: + /** + * @returns the current uri + * The default implementation returns the URI that was passed + * to the constructor. + * You need to reimplement it only for the applications with + * frequently updated URIs. + */ + virtual QUrl uri() const; + + /** + * @returns mimetype of the resource + */ + QString mimetype() const; + + /** + * @returns title of the resource + */ + QString title() const; + + /** + * @returns the window id + */ + quintptr winId() const; + + /** + * If there's no way to tell for how long an application is keeping + * the resource open, you can just call this static method - it + * will notify the system that the application has accessed the + * resource + * @param uri URI of the resource + * @param application application's name (the name used for the .desktop file). + * If not specified, QCoreApplication::applicationName is used + * + */ + static void notifyAccessed(const QUrl &uri, const QString &application = QString()); + +private: + const QScopedPointer d; +}; +} + +#endif // ACTIVITIES_RESOURCEINSTANCE_H diff -Nru kactivities-kf5-5.18.0/src/lib/stats/activitiessync_p.cpp kactivities-kf5-5.44.0/src/lib/stats/activitiessync_p.cpp --- kactivities-kf5-5.18.0/src/lib/stats/activitiessync_p.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/activitiessync_p.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "activitiessync_p.h" - -#include - -namespace ActivitiesSync { - typedef std::shared_ptr ConsumerPtr; - - ConsumerPtr instance() - { - static std::mutex s_instanceMutex; - static std::weak_ptr s_instance; - - std::unique_lock locker; - - auto ptr = s_instance.lock(); - - if (!ptr) { - ptr = std::make_shared(); - s_instance = ptr; - } - - return ptr; - - } - - QString currentActivity(ConsumerPtr &activities) - { - // We need to get the current activity synchonously, - // this means waiting for the service to be available. - // It should not introduce blockages since there usually - // is a global activity cache in applications that care - // about activities. - - if (!activities) { - activities = instance(); - } - - while (activities->serviceStatus() == KActivities::Consumer::Unknown) { - QCoreApplication::instance()->processEvents(); - } - - return activities->currentActivity(); - } - -} // namespace ActivitiesSync - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/activitiessync_p.h kactivities-kf5-5.44.0/src/lib/stats/activitiessync_p.h --- kactivities-kf5-5.18.0/src/lib/stats/activitiessync_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/activitiessync_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_SYNC_P_H -#define ACTIVITIES_SYNC_P_H - -#include -#include - -#include - -namespace ActivitiesSync { - - typedef std::shared_ptr ConsumerPtr; - - QString currentActivity(ConsumerPtr &activities); - -} // namespace ActivitiesSync - -#endif // ACTIVITIES_SYNC_P_H - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/cleaning.cpp kactivities-kf5-5.44.0/src/lib/stats/cleaning.cpp --- kactivities-kf5-5.18.0/src/lib/stats/cleaning.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/cleaning.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - - -#include -#include -#include - -#include "cleaning.h" -#include "common/dbus/common.h" - -namespace KActivities { -namespace Experimental { -namespace Stats { - - -void forgetResource(Terms::Activity activities, Terms::Agent agents, - const QString &resource) -{ - KAMD_DBUS_DECL_INTERFACE(scoring, Resources/Scoring, ResourcesScoring); - for (const auto& activity: activities.values) { - for (const auto& agent: agents.values) { - scoring.call(QStringLiteral("DeleteStatsForResource"), activity, agent, resource); - } - } -} - -void forgetResources(const Query &query) -{ - KAMD_DBUS_DECL_INTERFACE(scoring, Resources/Scoring, ResourcesScoring); - for (const auto& activity: query.activities()) { - for (const auto& agent: query.agents()) { - for (const auto& urlFilter: query.urlFilters()) { - scoring.call(QStringLiteral("DeleteStatsForResource"), activity, agent, urlFilter); - } - } - } -} - -void forgetRecentStats(Terms::Activity activities, int count, TimeUnit what) -{ - KAMD_DBUS_DECL_INTERFACE(scoring, Resources/Scoring, ResourcesScoring); - for (const auto& activity: activities.values) { - scoring.call(QStringLiteral("DeleteRecentStats"), activity, count, - what == Hours ? "h" : - what == Days ? "d" : - "m" - ); - } -} - -void forgetEarlierStats(Terms::Activity activities, int months) -{ - KAMD_DBUS_DECL_INTERFACE(scoring, Resources/Scoring, ResourcesScoring); - for (const auto& activity: activities.values) { - scoring.call(QStringLiteral("DeleteEarlierStats"), activity, months); - } -} - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/cleaning.h kactivities-kf5-5.44.0/src/lib/stats/cleaning.h --- kactivities-kf5-5.18.0/src/lib/stats/cleaning.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/cleaning.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef CLEANING_H -#define CLEANING_H - -#include -#include "terms.h" -#include "query.h" - -namespace KActivities { -namespace Experimental { -namespace Stats { - -/** - * Forget the resource(s) for the specified activity and agent - */ -void KACTIVITIESSTATS_EXPORT forgetResource(Terms::Activity activity, - Terms::Agent agent, - const QString &resource); - -enum KACTIVITIESSTATS_EXPORT TimeUnit { - Hours, - Days, - Months -}; - -/** - * Forget recent stats for the specified activity and time - */ -void KACTIVITIESSTATS_EXPORT forgetRecentStats(Terms::Activity activity, - int count, - TimeUnit what); - -/** - * Forget events that are older than the specified number of months - */ -void KACTIVITIESSTATS_EXPORT forgetEarlierStats(Terms::Activity activity, - int months); - -void KACTIVITIESSTATS_EXPORT forgetResources(const Query &query); - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - -#endif // CLEANING_H - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/CMakeLists.txt kactivities-kf5-5.44.0/src/lib/stats/CMakeLists.txt --- kactivities-kf5-5.18.0/src/lib/stats/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,144 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (KActivitiesStats) - -find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Sql) -find_package (KF5Config ${KF5_DEP_VERSION} CONFIG REQUIRED) - -set ( - KActivitiesStats_LIB_SRCS - - query.cpp - terms.cpp - resultset.cpp - resultwatcher.cpp - resultmodel.cpp - activitiessync_p.cpp - cleaning.cpp - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/Database.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/schema/ResourcesDatabaseSchema.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/qsqlquery_iterator.cpp - - version.cpp - ) - -qt5_add_dbus_interface ( - KActivitiesStats_LIB_SRCS - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.ResourcesScoring.xml - resourcesscoring_interface - ) - -qt5_add_dbus_interface ( - KActivitiesStats_LIB_SRCS - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.ResourcesLinking.xml - resourceslinking_interface - ) - - - -add_library ( - KF5ActivitiesExperimentalStats SHARED - ${KActivitiesStats_LIB_SRCS} - ) -add_library(KF5::ActivitiesExperimentalStats ALIAS KF5ActivitiesExperimentalStats) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${KDBusAddons_INCLUDE_DIR} - ) - -set_target_properties ( - KF5ActivitiesExperimentalStats - PROPERTIES - VERSION "0.0.1" - SOVERSION "1" - EXPORT_NAME ActivitiesExperimentalStats - ) - -target_link_libraries ( - KF5ActivitiesExperimentalStats - PUBLIC - Qt5::Core - PRIVATE - Qt5::DBus - Qt5::Sql - KF5::Activities - KF5::DBusAddons - KF5::ConfigCore - ) - -target_include_directories ( - KF5ActivitiesExperimentalStats - INTERFACE "$" - ) - -# install -generate_export_header (KF5ActivitiesExperimentalStats BASE_NAME KActivitiesStats) - -ecm_generate_headers ( - KActivitiesStats_CamelCase_HEADERS - HEADER_NAMES - Query - Terms - ResultSet - ResultWatcher - ResultModel - Cleaning - Version - - PREFIX KActivitiesExperimentalStats - REQUIRED_HEADERS KActivitiesStats_HEADERS -) - -if (NOT KACTIVITIES_INSTALL_EXPERIMENTAL_HEADERS) - set (SKIP_NAMELINK LIBRARY NAMELINK_SKIP) -endif () - -install ( - TARGETS KF5ActivitiesExperimentalStats - EXPORT KF5ActivitiesExperimentalStatsLibraryTargets - ${SKIP_NAMELINK} - ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} - ) - -if (KACTIVITIES_INSTALL_EXPERIMENTAL_HEADERS) - install ( - FILES ${KActivitiesStats_CamelCase_HEADERS} - DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivitiesStats/KActivities/Experimental/Stats - COMPONENT Devel - ) - - install ( - FILES ${KActivitiesStats_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/kactivitiesstats_export.h - DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KActivitiesStats/kactivitiesexperimentalstats - COMPONENT Devel - ) - - if (NOT WIN32) - configure_file ( - ${CMAKE_CURRENT_SOURCE_DIR}/libKActivitiesExperimentalStats.pc.cmake - ${CMAKE_CURRENT_BINARY_DIR}/libKActivitiesExperimentalStats.pc - ) - install ( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libKActivitiesExperimentalStats.pc - DESTINATION ${KDE_INSTALL_LIBDIR}/pkgconfig - ) - endif () - - include (ECMGeneratePriFile) - ecm_generate_pri_file ( - BASE_NAME KActivitiesExperimentalStats - LIB_NAME KF5ActivitiesExperimentalStats - DEPS "KDBusAddons" - FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KF5_INCLUDE_INSTALL_DIR}/KActivitiesExperimentalStats - ) - install ( - FILES ${PRI_FILENAME} - DESTINATION ${ECM_MKSPECS_INSTALL_DIR} - ) -endif () - - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/libKActivitiesExperimentalStats.pc.cmake kactivities-kf5-5.44.0/src/lib/stats/libKActivitiesExperimentalStats.pc.cmake --- kactivities-kf5-5.18.0/src/lib/stats/libKActivitiesExperimentalStats.pc.cmake 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/libKActivitiesExperimentalStats.pc.cmake 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -prefix=${CMAKE_INSTALL_PREFIX} -exec_prefix=${BIN_INSTALL_DIR} -libdir=${LIB_INSTALL_DIR} -includedir=${INCLUDE_INSTALL_DIR} - -Name: libKActivitiesExperimentalStats -Description: libKActivitiesStats is a C++ library for using KDE activities -URL: http://www.kde.org -Requires: -Version: ${KACTIVITIESSTATS_LIB_VERSION_STRING} -Libs: -L${LIB_INSTALL_DIR} -lKActivitiesExperimentalStats -Cflags: -I${INCLUDE_INSTALL_DIR} diff -Nru kactivities-kf5-5.18.0/src/lib/stats/query.cpp kactivities-kf5-5.44.0/src/lib/stats/query.cpp --- kactivities-kf5-5.18.0/src/lib/stats/query.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/query.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,206 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "query.h" -#include - -namespace KActivities { -namespace Experimental { -namespace Stats { - -namespace details { - inline void validateTypes(QStringList &types) - { - // Nothing at the moment - Q_UNUSED(types); - } - - inline void validateAgents(QStringList &agents) - { - // Nothing at the moment - Q_UNUSED(agents); - } - - inline void validateActivities(QStringList &activities) - { - // Nothing at the moment - Q_UNUSED(activities); - } - - inline void validateUrlFilters(QStringList &urlFilters) - { - auto i = urlFilters.begin(); - const auto end = urlFilters.end(); - - for (; i != end ; ++i) { - i->replace(QLatin1String("'"), QLatin1String("")); - } - } - -} // namespace details - -class QueryPrivate { -public: - QueryPrivate() - : ordering(Terms::HighScoredFirst) - , limit(10) - , offset(0) - { - } - - Terms::Select selection; - QStringList types; - QStringList agents; - QStringList activities; - QStringList urlFilters; - Terms::Order ordering; - int limit; - int offset; -}; - -Query::Query(Terms::Select selection) - : d(new QueryPrivate()) -{ - d->selection = selection; -} - -Query::Query(Query &&source) - : d(nullptr) -{ - std::swap(d, source.d); -} - -Query::Query(const Query &source) - : d(new QueryPrivate(*source.d)) -{ -} - -Query &Query::operator= (Query source) -{ - std::swap(d, source.d); - return *this; -} - - -Query::~Query() -{ - delete d; -} - -bool Query::operator== (const Query &right) const -{ - return selection() == right.selection() && - types() == right.types() && - agents() == right.agents() && - activities() == right.activities() && - selection() == right.selection() && - urlFilters() == right.urlFilters(); -} - -bool Query::operator!= (const Query &right) const -{ - return !(*this == right); -} - -#define IMPLEMENT_QUERY_LIST_FIELD(WHAT, What, Default) \ - void Query::add##WHAT(const QStringList &What) \ - { \ - d->What << What; \ - details::validate##WHAT(d->What); \ - } \ - \ - QStringList Query::What() const \ - { \ - return d->What.size() ? d->What : Default; \ - } \ - \ - void Query::clear##WHAT() \ - { \ - d->What.clear(); \ - } - -IMPLEMENT_QUERY_LIST_FIELD(Types, types, QStringList(":any")) -IMPLEMENT_QUERY_LIST_FIELD(Agents, agents, QStringList(":current")) -IMPLEMENT_QUERY_LIST_FIELD(Activities, activities, QStringList(":current")) -IMPLEMENT_QUERY_LIST_FIELD(UrlFilters, urlFilters, QStringList("*")) - -#undef IMPLEMENT_QUERY_LIST_FIELD - -void Query::setOrdering(Terms::Order ordering) -{ - d->ordering = ordering; -} - -void Query::setSelection(Terms::Select selection) -{ - d->selection = selection; -} - -void Query::setLimit(int limit) -{ - d->limit = limit; -} - -void Query::setOffset(int offset) -{ - d->offset = offset; -} - -Terms::Order Query::ordering() const -{ - return d->ordering; -} - -Terms::Select Query::selection() const -{ - return d->selection; -} - -int Query::limit() const -{ - return d->limit; -} - -int Query::offset() const -{ - Q_ASSERT_X(d->limit > 0, "Query::offset", "Offset can only be specified if limit is set"); - return d->offset; -} - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - -namespace KAStats = KActivities::Experimental::Stats; - -QDebug operator<<(QDebug dbg, const KAStats::Query &query) -{ - using namespace KAStats::Terms; - - dbg.nospace() - << "Query { " - << query.selection() - << ", " << Type(query.types()) - << ", " << Agent(query.agents()) - << ", " << Activity(query.activities()) - << ", " << Url(query.urlFilters()) - << ", " << query.ordering() - << " }"; - return dbg; -} diff -Nru kactivities-kf5-5.18.0/src/lib/stats/query.h kactivities-kf5-5.44.0/src/lib/stats/query.h --- kactivities-kf5-5.18.0/src/lib/stats/query.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/query.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,169 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KACTIVITIES_STATS_QUERY_H -#define KACTIVITIES_STATS_QUERY_H - -#include - -#ifdef Q_COMPILER_INITIALIZER_LISTS -#include -#endif - -#include -#include - -#include "kactivitiesstats_export.h" - -#include "terms.h" - -namespace KActivities { -namespace Experimental { -namespace Stats { - -class QueryPrivate; - -/** - * Class which defines what resource statistics should be - * returned. - * - * By default, limit will be set to 10. - */ -class KACTIVITIESSTATS_EXPORT Query { -public: - Query(Terms::Select selection = Terms::AllResources); - - // The damned rule of five minus one :) - Query(Query && source); - Query(const Query &source); - Query &operator= (Query source); - ~Query(); - - // Not all are born equal - bool operator== (const Query &right) const; - bool operator!= (const Query &right) const; - - Terms::Select selection() const; - QStringList types() const; - QStringList agents() const; - QStringList activities() const; - QStringList urlFilters() const; - Terms::Order ordering() const; - int offset() const; - int limit() const; - - void setSelection(Terms::Select selection); - void addTypes(const QStringList &types); - void addAgents(const QStringList &agents); - void addActivities(const QStringList &activities); - void addUrlFilters(const QStringList &urlFilters); - void setOrdering(Terms::Order ordering); - void setOffset(int offset); - void setLimit(int limit); - - void clearTypes(); - void clearAgents(); - void clearActivities(); - void clearUrlFilters(); - - void removeTypes(const QStringList &types); - void removeAgents(const QStringList &agents); - void removeActivities(const QStringList &activities); - void removeUrlFilters(const QStringList &urlFilters); - -private: - inline void addTerm(const Terms::Type &term) - { - addTypes(term.values); - } - - inline void addTerm(const Terms::Agent &term) - { - addAgents(term.values); - } - - inline void addTerm(const Terms::Activity &term) - { - addActivities(term.values); - } - - inline void addTerm(const Terms::Url &term) - { - addUrlFilters(term.values); - } - - inline void addTerm(Terms::Order ordering) - { - setOrdering(ordering); - } - - inline void addTerm(Terms::Select selection) - { - setSelection(selection); - } - - inline void addTerm(Terms::Limit limit) - { - setLimit(limit.value); - } - - inline void addTerm(Terms::Offset offset) - { - setOffset(offset.value); - } - -public: - - template - friend - inline Query operator| (const Query &query, Term &&term) - { - Query result(query); - result.addTerm(term); - return result; - } - - template - friend - inline Query operator| (Query &&query, Term &&term) - { - query.addTerm(term); - return query; - } - -private: - QueryPrivate* d; -}; - -template -inline Query operator| (Terms::Select selection, Term &&term) -{ - return Query(selection) | term; -} - - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - -KACTIVITIESSTATS_EXPORT -QDebug operator<<(QDebug dbg, const KActivities::Experimental::Stats::Query &query); - -#endif // KACTIVITIES_STATS_QUERY_H - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/resultmodel.cpp kactivities-kf5-5.44.0/src/lib/stats/resultmodel.cpp --- kactivities-kf5-5.18.0/src/lib/stats/resultmodel.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/resultmodel.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,1013 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include "resultmodel.h" - -// Qt -#include -#include -#include -#include - -// STL and Boost -#include -#include -#include - -// KDE -#include -#include - -// Local -#include -#include -#include -#include -#include "resultset.h" -#include "resultwatcher.h" -#include "cleaning.h" -#include "kactivities/consumer.h" - -#include - -#define MAX_CHUNK_LOAD_SIZE 50 -#define MAX_RELOAD_CACHE_SIZE 50 - -#define QDBG qDebug() << "KActivitiesStats(" << (void*)this << ")" - -namespace KActivities { -namespace Experimental { -namespace Stats { - -class ResultModelPrivate { -public: - ResultModelPrivate(Query query, const QString &clientId, ResultModel *parent) - : cache(this, clientId, query.limit()) - , query(query) - , watcher(query) - , hasMore(true) - , q(parent) - { - using Common::Database; - database = Database::instance(Database::ResourcesDatabase, Database::ReadOnly); - } - - enum Fetch { - FetchReset, // Remove old data and reload - FetchReload, // Update all data - FetchMore // Load more data if there is any - }; - - class Cache { //_ - public: - typedef QList Items; - - Cache(ResultModelPrivate *d, const QString &clientId, int limit) - : d(d) - , m_countLimit(limit) - , m_clientId(clientId) - { - if (!m_clientId.isEmpty()) { - m_configFile = new KConfig( - QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) - + QStringLiteral("/kactivitymanagerd-statsrc")); - - m_config = KConfigGroup(m_configFile, "ResultModel-OrderingFor-" + clientId); - - if (m_config.isValid()) { - m_fixedItems = m_config.readEntry("kactivitiesLinkedItemsOrder", - QStringList()); - } - - qDebug() << "Configuration activated " << m_configFile->name(); - } - } - - ~Cache() - { - delete m_configFile; - } - - inline int size() const - { - return m_items.size(); - } - - inline void setLinkedResultPosition(const QString &resource, - int position) - { - if (!m_config.isValid()) { - qWarning() << "We can not reorder the results, no clientId was specified"; - return; - } - - // Preconditions: - // - cache is ordered properly, first on the user's desired order, - // then on the query specified order - // - the resource that needs to be moved is already in the cache - // - the resource that needs to be moved is a linked resource, not - // one that comes from the stats (there are overly many - // corner-cases that need to be covered in order to support - // reordering of the statistics-based resources) - // - the new position for the resource is not outside of the cache - - qDebug() << "Searching for " << resource; - auto resourcePosition = find(resource); - qDebug() << "Was resource found? " << (bool)resourcePosition; - if (resourcePosition) { - qDebug() << "What is the status? " << resourcePosition.iterator->linkStatus(); - } - if (!resourcePosition - || resourcePosition.iterator->linkStatus() == ResultSet::Result::NotLinked) { - qWarning("Trying to reposition a resource that we do not have, or is not linked"); - return; - } - - // Lets make a list of linked items - we can only reorder them, - // not others - QStringList linkedItems; - - foreach (const ResultSet::Result &item, m_items) { - if (item.linkStatus() == ResultSet::Result::NotLinked) break; - linkedItems << item.resource(); - } - - // We can not accept the new position to be outside - // of the linked items area - if (position > linkedItems.size()) { - position = linkedItems.size(); - } - - auto oldPosition = linkedItems.indexOf(resource); - - kamd::utils::slide_one( - linkedItems.begin() + oldPosition, - linkedItems.begin() + position); - - m_fixedItems = linkedItems; - - m_config.writeEntry("kactivitiesLinkedItemsOrder", m_fixedItems); - m_config.sync(); - - // We are prepared to reorder the cache - d->repositionResult(resourcePosition, - d->destinationFor(*resourcePosition)); - } - - private: - ResultModelPrivate *const d; - - QList m_items; - int m_countLimit; - - QString m_clientId; - KConfig *m_configFile; - KConfigGroup m_config; - QStringList m_fixedItems; - - friend QDebug operator<< (QDebug out, const Cache &cache) - { - for (const auto& item: cache.m_items) { - out << "Cache item: " << item << "\n"; - } - - return out; - } - - public: - inline const QStringList &fixedItems() const - { - return m_fixedItems; - } - - //_ Fancy iterator, find, lowerBound - struct FindCacheResult { - Cache *const cache; - Items::iterator iterator; - int index; - - FindCacheResult(Cache *cache, Items::iterator iterator) - : cache(cache) - , iterator(iterator) - , index(std::distance(cache->m_items.begin(), iterator)) - { - } - - operator bool() const - { - return iterator != cache->m_items.end(); - } - - ResultSet::Result &operator*() const - { - return *iterator; - } - - ResultSet::Result *operator->() const - { - return &(*iterator); - } - - // const ResultSet::Result &operator*() const - // { - // return *iterator; - // } - // - // const ResultSet::Result *operator->() const - // { - // return &(*iterator); - // } - }; - - inline FindCacheResult find(const QString &resource) - { - using namespace kamd::utils::member_matcher; - using boost::find_if; - - return FindCacheResult( - this, find_if(m_items, member(&ResultSet::Result::resource) - == resource)); - } - - template - inline FindCacheResult lowerBound(What &&what, Predicate &&predicate) - { - return FindCacheResult( - this, boost::lower_bound(m_items, std::forward(what), - std::forward(predicate))); - } - - template - inline FindCacheResult lowerBound(Predicate &&predicate) - { - using namespace kamd::utils::member_matcher; - return FindCacheResult( - this, boost::lower_bound(m_items, _, - std::forward(predicate))); - } - //^ - - inline int indexOf(const FindCacheResult &result) - { - return std::distance(m_items.begin(), result.iterator); - } - - inline void insertAt(const FindCacheResult &at, - const ResultSet::Result &result) - { - m_items.insert(at.iterator, result); - } - - inline void removeAt(const FindCacheResult &at) - { - m_items.removeAt(at.index); - } - - inline const ResultSet::Result &operator[] (int index) const - { - return m_items[index]; - } - - inline void clear() - { - if (m_items.size() == 0) return; - - d->q->beginRemoveRows(QModelIndex(), 0, m_items.size()); - m_items.clear(); - d->q->endRemoveRows(); - } - - // Algorithm to calculate the edit operations to allow - //_ replaceing items without model reset - inline void replace(const Items &newItems, int from = 0) - { - using namespace kamd::utils::member_matcher; - -#if 0 - QDBG << "===\nOld items {"; - for (const auto& item: m_items) { - QDBG << item; - } - QDBG << "}"; - - QDBG << "New items to be added at " << from << " {"; - for (const auto& item: newItems) { - QDBG << item; - } - QDBG << "}"; -#endif - - - // Based on 'The string to string correction problem - // with block moves' paper by Walter F. Tichy - // - // In essence, it goes like this: - // - // Take the first element from the new list, and try to find - // it in the old one. If you can not find it, it is a new item - // item - send the 'inserted' event. - // If you did find it, test whether the following items also - // match. This detects blocks of items that have moved. - // - // In this example, we find 'b', and then detect the rest of the - // moved block 'b' 'c' 'd' - // - // Old items: a[b c d]e f g - // ^ - // / - // New items: [b c d]a f g - // - // After processing one block, just repeat until the end of the - // new list is reached. - // - // Then remove all remaining elements from the old list. - // - // The main addition here compared to the original papers is that - // our 'strings' can not hold two instances of the same element, - // and that we support updating from arbitrary position. - - auto newBlockStart = newItems.cbegin(); - - // How many items should we add? - // This should remove the need for post-replace-trimming - // in the case where somebody called this with too much new items. - const int maxToReplace = m_countLimit - from; - - if (maxToReplace <= 0) return; - - const auto newItemsEnd = - newItems.size() <= maxToReplace ? newItems.cend() : - newItems.cbegin() + maxToReplace; - - - // Finding the blocks until we reach the end of the newItems list - // - // from = 4 - // Old items: X Y Z U a b c d e f g - // ^ oldBlockStart points to the first element - // of the currently processed block in the old list - // - // New items: _ _ _ _ b c d a f g - // ^ newBlockStartIndex is the index of the first - // element of the block that is currently being - // processed (with 'from' offset) - - while (newBlockStart != newItemsEnd) { - - const int newBlockStartIndex - = from + std::distance(newItems.cbegin(), newBlockStart); - - const auto oldBlockStart = std::find_if( - m_items.begin() + from, m_items.end(), - member(&ResultSet::Result::resource) == newBlockStart->resource()); - - if (oldBlockStart == m_items.end()) { - // This item was not found in the old cache, so we are - // inserting a new item at the same position it had in - // the newItems array - d->q->beginInsertRows(QModelIndex(), newBlockStartIndex, - newBlockStartIndex); - - m_items.insert(newBlockStartIndex, *newBlockStart); - d->q->endInsertRows(); - - // This block contained only one item, move on to find - // the next block - it starts from the next item - ++newBlockStart; - - } else { - // We are searching for a block of matching items. - // This is a reimplementation of std::mismatch that - // accepts two complete ranges that is available only - // since C++14, so we can not use it. - auto newBlockEnd = newBlockStart; - auto oldBlockEnd = oldBlockStart; - - while (newBlockEnd != newItemsEnd && - oldBlockEnd != m_items.end() && - newBlockEnd->resource() == oldBlockEnd->resource()) { - ++newBlockEnd; - ++oldBlockEnd; - } - - // We have found matching blocks - // [newBlockStart, newBlockEnd) and [oldBlockStart, newBlockEnd) - const int oldBlockStartIndex - = std::distance(m_items.begin() + from, oldBlockStart); - - const int blockSize - = std::distance(oldBlockStart, oldBlockEnd); - - if (oldBlockStartIndex != newBlockStartIndex) { - // If these blocks do not have the same start, - // we need to send the move event. - - // Note: If there is a crash here, it means we - // are getting a bad query which has duplicate - // results - - d->q->beginMoveRows(QModelIndex(), oldBlockStartIndex, - oldBlockStartIndex + blockSize - 1, - QModelIndex(), newBlockStartIndex); - - // Moving the items from the old location to the new one - kamd::utils::slide( - oldBlockStart, oldBlockEnd, - m_items.begin() + newBlockStartIndex); - - d->q->endMoveRows(); - } - - // Skip all the items in this block, and continue with - // the search - newBlockStart = newBlockEnd; - } - } - - // We have avoided the need for trimming for the most part, - // but if the newItems list was shorter than needed, we still - // need to trim the rest. - trim(from + newItems.size()); - - // Check whether we got an item representing a non-existent file, - // if so, schedule its removal from the database - for (const auto &item: newItems) { - if (item.resource().startsWith('/') && !QFile(item.resource()).exists()) { - d->q->forgetResource(item.resource()); - } - } - } - //^ - - inline void trim() - { - trim(m_countLimit); - } - - inline void trim(int limit) - { - if (m_items.size() <= limit) return; - - // Example: - // limit is 5, - // current cache (0, 1, 2, 3, 4, 5, 6, 7), size = 8 - // We need to delete from 5 to 7 - - d->q->beginRemoveRows(QModelIndex(), limit, m_items.size() - 1); - m_items.erase(m_items.begin() + limit, m_items.end()); - d->q->endRemoveRows(); - } - - } cache; //^ - - struct FixedItemsLessThan { - //_ Compartor that orders the linked items by user-specified order - typedef kamd::utils::member_matcher::placeholder placeholder; - - FixedItemsLessThan(const Cache &cache, - const QString &matchResource = QString()) - : cache(cache), matchResource(matchResource) - { - } - - bool compare (const QString &leftResource, const QString &rightResource) const - { - const bool hasLeft = cache.fixedItems().contains(leftResource); - const bool hasRight = cache.fixedItems().contains(rightResource); - - return - ( hasLeft && !hasRight) ? true : - (!hasLeft && hasRight) ? false : - ( hasLeft && hasRight) ? cache.fixedItems().indexOf(leftResource) < - cache.fixedItems().indexOf(rightResource) : - false; - } - - template - bool operator() (const T &left, placeholder) const - { - return compare(left.resource(), matchResource); - } - - template - bool operator() (placeholder, const T &right) const - { - return compare(matchResource, right.resource()); - } - - template - bool operator() (const T &left, const V &right) const - { - return compare(left.resource(), right.resource()); - } - - const Cache &cache; - const QString matchResource; - //^ - }; - - inline Cache::FindCacheResult destinationFor(const ResultSet::Result &result) - { - using namespace kamd::utils::member_matcher; - using namespace Terms; - - const auto resource = result.resource(); - const auto score = result.score(); - const auto firstUpdate = result.firstUpdate(); - const auto lastUpdate = result.lastUpdate(); - const auto linkStatus = result.linkStatus(); - - #define ORDER_BY(Field) member(&ResultSet::Result::Field) > Field - #define ORDER_BY_FULL(Field) \ - cache.lowerBound(FixedItemsLessThan(cache, resource) \ - && ORDER_BY(linkStatus) \ - && ORDER_BY(Field) \ - && ORDER_BY(resource)) - - const auto destination = - query.ordering() == HighScoredFirst ? ORDER_BY_FULL(score): - query.ordering() == RecentlyUsedFirst ? ORDER_BY_FULL(lastUpdate): - query.ordering() == RecentlyCreatedFirst ? ORDER_BY_FULL(firstUpdate): - /* otherwise */ ORDER_BY_FULL(resource) - ; - #undef ORDER_BY - #undef ORDER_BY_FULL - - return destination; - } - - inline void removeResult(const Cache::FindCacheResult &result) - { - q->beginRemoveRows(QModelIndex(), result.index, result.index); - cache.removeAt(result); - q->endRemoveRows(); - - fetch(cache.size(), 1); - } - - inline void repositionResult(const Cache::FindCacheResult &result, - const Cache::FindCacheResult &destination) - { - using kamd::utils::slide_one; - - // We already have the resource in the cache - // So, it is the time for a reshuffle - const int currentIndex = result.index; - - q->dataChanged(q->index(currentIndex), q->index(currentIndex)); - - bool moving - = q->beginMoveRows(QModelIndex(), currentIndex, currentIndex, - QModelIndex(), destination.index); - - slide_one(result.iterator, destination.iterator); - - if (moving) { - q->endMoveRows(); - } - } - - void reload() - { - fetch(FetchReload); - } - - void init() - { - using namespace std::placeholders; - - QObject::connect( - &watcher, &ResultWatcher::resultScoreUpdated, - q, std::bind(&ResultModelPrivate::onResultScoreUpdated, this, _1, _2, _3, _4)); - QObject::connect( - &watcher, &ResultWatcher::resultRemoved, - q, std::bind(&ResultModelPrivate::onResultRemoved, this, _1)); - QObject::connect( - &watcher, &ResultWatcher::resultLinked, - q, std::bind(&ResultModelPrivate::onResultLinked, this, _1)); - QObject::connect( - &watcher, &ResultWatcher::resultUnlinked, - q, std::bind(&ResultModelPrivate::onResultUnlinked, this, _1)); - - QObject::connect( - &watcher, &ResultWatcher::resourceTitleChanged, - q, std::bind(&ResultModelPrivate::onResourceTitleChanged, this, _1, _2)); - QObject::connect( - &watcher, &ResultWatcher::resourceMimetypeChanged, - q, std::bind(&ResultModelPrivate::onResourceMimetypeChanged, this, _1, _2)); - - QObject::connect( - &watcher, &ResultWatcher::resultsInvalidated, - q, std::bind(&ResultModelPrivate::reload, this)); - - if (query.activities().contains(CURRENT_ACTIVITY_TAG)) { - QObject::connect( - &activities, &KActivities::Consumer::currentActivityChanged, q, - std::bind(&ResultModelPrivate::onCurrentActivityChanged, this, _1)); - } - - fetch(FetchReset); - } - - void fetch(int from, int count) - { - using namespace Terms; - - if (from + count > query.limit()) { - count = query.limit() - from; - } - - if (count <= 0) return; - - // In order to see whether there are more results, we need to pass - // the count increased by one - ResultSet results(query | Offset(from) | Limit(count + 1)); - - auto it = results.begin(); - - Cache::Items newItems; - - while (count --> 0 && it != results.end()) { - newItems << *it; - ++it; - } - - hasMore = (it != results.end()); - - // We need to sort the new items for the linked resources - // user-defined reordering - if (query.selection() != Terms::UsedResources) { - std::stable_sort(newItems.begin(), newItems.end(), - FixedItemsLessThan(cache)); - } - - cache.replace(newItems, from); - } - - void fetch(Fetch mode) - { - if (mode == FetchReset) { - // Removing the previously cached data - // and loading all from scratch - cache.clear(); - - fetch(0, MAX_CHUNK_LOAD_SIZE); - - } else if (mode == FetchReload) { - if (cache.size() > MAX_RELOAD_CACHE_SIZE) { - // If the cache is big, we are pretending - // we were asked to reset the model - fetch(FetchReset); - - } else { - // We are only updating the currently - // cached items, nothing more - fetch(0, cache.size()); - - } - - } else { // FetchMore - // Load a new batch of data - fetch(cache.size(), MAX_CHUNK_LOAD_SIZE); - } - } - - void onResultScoreUpdated(const QString &resource, double score, - uint lastUpdate, uint firstUpdate) - { - using boost::lower_bound; - - QDBG << "ResultModelPrivate::onResultAdded " - << "result added:" << resource - << "score:" << score - << "last:" << lastUpdate - << "first:" << firstUpdate; - - // This can also be called when the resource score - // has been updated, so we need to check whether - // we already have it in the cache - const auto result = cache.find(resource); - - ResultSet::Result::LinkStatus linkStatus - = result ? result->linkStatus() - : ResultSet::Result::NotLinked; - - if (result) { - // We are only updating a result we already had, - // lets fill out the data and send the update signal. - // Move it if necessary. - - auto &item = *result.iterator; - - item.setScore(score); - item.setLinkStatus(linkStatus); - item.setLastUpdate(lastUpdate); - item.setFirstUpdate(firstUpdate); - - const auto destination = destinationFor(item); - - repositionResult(result, destination); - - } else { - // We do not have the resource in the cache, - // lets fill out the data and insert it - // at the desired position - - ResultSet::Result result; - result.setResource(resource); - - result.setTitle(" "); - result.setMimetype(" "); - fillTitleAndMimetype(result); - - result.setScore(score); - result.setLinkStatus(linkStatus); - result.setLastUpdate(lastUpdate); - result.setFirstUpdate(firstUpdate); - - const auto destination = destinationFor(result); - - q->beginInsertRows(QModelIndex(), destination.index, - destination.index); - - cache.insertAt(destination, result); - - q->endInsertRows(); - - cache.trim(); - } - } - - void onResultRemoved(const QString &resource) - { - const auto result = cache.find(resource); - - if (!result) return; - - if (query.selection() == Terms::UsedResources - || result->linkStatus() != ResultSet::Result::Linked) { - removeResult(result); - } - } - - void onResultLinked(const QString &resource) - { - const auto result = cache.find(resource); - - if (!result) return; - - if (query.selection() == Terms::LinkedResources) { - onResultScoreUpdated(resource, 0, 0, 0); - - } else if (query.selection() == Terms::AllResources) { - result->setLinkStatus(ResultSet::Result::Linked); - repositionResult(result, destinationFor(*result)); - - } - } - - void onResultUnlinked(const QString &resource) - { - const auto result = cache.find(resource); - - if (!result) return; - - if (query.selection() == Terms::LinkedResources) { - removeResult(result); - - } else if (query.selection() == Terms::AllResources) { - result->setLinkStatus(ResultSet::Result::NotLinked); - repositionResult(result, destinationFor(*result)); - - } - } - - Query query; - ResultWatcher watcher; - bool hasMore; - - KActivities::Consumer activities; - Common::Database::Ptr database; - - //_ Title and mimetype functions - void fillTitleAndMimetype(ResultSet::Result &result) - { - auto query = database->execQuery( - "SELECT " - "title, mimetype " - "FROM " - "ResourceInfo " - "WHERE " - "targettedResource = '" + result.resource() + "'" - ); - - // Only one item at most - for (const auto &item: query) { - result.setTitle(item["title"].toString()); - result.setMimetype(item["mimetype"].toString()); - } - } - - void onResourceTitleChanged(const QString &resource, const QString &title) - { - const auto result = cache.find(resource); - - if (!result) return; - - result->setTitle(title); - - q->dataChanged(q->index(result.index), q->index(result.index)); - } - - void onResourceMimetypeChanged(const QString &resource, const QString &mimetype) - { - // TODO: This can add or remove items from the model - - const auto result = cache.find(resource); - - if (!result) return; - - result->setMimetype(mimetype); - - q->dataChanged(q->index(result.index), q->index(result.index)); - } - //^ - - void onCurrentActivityChanged(const QString &activity) - { - Q_UNUSED(activity); - // If the current activity has changed, and - // the query lists items for the ':current' one, - // reset the model (not a simple refresh this time) - if (query.activities().contains(CURRENT_ACTIVITY_TAG)) { - fetch(FetchReset); - } - } - -private: - ResultModel *const q; - -}; - -ResultModel::ResultModel(Query query, QObject *parent) - : QAbstractListModel(parent) - , d(new ResultModelPrivate(query, QString(), this)) -{ - d->init(); -} - -ResultModel::ResultModel(Query query, const QString &clientId, QObject *parent) - : QAbstractListModel(parent) - , d(new ResultModelPrivate(query, clientId, this)) -{ - d->init(); -} - -ResultModel::~ResultModel() -{ - delete d; -} - -QHash ResultModel::roleNames() const -{ - return { - { ResourceRole , "resource" }, - { TitleRole , "title" }, - { ScoreRole , "score" }, - { FirstUpdateRole , "created" }, - { LastUpdateRole , "modified" }, - { LinkStatusRole , "linkStatus" } - }; -} - -QVariant ResultModel::data(const QModelIndex &item, int role) const -{ - const auto row = item.row(); - - if (row < 0 || row >= d->cache.size()) return QVariant(); - - const auto &result = d->cache[row]; - - return role == Qt::DisplayRole ? ( - result.title() + " " + - result.resource() + " - " + - QString::number(result.linkStatus()) + " - " + - QString::number(result.score()) - ) - : role == ResourceRole ? result.resource() - : role == TitleRole ? result.title() - : role == ScoreRole ? result.score() - : role == FirstUpdateRole ? result.firstUpdate() - : role == LastUpdateRole ? result.lastUpdate() - : role == LinkStatusRole ? result.linkStatus() - : QVariant() - ; -} - -QVariant ResultModel::headerData(int section, Qt::Orientation orientation, - int role) const -{ - Q_UNUSED(section); - Q_UNUSED(orientation); - Q_UNUSED(role); - return QVariant(); -} - -int ResultModel::rowCount(const QModelIndex &parent) const -{ - return parent.isValid() ? 0 : d->cache.size(); -} - -void ResultModel::fetchMore(const QModelIndex &parent) -{ - if (parent.isValid()) return; - d->fetch(ResultModelPrivate::FetchMore); -} - -bool ResultModel::canFetchMore(const QModelIndex &parent) const -{ - return parent.isValid() ? false - : d->cache.size() >= d->query.limit() ? false - : d->hasMore; -} - -void ResultModel::forgetResource(const QString &resource) -{ - foreach (const QString &activity, d->query.activities()) { - foreach (const QString &agent, d->query.agents()) { - Stats::forgetResource( - activity, - agent == CURRENT_AGENT_TAG ? - QCoreApplication::applicationName() : agent, - resource); - } - } -} - -void ResultModel::forgetResource(int row) -{ - if (row >= d->cache.size()) return; - - foreach (const QString &activity, d->query.activities()) { - foreach (const QString &agent, d->query.agents()) { - Stats::forgetResource( - activity, - agent == CURRENT_AGENT_TAG ? - QCoreApplication::applicationName() : agent, - d->cache[row].resource()); - } - } -} - -void ResultModel::forgetAllResources() -{ - Stats::forgetResources(d->query); -} - -void ResultModel::setResultPosition(const QString &resource, int position) -{ - d->cache.setLinkedResultPosition(resource, position); -} - -void ResultModel::sortItems(Qt::SortOrder sortOrder) -{ - // TODO -} - -void ResultModel::linkToActivity(const QUrl &resource, - const Terms::Activity &activity, - const Terms::Agent &agent) -{ - d->watcher.linkToActivity(resource, activity, agent); -} - -void ResultModel::unlinkFromActivity(const QUrl &resource, - const Terms::Activity &activity, - const Terms::Agent &agent) -{ - d->watcher.unlinkFromActivity(resource, activity, agent); -} - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - -// #include "resourcemodel.moc" - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/resultmodel.h kactivities-kf5-5.44.0/src/lib/stats/resultmodel.h --- kactivities-kf5-5.18.0/src/lib/stats/resultmodel.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/resultmodel.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,134 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KACTIVITIES_STATS_RESULTMODEL_H -#define KACTIVITIES_STATS_RESULTMODEL_H - -// Qt -#include -#include - -// Local -#include "query.h" - -class QModelIndex; -class QDBusPendingCallWatcher; - -class KConfigGroup; - -namespace KActivities { -namespace Experimental { -namespace Stats { - -class ResultModelPrivate; - -/** - * ResultModel - */ - -class KACTIVITIESSTATS_EXPORT ResultModel : public QAbstractListModel { - Q_OBJECT - -public: - ResultModel(Query query, QObject *parent = 0); - ResultModel(Query query, const QString &clientId, QObject *parent = 0); - virtual ~ResultModel(); - - enum Roles { - ResourceRole = Qt::UserRole, - TitleRole = Qt::UserRole + 1, - ScoreRole = Qt::UserRole + 2, - FirstUpdateRole = Qt::UserRole + 3, - LastUpdateRole = Qt::UserRole + 4, - LinkStatusRole = Qt::UserRole + 5 - }; - - int rowCount(const QModelIndex &parent - = QModelIndex()) const Q_DECL_OVERRIDE; - QVariant data(const QModelIndex &item, - int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; - QHash roleNames() const Q_DECL_OVERRIDE; - - QVariant headerData(int section, Qt::Orientation orientation, - int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; - - void fetchMore(const QModelIndex &parent) Q_DECL_OVERRIDE; - bool canFetchMore(const QModelIndex &parent) const Q_DECL_OVERRIDE; - - // TODO: BLOCKER Move these to libKActivities - void linkToActivity(const QUrl &resource, - const Terms::Activity &activity - = Terms::Activity(QStringList()), - const Terms::Agent &agent - = Terms::Agent(QStringList())); - - void unlinkFromActivity(const QUrl &resource, - const Terms::Activity &activity - = Terms::Activity(QStringList()), - const Terms::Agent &agent - = Terms::Agent(QStringList())); - -public Q_SLOTS: - /** - * Removes the specified resource from the history - */ - void forgetResource(const QString &resource); - - /** - * Removes the specified resource from the history - */ - void forgetResource(int row); - - /** - * Clears the history of all resources that match the current - * model query - */ - void forgetAllResources(); - - /** - * Moves the resource to the specified position. - * - * Note that this only applies to the linked resources - * since the recently/frequently used ones have - * their natural order. - * This requires the clientId to be specified on construction. - */ - void setResultPosition(const QString &resource, int position); - - /** - * Sort the items by title. - * - * Note that this only affects the linked resources - * since the recently/frequently used ones have - * their natural order. - * This requires the config to be specified on construction. - */ - void sortItems(Qt::SortOrder sortOrder); - -private: - friend class ResultModelPrivate; - ResultModelPrivate *const d; -}; - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - -#endif // KACTIVITIES_STATS_RESULTMODEL_H - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/resultset.cpp kactivities-kf5-5.44.0/src/lib/stats/resultset.cpp --- kactivities-kf5-5.18.0/src/lib/stats/resultset.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/resultset.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,435 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "resultset.h" - -// Qt -#include -#include -#include - -// Local -#include -#include - -// Boost and STL -#include -#include -#include -#include - -// KActivities -#include "activitiessync_p.h" - -namespace KActivities { -namespace Experimental { -namespace Stats { - -using namespace Terms; - -class ResultSet_ResultPrivate { -public: - QString resource; - QString title; - QString mimetype; - double score; - uint lastUpdate; - uint firstUpdate; - ResultSet::Result::LinkStatus linkStatus; - -}; - -ResultSet::Result::Result() - : d(new ResultSet_ResultPrivate()) -{ -} - -ResultSet::Result::Result(Result &&result) - : d(result.d) -{ - result.d = Q_NULLPTR; -} - -ResultSet::Result::Result(const Result &result) - : d(new ResultSet_ResultPrivate(*result.d)) -{ -} - -ResultSet::Result &ResultSet::Result::operator=(Result result) -{ - std::swap(d, result.d); - - return *this; -} - -ResultSet::Result::~Result() -{ - delete d; -} - -#define CREATE_GETTER_AND_SETTER(Type, Name, Set) \ - Type ResultSet::Result::Name() const \ - { \ - return d->Name; \ - } \ - \ - void ResultSet::Result::Set(Type Name) \ - { \ - d->Name = Name; \ - } - -CREATE_GETTER_AND_SETTER(QString, resource, setResource) -CREATE_GETTER_AND_SETTER(QString, title, setTitle) -CREATE_GETTER_AND_SETTER(QString, mimetype, setMimetype) -CREATE_GETTER_AND_SETTER(double, score, setScore) -CREATE_GETTER_AND_SETTER(uint, lastUpdate, setLastUpdate) -CREATE_GETTER_AND_SETTER(uint, firstUpdate, setFirstUpdate) -CREATE_GETTER_AND_SETTER(ResultSet::Result::LinkStatus, linkStatus, setLinkStatus) - -#undef CREATE_GETTER_AND_SETTER - -class ResultSetPrivate { -public: - Common::Database::Ptr database; - QSqlQuery query; - Query queryDefinition; - - mutable ActivitiesSync::ConsumerPtr activities; - - void initQuery() - { - if (!database || query.isActive()) { - return; - } - - auto selection = queryDefinition.selection(); - - query = database->execQuery(replaceQueryParameters( - selection == LinkedResources ? linkedResourcesQuery() - : selection == UsedResources ? usedResourcesQuery() - : selection == AllResources ? allResourcesQuery() - : QString())); - - if (query.lastError().isValid()) { - qDebug() << "Error: " << query.lastError(); - } - - Q_ASSERT_X(query.isActive(), "ResultSet initQuery", "Query is not valid"); - } - - QString agentClause(const QString &agent) const - { - if (agent == QLatin1String(":any")) return QStringLiteral("1"); - - return "agent = '" + ( - agent == QLatin1String(":current") ? QCoreApplication::instance()->applicationName() : - agent - ) + "'"; - } - - QString activityClause(const QString &activity) const - { - if (activity == QLatin1String(":any")) return QStringLiteral("1"); - - return "activity = '" + ( - activity == QLatin1String(":current") ? ActivitiesSync::currentActivity(activities) : - activity - ) + "'"; - } - - inline QString starPattern(const QString &pattern) const - { - return Common::parseStarPattern(pattern, QStringLiteral("%"), [] (QString str) { - return str.replace(QLatin1String("%"), QLatin1String("\\%")).replace(QLatin1String("_"), QLatin1String("\\_")); - }); - } - - QString urlFilterClause(const QString &urlFilter) const - { - if (urlFilter == QLatin1String("*")) return QStringLiteral("1"); - - return "resource LIKE '" + Common::starPatternToLike(urlFilter) + "' ESCAPE '\\'"; - } - - QString mimetypeClause(const QString &mimetype) const - { - if (mimetype == QLatin1String(":any") || mimetype == QLatin1String("*")) return QStringLiteral("1"); - - return "mimetype LIKE '" + Common::starPatternToLike(mimetype) + "' ESCAPE '\\'"; - } - - /** - * Transforms the input list's elements with the f member method, - * and returns the resulting list - */ - template - inline - QStringList transformedList(const QStringList &input, F f) const - { - using namespace std::placeholders; - - QStringList result; - boost::transform(input, - std::back_inserter(result), - std::bind(f, this, _1)); - - return result; - } - - QString limitOffsetSuffix() const - { - QString result; - - const int limit = queryDefinition.limit(); - if (limit > 0) { - result += " LIMIT " + QString::number(limit); - - const int offset = queryDefinition.offset(); - if (offset > 0) { - result += " OFFSET " + QString::number(offset); - } - } - - return result; - } - - inline QString replaceQueryParameters(const QString &_query) const - { - // ORDER BY column - auto ordering = queryDefinition.ordering(); - QString orderingColumn = QStringLiteral("linkStatus DESC, ") + ( - ordering == HighScoredFirst ? QStringLiteral("score DESC,") - : ordering == RecentlyCreatedFirst ? QStringLiteral("firstUpdate DESC,") - : ordering == RecentlyUsedFirst ? QStringLiteral("lastUpdate DESC,") - : ordering == OrderByTitle ? QStringLiteral("title ASC,") - : QString() - ); - - - // WHERE clause for filtering on agents - QStringList agentsFilter = transformedList( - queryDefinition.agents(), &ResultSetPrivate::agentClause); - - // WHERE clause for filtering on activities - QStringList activitiesFilter = transformedList( - queryDefinition.activities(), &ResultSetPrivate::activityClause); - - // WHERE clause for filtering on resource URLs - QStringList urlFilter = transformedList( - queryDefinition.urlFilters(), &ResultSetPrivate::urlFilterClause); - - // WHERE clause for filtering on resource mime - QStringList mimetypeFilter = transformedList( - queryDefinition.types(), &ResultSetPrivate::mimetypeClause); - - auto query = _query - + "\nORDER BY $orderingColumn resource ASC\n" - + limitOffsetSuffix(); - - - return kamd::utils::debug_and_return("Query: ", - query - .replace(QLatin1String("$orderingColumn"), orderingColumn) - .replace(QLatin1String("$agentsFilter"), agentsFilter.join(QStringLiteral(" OR "))) - .replace(QLatin1String("$activitiesFilter"), activitiesFilter.join(QStringLiteral(" OR "))) - .replace(QLatin1String("$urlFilter"), urlFilter.join(QStringLiteral(" OR "))) - .replace(QLatin1String("$mimetypeFilter"), mimetypeFilter.join(QStringLiteral(" OR "))) - ); - } - - const QString &linkedResourcesQuery() const - { - // TODO: We need to correct the scores based on the time that passed - // since the cache was last updated, although, for this query, - // scores are not that important. - static const QString query = - QStringLiteral("\n" - "SELECT \n" - " rl.targettedResource as resource \n" - " , SUM(rsc.cachedScore) as score \n" - " , MIN(rsc.firstUpdate) as firstUpdate \n" - " , MAX(rsc.lastUpdate) as lastUpdate \n" - " , rl.usedActivity as activity \n" - " , rl.initiatingAgent as agent \n" - " , COALESCE(ri.title, rl.targettedResource) as title \n" - " , ri.mimetype as mimetype \n" - " , 2 as linkStatus \n" - - "FROM \n" - " ResourceLink rl \n" - "LEFT JOIN \n" - " ResourceScoreCache rsc \n" - " ON rl.targettedResource = rsc.targettedResource \n" - " AND rl.usedActivity = rsc.usedActivity \n" - " AND rl.initiatingAgent = rsc.initiatingAgent \n" - "LEFT JOIN \n" - " ResourceInfo ri \n" - " ON rl.targettedResource = ri.targettedResource \n" - - "WHERE \n" - " ($agentsFilter) \n" - " AND ($activitiesFilter) \n" - " AND ($urlFilter)\n" - " AND ($mimetypeFilter)\n" - - "GROUP BY resource, title \n") - ; - - return query; - } - - const QString &usedResourcesQuery() const - { - // TODO: We need to correct the scores based on the time that passed - // since the cache was last updated - static const QString query = - QStringLiteral("\n" - "SELECT \n" - " rsc.targettedResource as resource \n" - " , SUM(rsc.cachedScore) as score \n" - " , MIN(rsc.firstUpdate) as firstUpdate \n" - " , MAX(rsc.lastUpdate) as lastUpdate \n" - " , rsc.usedActivity as activity \n" - " , rsc.initiatingAgent as agent \n" - " , COALESCE(ri.title, rsc.targettedResource) as title \n" - " , ri.mimetype as mimetype \n" - " , 1 as linkStatus \n" // Note: this is replaced by allResourcesQuery - - "FROM \n" - " ResourceScoreCache rsc \n" - "LEFT JOIN \n" - " ResourceInfo ri \n" - " ON rsc.targettedResource = ri.targettedResource \n" - - "WHERE \n" - " ($agentsFilter) \n" - " AND ($activitiesFilter) \n" - " AND ($urlFilter)\n" - " AND ($mimetypeFilter)\n" - - "GROUP BY resource, title \n") - ; - - return query; - } - - const QString &allResourcesQuery() const - { - // TODO: Implement counting of the linked items - // int linkedItemsCount = 0; // ...; - // - // if (linkedItemsCount >= limit) { - // return linkedResourcesQuery(); - // - // } else if (linkedItemsCount == 0) { - // return usedResourcesQuery(); - // - // } else { - static QString usedResourcesQuery_ = usedResourcesQuery(); - - static const QString query = - "WITH LinkedResourcesResults as (\n" + - linkedResourcesQuery() + - "\n)\n" + - "SELECT * FROM LinkedResourcesResults \n" + - "UNION \n" + - usedResourcesQuery_ - .replace(QLatin1String("WHERE "), - QLatin1String("WHERE rsc.targettedResource NOT IN " - "(SELECT resource FROM LinkedResourcesResults) AND ")) - .replace(QLatin1String("1 as linkStatus"), QLatin1String("0 as linkStatus")); - // } - - return query; - } - - ResultSet::Result currentResult() const - { - ResultSet::Result result; - result.setResource(query.value(QStringLiteral("resource")).toString()); - result.setTitle(query.value(QStringLiteral("title")).toString()); - result.setMimetype(query.value(QStringLiteral("mimetype")).toString()); - result.setScore(query.value(QStringLiteral("score")).toDouble()); - result.setLastUpdate(query.value(QStringLiteral("lastUpdate")).toInt()); - result.setFirstUpdate(query.value(QStringLiteral("firstUpdate")).toInt()); - - result.setLinkStatus( - (ResultSet::Result::LinkStatus)query.value(QStringLiteral("linkStatus")).toInt()); - - return result; - } -}; - -ResultSet::ResultSet(Query query) - : d(new ResultSetPrivate()) -{ - using namespace Common; - - d->database = Database::instance(Database::ResourcesDatabase, Database::ReadOnly); - - if (!(d->database)) { - qWarning() << "KActivities ERROR: There is no database. This probably means " - "that you do not have the Activity Manager running, or that " - "something else is broken on your system. Recent documents and " - "alike will not work!"; - Q_ASSERT_X((bool)d->database, "ResultSet constructor", "Database is NULL"); - } - - d->queryDefinition = query; - - d->initQuery(); -} - -ResultSet::ResultSet(ResultSet &&source) - : d(nullptr) -{ - std::swap(d, source.d); -} - -ResultSet::ResultSet(const ResultSet &source) - : d(new ResultSetPrivate(*source.d)) -{ -} - -ResultSet &ResultSet::operator= (ResultSet source) -{ - std::swap(d, source.d); - return *this; -} - -ResultSet::~ResultSet() -{ - delete d; -} - -ResultSet::Result ResultSet::at(int index) const -{ - Q_ASSERT_X(d->query.isActive(), "ResultSet::at", "Query is not active"); - - d->query.seek(index); - - return d->currentResult(); -} - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - -#include "resultset_iterator.cpp" - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/resultset.h kactivities-kf5-5.44.0/src/lib/stats/resultset.h --- kactivities-kf5-5.18.0/src/lib/stats/resultset.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/resultset.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,241 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KACTIVITIES_STATS_RESULTSET -#define KACTIVITIES_STATS_RESULTSET - -#include "query.h" - -#include - -namespace KActivities { -namespace Experimental { -namespace Stats { - -class ResultSetPrivate; -class ResultSet_ResultPrivate; -class ResultSet_IteratorPrivate; - -/** - * Class that can query the KActivities usage tracking mechanism - * for resources. - * - * Note: It is important to note that you should not create a - * long-living instance of ResultSet. It might lock the database - * and break proper updating mechanisms. - */ -class KACTIVITIESSTATS_EXPORT ResultSet { -public: - /** - * Structure containing data of one of the results - */ - class Result { - public: - Result(); - ~Result(); - - Result(Result &&result); - Result(const Result &result); - Result &operator=(Result result); - - enum LinkStatus { - NotLinked = 0, - Unknown = 1, - Linked = 2 - }; - - QString resource() const; ///< URL of the resource - QString title() const; ///< Title of the resource, or URL if title is not known - QString mimetype() const; ///< Mimetype of the resource, or URL if title is not known - double score() const; ///< The score calculated based on the usage statistics - uint lastUpdate() const; ///< Timestamp of the last update - uint firstUpdate() const; ///< Timestamp of the first update - LinkStatus linkStatus() const; ///< Differentiates between linked and non-linked resources in mixed queries - - void setResource(QString resource); - void setTitle(QString title); - void setMimetype(QString mimetype); - void setScore(double score); - void setLastUpdate(uint lastUpdate); - void setFirstUpdate(uint firstUpdate); - void setLinkStatus(LinkStatus linkedStatus); - - private: - ResultSet_ResultPrivate * d; - }; - - /** - * ResultSet is a container. This notifies the generic algorithms - * from STLboost, and others of the contained type. - */ - typedef Result value_type; - - /** - * Creates the ResultSet from the specified query - */ - ResultSet(Query query); - - ResultSet(ResultSet && source); - ResultSet(const ResultSet &source); - ResultSet &operator= (ResultSet source); - ~ResultSet(); - - /** - * @returns a result at the specified index - * @param index of the result - * @note You should use iterators instead - */ - Result at(int index) const; - - // Iterators - - /** - * An STL-style constant forward iterator for accessing the results in a ResultSet - * TODO: Consider making this to be more than just forward iterator. - * Maybe even a random-access one. - */ - class const_iterator { - public: - typedef std::random_access_iterator_tag iterator_category; - typedef int difference_type; - - typedef const Result value_type; - typedef const Result& reference; - typedef const Result* pointer; - - const_iterator(); - const_iterator(const const_iterator &source); - const_iterator &operator=(const const_iterator &source); - - ~const_iterator(); - - bool isSourceValid() const; - - reference operator*() const; - pointer operator->() const; - - // prefix - const_iterator& operator++(); - // postfix - const_iterator operator++(int); - - // prefix - const_iterator& operator--(); - // postfix - const_iterator operator--(int); - - const_iterator operator+(difference_type n) const; - const_iterator& operator+=(difference_type n); - - const_iterator operator-(difference_type n) const; - const_iterator& operator-=(difference_type n); - - reference operator[](difference_type n) const; - - friend bool operator==(const const_iterator &left, const const_iterator &right); - friend bool operator!=(const const_iterator &left, const const_iterator &right); - - friend bool operator<(const const_iterator &left, const const_iterator &right); - friend bool operator>(const const_iterator &left, const const_iterator &right); - - friend bool operator<=(const const_iterator &left, const const_iterator &right); - friend bool operator>=(const const_iterator &left, const const_iterator &right); - - friend difference_type operator-(const const_iterator &left, const const_iterator &right); - - private: - const_iterator(const ResultSet *resultSet, int currentRow); - - friend class ResultSet; - - ResultSet_IteratorPrivate* const d; - }; - - /** - * @returns a constant iterator pointing to the start of the collection - * (to the first item) - * @note as usual in C++, the range of the collection is [begin, end) - */ - const_iterator begin() const; - /** - * @returns a constant iterator pointing to the end of the collection - * (after the last item) - * @note as usual in C++, the range of the collection is [begin, end) - */ - const_iterator end() const; - - /** - * Alias for begin - */ - inline const_iterator cbegin() const { return begin(); } - /** - * Alias for end - */ - inline const_iterator cend() const { return end(); } - - /** - * Alias for begin - */ - inline const_iterator constBegin() const { return cbegin(); } - /** - * Alias for end - */ - inline const_iterator constEnd() const { return cend(); } - -private: - friend class ResultSet_IteratorPrivate; - ResultSetPrivate *d; -}; - -bool KACTIVITIESSTATS_EXPORT operator==(const ResultSet::const_iterator &left, - const ResultSet::const_iterator &right); -bool KACTIVITIESSTATS_EXPORT operator!=(const ResultSet::const_iterator &left, - const ResultSet::const_iterator &right); - -bool KACTIVITIESSTATS_EXPORT operator<(const ResultSet::const_iterator &left, - const ResultSet::const_iterator &right); -bool KACTIVITIESSTATS_EXPORT operator>(const ResultSet::const_iterator &left, - const ResultSet::const_iterator &right); - -bool KACTIVITIESSTATS_EXPORT operator<=(const ResultSet::const_iterator &left, - const ResultSet::const_iterator &right); -bool KACTIVITIESSTATS_EXPORT operator>=(const ResultSet::const_iterator &left, - const ResultSet::const_iterator &right); - -ResultSet::const_iterator::difference_type KACTIVITIESSTATS_EXPORT -operator-(const ResultSet::const_iterator &left, - const ResultSet::const_iterator &right); - -inline QDebug operator<< (QDebug out, const ResultSet::Result &result) -{ - return out - << (result.linkStatus() == ResultSet::Result::Linked ? "⊤" : - result.linkStatus() == ResultSet::Result::NotLinked ? "⊥" : "?") - << result.score() - << result.title() - << result.resource() - ; -} - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - -#endif // KACTIVITIES_STATS_RESULTSET - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/resultset_iterator.cpp kactivities-kf5-5.44.0/src/lib/stats/resultset_iterator.cpp --- kactivities-kf5-5.18.0/src/lib/stats/resultset_iterator.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/resultset_iterator.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,267 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include - -namespace KActivities { -namespace Experimental { -namespace Stats { - -using namespace Terms; - -typedef ResultSet::const_iterator iterator; - -// Iterator - -class ResultSet_IteratorPrivate { -public: - ResultSet_IteratorPrivate(const ResultSet *resultSet, int currentRow = -1) - : resultSet(resultSet) - , currentRow(currentRow) - { - updateValue(); - } - - const ResultSet *resultSet; - int currentRow; - boost::optional currentValue; - - inline void moveTo(int row) - { - if (row == currentRow) return; - currentRow = row; - updateValue(); - } - - inline void moveBy(int row) - { - moveTo(currentRow + row); - } - - void updateValue() - { - using namespace boost; - - if (!resultSet || !resultSet->d->query.seek(currentRow)) { - currentValue = none; - - } else { - auto value = resultSet->d->currentResult(); - currentValue = make_optional(std::move(value)); - - } - } - - friend void swap(ResultSet_IteratorPrivate &left, - ResultSet_IteratorPrivate &right) - { - using namespace std; - swap(left.resultSet, right.resultSet); - swap(left.currentRow, right.currentRow); - swap(left.currentValue, right.currentValue); - } - - bool operator==(const ResultSet_IteratorPrivate &other) const - { - bool thisValid = currentValue.is_initialized(); - bool otherValid = other.currentValue.is_initialized(); - - return - // If one is valid, and the other is not, - // they are not equal - thisValid != otherValid ? false : - - // If both are invalid, they are equal - !thisValid ? true : - - // Otherwise, really compare - resultSet == other.resultSet && - currentRow == other.currentRow; - } - - bool isValid() const - { - return currentValue.is_initialized(); - } - - static bool sameSource(const ResultSet_IteratorPrivate &left, - const ResultSet_IteratorPrivate &right) - { - return left.resultSet == right.resultSet && - left.resultSet != Q_NULLPTR; - } - -}; - -iterator::const_iterator(const ResultSet *resultSet, int currentRow) - : d(new ResultSet_IteratorPrivate(resultSet, currentRow)) -{ -} - -iterator::const_iterator() - : d(new ResultSet_IteratorPrivate(Q_NULLPTR, -1)) -{ -} - -iterator::const_iterator(const const_iterator &source) - : d(new ResultSet_IteratorPrivate(source.d->resultSet, - source.d->currentRow)) -{ -} - -bool iterator::isSourceValid() const -{ - return d->resultSet != Q_NULLPTR; -} - -iterator &iterator::operator=(const const_iterator &source) -{ - const_iterator temp(source); - swap(*d, *temp.d); - return *this; -} - -iterator::~const_iterator() -{ - delete d; -} - -iterator::reference iterator::operator*() const -{ - return d->currentValue.get(); -} - -iterator::pointer iterator::operator->() const -{ - return &d->currentValue.get(); -} - -// prefix -iterator& iterator::operator++() -{ - d->currentRow++; - d->updateValue(); - - return *this; -} - -// postfix -iterator iterator::operator++(int) -{ - return const_iterator(d->resultSet, d->currentRow + 1); -} - -// prefix -iterator& iterator::operator--() -{ - d->currentRow--; - d->updateValue(); - - return *this; -} - -// postfix -iterator iterator::operator--(int) -{ - return const_iterator(d->resultSet, d->currentRow - 1); -} - -iterator ResultSet::begin() const -{ - return const_iterator(this, d->database ? 0 : -1); -} - -iterator ResultSet::end() const -{ - return const_iterator(this, -1); -} - -iterator iterator::operator+(iterator::difference_type n) const -{ - return const_iterator(d->resultSet, d->currentRow + n); -} - -iterator &iterator::operator+=(iterator::difference_type n) -{ - d->moveBy(n); - return *this; -} - -iterator iterator::operator-(iterator::difference_type n) const -{ - return const_iterator(d->resultSet, d->currentRow - n); -} - -iterator &iterator::operator-=(iterator::difference_type n) -{ - d->moveBy(-n); - return *this; -} - -iterator::reference iterator::operator[](iterator::difference_type n) const -{ - return *(*this + n); -} - -// bool iterator::operator==(const const_iterator &right) const -// { -// return *d == *right.d; -// } -// -// bool iterator::operator!=(const const_iterator &right) const -// { -// return !(*d == *right.d); -// } - -bool operator==(const iterator &left, const iterator &right) -{ - return *left.d == *right.d; -} - -bool operator!=(const iterator &left, const iterator &right) -{ - return !(*left.d == *right.d); -} - -#define COMPARATOR_IMPL(OP) \ - bool operator OP(const iterator &left, const iterator &right) \ - { \ - return ResultSet_IteratorPrivate::sameSource(*left.d, *right.d) \ - ? left.d->currentRow OP right.d->currentRow \ - : false; \ - } - -COMPARATOR_IMPL(<) -COMPARATOR_IMPL(>) -COMPARATOR_IMPL(<=) -COMPARATOR_IMPL(>=) - -#undef COMPARATOR_IMPL - -iterator::difference_type operator-(const iterator &left, const iterator &right) -{ - return ResultSet_IteratorPrivate::sameSource(*left.d, *right.d) - ? left.d->currentRow - right.d->currentRow - : 0; -} - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/resultwatcher.cpp kactivities-kf5-5.44.0/src/lib/stats/resultwatcher.cpp --- kactivities-kf5-5.18.0/src/lib/stats/resultwatcher.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/resultwatcher.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,377 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "resultwatcher.h" - -// Qt -#include -#include -#include -#include -#include - -// Local -#include -#include - -// Boost and STL -#include -#include -#include -#include -#include - -// KActivities -#include - -#include "resourceslinking_interface.h" -#include "resourcesscoring_interface.h" -#include "common/dbus/common.h" -#include "common/specialvalues.h" -#include "activitiessync_p.h" -#include "utils/lazy_val.h" -#include "utils/qsqlquery_iterator.h" - -#include - -#define QDBG qDebug() << "KActivitiesStats(" << (void*)this << ")" - -namespace KActivities { -namespace Experimental { -namespace Stats { - -// Main class - -class ResultWatcherPrivate { -public: - mutable ActivitiesSync::ConsumerPtr activities; - QList urlFilters; - - ResultWatcherPrivate(ResultWatcher *parent, Query query) - : linking(new KAMD_DBUS_CLASS_INTERFACE(Resources/Linking, ResourcesLinking, Q_NULLPTR)) - , scoring(new KAMD_DBUS_CLASS_INTERFACE(Resources/Scoring, ResourcesScoring, Q_NULLPTR)) - , q(parent) - , query(query) - { - for (const auto& urlFilter: query.urlFilters()) { - urlFilters << Common::starPatternToRegex(urlFilter); - } - - m_resultInvalidationTimer.setSingleShot(true); - m_resultInvalidationTimer.setInterval(200); - QObject::connect(&m_resultInvalidationTimer, &QTimer::timeout, - q, emit &ResultWatcher::resultsInvalidated); - } - - // Like boost any_of, but returning true if the range is empty - template - inline bool any_of(const Collection &collection, Predicate &&predicate) const - { - const auto begin = collection.cbegin(); - const auto end = collection.cend(); - - return begin == end - || std::any_of(begin, end, std::forward(predicate)); - } - -#define DEBUG_MATCHERS 0 - - // Processing the list of activities as specified by the query. - // If it contains :any, we are returning true, otherwise - // we want to match a specific activity (be it the current - // activity or not). The :global special value is not special here - bool activityMatches(const QString &activity) const - { - #if DEBUG_MATCHERS - qDebug() << "Activity " << activity << "matching against" - << query.activities(); - #endif - - return kamd::utils::debug_and_return(DEBUG_MATCHERS, " -> returning ", - activity == ANY_ACTIVITY_TAG || - any_of(query.activities(), [&] (const QString &matcher) { - return - matcher == ANY_ACTIVITY_TAG - ? true - : matcher == CURRENT_ACTIVITY_TAG - ? (matcher == activity || activity == ActivitiesSync::currentActivity(activities)) - : activity == matcher; - } - )); - } - - // Same as above, but for agents - bool agentMatches(const QString &agent) const - { - #if DEBUG_MATCHERS - qDebug() << "Agent " << agent << "matching against" << query.agents(); - #endif - - return kamd::utils::debug_and_return(DEBUG_MATCHERS, " -> returning ", - agent == ANY_AGENT_TAG || - any_of(query.agents(), [&] (const QString &matcher) { - return - matcher == ANY_AGENT_TAG - ? true - : matcher == CURRENT_AGENT_TAG - ? (matcher == agent || agent == QCoreApplication::applicationName()) - : agent == matcher; - } - )); - } - - // Same as above, but for urls - bool urlMatches(const QString &url) const - { - #if DEBUG_MATCHERS - qDebug() << "Url " << url << "matching against" << urlFilters; - #endif - - return kamd::utils::debug_and_return(DEBUG_MATCHERS, " -> returning ", - any_of(urlFilters, [&] (const QRegExp &matcher) { - return matcher.exactMatch(url); - } - )); - } - - bool typeMatches(const QString &resource) const - { - // We don't necessarily need to retrieve the type from - // the database. If we do, get it only once - auto type = kamd::utils::make_lazy_val([&] () -> QString { - using Common::Database; - - auto query - = Database::instance(Database::ResourcesDatabase, - Database::ReadOnly) - ->execQuery("SELECT mimetype FROM ResourceInfo WHERE " - "targettedResource = '" + resource + "'"); - - for (const auto &item : query) { - return item[0].toString(); - } - - return QString(); - }); - - #if DEBUG_MATCHERS - qDebug() << "Type " << "...type..." << "matching against" << query.types(); - qDebug() << "ANY_TYPE_TAG" << ANY_TYPE_TAG; - #endif - - return kamd::utils::debug_and_return(DEBUG_MATCHERS, " -> returning ", - any_of(query.types(), [&] (const QString &matcher) { - return matcher == ANY_TYPE_TAG || matcher == type; - } - )); - } - -#undef DEBUG_MATCHERS - - bool eventMatches(const QString &agent, const QString &resource, - const QString &activity) const - { - // The order of checks is not arbitrary, it is sorted - // from the cheapest, to the most expensive - return agentMatches(agent) - && activityMatches(activity) - && urlMatches(resource) - && typeMatches(resource) - ; - } - - void onResourceLinkedToActivity(const QString &agent, - const QString &resource, - const QString &activity) - { - // The used resources do not really care about the linked ones - if (query.selection() == Terms::UsedResources) return; - - if (!eventMatches(agent, resource, activity)) return; - - // TODO: See whether it makes sense to have - // lastUpdate/firstUpdate here as well - emit q->resultLinked(resource); - } - - void onResourceUnlinkedFromActivity(const QString &agent, - const QString &resource, - const QString &activity) - { - // The used resources do not really care about the linked ones - if (query.selection() == Terms::UsedResources) return; - - if (!eventMatches(agent, resource, activity)) return; - - emit q->resultUnlinked(resource); - } - - void onResourceScoreUpdated(const QString &activity, const QString &agent, - const QString &resource, double score, - uint lastUpdate, uint firstUpdate) - { - Q_ASSERT_X(activity == "00000000-0000-0000-0000-000000000000" || - !QUuid(activity).isNull(), - "ResultWatcher::onResourceScoreUpdated", - "The activity should be always specified here, no magic values"); - - // The linked resources do not really care about the stats - if (query.selection() == Terms::LinkedResources) return; - - if (!eventMatches(agent, resource, activity)) return; - - emit q->resultScoreUpdated(resource, score, lastUpdate, firstUpdate); - } - - - void onEarlierStatsDeleted(QString, int) - { - // The linked resources do not really care about the stats - if (query.selection() == Terms::LinkedResources) return; - - scheduleResultsInvalidation(); - } - - void onRecentStatsDeleted(QString, int, QString) - { - // The linked resources do not really care about the stats - if (query.selection() == Terms::LinkedResources) return; - - scheduleResultsInvalidation(); - } - - void onStatsForResourceDeleted(const QString &activity, - const QString &agent, - const QString &resource) - { - if (query.selection() == Terms::LinkedResources) return; - - if (activityMatches(activity) && agentMatches(agent)) { - if (resource.contains('*')) { - scheduleResultsInvalidation(); - - } else if (typeMatches(resource)) { - if (!m_resultInvalidationTimer.isActive()) { - // Remove a result only if we haven't an invalidation - // request scheduled - q->resultRemoved(resource); - } - } - } - } - - // Lets not send a lot of invalidation events at once - QTimer m_resultInvalidationTimer; - void scheduleResultsInvalidation() - { - QDBG << "Scheduling invalidation"; - m_resultInvalidationTimer.start(); - } - - QScopedPointer linking; - QScopedPointer scoring; - - ResultWatcher * const q; - Query query; -}; - -ResultWatcher::ResultWatcher(Query query, QObject *parent) - : QObject(parent) - , d(new ResultWatcherPrivate(this, query)) -{ - using namespace org::kde::ActivityManager; - using namespace std::placeholders; - - // There is no need for private slots, when we have bind - - // Connecting the linking service - QObject::connect( - d->linking.data(), &ResourcesLinking::ResourceLinkedToActivity, - this, std::bind(&ResultWatcherPrivate::onResourceLinkedToActivity, d, _1, _2, _3)); - QObject::connect( - d->linking.data(), &ResourcesLinking::ResourceUnlinkedFromActivity, - this, std::bind(&ResultWatcherPrivate::onResourceUnlinkedFromActivity, d, _1, _2, _3)); - - // Connecting the scoring service - QObject::connect( - d->scoring.data(), &ResourcesScoring::ResourceScoreUpdated, - this, std::bind(&ResultWatcherPrivate::onResourceScoreUpdated, d, _1, _2, _3, _4, _5, _6)); - QObject::connect( - d->scoring.data(), &ResourcesScoring::ResourceScoreDeleted, - this, std::bind(&ResultWatcherPrivate::onStatsForResourceDeleted, d, _1, _2, _3)); - QObject::connect( - d->scoring.data(), &ResourcesScoring::RecentStatsDeleted, - this, std::bind(&ResultWatcherPrivate::onRecentStatsDeleted, d, _1, _2, _3)); - QObject::connect( - d->scoring.data(), &ResourcesScoring::EarlierStatsDeleted, - this, std::bind(&ResultWatcherPrivate::onEarlierStatsDeleted, d, _1, _2)); - -} - -ResultWatcher::~ResultWatcher() -{ - delete d; -} - -void ResultWatcher::linkToActivity(const QUrl &resource, - const Terms::Activity &activity, - const Terms::Agent &agent) -{ - const auto activities = - (!activity.values.isEmpty()) ? activity.values : - (!d->query.activities().isEmpty()) ? d->query.activities() : - Terms::Activity::current().values; - const auto agents = - (!agent.values.isEmpty()) ? agent.values : - (!d->query.agents().isEmpty()) ? d->query.agents() : - Terms::Agent::current().values; - - for (const auto &activity : activities) { - for (const auto &agent : agents) { - d->linking->LinkResourceToActivity(agent, resource.toString(), - activity); - } - } -} - -void ResultWatcher::unlinkFromActivity(const QUrl &resource, - const Terms::Activity &activity, - const Terms::Agent &agent) -{ - const auto activities = - !activity.values.isEmpty() ? activity.values : - !d->query.activities().isEmpty() ? d->query.activities() : - Terms::Activity::current().values; - const auto agents = - !agent.values.isEmpty() ? agent.values : - !d->query.agents().isEmpty() ? d->query.agents() : - Terms::Agent::current().values; - - for (const auto &activity : activities) { - for (const auto &agent : agents) { - d->linking->UnlinkResourceFromActivity(agent, resource.toString(), - activity); - } - } -} - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/resultwatcher.h kactivities-kf5-5.44.0/src/lib/stats/resultwatcher.h --- kactivities-kf5-5.18.0/src/lib/stats/resultwatcher.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/resultwatcher.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,128 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KACTIVITIES_STATS_RESULTWATCHER -#define KACTIVITIES_STATS_RESULTWATCHER - -#include - -#include "query.h" -#include "resultset.h" - -namespace KActivities { -namespace Experimental { -namespace Stats { - -class ResultWatcherPrivate; - -/** - * A very thin class that sends signals when new resources matching - * a predefined query are available. - */ -class KACTIVITIESSTATS_EXPORT ResultWatcher: public QObject { - Q_OBJECT - -public: - ResultWatcher(Query query, QObject *parent = Q_NULLPTR); - ~ResultWatcher(); - -Q_SIGNALS: - /** - * Emitted when a result has been added or updated. This either means - * a new resource has appeared in the result set, or that - * a previously existing one has some of the attributes changed. - * @param result new data for the resource defined by result.resource - */ - void resultScoreUpdated(const QString &resource, double score, - uint lastUpdate, uint firstUpdate); - - /** - * Emitted when a result has been added or updated. This either means - * a new resource has appeared in the result set, or that - * a previously existing one has some of the attributes changed. - * @param result new data for the resource defined by result.resource - */ - void resultRemoved(const QString &resource); - - /** - * Emitted when a result has been linked to the activity - */ - void resultLinked(const QString &resource); - - /** - * Emitted when a result has been linked to the activity - */ - void resultUnlinked(const QString &resource); - - /** - * Emitted when the title of a resource has been changed. - * @param resource URL of the resource that has a new title - * @param title new title of the resource - * @note This signal will be emitted even for the resources that - * do not match the specified query. This is because the class is - * lightweight, and it does not keep track of which resources match - * the query to be able to filter this signal. - */ - void resourceTitleChanged(const QString &resource, const QString &title); - - /** - * Emitted when the mimetype of a resource has been changed. - * @param resource URL of the resource that has a new mimetype - * @param mimetype new mimetype of the resource - * @note This signal will be emitted even for the resources that - * do not match the specified query. This is because the class is - * lightweight, and it does not keep track of which resources match - * the query to be able to filter this signal. - */ - void resourceMimetypeChanged(const QString &resource, const QString &mimetype); - - /** - * Emitted when the client should forget about all the results it - * knew about and reload them. This can happen when the user clears - * the history, or when there are more significant changes to the data. - */ - void resultsInvalidated(); - -public: - // TODO: BLOCKER Move these to libKActivities - - void linkToActivity(const QUrl &resource, - const Terms::Activity &activity - = Terms::Activity(QStringList()), - const Terms::Agent &agent - = Terms::Agent(QStringList())); - - void unlinkFromActivity(const QUrl &resource, - const Terms::Activity &activity - = Terms::Activity(QStringList()), - const Terms::Agent &agent - = Terms::Agent(QStringList())); - - -private: - ResultWatcherPrivate *const d; - -}; - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - -#endif // KACTIVITIES_STATS_RESULTWATCHER - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/terms.cpp kactivities-kf5-5.44.0/src/lib/stats/terms.cpp --- kactivities-kf5-5.18.0/src/lib/stats/terms.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/terms.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,120 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "terms.h" -#include - -namespace KActivities { -namespace Experimental { -namespace Stats { - -// Term classes -#define IMPLEMENT_TERM_CONSTRUCTORS(TYPE) \ - Terms::TYPE::TYPE(QStringList values) \ - : values(values) \ - {} \ - \ - Terms::TYPE::TYPE(QString value) \ - : values(QStringList() << value) \ - {} - -#define IMPLEMENT_SPECIAL_TERM_VALUE(TYPE, VALUE_NAME, VALUE) \ - Terms::TYPE Terms::TYPE::VALUE_NAME() \ - { \ - return Terms::TYPE(VALUE); \ - } - -IMPLEMENT_TERM_CONSTRUCTORS(Type) -IMPLEMENT_SPECIAL_TERM_VALUE(Type, any, ":any") - -IMPLEMENT_TERM_CONSTRUCTORS(Agent) -IMPLEMENT_SPECIAL_TERM_VALUE(Agent, any, ":any") -IMPLEMENT_SPECIAL_TERM_VALUE(Agent, global, ":global") -IMPLEMENT_SPECIAL_TERM_VALUE(Agent, current, ":current") - -IMPLEMENT_TERM_CONSTRUCTORS(Activity) -IMPLEMENT_SPECIAL_TERM_VALUE(Activity, any, ":any") -IMPLEMENT_SPECIAL_TERM_VALUE(Activity, global, ":global") -IMPLEMENT_SPECIAL_TERM_VALUE(Activity, current, ":current") - -IMPLEMENT_TERM_CONSTRUCTORS(Url) -IMPLEMENT_SPECIAL_TERM_VALUE(Url, localFile, "/*") -IMPLEMENT_SPECIAL_TERM_VALUE(Url, file, QStringList() << "/*" << "smb:*" << "fish:*" << "sftp:*" << "ftp:*") - -#undef IMPLEMENT_TERM_CONSTRUCTORS -#undef IMPLEMENT_SPECIAL_TERM_VALUE - -Terms::Limit::Limit(int value) - : value(value) -{ -} - -Terms::Limit Terms::Limit::all() -{ - return Limit(0); -} - -Terms::Offset::Offset(int value) - : value(value) -{ -} - -Terms::Url Terms::Url::startsWith(const QString &prefix) -{ - return Url(prefix + "*"); -} - -Terms::Url Terms::Url::contains(const QString &infix) -{ - return Url("*" + infix + "*"); -} - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - -namespace KAStats = KActivities::Experimental::Stats; - -#define QDEBUG_TERM_OUT(TYPE, OUT) \ - QDebug operator<<(QDebug dbg, const KAStats::Terms::TYPE &_) \ - { \ - using namespace KAStats::Terms; \ - dbg.nospace() << #TYPE << ": " << (OUT); \ - return dbg; \ - } - -QDEBUG_TERM_OUT(Order, _ == HighScoredFirst ? "HighScore" : - _ == RecentlyUsedFirst ? "RecentlyUsed" : - _ == RecentlyCreatedFirst ? "RecentlyCreated" : - "Alphabetical" ) - -QDEBUG_TERM_OUT(Select, _ == LinkedResources ? "LinkedResources" : - _ == UsedResources ? "UsedResources" : - "AllResources" ) - -QDEBUG_TERM_OUT(Type, _.values) -QDEBUG_TERM_OUT(Agent, _.values) -QDEBUG_TERM_OUT(Activity, _.values) -QDEBUG_TERM_OUT(Url, _.values) - -QDEBUG_TERM_OUT(Limit, _.value) -QDEBUG_TERM_OUT(Offset, _.value) - -#undef QDEBUG_TERM_OUT - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/terms.h kactivities-kf5-5.44.0/src/lib/stats/terms.h --- kactivities-kf5-5.18.0/src/lib/stats/terms.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/terms.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,234 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KACTIVITIES_STATS_TERMS_H -#define KACTIVITIES_STATS_TERMS_H - -#include - -#ifdef Q_COMPILER_INITIALIZER_LISTS -#include -#endif - -#include -#include - -#include "kactivitiesstats_export.h" - -namespace KActivities { -namespace Experimental { -namespace Stats { - -namespace Terms { - /** - * Enumerator specifying the ordering in which the - * results of the query should be listed - */ - enum KACTIVITIESSTATS_EXPORT Order { - HighScoredFirst, ///< Resources with the highest scores first - RecentlyUsedFirst, ///< Recently used resources first - RecentlyCreatedFirst, ///< Recently created resources first - OrderByUrl, ///< Order by uri, alphabetically - OrderByTitle ///< Order by uri, alphabetically - }; - - /** - * Which resources should be returned - */ - enum KACTIVITIESSTATS_EXPORT Select { - LinkedResources, ///< Resources linked to an activity, or globally - UsedResources, ///< Resources that have been accessed - AllResources ///< Combined set of accessed and linked resources - }; - - /** - * How many items do you need? - */ - struct KACTIVITIESSTATS_EXPORT Limit { - Limit(int value); - static Limit all(); - int value; - }; - - /** - * How many items to skip? - * This can be specified only if limit is also set to a finite value. - */ - struct KACTIVITIESSTATS_EXPORT Offset { - Offset(int value); - int value; - }; - - /** - * Term to filter the resources according to their types - */ - struct KACTIVITIESSTATS_EXPORT Type { - /** - * Show resources of any type - */ - static Type any(); - - #ifdef Q_COMPILER_INITIALIZER_LISTS - inline Type(std::initializer_list types) - : values(types) - { - } - #endif - - Type(QStringList types); - Type(QString type); - - const QStringList values; - }; - - /** - * Term to filter the resources according the agent (application) which - * accessed it - */ - struct KACTIVITIESSTATS_EXPORT Agent { - /** - * Show resources accessed/linked by any application - */ - static Agent any(); - - /** - * Show resources not tied to a specific agent - */ - static Agent global(); - - /** - * Show resources accessed/linked by the current application - */ - static Agent current(); - - #ifdef Q_COMPILER_INITIALIZER_LISTS - inline Agent(std::initializer_list agents) - : values(agents) - { - } - #endif - - Agent(QStringList agents); - Agent(QString agent); - - const QStringList values; - }; - - /** - * Term to filter the resources according the activity in which they - * were accessed - */ - struct KACTIVITIESSTATS_EXPORT Activity { - /** - * Show resources accessed in / linked to any activity - */ - static Activity any(); - - /** - * Show resources linked to all activities - */ - static Activity global(); - - /** - * Show resources linked to all activities - */ - static Activity current(); - - #ifdef Q_COMPILER_INITIALIZER_LISTS - inline Activity(std::initializer_list activities) - : values(activities) - { - } - #endif - - Activity(QStringList activities); - Activity(QString activity); - - const QStringList values; - }; - - /** - * Url filtering. - */ - struct KACTIVITIESSTATS_EXPORT Url { - /** - * Show only resources that start with the specified prefix - */ - static Url startsWith(const QString &prefix); - - /** - * Show resources that contain the specified infix - */ - static Url contains(const QString &infix); - - /** - * Show local files - */ - static Url localFile(); - - /** - * Show local files, smb, fish, ftp and stfp - */ - static Url file(); - - #ifdef Q_COMPILER_INITIALIZER_LISTS - inline Url(std::initializer_list urlPatterns) - : values(urlPatterns) - { - } - #endif - - Url(QStringList urlPatterns); - Url(QString urlPattern); - - const QStringList values; - - }; -} // namespace Terms - -} // namespace Stats -} // namespace Experimental -} // namespace KActivities - -KACTIVITIESSTATS_EXPORT -QDebug operator<<(QDebug dbg, const KActivities::Experimental::Stats::Terms::Order &order); - -KACTIVITIESSTATS_EXPORT -QDebug operator<<(QDebug dbg, const KActivities::Experimental::Stats::Terms::Select &select); - -KACTIVITIESSTATS_EXPORT -QDebug operator<<(QDebug dbg, const KActivities::Experimental::Stats::Terms::Type &type); - -KACTIVITIESSTATS_EXPORT -QDebug operator<<(QDebug dbg, const KActivities::Experimental::Stats::Terms::Agent &agent); - -KACTIVITIESSTATS_EXPORT -QDebug operator<<(QDebug dbg, const KActivities::Experimental::Stats::Terms::Activity &activity); - -KACTIVITIESSTATS_EXPORT -QDebug operator<<(QDebug dbg, const KActivities::Experimental::Stats::Terms::Url &url); - -KACTIVITIESSTATS_EXPORT -QDebug operator<<(QDebug dbg, const KActivities::Experimental::Stats::Terms::Limit &limit); - -KACTIVITIESSTATS_EXPORT -QDebug operator<<(QDebug dbg, const KActivities::Experimental::Stats::Terms::Offset &offset); - -#endif // KACTIVITIES_STATS_TERMS_H - diff -Nru kactivities-kf5-5.18.0/src/lib/stats/version.cpp kactivities-kf5-5.44.0/src/lib/stats/version.cpp --- kactivities-kf5-5.18.0/src/lib/stats/version.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/version.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright 2008 by Aaron Seigo - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "version.h" - -namespace KActivities { -namespace Stats { - -unsigned int version() -{ - return KACTIVITIESSTATS_VERSION; -} - -unsigned int versionMajor() -{ - return KACTIVITIESSTATS_VERSION_MAJOR; -} - -unsigned int versionMinor() -{ - return KACTIVITIESSTATS_VERSION_MINOR; -} - -unsigned int versionRelease() -{ - return KACTIVITIESSTATS_VERSION_RELEASE; -} - -const char *versionString() -{ - return KACTIVITIESSTATS_VERSION_STRING; -} - -} // Stats namespace -} // KActivities namespace diff -Nru kactivities-kf5-5.18.0/src/lib/stats/version.h kactivities-kf5-5.44.0/src/lib/stats/version.h --- kactivities-kf5-5.18.0/src/lib/stats/version.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/stats/version.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ -/* - * Copyright 2008 by Aaron Seigo - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KACTIVITIESSTATS_VERSION_H -#define KACTIVITIESSTATS_VERSION_H - -/** @file version.h */ - -#include "kactivitiesstats_export.h" - -/** - * String version of libkactivitiesstats version, suitable for use in - * file formats or network protocols - */ -#define KACTIVITIESSTATS_VERSION_STRING \ - "0.0.1" - -/// @brief Major version of libkactivitiesstats, at compile time -#define KACTIVITIESSTATS_VERSION_MAJOR \ - 0 -/// @brief Minor version of libkactivitiesstats, at compile time -#define KACTIVITIESSTATS_VERSION_MINOR \ - 0 -/// @brief Release version of libkactivitiesstats, at compile time -#define KACTIVITIESSTATS_VERSION_RELEASE \ - 1 - -#define KACTIVITIESSTATS_MAKE_VERSION(a, b, c) \ - (((a) << 16) | ((b) << 8) | (c)) - -/** - * Compile time macro for the version number of libkactivitiesstats - */ -#define KACTIVITIESSTATS_VERSION \ - KACTIVITIESSTATS_MAKE_VERSION(KACTIVITIESSTATS_VERSION_MAJOR, KACTIVITIESSTATS_VERSION_MINOR, KACTIVITIESSTATS_VERSION_RELEASE) - -/** - * Compile-time macro for checking the kactivities version. Not useful for - * detecting the version of libkactivities at runtime. - */ -#define KACTIVITIESSTATS_IS_VERSION(a, b, c) \ - (KACTIVITIESSTATS_VERSION >= KACTIVITIESSTATS_MAKE_VERSION(a, b, c)) - -/** - * Namespace for everything in libkactivitiesstats - */ -namespace KActivities { -namespace Stats { - -/** - * The runtime version of libkactivitiesstats - */ -KACTIVITIESSTATS_EXPORT unsigned int version(); - -/** - * The runtime major version of libkactivitiesstats - */ -KACTIVITIESSTATS_EXPORT unsigned int versionMajor(); - -/** - * The runtime major version of libkactivitiesstats - */ -KACTIVITIESSTATS_EXPORT unsigned int versionMinor(); - -/** - * The runtime major version of libkactivitiesstats - */ -KACTIVITIESSTATS_EXPORT unsigned int versionRelease(); - -/** - * The runtime version string of libkactivitiesstats - */ -KACTIVITIESSTATS_EXPORT const char *versionString(); - -} // Stats namespace -} // KActivities namespace - -#endif // multiple inclusion guard diff -Nru kactivities-kf5-5.18.0/src/lib/version.cpp kactivities-kf5-5.44.0/src/lib/version.cpp --- kactivities-kf5-5.18.0/src/lib/version.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/version.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,49 @@ +/* + * Copyright 2008 by Aaron Seigo + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "version.h" + +namespace KActivities { + +unsigned int version() +{ + return KACTIVITIES_VERSION; +} + +unsigned int versionMajor() +{ + return KACTIVITIES_VERSION_MAJOR; +} + +unsigned int versionMinor() +{ + return KACTIVITIES_VERSION_MINOR; +} + +unsigned int versionRelease() +{ + return KACTIVITIES_VERSION_RELEASE; +} + +const char *versionString() +{ + return KACTIVITIES_VERSION_STRING; +} + +} // KActivities namespace diff -Nru kactivities-kf5-5.18.0/src/lib/version.h kactivities-kf5-5.44.0/src/lib/version.h --- kactivities-kf5-5.18.0/src/lib/version.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/lib/version.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2008 - 2016 by Aaron Seigo + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef KACTIVITIES_VERSION_BIN_H +#define KACTIVITIES_VERSION_BIN_H + +/** @file version.h */ + +#include "kactivities_export.h" +#include + +#define KACTIVITIES_VERSION_RELEASE KACTIVITIES_VERSION_PATCH + +/** + * Namespace for everything in libkactivities + */ +namespace KActivities { + +/** + * The runtime version of libkactivities + */ +KACTIVITIES_EXPORT unsigned int version(); + +/** + * The runtime major version of libkactivities + */ +KACTIVITIES_EXPORT unsigned int versionMajor(); + +/** + * The runtime major version of libkactivities + */ +KACTIVITIES_EXPORT unsigned int versionMinor(); + +/** + * The runtime major version of libkactivities + */ +KACTIVITIES_EXPORT unsigned int versionRelease(); + +/** + * The runtime version string of libkactivities + */ +KACTIVITIES_EXPORT const char *versionString(); + +} // KActivities namespace + +#endif // multiple inclusion guard diff -Nru kactivities-kf5-5.18.0/src/Messages.sh kactivities-kf5-5.44.0/src/Messages.sh --- kactivities-kf5-5.18.0/src/Messages.sh 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/Messages.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -#!/bin/sh - -# Invoke the extractrc script on all .ui, .rc, and .kcfg files in the sources. -# The results are stored in a pseudo .cpp file to be picked up by xgettext. -lst=`find . -name \*.rc -o -name \*.ui -o -name \*.kcfg` -if [ -n "$lst" ] ; then - $EXTRACTRC $lst >> rc.cpp -fi - -# Run xgettext to extract strings from all source files. -$XGETTEXT `find . -name \*.cpp -o -name \*.h -o -name \*.qml` -o $podir/kactivities5.pot diff -Nru kactivities-kf5-5.18.0/src/service/Activities.cpp kactivities-kf5-5.44.0/src/service/Activities.cpp --- kactivities-kf5-5.18.0/src/service/Activities.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Activities.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,551 +0,0 @@ -/* - * Copyright (C) 2010 - 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include -#include "Activities.h" -#include "Activities_p.h" - -// Qt -#include -#include -#include -#include -#include -#include - -// KDE -#include -#include -#include -#include - -// Utils -#include -#include - -// Local -#include "Debug.h" -#include "activitiesadaptor.h" -#include "ksmserver/KSMServer.h" -#include "common/dbus/common.h" - -// Private -#define ACTIVITY_MANAGER_CONFIG_FILE_NAME QStringLiteral("kactivitymanagerdrc") - -Activities::Private::ConfigurationChecker::ConfigurationChecker() -{ - // Checking whether we need to transfer the KActivities/KDE4 - // configuration file to the new location. - const QString newConfigLocation - = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) - + '/' + ACTIVITY_MANAGER_CONFIG_FILE_NAME; - - if (QFile(newConfigLocation).exists()) { - return; - } - - // Testing for kdehome - Kdelibs4Migration migration; - if (!migration.kdeHomeFound()) { - return; - } - - QString oldConfigFile(migration.locateLocal("config", "activitymanagerrc")); - if (!oldConfigFile.isEmpty()) { - QFile(oldConfigFile).copy(newConfigLocation); - } -} - -Activities::Private::Private(Activities *parent) - : configChecker() - , config(QStringLiteral("kactivitymanagerdrc")) - , q(parent) -{ - // qCDebug(KAMD_ACTIVITIES) << "Using this configuration file:" - // << config.name() - // << config.locationType() - // << QStandardPaths::standardLocations(config.locationType()) - // ; - - // Reading activities from the config file - - const auto runningActivities - = mainConfig() - .readEntry("runningActivities", QStringList()) - .toSet(); - - for (const auto &activity: activityNameConfig().keyList()) { - activities[activity] = runningActivities.contains(activity) - ? Activities::Running - : Activities::Stopped; - } - - // Is this our first start? - if (activities.isEmpty()) { - // We need to add this only after the service has been properly started - QMetaObject::invokeMethod( - q, - "AddActivity", - Qt::QueuedConnection, - Q_ARG(QString, i18n("Default"))); - } -} - -void Activities::Private::loadLastActivity() -{ - // This is called from constructor, no need for locking - - // If there are no public activities, try to load the last used activity - const auto lastUsedActivity - = mainConfig().readEntry("currentActivity", QString()); - - setCurrentActivity( - (lastUsedActivity.isEmpty() && activities.size() > 0) - ? activities.keys().at(0) - : lastUsedActivity); -} - -Activities::Private::~Private() -{ - configSync(); -} - -bool Activities::Private::setCurrentActivity(const QString &activity) -{ - { - // There is nothing expensive in this block, not a problem to lock - QWriteLocker lock(&activitiesLock); - - // Should we change the activity at all? - if (currentActivity == activity) { - return true; - } - - // If the activity is empty, this means we are entering a limbo state - if (activity.isEmpty()) { - currentActivity.clear(); - emit q->CurrentActivityChanged(currentActivity); - return true; - } - - // Does the requested activity exist? - if (!activities.contains(activity)) { - return false; - } - } - - // Start activity - q->StartActivity(activity); - - // Saving the current activity, and notifying - // clients of the change - currentActivity = activity; - - mainConfig().writeEntry("currentActivity", activity); - - scheduleConfigSync(); - - emit q->CurrentActivityChanged(activity); - - return true; -} - -QString Activities::Private::addActivity(const QString &name) -{ - QString activity; - - if (name.isEmpty()) { - Q_ASSERT(!name.isEmpty()); - return activity; - } - - int activitiesCount = 0; - - { - QWriteLocker lock(&activitiesLock); - - // Ensuring a new Uuid. The loop should usually end after only - // one iteration - while (activity.isEmpty() || activities.contains(activity)) { - activity = QUuid::createUuid().toString().mid(1, 36); - } - - // Saves the activity info to the config - - activities[activity] = Invalid; - activitiesCount = activities.size(); - } - - setActivityState(activity, Running); - - q->SetActivityName(activity, name); - - emit q->ActivityAdded(activity); - - scheduleConfigSync(true); - - if (activitiesCount == 1) { - q->SetCurrentActivity(activity); - } - - return activity; -} - -void Activities::Private::removeActivity(const QString &activity) -{ - Q_ASSERT(!activity.isEmpty()); - - // Sanity checks - { - QWriteLocker lock(&activitiesLock); - - if (!activities.contains(activity)) { - return; - } - - // Is somebody trying to remove the last activity? - if (activities.size() == 1) { - return; - } - } - - // If the activity is running, stash it - q->StopActivity(activity); - - setActivityState(activity, Activities::Invalid); - - bool currentActivityDeleted = false; - - { - QWriteLocker lock(&activitiesLock); - // Removing the activity - activities.remove(activity); - - // If the removed activity was the current one, - // set another activity as current - currentActivityDeleted = (currentActivity == activity); - } - - activityNameConfig().deleteEntry(activity); - activityDescriptionConfig().deleteEntry(activity); - activityIconConfig().deleteEntry(activity); - - if (currentActivityDeleted) { - ensureCurrentActivityIsRunning(); - } - - emit q->ActivityRemoved(activity); - - QMetaObject::invokeMethod(q, "ActivityRemoved", Qt::QueuedConnection, - Q_ARG(QString, activity)); - - QMetaObject::invokeMethod(this, "configSync", Qt::QueuedConnection); -} - -void Activities::Private::scheduleConfigSync(const bool soon) -{ - static const auto shortInterval = 1000; - static const auto longInterval = 2 * 60 * 1000; - - // If the timer is not running, or has a longer interval than we need, - // start it - if ((soon && configSyncTimer.interval() > shortInterval) - || !configSyncTimer.isActive()) { - - QMetaObject::invokeMethod( - &configSyncTimer, "start", Qt::QueuedConnection, - Q_ARG(int, soon ? shortInterval : longInterval)); - } -} - -void Activities::Private::configSync() -{ - QMetaObject::invokeMethod(&configSyncTimer, "stop", Qt::QueuedConnection); - config.sync(); -} - -void Activities::Private::setActivityState(const QString &activity, - Activities::State state) -{ - bool configNeedsUpdating = false; - - { - QWriteLocker lock(&activitiesLock); - - Q_ASSERT(activities.contains(activity)); - - if (activities.value(activity) == state) { - return; - } - - // Treating 'Starting' as 'Running', and 'Stopping' as 'Stopped' - // as far as the config file is concerned - configNeedsUpdating = ((activities[activity] & 4) != (state & 4)); - - activities[activity] = state; - } - - switch (state) { - case Activities::Running: - emit q->ActivityStarted(activity); - break; - - case Activities::Stopped: - emit q->ActivityStopped(activity); - break; - - default: - break; - } - - emit q->ActivityStateChanged(activity, state); - - if (configNeedsUpdating) { - QReadLocker lock(&activitiesLock); - - mainConfig().writeEntry("runningActivities", - activities.keys(Activities::Running) - + activities.keys(Activities::Starting)); - scheduleConfigSync(); - } -} - -void Activities::Private::ensureCurrentActivityIsRunning() -{ - // If the current activity is not running, - // make some other activity current - - const auto runningActivities = q->ListActivities(Activities::Running); - - if (!runningActivities.contains(currentActivity) && - runningActivities.size() > 0) { - setCurrentActivity(runningActivities.first()); - } -} - -void Activities::Private::activitySessionStateChanged(const QString &activity, - int status) -{ - QString currentActivity = this->currentActivity; - - { - QReadLocker lock(&activitiesLock); - if (!activities.contains(activity)) { - return; - } - } - - switch (status) { - case KSMServer::Started: - case KSMServer::FailedToStop: - setActivityState(activity, Activities::Running); - break; - - case KSMServer::Stopped: - setActivityState(activity, Activities::Stopped); - - if (currentActivity == activity) { - ensureCurrentActivityIsRunning(); - } - - break; - } - - QMetaObject::invokeMethod(this, "configSync", Qt::QueuedConnection); -} - - -// Main - -Activities::Activities(QObject *parent) - : Module(QStringLiteral("activities"), parent) - , d(this) -{ - qCDebug(KAMD_LOG_ACTIVITIES) << "Starting the KDE Activity Manager daemon" - << QDateTime::currentDateTime(); - - // Basic initialization //////////////////////////////////////////////////// - - // Initializing D-Bus service - - new ActivitiesAdaptor(this); - KDBusConnectionPool::threadConnection().registerObject( - KAMD_DBUS_OBJECT_PATH(Activities), this); - - // Initializing config - - d->connect(&d->configSyncTimer, SIGNAL(timeout()), - SLOT(configSync()), - Qt::QueuedConnection); - - d->configSyncTimer.setSingleShot(true); - - d->ksmserver = new KSMServer(this); - d->connect(d->ksmserver, SIGNAL(activitySessionStateChanged(QString, int)), - SLOT(activitySessionStateChanged(QString, int))); - - // Loading the last used activity, if possible - d->loadLastActivity(); -} - -Activities::~Activities() -{ -} - -QString Activities::CurrentActivity() const -{ - QReadLocker lock(&d->activitiesLock); - return d->currentActivity; -} - -bool Activities::SetCurrentActivity(const QString &activity) -{ - // Public method can not put us in a limbo state - if (activity.isEmpty()) { - return false; - } - - return d->setCurrentActivity(activity); -} - -QString Activities::AddActivity(const QString &name) -{ - if (!KAuthorized::authorize("plasma-desktop/add_activities")) { - return QString(); - } - - return d->addActivity(name); -} - -void Activities::RemoveActivity(const QString &activity) -{ - if (!KAuthorized::authorize("plasma-desktop/add_activities")) { - return; - } - - d->removeActivity(activity); -} - -QStringList Activities::ListActivities() const -{ - QReadLocker lock(&d->activitiesLock); - return d->activities.keys(); -} - -QStringList Activities::ListActivities(int state) const -{ - QReadLocker lock(&d->activitiesLock); - return d->activities.keys((State)state); -} - -QList Activities::ListActivitiesWithInformation() const -{ - using namespace kamd::utils; - - // Mapping activity ids to info - - return as_collection>( - ListActivities() - | transformed(&Activities::ActivityInformation, this) - ); -} - -ActivityInfo Activities::ActivityInformation(const QString &activity) const -{ - return ActivityInfo { - activity, - ActivityName(activity), - ActivityDescription(activity), - ActivityIcon(activity), - ActivityState(activity) - }; -} - -#define CREATE_GETTER_AND_SETTER(What) \ - QString Activities::Activity##What(const QString &activity) const \ - { \ - QReadLocker lock(&d->activitiesLock); \ - return d->activities.contains(activity) ? d->activity##What(activity) \ - : QString(); \ - } \ - \ - void Activities::SetActivity##What(const QString &activity, \ - const QString &value) \ - { \ - { \ - QReadLocker lock(&d->activitiesLock); \ - if (value == d->activity##What(activity) \ - || !d->activities.contains(activity)) { \ - return; \ - } \ - } \ - \ - d->activity##What##Config().writeEntry(activity, value); \ - d->scheduleConfigSync(true); \ - \ - emit Activity##What##Changed(activity, value); \ - emit ActivityChanged(activity); \ - } - -CREATE_GETTER_AND_SETTER(Name) -CREATE_GETTER_AND_SETTER(Description) -CREATE_GETTER_AND_SETTER(Icon) - -#undef CREATE_GETTE_AND_SETTERR - -// Main - -void Activities::StartActivity(const QString &activity) -{ - { - QReadLocker lock(&d->activitiesLock); - if (!d->activities.contains(activity) - || d->activities[activity] != Stopped) { - return; - } - } - - d->setActivityState(activity, Starting); - d->ksmserver->startActivitySession(activity); -} - -void Activities::StopActivity(const QString &activity) -{ - { - QReadLocker lock(&d->activitiesLock); - if (!d->activities.contains(activity) - || d->activities[activity] == Stopped - || d->activities.size() == 1 - || d->activities.keys(Activities::Running).size() <= 1 - ) { - return; - } - } - - d->setActivityState(activity, Stopping); - d->ksmserver->stopActivitySession(activity); -} - -int Activities::ActivityState(const QString &activity) const -{ - QReadLocker lock(&d->activitiesLock); - return d->activities.contains(activity) ? d->activities[activity] : Invalid; -} - diff -Nru kactivities-kf5-5.18.0/src/service/Activities.h kactivities-kf5-5.44.0/src/service/Activities.h --- kactivities-kf5-5.18.0/src/service/Activities.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Activities.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,241 +0,0 @@ -/* - * Copyright (C) 2010, 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_H -#define ACTIVITIES_H - -// Qt -#include -#include - -// Utils -#include - -// Local -#include "Module.h" -#include - - -/** - * Service for tracking the user actions and managing the - * activities - */ -class Activities : public Module { - Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Activities") - Q_PROPERTY(QString CurrentActivity READ CurrentActivity WRITE SetCurrentActivity NOTIFY CurrentActivityChanged) - -public: - /** - * Activity state - * @note: Do not change the values, needed for bit-operations - */ - enum State { - Invalid = 0, - Running = 2, - Starting = 3, - Stopped = 4, - Stopping = 5 - }; - - /** - * Creates new Activities object - */ - Activities(QObject *parent = Q_NULLPTR); - - /** - * Destroys this interface - */ - virtual ~Activities(); - - // workspace activities control -public Q_SLOTS: - /** - * @returns the id of the current activity, empty string if none - */ - QString CurrentActivity() const; - - /** - * Sets the current activity - * @param activity id of the activity to make current - */ - bool SetCurrentActivity(const QString &activity); - - /** - * Adds a new activity - * @param name name of the activity - * @returns id of the newly created activity - */ - QString AddActivity(const QString &name); - - /** - * Starts the specified activity - * @param activity id of the activity to stash - */ - void StartActivity(const QString &activity); - - /** - * Stops the specified activity - * @param activity id of the activity to stash - */ - void StopActivity(const QString &activity); - - /** - * @returns the state of the activity - * @param activity id of the activity - */ - int ActivityState(const QString &activity) const; - - /** - * Removes the specified activity - * @param activity id of the activity to delete - */ - void RemoveActivity(const QString &activity); - - /** - * @returns the list of all existing activities - */ - QStringList ListActivities() const; - - /** - * @returns the list of activities with the specified state - * @param state state - */ - QStringList ListActivities(int state) const; - - /** - * @returns the name of the specified activity - * @param activity id of the activity - */ - QString ActivityName(const QString &activity) const; - - /** - * Sets the name of the specified activity - * @param activity id of the activity - * @param name name to be set - */ - void SetActivityName(const QString &activity, const QString &name); - - /** - * @returns the description of the specified activity - * @param activity id of the activity - */ - QString ActivityDescription(const QString &activity) const; - - /** - * Sets the description of the specified activity - * @param activity id of the activity - * @param description description to be set - */ - void SetActivityDescription(const QString &activity, const QString &description); - - /** - * @returns the icon of the specified activity - * @param activity id of the activity - */ - QString ActivityIcon(const QString &activity) const; - - /** - * Sets the icon of the specified activity - * @param activity id of the activity - * @param icon icon to be set - */ - void SetActivityIcon(const QString &activity, const QString &icon); - -public Q_SLOTS: - /** - * @returns a list of activities with basic info about them - */ - ActivityInfoList ListActivitiesWithInformation() const; - - /** - * @returns the info about an activity - */ - ActivityInfo ActivityInformation(const QString &activity) const; - -Q_SIGNALS: - /** - * This signal is emitted when the global - * activity is changed - * @param activity id of the new current activity - */ - void CurrentActivityChanged(const QString &activity); - - /** - * This signal is emitted when a new activity is created - * @param activity id of the activity - */ - void ActivityAdded(const QString &activity); - - /** - * This signal is emitted when an activity is started - * @param activity id of the activity - */ - void ActivityStarted(const QString &activity); - - /** - * This signal is emitted when an activity is stashed - * @param activity id of the activity - */ - void ActivityStopped(const QString &activity); - - /** - * This signal is emitted when an activity is deleted - * @param activity id of the activity - */ - void ActivityRemoved(const QString &activity); - - /** - * Emitted when an activity name is changed - * @param activity id of the changed activity - * @param name name of the changed activity - */ - void ActivityNameChanged(const QString &activity, const QString &name); - - /** - * Emitted when an activity description is changed - * @param activity id of the changed activity - * @param description description of the changed activity - */ - void ActivityDescriptionChanged(const QString &activity, - const QString &description); - - /** - * Emitted when an activity icon is changed - * @param activity id of the changed activity - * @param icon name of the changed activity - */ - void ActivityIconChanged(const QString &activity, const QString &icon); - - /** - * Emitted when an activity is changed (name, icon, or some other property) - * @param activity id of the changed activity - */ - void ActivityChanged(const QString &activity); - - /** - * Emitted when the state of activity is changed - */ - void ActivityStateChanged(const QString &activity, int state); - -private: - D_PTR; -}; - -#endif // ACTIVITIES_H diff -Nru kactivities-kf5-5.18.0/src/service/Activities_p.h kactivities-kf5-5.44.0/src/service/Activities_p.h --- kactivities-kf5-5.18.0/src/service/Activities_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Activities_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,130 +0,0 @@ -/* - * Copyright (C) 2010, 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_P_H -#define ACTIVITIES_P_H - -// Self -#include "Activities.h" - -// Qt -#include -#include -#include - -// KDE -#include -#include - - -class KSMServer; - -class QDBusInterface; - -class Activities::Private : public QObject { - Q_OBJECT - -public: - Private(Activities *parent); - ~Private(); - - // Loads the last activity - // the user has used - void loadLastActivity(); - - // If the current activity is not running, - // make some other activity current - void ensureCurrentActivityIsRunning(); - -public Q_SLOTS: - bool setCurrentActivity(const QString &activity); - -public: - void setActivityState(const QString &activity, Activities::State state); - - // Configuration - class ConfigurationChecker { - public: - ConfigurationChecker(); - } configChecker; - QTimer configSyncTimer; - KConfig config; - - // Interface to the session management - KSMServer *ksmserver; - - QHash activities; - QReadWriteLock activitiesLock; - QString currentActivity; - -public: - inline KConfigGroup activityNameConfig() - { - return KConfigGroup(&config, "activities"); - } - - inline KConfigGroup activityDescriptionConfig() - { - return KConfigGroup(&config, "activities-descriptions"); - } - - inline KConfigGroup activityIconConfig() - { - return KConfigGroup(&config, "activities-icons"); - } - - inline KConfigGroup mainConfig() - { - return KConfigGroup(&config, "main"); - } - - inline QString activityName(const QString &activity) - { - return activityNameConfig().readEntry(activity, QString()); - } - - inline QString activityDescription(const QString &activity) - { - return activityDescriptionConfig().readEntry(activity, QString()); - } - - inline QString activityIcon(const QString &activity) - { - return activityIconConfig().readEntry(activity, QString()); - } - -public Q_SLOTS: - // Schedules config syncing to be done after - // a predefined time interval - // if soon == true, the syncing is performed - // after a few seconds, otherwise a few minutes - void scheduleConfigSync(const bool soon = false); - - // Immediately syncs the configuration file - void configSync(); - - QString addActivity(const QString &name); - void removeActivity(const QString &activity); - void activitySessionStateChanged(const QString &activity, int state); - -private: - Activities *const q; -}; - -#endif // ACTIVITIES_P_H diff -Nru kactivities-kf5-5.18.0/src/service/Application.cpp kactivities-kf5-5.44.0/src/service/Application.cpp --- kactivities-kf5-5.18.0/src/service/Application.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Application.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,444 +0,0 @@ -/* - * Copyright (C) 2010, 2011, 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include -#include "Application.h" - -// Qt -#include -#include -#include -#include -#include -#include - -// KDE -// #include -// #include -// #include -#include -#include -#include -#include -#include - -// Boost and utils -#include -#include -#include - -// System -#include -#include -#include -#include - -// Local -#include "Activities.h" -#include "Resources.h" -#include "Features.h" -#include "Config.h" -#include "Plugin.h" -#include "Debug.h" -#include "common/dbus/common.h" - - -namespace { - QList s_moduleThreads; -} - -// Runs a QObject inside a QThread - -template -T *runInQThread() -{ - T *object = new T(); - - class Thread : public QThread { - public: - Thread(T *ptr = Q_NULLPTR) - : QThread() - , object(ptr) - { - } - - void run() Q_DECL_OVERRIDE - { - std::unique_ptr o(object); - exec(); - } - - private: - T *object; - - } *thread = new Thread(object); - - s_moduleThreads << thread; - - object->moveToThread(thread); - thread->start(); - - return object; -} - -class Application::Private { -public: - Private() - { - } - - static inline bool isPluginEnabled(const KConfigGroup &config, - const KPluginMetaData& plugin) - { - const auto pluginName = plugin.pluginId(); - qCDebug(KAMD_LOG_APPLICATION) << "Plugin Name is " << pluginName << plugin.fileName(); - - if (pluginName == "org.kde.ActivityManager.ResourceScoring") { - // SQLite plugin is necessary for the proper workspace behaviour - return true; - } else { - return config.readEntry(pluginName + "Enabled", plugin.isEnabledByDefault()); - } - } - - bool loadPlugin(const KPluginMetaData& plugin); - - Resources *resources; - Activities *activities; - Features *features; - - QStringList pluginIds; - QList plugins; - - static Application *s_instance; -}; - -Application *Application::Private::s_instance = Q_NULLPTR; - -Application::Application(int &argc, char **argv) - : QApplication(argc, argv) -{ -} - -void Application::init() -{ - if (!KDBusConnectionPool::threadConnection().registerService( - KAMD_DBUS_SERVICE)) { - exit(EXIT_SUCCESS); - } - - // KAMD is a daemon, if it crashes it is not a problem as - // long as it restarts properly - // TODO: Restart on crash - // KCrash::setFlags(KCrash::AutoRestart); - d->resources = runInQThread(); - d->activities = runInQThread(); - d->features = runInQThread(); - /* d->config */ new Config(this); // this does not need a separate thread - - QMetaObject::invokeMethod(this, "loadPlugins", Qt::QueuedConnection); - - QDBusConnection::sessionBus().registerObject("/ActivityManager", this, - QDBusConnection::ExportAllSlots); -} - -bool Application::Private::loadPlugin(const KPluginMetaData& plugin) -{ - if (!plugin.isValid()) { - qCWarning(KAMD_LOG_APPLICATION) << "[ FAILED ] plugin offer not valid"; - return false; - } - - if (pluginIds.contains(plugin.pluginId())) { - qCDebug(KAMD_LOG_APPLICATION) << "[ OK ] already loaded: " << plugin.pluginId(); - return true; - } - - KPluginLoader loader(plugin.fileName()); - KPluginFactory* factory = loader.factory(); - if (!factory) { - qCWarning(KAMD_LOG_APPLICATION) << "[ FAILED ] Could not load KPluginFactory for:" - << plugin.pluginId() << loader.errorString(); - return false; - } - - auto pluginInstance = factory->create(); - - auto &modules = Module::get(); - - if (pluginInstance) { - pluginInstance->init(modules); - - pluginIds << plugin.pluginId(); - plugins << pluginInstance; - - qCDebug(KAMD_LOG_APPLICATION) << "[ OK ] loaded: " << plugin.pluginId(); - return true; - - } else { - qCWarning(KAMD_LOG_APPLICATION) << "[ FAILED ] loading: " << plugin.pluginId() << loader.errorString(); - // TODO: Show a notification for a plugin that failed to load - return false; - } -} - -void Application::loadPlugins() -{ - using namespace std::placeholders; - - const auto config - = KSharedConfig::openConfig(QStringLiteral("kactivitymanagerdrc")) - ->group("Plugins"); - const auto offers = KPluginLoader::findPlugins(QStringLiteral(KAMD_PLUGIN_DIR), - std::bind(Private::isPluginEnabled, config, _1)); - qCDebug(KAMD_LOG_APPLICATION) << "Found" << offers.size() << "enabled plugins:"; - - for (const auto &offer : offers) { - d->loadPlugin(offer); - } -} - -bool Application::loadPlugin(const QString &pluginId) -{ - auto offers = KPluginLoader::findPluginsById(QStringLiteral(KAMD_PLUGIN_DIR), pluginId); - - if (offers.isEmpty()) { - qCWarning(KAMD_LOG_APPLICATION) << "[ FAILED ] not found: " << pluginId; - return false; - } - - return d->loadPlugin(offers.first()); -} - -Application::~Application() -{ - qDebug() << "Cleaning up..."; - - // Waiting for the threads to finish - for (const auto thread : s_moduleThreads) { - thread->quit(); - thread->wait(); - - delete thread; - } - - // Deleting plugin objects - for (const auto plugin : d->plugins) { - delete plugin; - } - - Private::s_instance = Q_NULLPTR; -} - -int Application::newInstance() -{ - //We don't want to show the mainWindow() - return 0; -} - -Activities &Application::activities() const -{ - return *d->activities; -} - -Resources &Application::resources() const -{ - return *d->resources; -} - -// void Application::quit() -// { -// if (Private::s_instance) { -// Private::s_instance->exit(); -// delete Private::s_instance; -// } -// } - -void Application::quit() -{ - QApplication::quit(); -} - -#include "../lib/core/version.h" -QString Application::serviceVersion() const -{ - return KACTIVITIES_VERSION_STRING; -} - -// Leaving object oriented world :) - -namespace { - template - Return callOnRunningService(const QString &method) - { - static QDBusInterface remote(KAMD_DBUS_SERVICE, "/ActivityManager", - "org.kde.ActivityManager.Application"); - QDBusReply reply = remote.call(method); - - return (Return)reply; - } - - QString runningServiceVersion() - { - return callOnRunningService("serviceVersion"); - } - - bool isServiceRunning() - { - return QDBusConnection::sessionBus().interface()->isServiceRegistered( - KAMD_DBUS_SERVICE); - } -} - -int main(int argc, char **argv) -{ - Application application(argc, argv); - application.setApplicationName(QStringLiteral("ActivityManager")); - application.setOrganizationDomain(QStringLiteral("kde.org")); - - // KAboutData about("kactivitymanagerd", Q_NULLPTR, ki18n("KDE Activity Manager"), "3.0", - // ki18n("KDE Activity Management Service"), - // KAboutData::License_GPL, - // ki18n("(c) 2010, 2011, 2012 Ivan Cukic"), KLocalizedString(), - // "http://www.kde.org/"); - - // KCmdLineArgs::init(argc, argv, &about); - - const auto arguments = application.arguments(); - - if (arguments.size() == 0) { - exit(EXIT_FAILURE); - - } else if (arguments.size() != 1 && (arguments.size() != 2 || arguments[1] == "--help")) { - - QTextStream(stdout) - << "start\tStarts the service\n" - << "stop\tStops the server\n" - << "status\tPrints basic server information\n" - << "start-daemon\tStarts the service without forking (use with caution)\n" - << "--help\tThis help message\n"; - - exit(EXIT_SUCCESS); - - } else if (arguments.size() == 1 || arguments[1] == "start") { - - // Checking whether the service is already running - if (isServiceRunning()) { - QTextStream(stdout) << "Already running\n"; - exit(EXIT_SUCCESS); - } - - // Creating the watcher, but not on the wall - - QDBusServiceWatcher watcher(QStringLiteral("org.kde.ActivityManager"), - QDBusConnection::sessionBus()); - - QObject::connect(&watcher, &QDBusServiceWatcher::serviceRegistered, - [] (const QString &service) { - if (service != KAMD_DBUS_SERVICE) { - return; - } - - QTextStream(stdout) - << "Service started, version: " << runningServiceVersion() - << "\n"; - - exit(EXIT_SUCCESS); - }); - - // Starting the dameon - - QProcess::startDetached( - KAMD_INSTALL_PREFIX "/bin/kactivitymanagerd", - QStringList{"start-daemon"} - ); - - return application.exec(); - - } else if (arguments[1] == "stop") { - if (!isServiceRunning()) { - QTextStream(stdout) << "Service not running\n"; - exit(EXIT_SUCCESS); - } - - callOnRunningService("quit"); - - QTextStream(stdout) << "Service stopped\n"; - - return EXIT_SUCCESS; - - } else if (arguments[1] == "status") { - - // Checking whether the service is already running - if (isServiceRunning()) { - QTextStream(stdout) << "The service is running, version: " - << runningServiceVersion() << "\n"; - } else { - QTextStream(stdout) << "The service is not running\n"; - - } - - return EXIT_SUCCESS; - - } else if (arguments[1] == "start-daemon") { - // Really starting the activity manager - - KDBusService service(KDBusService::Unique); - - #if QT_VERSION < QT_VERSION_CHECK(5, 3, 0) - KAMD_LOG_APPLICATION().setEnabled(QtDebugMsg, true); - KAMD_LOG_RESOURCES() .setEnabled(QtDebugMsg, true); - KAMD_LOG_ACTIVITIES() .setEnabled(QtDebugMsg, true); - KAMD_LOG_APPLICATION().setEnabled(QtWarningMsg, true); - KAMD_LOG_RESOURCES() .setEnabled(QtWarningMsg, true); - KAMD_LOG_ACTIVITIES() .setEnabled(QtWarningMsg, true); - #endif - - application.init(); - - return application.exec(); - - } else { - QTextStream(stdout) << "Unrecognized command: " << arguments[1] << '\n'; - - return EXIT_FAILURE; - } -} - -#ifndef DISABLE_CSIGNAL_HANDLING - -#include - -struct CleanUpOnExit{ - - CleanUpOnExit() { - signal(SIGINT, &CleanUpOnExit::exit); - signal(SIGTERM, &CleanUpOnExit::exit); - } - - static void exit(int sig) { - Q_UNUSED(sig) - - QCoreApplication::exit(0); - } - -} cleanup; - -#endif diff -Nru kactivities-kf5-5.18.0/src/service/Application.h kactivities-kf5-5.44.0/src/service/Application.h --- kactivities-kf5-5.18.0/src/service/Application.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Application.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef APPLICATION_H -#define APPLICATION_H - -// Qt -#include - -// Utils -#include - - -class Resources; -class Activities; -class Features; - -/** - * Main application object - * This can *not* be a QGuiApplication because - * we need KWindowSystem widgets. - */ -class Application : public QApplication { - Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Application") - -public: - Application(int &argc, char **argv); - virtual ~Application(); - - virtual int newInstance(); - - // static Application * self(); - // static void quit(); - - Resources &resources() const; - Activities &activities() const; - Features &features() const; - -public Q_SLOTS: - void quit(); - QString serviceVersion() const; - bool loadPlugin(const QString &plugin); - -private Q_SLOTS: - void init(); - void loadPlugins(); - -private: - D_PTR; - - friend int main(int, char**); -}; - -#endif // APPLICATION_H diff -Nru kactivities-kf5-5.18.0/src/service/CMakeLists.txt kactivities-kf5-5.44.0/src/service/CMakeLists.txt --- kactivities-kf5-5.18.0/src/service/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (ActivityManager) - -# General -find_package (ECM 0.0.8 REQUIRED NO_MODULE) -set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) - -find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Sql Gui Widgets) - -find_package (KF5Config ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5CoreAddons ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5I18n ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5WindowSystem ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5GlobalAccel ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5XmlGui ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5KIO ${KF5_DEP_VERSION} CONFIG REQUIRED) - -# Standard stuff - -set (CMAKE_INCLUDE_CURRENT_DIR ON) - -add_library(kactivitymanagerd_plugin SHARED Plugin.cpp Module.cpp Event.cpp Debug.cpp) -generate_export_header(kactivitymanagerd_plugin) -target_link_libraries(kactivitymanagerd_plugin PUBLIC Qt5::Core Qt5::DBus KF5::CoreAddons KF5::ConfigCore) - -add_subdirectory (plugins) - -set (kactivitymanager_SRCS - Application.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.cpp - - Debug.cpp - Activities.cpp - Resources.cpp - Features.cpp - Config.cpp - - ksmserver/KSMServer.cpp - ) - -qt5_add_dbus_adaptor ( - kactivitymanager_SRCS - ../common/dbus/org.kde.ActivityManager.Activities.xml - Activities.h Activities - ) - -qt5_add_dbus_adaptor ( - kactivitymanager_SRCS - ../common/dbus/org.kde.ActivityManager.Resources.xml - Resources.h Resources - ) - -qt5_add_dbus_adaptor ( - kactivitymanager_SRCS - ../common/dbus/org.kde.ActivityManager.Features.xml - Features.h Features - ) - -add_executable (kactivitymanagerd ${kactivitymanager_SRCS}) - -target_link_libraries (kactivitymanagerd - Qt5::Core - Qt5::DBus - Qt5::Gui - KF5::DBusAddons - KF5::CoreAddons - KF5::ConfigCore - KF5::I18n - KF5::WindowSystem - kactivitymanagerd_plugin - ) - -########### install application ############### - -install (FILES - files/kactivitymanagerd.desktop - DESTINATION ${KDE_INSTALL_KSERVICES5DIR} - ) - -install (TARGETS - kactivitymanagerd kactivitymanagerd_plugin ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} - ) - -install (FILES - files/kactivitymanagerd-plugin.desktop - DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR} - ) - diff -Nru kactivities-kf5-5.18.0/src/service/Config.cpp kactivities-kf5-5.44.0/src/service/Config.cpp --- kactivities-kf5-5.18.0/src/service/Config.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Config.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include - -#include - -#include -#include - -#include - -#include - -class Config::Private { -public: - Private(Config *parent) - : q(parent) - , mainConfigFile(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) - + QStringLiteral("/kactivitymanagerdrc")) - , pluginConfigFile(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) - + QStringLiteral("/kactivitymanagerd-pluginsrc")) - { - using namespace std::placeholders; - - watcher.addFile(mainConfigFile); - watcher.addFile(pluginConfigFile); - - QObject::connect( - &watcher, &KDirWatch::created, - q, std::bind(&Private::configFileChanged, this, _1)); - QObject::connect( - &watcher, &KDirWatch::dirty, - q, std::bind(&Private::configFileChanged, this, _1)); - } - - void configFileChanged(const QString &file) - { - if (file == pluginConfigFile) { - emit q->pluginConfigChanged(); - } else { - emit q->mainConfigChanged(); - } - } - - KDirWatch watcher; - -private: - Config * const q; - - const QString mainConfigFile; - const QString pluginConfigFile; -}; - -Config::Config(QObject *parent) - : Module("config", parent) - , d(this) -{ -} - -Config::~Config() -{ -} - - diff -Nru kactivities-kf5-5.18.0/src/service/Config.h kactivities-kf5-5.44.0/src/service/Config.h --- kactivities-kf5-5.18.0/src/service/Config.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Config.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef CONFIG_H -#define CONFIG_H - -#include - -class Config : public Module { - Q_OBJECT - -public: - Config(QObject *parent = Q_NULLPTR); - virtual ~Config(); - -Q_SIGNALS: - void pluginConfigChanged(); - void mainConfigChanged(); - -private: - D_PTR; -}; - -#endif // CONFIG_H - diff -Nru kactivities-kf5-5.18.0/src/service/Debug.cpp kactivities-kf5-5.44.0/src/service/Debug.cpp --- kactivities-kf5-5.18.0/src/service/Debug.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Debug.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "Debug.h" - -#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) -// logging category for this framework, default: log stuff >= warning -Q_LOGGING_CATEGORY(KAMD_LOG_ACTIVITIES, "org.kde.kactivities.activities", QtWarningMsg) -Q_LOGGING_CATEGORY(KAMD_LOG_RESOURCES, "org.kde.kactivities.resources", QtWarningMsg) -Q_LOGGING_CATEGORY(KAMD_LOG_APPLICATION, "org.kde.kactivities.application", QtWarningMsg) -#else -Q_LOGGING_CATEGORY(KAMD_LOG_ACTIVITIES, "org.kde.kactivities.activities") -Q_LOGGING_CATEGORY(KAMD_LOG_RESOURCES, "org.kde.kactivities.resources") -Q_LOGGING_CATEGORY(KAMD_LOG_APPLICATION, "org.kde.kactivities.application") -#endif diff -Nru kactivities-kf5-5.18.0/src/service/Debug.h kactivities-kf5-5.44.0/src/service/Debug.h --- kactivities-kf5-5.18.0/src/service/Debug.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Debug.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_DEBUG_P_H -#define ACTIVITIES_DEBUG_P_H - -#include - -Q_DECLARE_LOGGING_CATEGORY(KAMD_LOG_ACTIVITIES) -Q_DECLARE_LOGGING_CATEGORY(KAMD_LOG_RESOURCES) -Q_DECLARE_LOGGING_CATEGORY(KAMD_LOG_APPLICATION) - -#endif /* ACTIVITIES_DEBUG_P_H */ - diff -Nru kactivities-kf5-5.18.0/src/service/Event.cpp kactivities-kf5-5.44.0/src/service/Event.cpp --- kactivities-kf5-5.18.0/src/service/Event.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Event.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include "Event.h" - -// Local -#include "Debug.h" - - -Event::Event() - : wid(0) - , type(Accessed) - , timestamp(QDateTime::currentDateTime()) -{ -} - -Event::Event(const QString &vApplication, quintptr vWid, const QString &vUri, int vType) - : application(vApplication) - , wid(vWid) - , uri(vUri) - , type(vType) - , timestamp(QDateTime::currentDateTime()) -{ - Q_ASSERT(!vApplication.isEmpty()); - Q_ASSERT(!vUri.isEmpty()); -} - -Event Event::deriveWithType(Type type) const -{ - Event result(*this); - result.type = type; - return result; -} - -bool Event::operator==(const Event &other) const -{ - return application == other.application && wid == other.wid && uri == other.uri && type == other.type && timestamp == other.timestamp; -} - -QString Event::typeName() const -{ - switch (type) { - case Accessed: - return QStringLiteral("Accessed"); - case Opened: - return QStringLiteral("Opened"); - case Modified: - return QStringLiteral("Modified"); - case Closed: - return QStringLiteral("Closed"); - case FocussedIn: - return QStringLiteral("FocussedIn"); - case FocussedOut: - return QStringLiteral("FocussedOut"); - default: - return QStringLiteral("Other"); - } -} - -QDebug operator<<(QDebug dbg, const Event &e) -{ -#ifndef QT_NO_DEBUG_OUTPUT - dbg << "Event(" << e.application << e.wid << e.typeName() << e.uri << ":" << e.timestamp << ")"; -#else - Q_UNUSED(e); -#endif - return dbg.space(); -} diff -Nru kactivities-kf5-5.18.0/src/service/Event.h kactivities-kf5-5.44.0/src/service/Event.h --- kactivities-kf5-5.18.0/src/service/Event.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Event.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef EVENT_H -#define EVENT_H - -#include "kactivitymanagerd_plugin_export.h" - -// Qt -#include -#include -#include - - -/** - * - */ -class KACTIVITYMANAGERD_PLUGIN_EXPORT Event { -public: - enum Type { - Accessed = 0, ///< resource was accessed, but we don't know for how long it will be open/used - - Opened = 1, ///< resource was opened - Modified = 2, ///< previously opened resource was modified - Closed = 3, ///< previously opened resource was closed - - FocussedIn = 4, ///< resource get the keyboard focus - FocussedOut = 5, ///< resource lost the focus - - LastEventType = 5, - UserEventType = 32 - }; - - // These events can't come outside of the activity manager daemon, - // they are intended to provide some additional functionality - // to the daemon plugins - enum UserType { - UpdateScore = UserEventType + 1 - }; - - Event(); - - explicit Event(const QString &application, quintptr wid, const QString &uri, - int type = Accessed); - - Event deriveWithType(Type type) const; - - bool operator==(const Event &other) const; - -public: - QString application; - quintptr wid; - QString uri; - int type; - QDateTime timestamp; - - QString typeName() const; -}; - -QDebug operator<<(QDebug dbg, const Event &e); - -typedef QList EventList; - -Q_DECLARE_METATYPE(Event) -Q_DECLARE_METATYPE(EventList) - -#endif // EVENT_H diff -Nru kactivities-kf5-5.18.0/src/service/Features.cpp kactivities-kf5-5.44.0/src/service/Features.cpp --- kactivities-kf5-5.18.0/src/service/Features.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Features.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include "Features.h" - -// KDE -#include - -// Utils -#include - -// Local -#include "featuresadaptor.h" -#include "common/dbus/common.h" - - -class Features::Private { -}; - -Features::Features(QObject *parent) - : Module(QStringLiteral("features"), parent) - , d() -{ - new FeaturesAdaptor(this); - KDBusConnectionPool::threadConnection().registerObject( - KAMD_DBUS_OBJECT_PATH(Features), this); -} - -Features::~Features() -{ -} - -// Features object is just a gateway to the other KAMD modules. -// This is a convenience method to pass the request down to the module - -template -static RetType passToModule(const QString &key, RetType defaultResult, Function f) -{ - if (key.isEmpty()) { - return defaultResult; - } - - const auto params = key.split(QLatin1Char('/')); - const auto module = Module::get(params.first()); - - if (!module) { - return defaultResult; - } - - return f(static_cast(module), - params.mid(1)); -} - -#define FEATURES_PASS_TO_MODULE(RetType, DefaultResult, What) \ - passToModule(key, DefaultResult, \ - [=](Module *module, const QStringList ¶ms)->RetType{ \ - What \ - }); - -bool Features::IsFeatureOperational(const QString &key) const -{ - return FEATURES_PASS_TO_MODULE(bool, false, - return module->isFeatureOperational(params);); -} - -QStringList Features::ListFeatures(const QString &key) const -{ - if (key.isEmpty()) { - return Module::get().keys(); - } - - return FEATURES_PASS_TO_MODULE(QStringList, QStringList(), - return module->listFeatures(params);); -} - -QDBusVariant Features::GetValue(const QString &key) const -{ - return FEATURES_PASS_TO_MODULE(QDBusVariant, QDBusVariant(), - return module->featureValue(params);); -} - -void Features::SetValue(const QString &key, const QDBusVariant &value) -{ - FEATURES_PASS_TO_MODULE(bool, true, - module->setFeatureValue(params, value); - return true; - ); -} - -#undef FEATURES_PASS_TO_MODULE diff -Nru kactivities-kf5-5.18.0/src/service/Features.h kactivities-kf5-5.44.0/src/service/Features.h --- kactivities-kf5-5.18.0/src/service/Features.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Features.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2010, 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef FEATURES_H -#define FEATURES_H - -// Qt -#include -#include -#include - -// Utils -#include - -// Local -#include "Module.h" - - -/** - * Features object provides one interface for clients - * to access other objects' features - */ -class Features : public Module { - Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Features") - -public: - Features(QObject *parent = Q_NULLPTR); - virtual ~Features(); - -public Q_SLOTS: - /** - * Is the feature backend available? - */ - bool IsFeatureOperational(const QString &feature) const; - - QStringList ListFeatures(const QString &module) const; - - QDBusVariant GetValue(const QString &property) const; - - void SetValue(const QString &property, const QDBusVariant &value); - -private: - D_PTR; -}; - -#endif // FEATURES_H diff -Nru kactivities-kf5-5.18.0/src/service/files/kactivitymanagerd.desktop kactivities-kf5-5.44.0/src/service/files/kactivitymanagerd.desktop --- kactivities-kf5-5.18.0/src/service/files/kactivitymanagerd.desktop 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/files/kactivitymanagerd.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,116 +0,0 @@ -[Desktop Entry] -Type=Service -Icon=preferences-activities -X-KDE-ServiceTypes= -X-DBUS-StartupType=Unique -X-KDE-StartupNotify=false -Exec=kactivitymanagerd - -Name=Activity Manager -Name[ar]=مدير الأنشطة -Name[ast]=Xestor d'actividaes -Name[bs]=Menadžer aktivnosti -Name[ca]=Gestor d'activitats -Name[ca@valencia]=Gestor d'activitats -Name[cs]=Správce aktivit -Name[da]=Aktivitetshåndtering -Name[de]=Aktivitätenverwaltung -Name[el]=Διαχειριστής δραστηριοτήτων -Name[en_GB]=Activity Manager -Name[es]=Gestor de actividades -Name[et]=Tegevuste haldur -Name[eu]=Jarduera kudeatzailea -Name[fi]=Aktiviteettienhallinta -Name[fr]=Gestionnaire d'activités -Name[ga]=Bainisteoir Gníomhaíochta -Name[gd]=Manaidsear nan gnìomhachdan -Name[gl]=Xestor da actividade -Name[he]=מנהל פעילויות -Name[hu]=Aktivitáskezelő -Name[ia]=Gerente de activitate -Name[is]=Virknistjóri -Name[it]=Gestore delle attività -Name[kk]=Белсенділік менеджері -Name[km]=កម្មវិធី​គ្រប់គ្រង​សកម្មភាព -Name[ko]=활동 관리자 -Name[lt]=Veiklų tvarkyklė -Name[mr]=कार्यपध्दती व्यवस्थापक -Name[nb]=Aktivitetsbehandler -Name[nds]=Aktivitetenpleger -Name[nl]=Activiteitenbeheerder -Name[nn]=Aktivitetshandsamar -Name[pa]=ਐਕਟਵਿਟੀ ਮੈਨੇਜਰ -Name[pl]=Zarządzanie działaniami -Name[pt]=Gestor de Actividades -Name[pt_BR]=Gerenciador de atividades -Name[ro]=Gestionar de activități -Name[ru]=Диспетчер комнат -Name[se]=Aktivitehtagieđahalli -Name[sk]=Správca aktivít -Name[sl]=Upravljalnik dejavnosti -Name[sr]=Менаџер активности -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]=پائالىيەت باشقۇرغۇچ -Name[uk]=Керування просторами дій -Name[x-test]=xxActivity Managerxx -Name[zh_CN]=活动管理器 -Name[zh_TW]=活動管理員 - -Comment=The activity management backend -Comment[ar]=سند إدارة الأنشطة -Comment[bs]=Pozadina za upravljanje aktivnostima -Comment[ca]=El dorsal pel gestor d'activitats -Comment[ca@valencia]=El dorsal pel gestor d'activitats -Comment[cs]=Podpůrná vrstva pro správu aktivit -Comment[da]=Motor til aktivitetshåndtering -Comment[de]=Backend der Aktivitätenverwaltung -Comment[el]=Το σύστημα υποστήριξης διαχείρισης δραστηριοτήτων -Comment[en_GB]=The activity management backend -Comment[es]=El motor de gestión de actividades -Comment[et]=Tegevuste haldamise taustaprogramm -Comment[eu]=Jarduera kudeaketa 'backend' -Comment[fi]=Aktiviteettihallintataustaohjelma -Comment[fr]=Le moteur de gestion d'activités -Comment[ga]=Inneall bainisteoireachta gníomhaíochta -Comment[gd]=Backend gus na gnìomhachdan a stiùireadh -Comment[gl]=A infraestrutura de xestión da actividade -Comment[he]=מנוע ניהול הפעילויות -Comment[hu]=Aktivitáskezelő modul -Comment[ia]=Le retro-administration de gestion de activitate -Comment[is]=Stýringarkerfi fyrir virkni -Comment[it]=Il motore di gestione delle attività -Comment[kk]=Белсенділікті басқару бағдарламасы -Comment[km]=កម្មវិធី​ខាងក្រោយ​ការ​គ្រប់គ្រង​សកម្មភាព -Comment[ko]=활동 관리 백엔드 -Comment[lt]=Veiklos tvarkymo sąsaja -Comment[mr]=कार्यपध्दती व्यवस्थापन बॅकएन्ड -Comment[nb]=Bakgrunnsmotoren for aktivitetsbehandling -Comment[nds]=Hülpprogramm för den Aktivitetenpleger -Comment[nl]=De activiteitenbeheerder-backend -Comment[nn]=Bakgrunnsmotoren til aktivitetshandsamaren -Comment[pa]=ਐਕਟਵਿਟੀ ਮੈਨਿਜਮੈਂਟ ਬੈਕਐਂਡ -Comment[pl]=Silnik zarządzania działaniami -Comment[pt]=A infra-estrutura de gestão de actividades -Comment[pt_BR]=Infraestrutura de gerenciamento de atividades -Comment[ro]=Suport pentru administrare activități -Comment[ru]=Механизм управления комнатами -Comment[se]=Aktivitehtagieđahallama duogášmohtor -Comment[sk]=Backend pre správu aktivít -Comment[sl]=Zaledje za upravljanje z dejavnostmi -Comment[sr]=Позадина за управљање активностима -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]=پائالىيەت باشقۇرغۇچ ئارقا ئۇچى -Comment[uk]=Сервер керування просторами дій -Comment[x-test]=xxThe activity management backendxx -Comment[zh_CN]=活动管理器后端 -Comment[zh_TW]=活動管理後端介面 diff -Nru kactivities-kf5-5.18.0/src/service/files/kactivitymanagerd-plugin.desktop kactivities-kf5-5.44.0/src/service/files/kactivitymanagerd-plugin.desktop --- kactivities-kf5-5.18.0/src/service/files/kactivitymanagerd-plugin.desktop 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/files/kactivitymanagerd-plugin.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ -[Desktop Entry] -Type=ServiceType -X-KDE-ServiceType=ActivityManager/Plugin - -Comment=Activity manager plugin -Comment[ar]=ملحقة مدير الأنشطة -Comment[ast]=Complementu del xestor d'actividaes -Comment[bs]=Priključak za praćenje aktivnosti -Comment[ca]=Connector pel gestor d'activitats -Comment[ca@valencia]=Connector pel gestor d'activitats -Comment[cs]=Modul Správce aktivit -Comment[da]=Aktivitetshåndtering-plugin -Comment[de]=Modul für Aktivitätenverwaltung -Comment[el]=Πρόσθετο διαχειριστή δραστηριοτήτων -Comment[en_GB]=Activity manager plugin -Comment[es]=Complemento de gestión de actividades -Comment[et]=Tegevuste haldamise plugin -Comment[eu]=Jarduera kudeatzailearen plugina -Comment[fi]=Aktiviteettihallintaliitännäinen -Comment[fr]=Module externe de gestionnaire d'activités -Comment[ga]=Breiseán bainisteora gníomhaíochta -Comment[gd]=Plugan manaidsear nan gnìomhachdan -Comment[gl]=Complemento de xestión da actividade -Comment[he]=תוסף מנהל פעילויות -Comment[hu]=Aktivitáskezelő bővítmény -Comment[ia]=Plugin de gerente de activitate -Comment[is]=Virknistjórnunarviðbót -Comment[it]=Estensione di gestione delle attività -Comment[kk]=Белсенділік менеджер плагині -Comment[km]=កម្មវិធី​ជំនួយ​កម្មវិធី​គ្រប់គ្រង​សកម្មភាព -Comment[ko]=활동 관리자 플러그인 -Comment[lt]=Veiklų tvarkyklės papildinys -Comment[mr]=कार्यपध्दती व्यवस्थापक प्लगइन -Comment[nb]=Programtillegg for aktivitetsbehandler -Comment[nds]=Aktivitetenpleger-Moduul -Comment[nl]=Plug-in van activiteitenbeheerder -Comment[nn]=Programtillegg for aktivitetshandsamar -Comment[pa]=ਐਕਟੀਵਿਟੀ ਮੈਨੇਜਰ ਪਲੱਗਇਨ -Comment[pl]=Wtyczka do zarządzania działaniami -Comment[pt]='Plugin' de gestão de actividades -Comment[pt_BR]=Plugin do gerenciador de atividades -Comment[ro]=Extensie pentru gestionarul de activități -Comment[ru]=Расширение «Диспетчер комнат» -Comment[se]=Lassemodula aktivitehtagieđahallamii -Comment[sk]=Plugin správcu aktivít -Comment[sl]=Vstavek upravljalnika dejavnosti -Comment[sr]=Прикључак менаџера активности -Comment[sr@ijekavian]=Прикључак менаџера активности -Comment[sr@ijekavianlatin]=Priključak menadžera aktivnosti -Comment[sr@latin]=Priključak menadžera aktivnosti -Comment[sv]=Insticksprogram för aktivitetshantering -Comment[tg]=Плагини мудири фаъолият -Comment[tr]=Etkinlik yöneticisi eklentisi -Comment[ug]=پائالىيەت باشقۇرغۇچ قىستۇرمىسى -Comment[uk]=Додаток керування просторами дій -Comment[x-test]=xxActivity manager pluginxx -Comment[zh_CN]=活动管理器插件 -Comment[zh_TW]=活動管理員外掛程式 - -[PropertyDef::X-ActivityManager-PluginOverrides] -Type=QString - diff -Nru kactivities-kf5-5.18.0/src/service/ksmserver/KSMServer.cpp kactivities-kf5-5.44.0/src/service/ksmserver/KSMServer.cpp --- kactivities-kf5-5.18.0/src/service/ksmserver/KSMServer.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/ksmserver/KSMServer.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,225 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include "KSMServer.h" -#include "KSMServer_p.h" - -// Qt -#include -#include -#include -#include -#include -#include - -// KDE -#include - -// Utils -#include - -// Local -#include - -#define KWIN_SERVICE QStringLiteral("org.kde.KWin") - -KSMServer::Private::Private(KSMServer *parent) - : serviceWatcher(new QDBusServiceWatcher(this)) - , kwin(Q_NULLPTR) - , processing(false) - , q(parent) -{ - serviceWatcher->setConnection(KDBusConnectionPool::threadConnection()); - serviceWatcher->addWatchedService(KWIN_SERVICE); - - connect(serviceWatcher.get(), &QDBusServiceWatcher::serviceOwnerChanged, - this, &Private::serviceOwnerChanged); - - serviceOwnerChanged(KWIN_SERVICE, QString(), QString()); -} - -void KSMServer::Private::serviceOwnerChanged(const QString &service, - const QString &oldOwner, - const QString &newOwner) -{ - Q_UNUSED(oldOwner); - Q_UNUSED(newOwner); - - if (service == KWIN_SERVICE) { - // Delete the old object, just in case - delete kwin; - kwin = Q_NULLPTR; - - if (KDBusConnectionPool::threadConnection().interface()->isServiceRegistered(KWIN_SERVICE)) { - // Creating the new dbus interface - // TODO: in multi-head environment there are multiple kwin instances - // running and they will export different dbus name on different - // root window. We have no support for that currently. - // In future, the session management for Wayland may also need to be - // reimplemented in some way. - kwin = new QDBusInterface(KWIN_SERVICE, QStringLiteral("/KWin"), QStringLiteral("org.kde.KWin")); - - // If the service is valid, initialize it - // otherwise delete the object - if (kwin->isValid()) { - kwin->setParent(this); - - } else { - delete kwin; - kwin = Q_NULLPTR; - } - } - } -} - -KSMServer::KSMServer(QObject *parent) - : QObject(parent) - , d(this) -{ -} - -KSMServer::~KSMServer() -{ -} - -void KSMServer::startActivitySession(const QString &activity) -{ - d->processLater(activity, true); -} - -void KSMServer::stopActivitySession(const QString &activity) -{ - d->processLater(activity, false); -} - -void KSMServer::Private::processLater(const QString &activity, bool start) -{ - if (kwin) { - for (const auto &item: queue) { - if (item.first == activity) { - return; - } - } - - queue << qMakePair(activity, start); - - if (!processing) { - processing = true; - QMetaObject::invokeMethod(this, "process", Qt::QueuedConnection); - } - } else { - // We don't have kwin. No way to invoke the session stuff - emit subSessionSendEvent(start ? KSMServer::Started - : KSMServer::Stopped); - } -} - -void KSMServer::Private::process() -{ - // If the queue is empty, we have nothing more to do - if (queue.isEmpty()) { - processing = false; - return; - } - - const auto item = queue.takeFirst(); - processingActivity = item.first; - - makeRunning(item.second); - - // Calling process again for the rest of the list - QMetaObject::invokeMethod(this, "process", Qt::QueuedConnection); -} - -void KSMServer::Private::makeRunning(bool value) -{ - if (!kwin) { - subSessionSendEvent(value ? KSMServer::Started : KSMServer::Stopped); - return; - } - - const auto call = kwin->asyncCall( - value ? QLatin1String("startActivity") : QLatin1String("stopActivity"), - processingActivity); - - const auto watcher = new QDBusPendingCallWatcher(call, this); - - QObject::connect( - watcher, SIGNAL(finished(QDBusPendingCallWatcher *)), - this, - value - ? SLOT(startCallFinished(QDBusPendingCallWatcher *)) - : SLOT(stopCallFinished(QDBusPendingCallWatcher *))); -} - -void KSMServer::Private::startCallFinished(QDBusPendingCallWatcher *call) -{ - QDBusPendingReply reply = *call; - - if (reply.isError()) { - emit subSessionSendEvent(KSMServer::Started); - - } else { - // If we got false, it means something is going on with ksmserver - // and it didn't start our activity - const auto retval = reply.argumentAt<0>(); - - if (!retval) { - subSessionSendEvent(KSMServer::Stopped); - } else { - subSessionSendEvent(KSMServer::Started); - } - } - - call->deleteLater(); -} - -void KSMServer::Private::stopCallFinished(QDBusPendingCallWatcher *call) -{ - QDBusPendingReply reply = *call; - - if (reply.isError()) { - subSessionSendEvent(KSMServer::Stopped); - - } else { - // If we got false, it means something is going on with ksmserver - // and it didn't stop our activity - const auto retval = reply.argumentAt<0>(); - - if (!retval) { - subSessionSendEvent(KSMServer::FailedToStop); - } else { - subSessionSendEvent(KSMServer::Stopped); - } - } - - call->deleteLater(); -} - -void KSMServer::Private::subSessionSendEvent(int event) -{ - if (processingActivity.isEmpty()) { - return; - } - - emit q->activitySessionStateChanged(processingActivity, event); - - processingActivity.clear(); -} diff -Nru kactivities-kf5-5.18.0/src/service/ksmserver/KSMServer.h kactivities-kf5-5.44.0/src/service/ksmserver/KSMServer.h --- kactivities-kf5-5.18.0/src/service/ksmserver/KSMServer.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/ksmserver/KSMServer.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KSMSERVER_H -#define KSMSERVER_H - -// Qt -#include - -// Utils -#include - -/** - * KSMServer - */ -class KSMServer : public QObject { - Q_OBJECT -public: - - enum ReturnStatus { - Started = 0, - Stopped = 1, - FailedToStop = 2 - }; - - KSMServer(QObject *parent = Q_NULLPTR); - virtual ~KSMServer(); - -public Q_SLOTS: - void startActivitySession(const QString &activity); - void stopActivitySession(const QString &activity); - -Q_SIGNALS: - void activitySessionStateChanged(const QString &activity, int status); - -private: - D_PTR; -}; - -#endif // KSMSERVER_H diff -Nru kactivities-kf5-5.18.0/src/service/ksmserver/KSMServer_p.h kactivities-kf5-5.44.0/src/service/ksmserver/KSMServer_p.h --- kactivities-kf5-5.18.0/src/service/ksmserver/KSMServer_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/ksmserver/KSMServer_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KSMSERVER_P_H -#define KSMSERVER_P_H - -// Self -#include "KSMServer.h" - -// Qt -#include - -// STD -#include - -class QDBusServiceWatcher; -class QDBusInterface; -class QDBusPendingCallWatcher; - -class KSMServer::Private : public QObject { - Q_OBJECT - -public: - Private(KSMServer *parent); - - void processLater(const QString &activity, bool start); - -private Q_SLOTS: - void serviceOwnerChanged(const QString &service, const QString &oldOwner, const QString &newOwner); - - void process(); - void makeRunning(bool value); - - void startCallFinished(QDBusPendingCallWatcher *watcher); - void stopCallFinished(QDBusPendingCallWatcher *watcher); - - void subSessionSendEvent(int event); - -private: - std::unique_ptr serviceWatcher; - QDBusInterface *kwin; - - bool processing; - QString processingActivity; - QList> queue; - - KSMServer *const q; -}; - -#endif // KSMSERVER_P_H diff -Nru kactivities-kf5-5.18.0/src/service/Module.cpp kactivities-kf5-5.44.0/src/service/Module.cpp --- kactivities-kf5-5.18.0/src/service/Module.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Module.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,109 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include "Module.h" - -// Qt -#include -#include -#include - -// Utils -#include - -// Local -#include "Debug.h" - - -class Module::Private { -public: - static QHash s_modules; -}; - -QHash Module::Private::s_modules; - -Module::Module(const QString &name, QObject *parent) - : QObject(parent) - , d() -{ - if (!name.isEmpty()) { - Private::s_modules[name] = this; - } -} - -Module::~Module() -{ -} - -QObject *Module::get(const QString &name) -{ - Q_ASSERT(!name.isEmpty()); - - if (Private::s_modules.contains(name)) { - qCDebug(KAMD_LOG_APPLICATION) << "Returning a valid module object for:" << name; - return Private::s_modules[name]; - } - - qCWarning(KAMD_LOG_APPLICATION) << "The requested module doesn't exist:" << name; - return Q_NULLPTR; -} - -QHash &Module::get() -{ - return Private::s_modules; -} - -bool Module::isFeatureEnabled(const QStringList &feature) const -{ - Q_UNUSED(feature); - return false; -} - -bool Module::isFeatureOperational(const QStringList &feature) const -{ - Q_UNUSED(feature); - return false; -} - -void Module::setFeatureEnabled(const QStringList &feature, bool value) -{ - Q_UNUSED(feature); - Q_UNUSED(value); -} - -QStringList Module::listFeatures(const QStringList &feature) const -{ - Q_UNUSED(feature); - return QStringList(); -} - -QDBusVariant Module::featureValue(const QStringList &property) const -{ - Q_UNUSED(property); - - return QDBusVariant(); -} - -void Module::setFeatureValue(const QStringList &property, const QDBusVariant &value) -{ - Q_UNUSED(property); - Q_UNUSED(value); -} - diff -Nru kactivities-kf5-5.18.0/src/service/Module.h kactivities-kf5-5.44.0/src/service/Module.h --- kactivities-kf5-5.18.0/src/service/Module.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Module.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef MODULE_H -#define MODULE_H - -#include "kactivitymanagerd_plugin_export.h" - -// Qt -#include -#include -#include -#include - -// Utils -#include - - -/** - * Module - */ -class KACTIVITYMANAGERD_PLUGIN_EXPORT Module : public QObject { - Q_OBJECT - -public: - explicit Module(const QString &name, QObject *parent = Q_NULLPTR); - virtual ~Module(); - - static QObject *get(const QString &name); - static QHash &get(); - - virtual bool isFeatureOperational(const QStringList &feature) const; - virtual bool isFeatureEnabled(const QStringList &feature) const; - virtual void setFeatureEnabled(const QStringList &feature, bool value); - virtual QStringList listFeatures(const QStringList &feature) const; - - virtual QDBusVariant featureValue(const QStringList &property) const; - virtual void setFeatureValue(const QStringList &property, const QDBusVariant &value); - -private: - D_PTR; -}; - -#endif // MODULE_H diff -Nru kactivities-kf5-5.18.0/src/service/Plugin.cpp kactivities-kf5-5.44.0/src/service/Plugin.cpp --- kactivities-kf5-5.18.0/src/service/Plugin.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Plugin.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include "Plugin.h" - -// KDE -#include - -// Utils -#include - -// Local -#include "Debug.h" - - -class Plugin::Private { -public: - Private() - : config(Q_NULLPTR) - { - } - - QString name; - KSharedConfig::Ptr config; -}; - -Plugin::Plugin(QObject *parent) - : Module(QString(), parent) - , d() -{ -} - -Plugin::~Plugin() -{ -} - -KConfigGroup Plugin::config() const -{ - if (d->name.isEmpty()) { - qWarning() << "The plugin needs a name in order to have a config section"; - return KConfigGroup(); - } - - if (!d->config) { - d->config = KSharedConfig::openConfig(QStringLiteral("kactivitymanagerd-pluginsrc")); - } - - return d->config->group(QStringLiteral("Plugin-") + d->name); -} - -void Plugin::setName(const QString &name) -{ - Q_ASSERT_X(d->name.isEmpty(), "Plugin::setName", "The name can not be set twice"); - Q_ASSERT_X(!name.isEmpty(), "Plugin::setName", "The name can not be empty"); - - qDebug() << "Setting the name of " << (void*)this << " to " << name; - d->name = name; -} - -QString Plugin::name() const -{ - return d->name; -} - -bool Plugin::init(QHash &modules) -{ - if (!name().isEmpty()) { - modules[name()] = this; - } - - return true; -} - diff -Nru kactivities-kf5-5.18.0/src/service/Plugin.h kactivities-kf5-5.44.0/src/service/Plugin.h --- kactivities-kf5-5.18.0/src/service/Plugin.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Plugin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2011, 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef PLUGIN_H -#define PLUGIN_H - -#include "kactivitymanagerd_plugin_export.h" - -// Qt -#include -#include - -// KDE -#include -#include - -// Utils -#include - -// Local -#include "Event.h" -#include "Module.h" - -#define KAMD_EXPORT_PLUGIN(libname, classname, jsonFile) \ - K_PLUGIN_FACTORY_WITH_JSON(factory, jsonFile, registerPlugin();) - -/** - * - */ -class KACTIVITYMANAGERD_PLUGIN_EXPORT Plugin : public Module { - Q_OBJECT - -public: - Plugin(QObject *parent); - virtual ~Plugin(); - - /** - * Initializes the plugin. - * @arg modules Activities, Resources and Features manager objects - * @returns the plugin needs to return whether it has - * successfully been initialized - */ - virtual bool init(QHash &modules) = 0; - - /** - * Returns the config group for the plugin. - * In order to use it, you need to set the plugin name. - */ - KConfigGroup config() const; - QString name() const; - - /** - * Convenience meta-method to provide prettier invocation of QMetaObject::invokeMethod - */ - // template - // inline static ReturnType retrieve(QObject *object, const char *method, - // const char *returnTypeName) - // { - // ReturnType result; - // - // QMetaObject::invokeMethod( - // object, method, Qt::DirectConnection, - // QReturnArgument(returnTypeName, result)); - // - // return result; - // } - - template - inline static ReturnType retrieve(QObject *object, const char *method, - const char *returnTypeName, - Args... args) - { - ReturnType result; - - QMetaObject::invokeMethod( - object, method, Qt::DirectConnection, - QReturnArgument(returnTypeName, result), - args...); - - return result; - } - - /** - * Convenience meta-method to provide prettier invocation of QMetaObject::invokeMethod - */ - // template - // inline static void invoke(QObject *object, const char *method, - // const char *returnTypeName) - // { - // Q_UNUSED(returnTypeName); - // QMetaObject::invokeMethod(object, method, connection); - // } - - template - inline static void invoke(QObject *object, const char *method, - Args... args) - { - QMetaObject::invokeMethod( - object, method, connection, - args...); - } - -protected: - void setName(const QString &name); - -private: - D_PTR; -}; - -#endif // PLUGIN_H diff -Nru kactivities-kf5-5.18.0/src/service/plugins/activitytemplates/CMakeLists.txt kactivities-kf5-5.44.0/src/service/plugins/activitytemplates/CMakeLists.txt --- kactivities-kf5-5.18.0/src/service/plugins/activitytemplates/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/activitytemplates/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (kactivitymanagerd-plugin-activitytemplates) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${CMAKE_BINARY_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../.. - ${CMAKE_CURRENT_BINARY_DIR} - ${KConfig_INCLUDE_DIR} - ) - -set ( - activitytemplates_SRCS - TemplatesPlugin.cpp - ) - -qt5_add_dbus_adaptor ( - activitytemplates_SRCS org.kde.ActivityManager.Templates.xml - TemplatesPlugin.h TemplatesPlugin - ) - -kcoreaddons_add_plugin( - kactivitymanagerd_plugin_activitytemplates - JSON kactivitymanagerd-plugin-activitytemplates.json - SOURCES ${activitytemplates_SRCS} - INSTALL_NAMESPACE ${KAMD_PLUGIN_DIR} - ) - -target_link_libraries ( - kactivitymanagerd_plugin_activitytemplates - Qt5::Core - Qt5::DBus - KF5::ConfigCore - KF5::DBusAddons - KF5::CoreAddons - kactivitymanagerd_plugin - ) - -set_target_properties ( - kactivitymanagerd_plugin_activitytemplates - PROPERTIES PREFIX "" - ) diff -Nru kactivities-kf5-5.18.0/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json kactivities-kf5-5.44.0/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json --- kactivities-kf5-5.18.0/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "ivan.cukic@kde.org", - "Name": "Ivan Čukić", - "Name[sr@ijekavian]": "Иван Чукић", - "Name[sr]": "Иван Чукић", - "Name[x-test]": "xxIvan Čukićxx" - } - ], - "Category": "", - "Dependencies": [], - "Description": "Support for creating templated activities", - "Description[ca@valencia]": "Suport per a la creació d'activitats amb plantilles", - "Description[ca]": "Suport per a la creació d'activitats amb plantilles", - "Description[de]": "Unterstützung für das Erstellen von Vorlagen für Aktivitäten", - "Description[es]": "Permite la creación de actividades a partir de plantillas", - "Description[fi]": "Tuki aktiviteettimallien tekemiseen", - "Description[gl]": "Permite a creación de modelos de actividades", - "Description[nl]": "Ondersteuning voor aanmaken van activiteiten volgens sjablonen", - "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[sk]": "Podpora pre vytváranie šablónovaných aktivít", - "Description[sl]": "Podpora za ustvarjanje predlog dejavnosti", - "Description[sr@ijekavian]": "Подршка за стварање шаблонских активности", - "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[uk]": "Підтримка створення шаблонних просторів дій", - "Description[x-test]": "xxSupport for creating templated activitiesxx", - "Description[zh_CN]": "支持基于模板创建活动", - "EnabledByDefault": true, - "Icon": "edit-copy", - "Id": "org.kde.ActivityManager.ActivityTemplates", - "License": "GPL", - "Name": "Activity Templates", - "Name[ca@valencia]": "Plantilles de les activitats", - "Name[ca]": "Plantilles de les activitats", - "Name[de]": "Aktivitätenvorlagen", - "Name[es]": "Plantillas de actividades", - "Name[fi]": "Aktiviteettimallit", - "Name[gl]": "Modelos de actividade", - "Name[nl]": "Sjablonen voor activiteit", - "Name[pl]": "Szablony działań", - "Name[pt]": "Modelos de Actividades", - "Name[pt_BR]": "Modelos de atividades", - "Name[sk]": "Šablóny aktivít", - "Name[sl]": "Predloge dejavnosti", - "Name[sr@ijekavian]": "Шаблони активности", - "Name[sr@ijekavianlatin]": "Šabloni aktivnosti", - "Name[sr@latin]": "Šabloni aktivnosti", - "Name[sr]": "Шаблони активности", - "Name[sv]": "Aktivitetsmallar", - "Name[uk]": "Шаблони просторів дій", - "Name[x-test]": "xxActivity Templatesxx", - "Name[zh_CN]": "活动模板", - "ServiceTypes": [ - "ActivityManager/Plugin" - ], - "Version": "1.0", - "Website": "http://plasma.kde.org/" - } -} \ No newline at end of file diff -Nru kactivities-kf5-5.18.0/src/service/plugins/activitytemplates/org.kde.ActivityManager.Templates.xml kactivities-kf5-5.44.0/src/service/plugins/activitytemplates/org.kde.ActivityManager.Templates.xml --- kactivities-kf5-5.18.0/src/service/plugins/activitytemplates/org.kde.ActivityManager.Templates.xml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/activitytemplates/org.kde.ActivityManager.Templates.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ - - - - - - - - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/activitytemplates/TemplatesPlugin.cpp kactivities-kf5-5.44.0/src/service/plugins/activitytemplates/TemplatesPlugin.cpp --- kactivities-kf5-5.18.0/src/service/plugins/activitytemplates/TemplatesPlugin.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/activitytemplates/TemplatesPlugin.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,147 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// Self -#include "TemplatesPlugin.h" - -// Qt -#include -#include - -// KDE -#include - -// Utils -#include - -// Local -#include "templatesadaptor.h" - -KAMD_EXPORT_PLUGIN(templatesplugin, TemplatesPlugin, "kactivitymanagerd-plugin-activitytemplates.json") - - -TemplatesPlugin::TemplatesPlugin(QObject *parent, const QVariantList &args) - : Plugin(parent) -{ - Q_UNUSED(args); - - setName(QStringLiteral("org.kde.ActivityManager.ActivityTemplates")); - - new TemplatesAdaptor(this); - KDBusConnectionPool::threadConnection().registerObject(QStringLiteral("/Templates"), this); -} - -TemplatesPlugin::~TemplatesPlugin() -{ -} - -bool TemplatesPlugin::init(QHash &modules) -{ - Plugin::init(modules); - - m_activities = modules[QStringLiteral("activities")]; - - return true; -} - -QDBusVariant TemplatesPlugin::featureValue(const QStringList &property) const -{ - if (property.size() == 0) { - return QDBusVariant(QString()); - } - - const auto& id = property[0]; - - KConfigGroup pluginConfig(config()); - KConfigGroup activityConfig(&pluginConfig, id); - - if (property.size() == 2) { - const auto& key = property[1]; - return QDBusVariant(activityConfig.readEntry(key, QVariant(QString()))); - - } else { - return QDBusVariant(activityConfig.keyList()); - - } -} - -void TemplatesPlugin::setFeatureValue(const QStringList &property, - const QDBusVariant &value) -{ - Q_UNUSED(property); - Q_UNUSED(value); - - // TODO: Remove. For testing purposes only - if (property.size() == 1 && property[0] == "createActivity") { - QVariantHash info { - { "activity.name", value.variant().toString() }, - { "activity.description", "Nothing special" }, - { "activity.wallpaper", "stripes.png" }, - { "activity.icon", "kate" }, - { "activity.cloneFrom", "id" }, - { "activity.linkedResources", QStringList { "a", "b", "c" } } - }; - createActivity(QDBusVariant(info)); - - } -} - -void TemplatesPlugin::createActivity(const QDBusVariant &_values) -{ - using namespace kamd::utils; - - QVariantHash values = _values.variant().toHash(); - - auto takeStringValue = [&values] (const QString &key) { - auto result = values[key].toString(); - values.remove(key); - return result; - }; - - const QString name = takeStringValue("activity.name"); - const QString description = takeStringValue("activity.description"); - const QString icon = takeStringValue("activity.icon"); - - // Creating the activity, and getting the id - const QString id = Plugin::retrieve( - m_activities, "AddActivity", "QString", - Q_ARG(QString, name)); - - // Saving the provided data to the configuration file - KConfigGroup pluginConfig(config()); - KConfigGroup activityConfig(&pluginConfig, id); - - for_each_assoc(values, [&activityConfig] (const QString &key, const QVariant &value) { - activityConfig.writeEntry(key, value); - }); - - activityConfig.sync(); - - // Changing the icon and description of the activity - Plugin::invoke( - m_activities, "SetActivityDescription", - Q_ARG(QString, id), - Q_ARG(QString, description)); - Plugin::invoke( - m_activities, "SetActivityIcon", - Q_ARG(QString, id), - Q_ARG(QString, icon)); - -} - -#include "TemplatesPlugin.moc" - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/activitytemplates/TemplatesPlugin.h kactivities-kf5-5.44.0/src/service/plugins/activitytemplates/TemplatesPlugin.h --- kactivities-kf5-5.18.0/src/service/plugins/activitytemplates/TemplatesPlugin.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/activitytemplates/TemplatesPlugin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef PLUGINS_GLOBAL_TEMPLATES_H -#define PLUGINS_GLOBAL_TEMPLATES_H - -#include - -class QSignalMapper; -class KActionCollection; - -class TemplatesPlugin : public Plugin { - Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Templates") - -public: - TemplatesPlugin(QObject *parent = Q_NULLPTR, - const QVariantList &args = QVariantList()); - virtual ~TemplatesPlugin(); - - bool init(QHash &modules) Q_DECL_OVERRIDE; - - QDBusVariant featureValue(const QStringList &property) const Q_DECL_OVERRIDE; - - virtual void setFeatureValue(const QStringList &property, - const QDBusVariant &value) Q_DECL_OVERRIDE; - -public Q_SLOTS: - void createActivity(const QDBusVariant &values); - -private: - QObject *m_activities; - -}; - -#endif // PLUGINS_GLOBAL_TEMPLATES_ diff -Nru kactivities-kf5-5.18.0/src/service/plugins/CMakeLists.txt kactivities-kf5-5.44.0/src/service/plugins/CMakeLists.txt --- kactivities-kf5-5.18.0/src/service/plugins/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -add_subdirectory (slc) -add_subdirectory (sqlite) -add_subdirectory (activitytemplates) -add_subdirectory (virtualdesktopswitch) -add_subdirectory (globalshortcuts) -add_subdirectory (eventspy) -add_subdirectory (runapplication) diff -Nru kactivities-kf5-5.18.0/src/service/plugins/eventspy/CMakeLists.txt kactivities-kf5-5.44.0/src/service/plugins/eventspy/CMakeLists.txt --- kactivities-kf5-5.18.0/src/service/plugins/eventspy/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/eventspy/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (activitymanager-eventspy) - -find_package (KF5KIO ${KF5_DEP_VERSION} CONFIG REQUIRED) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${CMAKE_BINARY_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../.. - ${CMAKE_CURRENT_BINARY_DIR} - ${KConfig_INCLUDE_DIR} - ) - -set ( - evenyspy_SRCS - EventSpy.cpp - ) - -kcoreaddons_add_plugin( - kactivitymanagerd_plugin_eventspy - JSON kactivitymanagerd-plugin-eventspy.json - SOURCES ${evenyspy_SRCS} - INSTALL_NAMESPACE ${KAMD_PLUGIN_DIR} - ) - -target_link_libraries ( - kactivitymanagerd_plugin_eventspy - Qt5::Core - Qt5::DBus - KF5::ConfigCore - KF5::CoreAddons - KF5::KIOCore - kactivitymanagerd_plugin - ) - -set_target_properties ( - kactivitymanagerd_plugin_eventspy - PROPERTIES PREFIX "" - ) diff -Nru kactivities-kf5-5.18.0/src/service/plugins/eventspy/EventSpy.cpp kactivities-kf5-5.44.0/src/service/plugins/eventspy/EventSpy.cpp --- kactivities-kf5-5.18.0/src/service/plugins/eventspy/EventSpy.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/eventspy/EventSpy.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "EventSpy.h" - -#include -#include -#include - -#include -#include -#include -#include - -KAMD_EXPORT_PLUGIN(eventspyplugin, EventSpyPlugin, "kactivitymanagerd-plugin-eventspy.json") - -EventSpyPlugin::EventSpyPlugin(QObject *parent, const QVariantList &args) - : Plugin(parent) - , m_resources(Q_NULLPTR) - , m_dirWatcher(new KDirWatch()) - , m_lastUpdate(QDateTime::currentDateTime()) -{ - Q_UNUSED(args); - - m_dirWatcher->addDir(KRecentDocument::recentDocumentDirectory()); - - connect(m_dirWatcher.get(), &KDirWatch::dirty, - this, &EventSpyPlugin::directoryUpdated); -} - -void EventSpyPlugin::directoryUpdated(const QString &dir) -{ - Q_UNUSED(dir); - const auto newDocuments = KRecentDocument::recentDocuments(); - - // Processing the new arrivals - for (const auto& document: newDocuments) { - QFileInfo fileInfo(document); - if (fileInfo.lastModified() > m_lastUpdate) { - addDocument(document); - } - } - - m_lastUpdate = QDateTime::currentDateTime(); -} - -void EventSpyPlugin::addDocument(const QString &document) -{ - const KDesktopFile desktopFile(document); - const KConfigGroup desktopGroup(&desktopFile, "Desktop Entry"); - - const QString url = QUrl(desktopFile.readUrl()).toLocalFile(); - const QString name = desktopFile.readName(); - const QString application - = desktopGroup.readEntry("X-KDE-LastOpenedWith", QString()); - - Plugin::invoke( - m_resources, "RegisterResourceEvent", - Q_ARG(QString, application), // Application - Q_ARG(uint, 0), // Window ID - Q_ARG(QString, url), // URI - Q_ARG(uint, 0) // Event Activities::Accessed - ); -} - -EventSpyPlugin::~EventSpyPlugin() -{ -} - -bool EventSpyPlugin::init(QHash &modules) -{ - Plugin::init(modules); - - m_resources = modules["resources"]; - - return true; -} - -#include "EventSpy.moc" - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/eventspy/EventSpy.h kactivities-kf5-5.44.0/src/service/plugins/eventspy/EventSpy.h --- kactivities-kf5-5.18.0/src/service/plugins/eventspy/EventSpy.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/eventspy/EventSpy.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef PLUGINS_EVENT_SPY_PLUGIN_H -#define PLUGINS_EVENT_SPY_PLUGIN_H - -#include -#include - -#include - -class KDirWatch; - -class EventSpyPlugin : public Plugin { - Q_OBJECT - -public: - EventSpyPlugin(QObject *parent = Q_NULLPTR, const QVariantList &args = QVariantList()); - virtual ~EventSpyPlugin(); - - bool init(QHash &modules) Q_DECL_OVERRIDE; - -private Q_SLOTS: - void directoryUpdated(const QString &dir); - void addDocument(const QString &document); - -private: - QObject *m_resources; - std::unique_ptr m_dirWatcher; - QDateTime m_lastUpdate; -}; - -#endif // PLUGINS_EVENT_SPY_PLUGIN_H diff -Nru kactivities-kf5-5.18.0/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json kactivities-kf5-5.44.0/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json --- kactivities-kf5-5.18.0/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "ivan.cukic(at)kde.org", - "Name": "Ivan Čukić", - "Name[sr@ijekavian]": "Иван Чукић", - "Name[sr]": "Иван Чукић", - "Name[x-test]": "xxIvan Čukićxx" - } - ], - "Category": "", - "Dependencies": [], - "Description": "Collects events from applications that support recent documents specification", - "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[de]": "Sammelt Ereignisse von Anwendungen, die die Spezifikation zuletzt geöffnete Dokumente unterstützen", - "Description[es]": "Recopila eventos de las aplicaciones que cumplan la especificación de documentos recientes", - "Description[fi]": "Kerää tapahtumia sovelluksilta, jotka tukevat viimeaikaisten tiedostojen määrittelyä", - "Description[gl]": "Recolle eventos dos programas compatíbeis coa especificación de documentos recentes.", - "Description[nl]": "Verzamelt gebeurtenissen uit toepassingen die recente documentspecificaties ondersteunen", - "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[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", - "Description[sr@ijekavian]": "Сакупља догађаје из програма који подржавају спецификацију недавних докумената", - "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[uk]": "Збирає записи подій від програм, у яких реалізовано специфікацію нещодавніх документів", - "Description[x-test]": "xxCollects events from applications that support recent documents specificationxx", - "Description[zh_CN]": "从支持最近文档标准的应用程序收集事件", - "EnabledByDefault": true, - "Icon": "preferences-system", - "Id": "org.kde.ActivityManager.EventSpy", - "License": "GPL", - "Name": "Event Spy", - "Name[ca@valencia]": "Espia l'esdeveniment", - "Name[ca]": "Espia l'esdeveniment", - "Name[es]": "Espía de eventos", - "Name[fi]": "Tapahtumavakooja", - "Name[gl]": "Espía de eventos", - "Name[nl]": "Gebeurtenisspion", - "Name[pl]": "Szpieg wydarzeń", - "Name[pt]": "Espião de Eventos", - "Name[pt_BR]": "Espião de eventos", - "Name[sk]": "Špión udalostí", - "Name[sl]": "Nadzor dogodkov", - "Name[sr@ijekavian]": "Шпијун догађаја", - "Name[sr@ijekavianlatin]": "Špijun događaja", - "Name[sr@latin]": "Špijun događaja", - "Name[sr]": "Шпијун догађаја", - "Name[sv]": "Händelseövervakare", - "Name[uk]": "Журнал подій", - "Name[x-test]": "xxEvent Spyxx", - "Name[zh_CN]": "事件间谍", - "ServiceTypes": [ - "ActivityManager/Plugin" - ], - "Version": "1.0", - "Website": "http://plasma.kde.org/" - } -} \ No newline at end of file diff -Nru kactivities-kf5-5.18.0/src/service/plugins/globalshortcuts/CMakeLists.txt kactivities-kf5-5.44.0/src/service/plugins/globalshortcuts/CMakeLists.txt --- kactivities-kf5-5.18.0/src/service/plugins/globalshortcuts/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/globalshortcuts/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (activitymanager-globalshortcuts) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${CMAKE_BINARY_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../.. - ${CMAKE_CURRENT_BINARY_DIR} - ${KConfig_INCLUDE_DIR} - ) - -set ( - globalshortcuts_SRCS - GlobalShortcutsPlugin.cpp - ) - -kcoreaddons_add_plugin( - kactivitymanagerd_plugin_globalshortcuts - JSON kactivitymanagerd-plugin-globalshortcuts.json - SOURCES ${globalshortcuts_SRCS} - INSTALL_NAMESPACE ${KAMD_PLUGIN_DIR} - ) - -target_link_libraries ( - kactivitymanagerd_plugin_globalshortcuts - Qt5::Core - Qt5::DBus - Qt5::Widgets - KF5::ConfigCore - KF5::GlobalAccel - KF5::I18n - KF5::XmlGui - KF5::CoreAddons - kactivitymanagerd_plugin - ) - -set_target_properties ( - kactivitymanagerd_plugin_globalshortcuts - PROPERTIES PREFIX "" - ) diff -Nru kactivities-kf5-5.18.0/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp kactivities-kf5-5.44.0/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp --- kactivities-kf5-5.18.0/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,139 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * Copyright (C) 2012 Makis Marimpis - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "GlobalShortcutsPlugin.h" - -#include -#include -#include -#include - -#include -#include -#include - -KAMD_EXPORT_PLUGIN(globalshortcutsplugin, GlobalShortcutsPlugin, "kactivitymanagerd-plugin-globalshortcuts.json") - -const auto objectNamePattern = QStringLiteral("switch-to-activity-%1"); -const auto objectNamePatternLength = objectNamePattern.length() - 2; - -GlobalShortcutsPlugin::GlobalShortcutsPlugin(QObject *parent, const QVariantList &args) - : Plugin(parent) - , m_activitiesService(Q_NULLPTR) - , m_signalMapper(new QSignalMapper(this)) - , m_actionCollection(new KActionCollection(this)) -{ - Q_UNUSED(args); -} - -GlobalShortcutsPlugin::~GlobalShortcutsPlugin() -{ - m_actionCollection->clear(); -} - -bool GlobalShortcutsPlugin::init(QHash &modules) -{ - Plugin::init(modules); - - m_activitiesService = modules["activities"]; - - m_activitiesList = Plugin::retrieve( - m_activitiesService, "ListActivities", "QStringList"); - - for (const auto &activity: m_activitiesList) { - activityAdded(activity); - } - - connect(m_signalMapper, SIGNAL(mapped(QString)), - m_activitiesService, SLOT(SetCurrentActivity(QString)), - Qt::QueuedConnection); - connect(m_activitiesService, SIGNAL(ActivityAdded(QString)), - this, SLOT(activityAdded(QString))); - connect(m_activitiesService, SIGNAL(ActivityRemoved(QString)), - this, SLOT(activityRemoved(QString))); - - m_actionCollection->readSettings(); - - activityRemoved(); - - return true; -} - -void GlobalShortcutsPlugin::activityAdded(const QString &activity) -{ - if (activity == "00000000-0000-0000-0000-000000000000") { - return; - } - - if (!m_activitiesList.contains(activity)) { - m_activitiesList << activity; - } - - const auto action = m_actionCollection->addAction( - objectNamePattern.arg(activity)); - - action->setText(i18nc("@action", "Switch to activity \"%1\"", activityName(activity))); - KGlobalAccel::self()->setGlobalShortcut(action, QList{}); - - connect(action, SIGNAL(triggered()), m_signalMapper, SLOT(map())); - m_signalMapper->setMapping(action, activity); - - m_actionCollection->writeSettings(); -} - -QString GlobalShortcutsPlugin::activityForAction(QAction *action) const -{ - return action->objectName().mid(objectNamePatternLength); -} - -void GlobalShortcutsPlugin::activityRemoved(const QString &deletedActivity) -{ - m_activitiesList.removeAll(deletedActivity); - - // Removing all shortcuts that refer to an unknown activity - for (const auto &action: m_actionCollection->actions()) { - const auto actionActivity = activityForAction(action); - if ((deletedActivity.isEmpty() && !m_activitiesList.contains(actionActivity)) - || deletedActivity == actionActivity) { - KGlobalAccel::self()->removeAllShortcuts(action); - m_actionCollection->removeAction(action); - } - } - - m_actionCollection->writeSettings(); -} - -void GlobalShortcutsPlugin::activityChanged(const QString &activity) -{ - for (const auto &action: m_actionCollection->actions()) { - if (activity == activityForAction(action)) { - action->setText(i18nc("@action", "Switch to activity \"%1\"", - activityName(activity))); - } - } -} - -QString GlobalShortcutsPlugin::activityName(const QString &activity) const -{ - return Plugin::retrieve( - m_activitiesService, "ActivityName", "QString", - Q_ARG(QString, activity)); -} - -#include "GlobalShortcutsPlugin.moc" - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.h kactivities-kf5-5.44.0/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.h --- kactivities-kf5-5.18.0/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2012 Makis Marimpis - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef PLUGINS_GLOBAL_SHORTCUTS_PLUGIN_H -#define PLUGINS_GLOBAL_SHORTCUTS_PLUGIN_H - -#include - -class QSignalMapper; -class KActionCollection; -class QAction; - -class GlobalShortcutsPlugin : public Plugin { - Q_OBJECT - // Q_PLUGIN_METADATA(IID "org.kde.ActivityManager.plugins.globalshortcutsplugin") - -public: - GlobalShortcutsPlugin(QObject *parent = Q_NULLPTR, const QVariantList &args = QVariantList()); - virtual ~GlobalShortcutsPlugin(); - - bool init(QHash &modules) Q_DECL_OVERRIDE; - -private Q_SLOTS: - void activityAdded(const QString &activity); - void activityRemoved(const QString &activity = QString()); - void activityChanged(const QString &activity); - -private: - inline QString activityName(const QString &activity) const; - inline QString activityForAction(QAction *action) const; - - QObject *m_activitiesService; - QSignalMapper *m_signalMapper; - QStringList m_activitiesList; - KActionCollection *m_actionCollection; -}; - -#endif // PLUGINS_GLOBAL_SHORTCUTS_PLUGIN_H diff -Nru kactivities-kf5-5.18.0/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json kactivities-kf5-5.44.0/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json --- kactivities-kf5-5.18.0/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "makhsm@gmail.com", - "Name": "Makis Marimpis", - "Name[sr@ijekavian]": "Макис Маримпис", - "Name[sr]": "Макис Маримпис", - "Name[x-test]": "xxMakis Marimpisxx" - } - ], - "Category": "", - "Dependencies": [], - "Description": "Adds global keyboard shortcuts for activity switching", - "Description[ca@valencia]": "Afig dreceres de teclat globals per canviar d'activitat", - "Description[ca]": "Afegeix dreceres de teclat globals per canviar d'activitat", - "Description[de]": "Fügt globale Tastatur-Kurzbefehle für das Wechseln von Aktivitäten hinzu", - "Description[es]": "Añade accesos rápidos de teclado globales para cambiar de actividad", - "Description[fi]": "Lisää työpöydänlaajuiset pikanäppäimet aktiviteettien vaihtamiseen", - "Description[gl]": "Engade atallos de teclado globais para trocar de actividade", - "Description[nl]": "Voegt globale sneltoetsen toe aan omschakelen van activiteit", - "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[sk]": "Pridá globálne klávesové skratky na prepínanie aktivít", - "Description[sl]": "Doda splošne tipkovne bližnjice za preklapljanje dejavnosti", - "Description[sr@ijekavian]": "Додаје глобалне пречице са тастатуре за мењање активности", - "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[uk]": "Додає загальні клавіатурні скорочення для перемикання просторів дій", - "Description[x-test]": "xxAdds global keyboard shortcuts for activity switchingxx", - "Description[zh_CN]": "为活动切换添加全局键盘快捷键", - "EnabledByDefault": false, - "Icon": "configure-shortcuts", - "Id": "org.kde.ActivityManager.GlobalShortcuts", - "License": "GPL", - "Name": "Global Shortcuts", - "Name[ca@valencia]": "Dreceres globals", - "Name[ca]": "Dreceres globals", - "Name[de]": "Globale Kurzbefehle", - "Name[es]": "Accesos rápidos globales", - "Name[fi]": "Työpöydänlaajuiset pikanäppäimet", - "Name[gl]": "Atallos globais", - "Name[nl]": "Globale sneltoetsen", - "Name[pl]": "Skróty globalne", - "Name[pt]": "Atalhos Globais", - "Name[pt_BR]": "Atalhos globais", - "Name[sk]": "Globálne skratky", - "Name[sl]": "Splošne bližnjice", - "Name[sr@ijekavian]": "Глобалне пречице", - "Name[sr@ijekavianlatin]": "Globalne prečice", - "Name[sr@latin]": "Globalne prečice", - "Name[sr]": "Глобалне пречице", - "Name[sv]": "Globala genvägar", - "Name[uk]": "Загальні клавіатурні скорочення", - "Name[x-test]": "xxGlobal Shortcutsxx", - "Name[zh_CN]": "全局快捷键", - "ServiceTypes": [ - "ActivityManager/Plugin" - ], - "Version": "1.0", - "Website": "http://plasma.kde.org/" - } -} \ No newline at end of file diff -Nru kactivities-kf5-5.18.0/src/service/plugins/runapplication/CMakeLists.txt kactivities-kf5-5.44.0/src/service/plugins/runapplication/CMakeLists.txt --- kactivities-kf5-5.18.0/src/service/plugins/runapplication/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/runapplication/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (kactivitymanagerd-runapplication) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${CMAKE_BINARY_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../.. - ${CMAKE_CURRENT_BINARY_DIR} - ${KConfig_INCLUDE_DIR} - ) - -set ( - runapplication_SRCS - RunApplicationPlugin.cpp - ${plugin_implementation_SRCS} - ) - -kcoreaddons_add_plugin ( - kactivitymanagerd_plugin_runapplication - JSON kactivitymanagerd-plugin-runapplication.json - SOURCES ${runapplication_SRCS} - INSTALL_NAMESPACE ${KAMD_PLUGIN_DIR} - ) - -target_link_libraries ( - kactivitymanagerd_plugin_runapplication - Qt5::Core - Qt5::DBus - Qt5::Gui - KF5::CoreAddons - KF5::ConfigCore - KF5::Service - kactivitymanagerd_plugin - ) - -set_target_properties ( - kactivitymanagerd_plugin_runapplication - PROPERTIES PREFIX "" - ) - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json kactivities-kf5-5.44.0/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json --- kactivities-kf5-5.18.0/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "ivan.cukic@kde.org", - "Name": "Ivan Cukic", - "Name[sr@ijekavian]": "Иван Чукић", - "Name[sr@ijekavianlatin]": "Ivan Čukić", - "Name[sr@latin]": "Ivan Čukić", - "Name[sr]": "Иван Чукић", - "Name[x-test]": "xxIvan Cukicxx" - } - ], - "Category": "", - "Dependencies": [], - "Description": "When switching activities, or when starting and stopping them, execute specified applications", - "Description[ca@valencia]": "En commutar d'activitat, o en iniciar o aturar-les, executar les aplicacions especificades", - "Description[ca]": "En commutar d'activitat, o en iniciar o aturar-les, executar les aplicacions especificades", - "Description[es]": "Al cambiar de actividad, o cuando se inicia o detiene una, ejecutar las aplicaciones indicadas", - "Description[fi]": "Suorita annetut sovellukset vaihdettaessa aktiviteetteja tai käynnistettäessä tai pysäytettäessä niitä", - "Description[gl]": "Executar programas concretos ao cambiar de actividade ou ao iniciar ou deter unha actividade.", - "Description[nl]": "Bij omschakelen van activiteiten of bij starten en stoppen ervan, voer de gespecificeerde toepassingen uit", - "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[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", - "Description[sr@ijekavian]": "При пребацивању активности, или њиховом покретању и заустављању, извршавају се задати програми", - "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[uk]": "Запускати вказані програми під час перемикання просторів дій або їхнього запуску чи завершення роботи", - "Description[x-test]": "xxWhen switching activities, or when starting and stopping them, execute specified applicationsxx", - "Description[zh_CN]": "切换活动时,或者启动停止他们时,执行指定的应用程序", - "EnabledByDefault": true, - "Icon": "preferences-system-windows", - "Id": "org.kde.ActivityManager.RunApplication", - "License": "GPL", - "Name": "Run applications on activity state change", - "Name[ca@valencia]": "Executa aplicacions en canviar l'estat de l'activitat", - "Name[ca]": "Executa aplicacions en canviar l'estat de l'activitat", - "Name[es]": "Ejecutar aplicaciones cuando cambia el estado de una actividad", - "Name[fi]": "Suorita sovelluksia aktiviteetin tilan muuttuessa", - "Name[gl]": "Executar programas ao cambiar o estado da actividade", - "Name[nl]": "Toepassingen uitvoeren bij wijziging van de status van activiteit", - "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[sk]": "Spustiť aplikácie pri zmene stavu aktivity", - "Name[sl]": "Zaženi programe ob spremembi stanja dejavnosti", - "Name[sr@ijekavian]": "Извршавање програма на промену стања активности", - "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[uk]": "Запуск програм під час зміни стану простору дій", - "Name[x-test]": "xxRun applications on activity state changexx", - "Name[zh_CN]": "活动状态切换时运行应用程序", - "ServiceTypes": [ - "ActivityManager/Plugin" - ], - "Version": "1.0", - "Website": "http://plasma.kde.org/" - } -} \ No newline at end of file diff -Nru kactivities-kf5-5.18.0/src/service/plugins/runapplication/RunApplicationPlugin.cpp kactivities-kf5-5.44.0/src/service/plugins/runapplication/RunApplicationPlugin.cpp --- kactivities-kf5-5.18.0/src/service/plugins/runapplication/RunApplicationPlugin.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/runapplication/RunApplicationPlugin.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,137 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "RunApplicationPlugin.h" - -#include -#include -#include -#include -#include -#include - -#include - -#include - -namespace { - enum ActivityState { - Running = 2, - Stopped = 4 - }; -} - -KAMD_EXPORT_PLUGIN(runapplicationplugin, RunApplicationPlugin, "kactivitymanagerd-plugin-runapplication.json") - -RunApplicationPlugin::RunApplicationPlugin(QObject *parent, const QVariantList &args) - : Plugin(parent) - , m_activitiesService(Q_NULLPTR) -{ - Q_UNUSED(args); - - setName("org.kde.ActivityManager.RunApplication"); -} - -RunApplicationPlugin::~RunApplicationPlugin() -{ -} - -bool RunApplicationPlugin::init(QHash &modules) -{ - Plugin::init(modules); - - m_activitiesService = modules["activities"]; - - connect(m_activitiesService, SIGNAL(CurrentActivityChanged(QString)), - this, SLOT(currentActivityChanged(QString))); - connect(m_activitiesService, SIGNAL(ActivityStateChanged(QString, int)), - this, SLOT(activityStateChanged(QString, int))); - - const auto currentActivity = Plugin::retrieve( - m_activitiesService, "CurrentActivity", "QString"); - - currentActivityChanged(currentActivity); - - return true; -} - -QString RunApplicationPlugin::activityDirectory(const QString &activity) const -{ - return QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) - + QStringLiteral("/kactivitymanagerd/activities/") + activity + '/'; -} - -void RunApplicationPlugin::currentActivityChanged(const QString &activity) -{ - if (m_currentActivity == activity) { - return; - } - - if (!m_currentActivity.isEmpty()) { - executeIn(activityDirectory(activity) + "deactivated"); - } - - m_currentActivity = activity; - - executeIn(activityDirectory(activity) + "activated"); - - if (!m_previousActivities.contains(activity)) { - // This is the first time we have switched - // to this activity in the current session, - // pretending it has just been started - activityStateChanged(activity, Running); - - m_previousActivities << activity; - } -} - -void RunApplicationPlugin::activityStateChanged(const QString &activity, int state) -{ - auto directory = (state == Running) ? QStringLiteral("started") - : (state == Stopped) ? QStringLiteral("stopped") - : QString(); - - if (directory == "") { - return; - } - - executeIn(activityDirectory(activity) + directory); -} - -void RunApplicationPlugin::executeIn(const QString &path) const -{ - QDir directory(path); - for (const auto& item: directory.entryList(QDir::Files)) { - QString filePath = directory.filePath(item); - KService service(filePath); - if (service.isValid() && service.isApplication()) { - qDebug() << "Starting: " << service.exec(); - QProcess::startDetached(service.exec()); - } else { - qDebug() << "Openning file: " << QUrl::fromLocalFile(filePath); - QDesktopServices::openUrl(QUrl::fromLocalFile(filePath)); - } - } -} - -// void RunApplicationPlugin::activityRemoved(const QString &activity) -// { -// // TODO: Clean up the directory -// } - -#include "RunApplicationPlugin.moc" - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/runapplication/RunApplicationPlugin.h kactivities-kf5-5.44.0/src/service/plugins/runapplication/RunApplicationPlugin.h --- kactivities-kf5-5.18.0/src/service/plugins/runapplication/RunApplicationPlugin.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/runapplication/RunApplicationPlugin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef PLUGINS_RUN_APPLICATION_H -#define PLUGINS_RUN_APPLICATION_H - -#include - -class RunApplicationPlugin : public Plugin { - Q_OBJECT - // Q_PLUGIN_METADATA(IID "org.kde.ActivityManager.plugins.virtualdesktopswitch") - -public: - RunApplicationPlugin(QObject *parent = Q_NULLPTR, const QVariantList &args = QVariantList()); - virtual ~RunApplicationPlugin(); - - bool init(QHash &modules) Q_DECL_OVERRIDE; - -private Q_SLOTS: - void currentActivityChanged(const QString &activity); - void activityStateChanged(const QString &activity, int state); - -private: - QString activityDirectory(const QString &activity) const; - void executeIn(const QString &directory) const; - - QString m_currentActivity; - QStringList m_previousActivities; - QObject *m_activitiesService; -}; - -#endif // PLUGINS_RUN_APPLICATION_H diff -Nru kactivities-kf5-5.18.0/src/service/plugins/slc/CMakeLists.txt kactivities-kf5-5.44.0/src/service/plugins/slc/CMakeLists.txt --- kactivities-kf5-5.18.0/src/service/plugins/slc/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/slc/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (activitymanager-plugin-slc) - -# kservice_desktop_to_json (activitymanager-plugin-slc.desktop) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${CMAKE_BINARY_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../.. - ${CMAKE_CURRENT_BINARY_DIR} - ${KConfig_INCLUDE_DIR} - ) - -set ( - slc_SRCS - SlcPlugin.cpp - ) - -qt5_add_dbus_adaptor ( - slc_SRCS org.kde.ActivityManager.SLC.xml - SlcPlugin.h SlcPlugin - ) - -kcoreaddons_add_plugin( - kactivitymanagerd_plugin_slc - JSON kactivitymanagerd-plugin-slc.json - SOURCES ${slc_SRCS} - INSTALL_NAMESPACE ${KAMD_PLUGIN_DIR} - ) - -target_link_libraries ( - kactivitymanagerd_plugin_slc - Qt5::Core - Qt5::DBus - KF5::ConfigCore - KF5::DBusAddons - KF5::CoreAddons - kactivitymanagerd_plugin - ) - -set_target_properties ( - kactivitymanagerd_plugin_slc - PROPERTIES PREFIX "" - ) diff -Nru kactivities-kf5-5.18.0/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json kactivities-kf5-5.44.0/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json --- kactivities-kf5-5.18.0/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "ivan.cukic@kde.org", - "Name": "Ivan Cukic", - "Name[sr@ijekavian]": "Иван Чукић", - "Name[sr@ijekavianlatin]": "Ivan Čukić", - "Name[sr@latin]": "Ivan Čukić", - "Name[sr]": "Иван Чукић", - "Name[x-test]": "xxIvan Cukicxx" - } - ], - "Category": "", - "Dependencies": [], - "Description": "Provides data to Share-Like-Connect applet", - "Description[ca@valencia]": "Proporciona dades a la miniaplicació «Share-Like-Connect»", - "Description[ca]": "Proporciona dades a la miniaplicació «Share-Like-Connect»", - "Description[de]": "Liefert Daten für das Miniprogramm Share-Like-Connect", - "Description[es]": "Proporciona datos para la miniaplicación Compartir-Me gusta-Conectar", - "Description[fi]": "Tarjoaa tietoa Share-Like-Connect-sovelmalle", - "Description[gl]": "Fornece datos á applet compartir-gustar-conectar", - "Description[nl]": "Levert gegevens aan het applet Share-Like-Connect", - "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[sk]": "Poskytuje dáta pre applet Share-Like-Connect", - "Description[sl]": "Ponuja podatke apletu Share-Like-Connect", - "Description[sr@ijekavian]": "Пружа податке аплету подели-оцени-повежи (СЛЦ)", - "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[uk]": "Надає дані аплетові Оприлюднити-Уподобати-З’єднати", - "Description[x-test]": "xxProvides data to Share-Like-Connect appletxx", - "Description[zh_CN]": "为分享-喜爱-连接小程序提供数据", - "EnabledByDefault": true, - "Icon": "mail-forward", - "Id": "org.kde.ActivityManager.SLC", - "License": "GPL", - "Name": "Share-Like-Connect", - "Name[ca@valencia]": "«Share-Like-Connect»", - "Name[ca]": "«Share-Like-Connect»", - "Name[es]": "Compartir-Me gusta-Conectar", - "Name[gl]": "Compartir-gustar-conectar", - "Name[nl]": "'Share-Like-Connect'", - "Name[sr@ijekavian]": "Подели-оцени-повежи (СЛЦ)", - "Name[sr@ijekavianlatin]": "Podeli-oceni-poveži (SLC)", - "Name[sr@latin]": "Podeli-oceni-poveži (SLC)", - "Name[sr]": "Подели-оцени-повежи (СЛЦ)", - "Name[uk]": "Оприлюднти-Уподобати-З’єднати", - "Name[x-test]": "xxShare-Like-Connectxx", - "Name[zh_CN]": "分享-喜爱-连接", - "ServiceTypes": [ - "ActivityManager/Plugin" - ], - "Version": "1.0", - "Website": "http://plasma.kde.org/" - } -} \ No newline at end of file diff -Nru kactivities-kf5-5.18.0/src/service/plugins/slc/org.kde.ActivityManager.SLC.xml kactivities-kf5-5.44.0/src/service/plugins/slc/org.kde.ActivityManager.SLC.xml --- kactivities-kf5-5.18.0/src/service/plugins/slc/org.kde.ActivityManager.SLC.xml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/slc/org.kde.ActivityManager.SLC.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/slc/SlcPlugin.cpp kactivities-kf5-5.44.0/src/service/plugins/slc/SlcPlugin.cpp --- kactivities-kf5-5.18.0/src/service/plugins/slc/SlcPlugin.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/slc/SlcPlugin.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,125 +0,0 @@ -/* - * Copyright (C) 2011, 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -// Self -#include "SlcPlugin.h" - -// Qt -#include - -// KDE -#include - -// Local -#include "slcadaptor.h" - -KAMD_EXPORT_PLUGIN(slcplugin, SlcPlugin, "kactivitymanagerd-plugin-slc.json") - -SlcPlugin::SlcPlugin(QObject *parent, const QVariantList &args) - : Plugin(parent) -{ - Q_UNUSED(args); - - new SLCAdaptor(this); - KDBusConnectionPool::threadConnection().registerObject(QStringLiteral("/SLC"), this); -} - -SlcPlugin::~SlcPlugin() -{ -} - -QString SlcPlugin::focussedResourceURI() const -{ - return m_focussedResource; -} - -QString SlcPlugin::focussedResourceMimetype() const -{ - return m_resources[m_focussedResource].mimetype; -} - -QString SlcPlugin::focussedResourceTitle() const -{ - return m_resources[m_focussedResource].title; -} - -void SlcPlugin::registeredResourceEvent(const Event &event) -{ - switch (event.type) { - case Event::FocussedIn: - - if (!event.uri.startsWith(QLatin1String("about"))) { - if (m_focussedResource != event.uri) { - m_focussedResource = event.uri; - const auto &info = m_resources[m_focussedResource]; - emit focusChanged(event.uri, info.mimetype, info.title); - } - } else { - m_focussedResource.clear(); - emit focusChanged(QString(), QString(), QString()); - } - - break; - - case Event::FocussedOut: - - if (m_focussedResource == event.uri) { - m_focussedResource.clear(); - emit focusChanged(QString(), QString(), QString()); - } - - break; - - case Event::Closed: - m_resources.remove(event.uri); - - break; - - default: - break; - } -} - -void SlcPlugin::registeredResourceMimetype(const QString &uri, const QString &mimetype) -{ - m_resources[uri].mimetype = mimetype; -} - -void SlcPlugin::registeredResourceTitle(const QString &uri, const QString &title) -{ - m_resources[uri].title = title; -} - -bool SlcPlugin::init(QHash &modules) -{ - Plugin::init(modules); - - connect(modules[QStringLiteral("resources")], SIGNAL(RegisteredResourceEvent(Event)), - this, SLOT(registeredResourceEvent(Event)), - Qt::QueuedConnection); - connect(modules[QStringLiteral("resources")], SIGNAL(RegisteredResourceMimetype(QString, QString)), - this, SLOT(registeredResourceMimetype(QString, QString)), - Qt::QueuedConnection); - connect(modules[QStringLiteral("resources")], SIGNAL(RegisteredResourceTitle(QString, QString)), - this, SLOT(registeredResourceTitle(QString, QString)), - Qt::QueuedConnection); - - return true; -} - -#include "SlcPlugin.moc" - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/slc/SlcPlugin.h kactivities-kf5-5.44.0/src/service/plugins/slc/SlcPlugin.h --- kactivities-kf5-5.18.0/src/service/plugins/slc/SlcPlugin.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/slc/SlcPlugin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2011, 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef PLUGINS_SLC_PLUGIN_H -#define PLUGINS_SLC_PLUGIN_H - -#include - -class SlcPlugin : public Plugin { - Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.SLC") - // Q_PLUGIN_METADATA(IID "org.kde.ActivityManager.plugins.slc") - -public: - explicit SlcPlugin(QObject *parent = Q_NULLPTR, const QVariantList &args = QVariantList()); - ~SlcPlugin(); - - bool init(QHash &modules) Q_DECL_OVERRIDE; - -private Q_SLOTS: - void registeredResourceEvent(const Event &event); - void registeredResourceMimetype(const QString &uri, const QString &mimetype); - void registeredResourceTitle(const QString &uri, const QString &title); - -public Q_SLOTS: - QString focussedResourceURI() const; - QString focussedResourceMimetype() const; - QString focussedResourceTitle() const; - -Q_SIGNALS: - void focusChanged(const QString &uri, const QString &mimetype, const QString &title); - -private: - struct ResourceInfo { - QString title; - QString mimetype; - }; - - QHash m_resources; - QString m_focussedResource; -}; - -#endif // PLUGINS_SLC_PLUGIN_H diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/CMakeLists.txt kactivities-kf5-5.44.0/src/service/plugins/sqlite/CMakeLists.txt --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (kactivitymanagerd-plugin-sqlite) - -set ( - sqliteplugin_SRCS - Database.cpp - StatsPlugin.cpp - ResourceScoreCache.cpp - ResourceScoreMaintainer.cpp - ResourceLinking.cpp - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/Database.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/schema/ResourcesDatabaseSchema.cpp - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/qsqlquery_iterator.cpp - ) - -qt5_add_dbus_adaptor ( - sqliteplugin_SRCS - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.ResourcesLinking.xml - ResourceLinking.h ResourceLinking - resourcelinkingadaptor - ) - -qt5_add_dbus_adaptor ( - sqliteplugin_SRCS - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.ResourcesScoring.xml - StatsPlugin.h StatsPlugin - resourcescoringadaptor - ) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${CMAKE_BINARY_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../.. - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_BINARY_DIR}/../.. - ${KConfig_INCLUDE_DIR} - ) - -kcoreaddons_add_plugin( - kactivitymanagerd_plugin_sqlite - JSON kactivitymanagerd-plugin-sqlite.json - SOURCES ${sqliteplugin_SRCS} - INSTALL_NAMESPACE ${KAMD_PLUGIN_DIR} - ) - -target_link_libraries ( - kactivitymanagerd_plugin_sqlite - Qt5::Core - Qt5::Sql - KF5::ConfigCore - KF5::KIOCore - KF5::DBusAddons - KF5::CoreAddons - kactivitymanagerd_plugin - ) - -set_target_properties ( - kactivitymanagerd_plugin_sqlite - PROPERTIES PREFIX "" - ) diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/Database.cpp kactivities-kf5-5.44.0/src/service/plugins/sqlite/Database.cpp --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/Database.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/Database.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,114 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include -#include "Database.h" - -// Qt -#include -#include -#include -#include -#include -#include - -// KDE -#include - -// Utils -#include -#include - -// System -#include -#include - -// Local -#include "Debug.h" -#include "Utils.h" - -#include -#include - -class ResourcesDatabaseMigrator::Private { -public: - Common::Database::Ptr database; - -}; - -Common::Database &resourcesDatabase() -{ - static ResourcesDatabaseMigrator instance; - return *(instance.d->database); -} - -void ResourcesDatabaseMigrator::migrateDatabase(const QString &newDatabaseFile) const -{ - // Checking whether we need to transfer the KActivities/KDE4 - // sqlite database file to the new location. - if (QFile(newDatabaseFile).exists()) { - return; - } - - // Testing for kdehome - Kdelibs4Migration migration; - if (!migration.kdeHomeFound()) { - return; - } - - QString oldDatabaseFile( - migration.locateLocal("data", "activitymanager/resources/database")); - if (!oldDatabaseFile.isEmpty()) { - QFile(oldDatabaseFile).copy(newDatabaseFile); - } -} - -ResourcesDatabaseMigrator::ResourcesDatabaseMigrator() - : d() -{ - const QString databaseDir - = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) - + QStringLiteral("/kactivitymanagerd/resources/"); - - qDebug() << "Creating directory: " << databaseDir; - auto created = QDir().mkpath(databaseDir); - - if (!created || !QDir(databaseDir).exists()) { - qWarning() << "Database folder can not be created!"; - } - - const QString newDatabaseFile = databaseDir + QStringLiteral("database"); - - migrateDatabase(newDatabaseFile); - - d->database = Common::Database::instance( - Common::Database::ResourcesDatabase, - Common::Database::ReadWrite); - - Q_ASSERT_X(d->database, "SQLite plugin/Database constructor", - "Database could not be opened"); - - Common::ResourcesDatabaseSchema::initSchema(*d->database); -} - -ResourcesDatabaseMigrator::~ResourcesDatabaseMigrator() -{ -} - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/Database.h kactivities-kf5-5.44.0/src/service/plugins/sqlite/Database.h --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/Database.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/Database.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef PLUGINS_SQLITE_RESOURCESDATABASE_H -#define PLUGINS_SQLITE_RESOURCESDATABASE_H - -// Qt -#include -#include -#include -#include -#include -#include - -// Utils -#include - -// Local -#include - -class QDateTime; -class QSqlDatabase; -class QSqlError; - -namespace Common { - class Database; -} // namespace Common - -class ResourcesDatabaseMigrator : public QObject { - Q_OBJECT - -public: - // static Database *self(); - -private: - ResourcesDatabaseMigrator(); - ~ResourcesDatabaseMigrator(); - - void migrateDatabase(const QString &newDatabaseFile) const; - - D_PTR; - - friend Common::Database &resourcesDatabase(); -}; - -Common::Database &resourcesDatabase(); - -#endif // PLUGINS_SQLITE_RESOURCESDATABASE_H diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json kactivities-kf5-5.44.0/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "ivan.cukic@kde.org", - "Name": "Ivan Cukic", - "Name[sr@ijekavian]": "Иван Чукић", - "Name[sr@ijekavianlatin]": "Ivan Čukić", - "Name[sr@latin]": "Ivan Čukić", - "Name[sr]": "Иван Чукић", - "Name[x-test]": "xxIvan Cukicxx" - } - ], - "Category": "", - "Dependencies": [], - "Description": "Plugin to store and score events in Sqlite", - "Description[ca@valencia]": "Connector per emmagatzemar i classificar esdeveniments en el Sqlite", - "Description[ca]": "Connector per emmagatzemar i classificar esdeveniments en el Sqlite", - "Description[de]": "Modul zum Speichern und Bewerten von Ereignissen in SQLite", - "Description[es]": "Complemento para guardar y puntuar eventos en Sqlite", - "Description[fi]": "Liitännäinen tapahtumien tallentamiseen ja arvostelemiseen Sqlitessa", - "Description[gl]": "Un complemento para gardar e cualificar acontecementos en Sqlite", - "Description[nl]": "Plug-in om gebeurtenissen op te slaan en te scoren in Sqlite", - "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[sk]": "Plugin na uloženie a bodovanie udalosti v Sqlite", - "Description[sl]": "Vstavek za shranjevanje in označevanje dogodkov v SQLite", - "Description[sr@ijekavian]": "Прикључак за складиштење и оцењивање догађаја у СКуЛајту", - "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[uk]": "Додаток для зберігання і оцінки подій у Sqlite", - "Description[x-test]": "xxPlugin to store and score events in Sqlitexx", - "Description[zh_CN]": "将事件在 Sqlite 中存储并打分的插件", - "EnabledByDefault": true, - "Icon": "server-database", - "Id": "org.kde.ActivityManager.ResourceScoring", - "License": "GPL", - "Name": "Sqlite Feeder", - "Name[ca@valencia]": "Alimentador del Sqlite", - "Name[ca]": "Alimentador del Sqlite", - "Name[de]": "Sqlite-Modul", - "Name[es]": "Alimentador Sqlite", - "Name[fi]": "Sqlite-syötteistin", - "Name[gl]": "Alimentador de Sqlite", - "Name[nl]": "Sqlite-feeder", - "Name[pl]": "Podajnik Sqlite", - "Name[pt]": "Fonte de SQLite", - "Name[pt_BR]": "Fonte de notícias do Sqlite", - "Name[sk]": "Podávač Sqlite", - "Name[sl]": "Podajalnik SQLite", - "Name[sr@ijekavian]": "СКуЛајтов уводник", - "Name[sr@ijekavianlatin]": "SQLiteov uvodnik", - "Name[sr@latin]": "SQLiteov uvodnik", - "Name[sr]": "СКуЛајтов уводник", - "Name[sv]": "SQLite-inmatning", - "Name[uk]": "Передавання даних Sqlite", - "Name[x-test]": "xxSqlite Feederxx", - "Name[zh_CN]": "Sqlite 采集器", - "ServiceTypes": [ - "ActivityManager/Plugin" - ], - "Version": "1.0", - "Website": "http://plasma.kde.org/" - }, - "X-KActivityManager-PluginOverrides": "kactivitymanagerd_plugin_dummy" -} \ No newline at end of file diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceLinking.cpp kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceLinking.cpp --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceLinking.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceLinking.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,289 +0,0 @@ -/* - * Copyright (C) 2011, 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include -#include "ResourceLinking.h" - -// Qt -#include -#include - -// KDE -#include -#include -#include - -// Boost -#include -#include - -// Local -#include "Debug.h" -#include "Database.h" -#include "Utils.h" -#include "StatsPlugin.h" -#include "resourcelinkingadaptor.h" - -ResourceLinking::ResourceLinking(QObject *parent) - : QObject(parent) -{ - new ResourcesLinkingAdaptor(this); - KDBusConnectionPool::threadConnection().registerObject( - QStringLiteral("/ActivityManager/Resources/Linking"), this); -} - -void ResourceLinking::init() -{ - auto activities = StatsPlugin::self()->activitiesInterface(); - - connect(activities, SIGNAL(CurrentActivityChanged(QString)), - this, SLOT(onCurrentActivityChanged(QString))); - connect(activities, SIGNAL(ActivityAdded(QString)), - this, SLOT(onActivityAdded(QString))); - connect(activities, SIGNAL(ActivityRemoved(QString)), - this, SLOT(onActivityRemoved(QString))); -} - -void ResourceLinking::LinkResourceToActivity(QString initiatingAgent, - QString targettedResource, - QString usedActivity) -{ - // qDebug() << "Linking " << targettedResource << " to " << usedActivity << " from " << initiatingAgent; - - if (!validateArguments(initiatingAgent, targettedResource, usedActivity)) { - qWarning() << "Invalid arguments" << initiatingAgent - << targettedResource << usedActivity; - return; - } - - Q_ASSERT_X(!initiatingAgent.isEmpty(), - "ResourceLinking::LinkResourceToActivity", - "Agent shoud not be empty"); - Q_ASSERT_X(!usedActivity.isEmpty(), - "ResourceLinking::LinkResourceToActivity", - "Activity shoud not be empty"); - Q_ASSERT_X(!targettedResource.isEmpty(), - "ResourceLinking::LinkResourceToActivity", - "Resource shoud not be empty"); - - Utils::prepare(resourcesDatabase(), linkResourceToActivityQuery, - QStringLiteral( - "INSERT OR REPLACE INTO ResourceLink" - " (usedActivity, initiatingAgent, targettedResource) " - "VALUES ( " - "COALESCE(:usedActivity,'')," - "COALESCE(:initiatingAgent,'')," - "COALESCE(:targettedResource,'')" - ")" - )); - - DATABASE_TRANSACTION(resourcesDatabase()); - - Utils::exec(Utils::FailOnError, *linkResourceToActivityQuery, - ":usedActivity" , usedActivity, - ":initiatingAgent" , initiatingAgent, - ":targettedResource" , targettedResource - ); - - if (!usedActivity.isEmpty()) { - // qDebug() << "Sending link event added: activities:/" << usedActivity; - org::kde::KDirNotify::emitFilesAdded(QStringLiteral("activities:/") - + usedActivity); - - if (usedActivity == StatsPlugin::self()->currentActivity()) { - // qDebug() << "Sending link event added: activities:/current"; - org::kde::KDirNotify::emitFilesAdded( - QStringLiteral("activities:/current")); - } - } - - emit ResourceLinkedToActivity(initiatingAgent, targettedResource, - usedActivity); -} - -void ResourceLinking::UnlinkResourceFromActivity(QString initiatingAgent, - QString targettedResource, - QString usedActivity) -{ - // qDebug() << "Unlinking " << targettedResource << " from " << usedActivity << " from " << initiatingAgent; - - if (!validateArguments(initiatingAgent, targettedResource, usedActivity)) { - qWarning() << "Invalid arguments" << initiatingAgent - << targettedResource << usedActivity; - return; - } - - Q_ASSERT_X(!initiatingAgent.isEmpty(), - "ResourceLinking::UnlinkResourceFromActivity", - "Agent shoud not be empty"); - Q_ASSERT_X(!usedActivity.isEmpty(), - "ResourceLinking::UnlinkResourceFromActivity", - "Activity shoud not be empty"); - Q_ASSERT_X(!targettedResource.isEmpty(), - "ResourceLinking::UnlinkResourceFromActivity", - "Resource shoud not be empty"); - - Utils::prepare(resourcesDatabase(), unlinkResourceFromActivityQuery, - QStringLiteral( - "DELETE FROM ResourceLink " - "WHERE " - "usedActivity = COALESCE(:usedActivity , '') AND " - "initiatingAgent = COALESCE(:initiatingAgent , '') AND " - "targettedResource = COALESCE(:targettedResource, '') " - )); - - DATABASE_TRANSACTION(resourcesDatabase()); - - Utils::exec(Utils::FailOnError, *unlinkResourceFromActivityQuery, - ":usedActivity" , usedActivity, - ":initiatingAgent" , initiatingAgent, - ":targettedResource" , targettedResource - ); - - if (!usedActivity.isEmpty()) { - // auto mangled = QString::fromUtf8(QUrl::toPercentEncoding(targettedResource)); - auto mangled = QString::fromLatin1(targettedResource.toUtf8().toBase64( - QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals)); - - // qDebug() << "Sending link event removed: activities:/" << usedActivity << '/' << mangled; - org::kde::KDirNotify::emitFilesRemoved( - { QStringLiteral("activities:/") + usedActivity + '/' + mangled }); - - if (usedActivity == StatsPlugin::self()->currentActivity()) { - // qDebug() << "Sending link event removed: activities:/current/" << mangled; - org::kde::KDirNotify::emitFilesRemoved({ - QStringLiteral("activities:/current/") + mangled}); - } - } - - emit ResourceUnlinkedFromActivity(initiatingAgent, targettedResource, - usedActivity); -} - -bool ResourceLinking::IsResourceLinkedToActivity(QString initiatingAgent, - QString targettedResource, - QString usedActivity) -{ - if (!validateArguments(initiatingAgent, targettedResource, usedActivity)) { - return false; - } - - Q_ASSERT_X(!initiatingAgent.isEmpty(), - "ResourceLinking::IsResourceLinkedToActivity", - "Agent shoud not be empty"); - Q_ASSERT_X(!usedActivity.isEmpty(), - "ResourceLinking::IsResourceLinkedToActivity", - "Activity shoud not be empty"); - Q_ASSERT_X(!targettedResource.isEmpty(), - "ResourceLinking::IsResourceLinkedToActivity", - "Resource shoud not be empty"); - - Utils::prepare(resourcesDatabase(), isResourceLinkedToActivityQuery, - QStringLiteral( - "SELECT * FROM ResourceLink " - "WHERE " - "usedActivity = COALESCE(:usedActivity , '') AND " - "initiatingAgent = COALESCE(:initiatingAgent , '') AND " - "targettedResource = COALESCE(:targettedResource, '') " - )); - - Utils::exec(Utils::FailOnError, *isResourceLinkedToActivityQuery, - ":usedActivity" , usedActivity, - ":initiatingAgent" , initiatingAgent, - ":targettedResource" , targettedResource - ); - - return isResourceLinkedToActivityQuery->next(); -} - -bool ResourceLinking::validateArguments(QString &initiatingAgent, - QString &targettedResource, - QString &usedActivity) -{ - // Validating targetted resource - if (targettedResource.startsWith(QStringLiteral("file://"))) { - targettedResource = QUrl(targettedResource).toLocalFile(); - } - - if (targettedResource.startsWith(QStringLiteral("/"))) { - QFileInfo file(targettedResource); - - if (!file.exists()) { - return false; - } - - targettedResource = file.canonicalFilePath(); - } - - // Handling special values for the agent - if (initiatingAgent.isEmpty()) { - initiatingAgent = ":global"; - } - - // Handling special values for activities - if (usedActivity == ":current") { - usedActivity = StatsPlugin::self()->currentActivity(); - - } else if (usedActivity.isEmpty()) { - usedActivity = ":global"; - } - - // If the activity is not empty and the passed activity - // does not exist, cancel the request - if (!usedActivity.isEmpty() - && !StatsPlugin::self()->listActivities().contains(usedActivity)) { - return false; - } - - // qDebug() << "agent" << initiatingAgent - // << "resource" << targettedResource - // << "activity" << usedActivity; - - return true; -} - -void ResourceLinking::onActivityAdded(const QString &activity) -{ - Q_UNUSED(activity); - - // Notify KIO - // qDebug() << "Added: activities:/ (" << activity << ")"; - org::kde::KDirNotify::emitFilesAdded(QStringLiteral("activities:/")); -} - -void ResourceLinking::onActivityRemoved(const QString &activity) -{ - // Notify KIO - // qDebug() << "Removed: activities:/" << activity; - org::kde::KDirNotify::emitFilesRemoved( - { QStringLiteral("activities:/") + activity }); - - // Remove statistics for the activity -} - -void ResourceLinking::onCurrentActivityChanged(const QString &activity) -{ - Q_UNUSED(activity); - - // Notify KIO - // qDebug() << "Changed: activities:/current -> " << activity; - org::kde::KDirNotify::emitFilesAdded( - { QStringLiteral("activities:/current") }); -} diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceLinking.h kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceLinking.h --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceLinking.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceLinking.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2011, 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef PLUGINS_SQLITE_RESOURCE_LINKING_H -#define PLUGINS_SQLITE_RESOURCE_LINKING_H - -// Qt -#include - -// Boost and STL -#include -#include - -// Local -#include - -class QSqlQuery; -class QFileSystemWatcher; - -/** - * Communication with the outer world. - * - * - Handles configuration - * - Filters the events based on the user's configuration. - */ -class ResourceLinking : public QObject { - Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Resources.Linking") - -public: - ResourceLinking(QObject *parent); - - void init(); - -public Q_SLOTS: - /** - * Links the resource to the activity - * @param initiatingAgent application that requests the linking. Leave - * empty if the resource should be linked to the activity regardless - * of which application asks for it. - * @param targettedResource resource to link to the activity. Can be a file - * or any other kind of URI. If it is not a globally recognizable URI, - * you should set the initiatingAgent to a specific application. - * @param usedActivity Activity to link to. Leave empty to link to all - * activities. - */ - void LinkResourceToActivity(QString initiatingAgent, - QString targettedResource, - QString usedActivity = QString()); - void UnlinkResourceFromActivity(QString initiatingAgent, - QString targettedResource, - QString usedActivity = QString()); - bool IsResourceLinkedToActivity(QString initiatingAgent, - QString targettedResource, - QString usedActivity = QString()); - - -Q_SIGNALS: - void ResourceLinkedToActivity(const QString &initiatingAgent, - const QString &targettedResource, - const QString &usedActivity); - void ResourceUnlinkedFromActivity(const QString &initiatingAgent, - const QString &targettedResource, - const QString &usedActivity); - -private Q_SLOTS: - void onActivityAdded(const QString &activity); - void onActivityRemoved(const QString &activity); - void onCurrentActivityChanged(const QString &activity); - -private: - bool validateArguments(QString &initiatingAgent, QString &targettedResource, - QString &usedActivity); - - QString currentActivity() const; - - std::unique_ptr linkResourceToActivityQuery; - std::unique_ptr unlinkResourceFromActivityQuery; - std::unique_ptr isResourceLinkedToActivityQuery; -}; - -#endif // PLUGINS_SQLITE_RESOURCE_LINKING_H diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceScoreCache.cpp kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceScoreCache.cpp --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceScoreCache.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceScoreCache.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,258 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include -#include "ResourceScoreCache.h" - -// STD -#include - -// Utils -#include -#include - -// Local -#include "Debug.h" -#include "StatsPlugin.h" -#include "Database.h" -#include "Utils.h" - - -class ResourceScoreCache::Queries { -private: - Queries() - : createResourceScoreCacheQuery(resourcesDatabase().createQuery()) - , getResourceScoreCacheQuery(resourcesDatabase().createQuery()) - , updateResourceScoreCacheQuery(resourcesDatabase().createQuery()) - , getScoreAdditionQuery(resourcesDatabase().createQuery()) - { - - Utils::prepare(resourcesDatabase(), - createResourceScoreCacheQuery, QStringLiteral( - "INSERT INTO ResourceScoreCache " - "VALUES (:usedActivity, :initiatingAgent, :targettedResource, " - "0, 0, " // type, score - ":firstUpdate, " // lastUpdate - ":firstUpdate)" - )); - - Utils::prepare(resourcesDatabase(), - getResourceScoreCacheQuery, QStringLiteral( - "SELECT cachedScore, lastUpdate, firstUpdate FROM ResourceScoreCache " - "WHERE " - ":usedActivity = usedActivity AND " - ":initiatingAgent = initiatingAgent AND " - ":targettedResource = targettedResource " - )); - - Utils::prepare(resourcesDatabase(), - updateResourceScoreCacheQuery, QStringLiteral( - "UPDATE ResourceScoreCache SET " - "cachedScore = :cachedScore, " - "lastUpdate = :lastUpdate " - "WHERE " - ":usedActivity = usedActivity AND " - ":initiatingAgent = initiatingAgent AND " - ":targettedResource = targettedResource " - )); - - Utils::prepare(resourcesDatabase(), - getScoreAdditionQuery, QStringLiteral( - "SELECT start, end " - "FROM ResourceEvent " - "WHERE " - ":usedActivity = usedActivity AND " - ":initiatingAgent = initiatingAgent AND " - ":targettedResource = targettedResource AND " - "start > :start " - "ORDER BY " - "start ASC" - )); - } - -public: - QSqlQuery createResourceScoreCacheQuery; - QSqlQuery getResourceScoreCacheQuery; - QSqlQuery updateResourceScoreCacheQuery; - QSqlQuery getScoreAdditionQuery; - - static Queries &self(); - -}; - -ResourceScoreCache::Queries &ResourceScoreCache::Queries::self() -{ - static Queries queries; - return queries; -} - - -class ResourceScoreCache::Private { -public: - QString activity; - QString application; - QString resource; - - inline qreal timeFactor(int days) const - { - // Exp is falling rather quickly, we are slowing it 32 times - return std::exp(-days / 32.0); - } - - inline qreal timeFactor(QDateTime fromTime, QDateTime toTime) const - { - return timeFactor(fromTime.daysTo(toTime)); - } -}; - -ResourceScoreCache::ResourceScoreCache(const QString &activity, - const QString &application, - const QString &resource) -{ - d->activity = activity; - d->application = application; - d->resource = resource; - - Q_ASSERT_X(!d->application.isEmpty(), - "ResourceScoreCache::constructor", - "Agent shoud not be empty"); - Q_ASSERT_X(!d->activity.isEmpty(), - "ResourceScoreCache::constructor", - "Activity shoud not be empty"); - Q_ASSERT_X(!d->resource.isEmpty(), - "ResourceScoreCache::constructor", - "Resource shoud not be empty"); - -} - -ResourceScoreCache::~ResourceScoreCache() -{ -} - -void ResourceScoreCache::update() -{ - QDateTime lastUpdate; - QDateTime firstUpdate; - QDateTime currentTime = QDateTime::currentDateTime(); - qreal score = 0; - - DATABASE_TRANSACTION(resourcesDatabase()); - - qDebug() << "Creating the cache for: " << d->resource; - - // This can fail if we have the cache already made - auto isCacheNew = Utils::exec( - Utils::IgnoreError, Queries::self().createResourceScoreCacheQuery, - ":usedActivity", d->activity, - ":initiatingAgent", d->application, - ":targettedResource", d->resource, - ":firstUpdate", currentTime.toTime_t() - ); - - // Getting the old score - Utils::exec( - Utils::FailOnError, Queries::self().getResourceScoreCacheQuery, - ":usedActivity", d->activity, - ":initiatingAgent", d->application, - ":targettedResource", d->resource - ); - - // Only and always one result - for (const auto &result: Queries::self().getResourceScoreCacheQuery) { - - lastUpdate.setTime_t(result["lastUpdate"].toUInt()); - firstUpdate.setTime_t(result["firstUpdate"].toUInt()); - - qDebug() << "Already in database? " << (!isCacheNew); - qDebug() << " First update : " << firstUpdate; - qDebug() << " Last update : " << lastUpdate; - - if (isCacheNew) { - // If we haven't had the cache before, set the score to 0 - firstUpdate = currentTime; - score = 0; - - } else { - // Adjusting the score depending on the time that passed since the - // last update - score = result["cachedScore"].toReal(); - score *= d->timeFactor(lastUpdate, currentTime); - } - } - - // Calculating the updated score - // We are processing all events since the last cache update - - qDebug() << "After the adjustment"; - qDebug() << " Current score : " << score; - qDebug() << " First update : " << firstUpdate; - qDebug() << " Last update : " << lastUpdate; - - Utils::exec(Utils::FailOnError, Queries::self().getScoreAdditionQuery, - ":usedActivity", d->activity, - ":initiatingAgent", d->application, - ":targettedResource", d->resource, - ":start", lastUpdate.toTime_t() - ); - - uint lastEventStart = currentTime.toTime_t(); - - for (const auto &result: Queries::self().getScoreAdditionQuery) { - lastEventStart = result["start"].toUInt(); - - const auto end = result["end"].toUInt(); - const auto intervalLength = end - lastEventStart; - - qDebug() << "Interval length is " << intervalLength; - - if (intervalLength == 0) { - // We have an Accessed event - otherwise, this wouldn't be 0 - score += d->timeFactor(QDateTime::fromTime_t(end), currentTime); // like it is open for 1 minute - - } else { - score += d->timeFactor(QDateTime::fromTime_t(end), currentTime) * intervalLength / 60.0; - - } - } - - qDebug() << " New score : " << score; - - // Updating the score - - Utils::exec(Utils::FailOnError, Queries::self().updateResourceScoreCacheQuery, - ":usedActivity", d->activity, - ":initiatingAgent", d->application, - ":targettedResource", d->resource, - ":cachedScore", score, - ":lastUpdate", lastEventStart - ); - - // Notifying the world - emit QMetaObject::invokeMethod(StatsPlugin::self(), - "ResourceScoreUpdated", - Qt::QueuedConnection, - Q_ARG(QString, d->activity), - Q_ARG(QString, d->application), - Q_ARG(QString, d->resource), - Q_ARG(double, score), - Q_ARG(uint, lastEventStart), - Q_ARG(uint, firstUpdate.toTime_t()) - ); -} diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceScoreCache.h kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceScoreCache.h --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceScoreCache.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceScoreCache.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef PLUGINS_SQLITE_RESOURCE_SCORE_CACHE_H -#define PLUGINS_SQLITE_RESOURCE_SCORE_CACHE_H - -// Qt -#include - -// Utils -#include - -/** - * ResourceScoreCache handles the persistence of the usage ratings for - * the resources. - * - * It contains the logic to update the score of a single resource. - */ -class ResourceScoreCache { -public: - ResourceScoreCache(const QString &activity, const QString &application, - const QString &resource); - virtual ~ResourceScoreCache(); - - void update(); - -private: - D_PTR; - class Queries; -}; - -#endif // PLUGINS_SQLITE_RESOURCE_SCORE_CACHE_H diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceScoreMaintainer.cpp kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceScoreMaintainer.cpp --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceScoreMaintainer.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceScoreMaintainer.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,150 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include "ResourceScoreMaintainer.h" - -// Qt -#include -#include -#include - - -// System -#include - -// Utils -#include -#include - -// Local -#include "StatsPlugin.h" -#include "ResourceScoreCache.h" - - -class ResourceScoreMaintainer::Private : public QThread { -public: - typedef QString ApplicationName; - typedef QString ActivityID; - typedef QList ResourceList; - - typedef QHash Applications; - typedef QHash ResourceTree; - - ResourceTree scheduledResources; - QMutex scheduledResources_mutex; - - void run() Q_DECL_OVERRIDE; - void processActivity(const ActivityID &activity, - const Applications &applications); -}; - -void ResourceScoreMaintainer::Private::run() -{ - using namespace kamd::utils; - - forever { - // initial delay before processing the resources - sleep(1); - - ResourceTree resources; - - { - QMutexLocker lock(&scheduledResources_mutex); - std::swap(resources, scheduledResources); - } - - const auto activity = StatsPlugin::self()->currentActivity(); - - // Let us first process the events related to the current - // activity so that the stats are available quicker - - if (resources.contains(activity)) { - processActivity(activity, resources[activity]); - resources.remove(activity); - } - - for_each_assoc(resources, - [this](const ActivityID & activity, const Applications & applications) { - processActivity(activity, applications); - } - ); - } -} - -void ResourceScoreMaintainer::Private::processActivity(const ActivityID - &activity, - const Applications - &applications) -{ - using namespace kamd::utils; - - for_each_assoc(applications, - [&](const ApplicationName &application, const ResourceList &resources) { - for (const auto &resource : resources) { - ResourceScoreCache(activity, application, resource).update(); - } - } - ); -} - -ResourceScoreMaintainer *ResourceScoreMaintainer::self() -{ - static ResourceScoreMaintainer instance; - return &instance; -} - -ResourceScoreMaintainer::ResourceScoreMaintainer() - : d() -{ -} - -ResourceScoreMaintainer::~ResourceScoreMaintainer() -{ -} - -void ResourceScoreMaintainer::processResource(const QString &resource, - const QString &application) -{ - QMutexLocker lock(&d->scheduledResources_mutex); - - // Checking whether the item is already scheduled for - // processing - - const auto activity = StatsPlugin::self()->currentActivity(); - - Q_ASSERT_X(!application.isEmpty(), - "ResourceScoreMaintainer::processResource", - "Agent shoud not be empty"); - Q_ASSERT_X(!resource.isEmpty(), - "ResourceScoreMaintainer::processResource", - "Resource shoud not be empty"); - - if (d->scheduledResources.contains(activity) - && d->scheduledResources[activity].contains(application) - && d->scheduledResources[activity][application].contains(resource)) { - - // Nothing - - } else { - d->scheduledResources[activity][application] << resource; - } - - d->start(); -} diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceScoreMaintainer.h kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceScoreMaintainer.h --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/ResourceScoreMaintainer.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/ResourceScoreMaintainer.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef PLUGINS_SQLITE_RESOURCE_SCORE_MAINTAINER_H -#define PLUGINS_SQLITE_RESOURCE_SCORE_MAINTAINER_H - -// Utils -#include - -class ResourceScoreMaintainerPrivate; -class QString; - -/** - * ResourceScoreMaintainer represents a queue of resource processing requests. - */ -class ResourceScoreMaintainer { -public: - static ResourceScoreMaintainer *self(); - - virtual ~ResourceScoreMaintainer(); - - void processResource(const QString &resource, const QString &application); - -private: - ResourceScoreMaintainer(); - - D_PTR; -}; - -#endif // PLUGINS_SQLITE_RESOURCE_SCORE_MAINTAINER_H diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/StatsPlugin.cpp kactivities-kf5-5.44.0/src/service/plugins/sqlite/StatsPlugin.cpp --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/StatsPlugin.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/StatsPlugin.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,727 +0,0 @@ -/* - * Copyright (C) 2011, 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include -#include "StatsPlugin.h" - -// Qt -#include -#include -#include - -// KDE -#include -#include -#include - -// Boost -#include -#include - -// Local -#include "Debug.h" -#include "Database.h" -#include "ResourceScoreMaintainer.h" -#include "ResourceLinking.h" -#include "Utils.h" -#include "../../Event.h" -#include "resourcescoringadaptor.h" -#include "common/specialvalues.h" - -KAMD_EXPORT_PLUGIN(sqliteplugin, StatsPlugin, "kactivitymanagerd-plugin-sqlite.json") - -StatsPlugin *StatsPlugin::s_instance = Q_NULLPTR; - -StatsPlugin::StatsPlugin(QObject *parent, const QVariantList &args) - : Plugin(parent) - , m_activities(Q_NULLPTR) - , m_resources(Q_NULLPTR) - , m_resourceLinking(new ResourceLinking(this)) -{ - Q_UNUSED(args); - s_instance = this; - - new ResourcesScoringAdaptor(this); - KDBusConnectionPool::threadConnection().registerObject( - QStringLiteral("/ActivityManager/Resources/Scoring"), this); - - setName(QStringLiteral("org.kde.ActivityManager.Resources.Scoring")); -} - -bool StatsPlugin::init(QHash &modules) -{ - Plugin::init(modules); - - m_activities = modules[QStringLiteral("activities")]; - m_resources = modules[QStringLiteral("resources")]; - - m_resourceLinking->init(); - - // Initializing the database - resourcesDatabase(); - - connect(m_resources, SIGNAL(ProcessedResourceEvents(EventList)), - this, SLOT(addEvents(EventList))); - connect(m_resources, SIGNAL(RegisteredResourceMimetype(QString, QString)), - this, SLOT(saveResourceMimetype(QString, QString))); - connect(m_resources, SIGNAL(RegisteredResourceTitle(QString, QString)), - this, SLOT(saveResourceTitle(QString, QString))); - - connect(modules[QStringLiteral("config")], SIGNAL(pluginConfigChanged()), - this, SLOT(loadConfiguration())); - - loadConfiguration(); - - return true; -} - -void StatsPlugin::loadConfiguration() -{ - auto conf = config(); - conf.config()->reparseConfiguration(); - - const QString configFile - = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) - + QStringLiteral("kactivitymanagerd-pluginsrc"); - - m_blockedByDefault = conf.readEntry("blocked-by-default", false); - m_blockAll = false; - m_whatToRemember = (WhatToRemember)conf.readEntry("what-to-remember", - (int)AllApplications); - - m_apps.clear(); - - if (m_whatToRemember == SpecificApplications) { - auto apps = conf.readEntry( - m_blockedByDefault ? "allowed-applications" : "blocked-applications", - QStringList()); - - m_apps.insert(apps.cbegin(), apps.cend()); - } - - // Delete old events, as per configuration. - // For people who do not restart their computers, we should do this from - // time to time. Doing this twice a day should be more than enough. - deleteOldEvents(); - m_deleteOldEventsTimer.setInterval(12 * 60 * 60 * 1000); - connect(&m_deleteOldEventsTimer, &QTimer::timeout, - this, &StatsPlugin::deleteOldEvents); - - // Loading URL filters - m_urlFilters.clear(); - - auto filters = conf.readEntry("url-filters", - QStringList() << "about:*" // Ignore about: stuff - << "*/.*" // Ignore hidden files - << "/" // Ignore root - << "/tmp/*" // Ignore everything in /tmp - ); - - for (const auto& filter: filters) { - m_urlFilters << Common::starPatternToRegex(filter); - } - - // Loading the private activities - m_otrActivities = conf.readEntry("off-the-record-activities", QStringList()); -} - -void StatsPlugin::deleteOldEvents() -{ - DeleteEarlierStats(QString(), config().readEntry("keep-history-for", 0)); -} - -void StatsPlugin::openResourceEvent(const QString &usedActivity, - const QString &initiatingAgent, - const QString &targettedResource, - const QDateTime &start, - const QDateTime &end) -{ - Q_ASSERT_X(!initiatingAgent.isEmpty(), - "StatsPlugin::openResourceEvent", - "Agent shoud not be empty"); - Q_ASSERT_X(!usedActivity.isEmpty(), - "StatsPlugin::openResourceEvent", - "Activity shoud not be empty"); - Q_ASSERT_X(!targettedResource.isEmpty(), - "StatsPlugin::openResourceEvent", - "Resource shoud not be empty"); - - detectResourceInfo(targettedResource); - - Utils::prepare(resourcesDatabase(), openResourceEventQuery, QStringLiteral( - "INSERT INTO ResourceEvent" - " (usedActivity, initiatingAgent, targettedResource, start, end) " - "VALUES (:usedActivity, :initiatingAgent, :targettedResource, :start, :end)" - )); - - Utils::exec(Utils::FailOnError, *openResourceEventQuery, - ":usedActivity" , usedActivity , - ":initiatingAgent" , initiatingAgent , - ":targettedResource" , targettedResource , - ":start" , start.toTime_t() , - ":end" , (end.isNull()) ? QVariant() : end.toTime_t() - ); -} - -void StatsPlugin::closeResourceEvent(const QString &usedActivity, - const QString &initiatingAgent, - const QString &targettedResource, - const QDateTime &end) -{ - Q_ASSERT_X(!initiatingAgent.isEmpty(), - "StatsPlugin::closeResourceEvent", - "Agent shoud not be empty"); - Q_ASSERT_X(!usedActivity.isEmpty(), - "StatsPlugin::closeResourceEvent", - "Activity shoud not be empty"); - Q_ASSERT_X(!targettedResource.isEmpty(), - "StatsPlugin::closeResourceEvent", - "Resource shoud not be empty"); - - Utils::prepare(resourcesDatabase(), closeResourceEventQuery, QStringLiteral( - "UPDATE ResourceEvent " - "SET end = :end " - "WHERE " - ":usedActivity = usedActivity AND " - ":initiatingAgent = initiatingAgent AND " - ":targettedResource = targettedResource AND " - "end IS NULL" - )); - - Utils::exec(Utils::FailOnError, *closeResourceEventQuery, - ":usedActivity" , usedActivity , - ":initiatingAgent" , initiatingAgent , - ":targettedResource" , targettedResource , - ":end" , end.toTime_t() - ); -} - -void StatsPlugin::detectResourceInfo(const QString &_uri) -{ - QString file = _uri; - - if (!file.startsWith('/')) { - QUrl uri(_uri); - - if (!uri.isLocalFile()) return; - - file = uri.toLocalFile(); - - if (!QFile::exists(file)) return; - } - - KFileItem item(file); - - if (insertResourceInfo(file)) { - saveResourceMimetype(file, item.mimetype(), true); - - const auto text = item.text(); - saveResourceTitle(file, text.isEmpty() ? _uri : text, true); - } -} - -bool StatsPlugin::insertResourceInfo(const QString &uri) -{ - - Utils::prepare(resourcesDatabase(), getResourceInfoQuery, QStringLiteral( - "SELECT targettedResource FROM ResourceInfo WHERE " - " targettedResource = :targettedResource " - )); - - getResourceInfoQuery->bindValue(":targettedResource", uri); - Utils::exec(Utils::FailOnError, *getResourceInfoQuery); - - if (getResourceInfoQuery->next()) { - return false; - } - - Utils::prepare(resourcesDatabase(), insertResourceInfoQuery, QStringLiteral( - "INSERT INTO ResourceInfo( " - " targettedResource" - ", title" - ", autoTitle" - ", mimetype" - ", autoMimetype" - ") VALUES (" - " :targettedResource" - ", '' " - ", 1 " - ", '' " - ", 1 " - ")" - )); - - Utils::exec(Utils::FailOnError, *insertResourceInfoQuery, - ":targettedResource", uri - ); - - return true; -} - -void StatsPlugin::saveResourceTitle(const QString &uri, const QString &title, - bool autoTitle) -{ - insertResourceInfo(uri); - - DATABASE_TRANSACTION(resourcesDatabase()); - - Utils::prepare(resourcesDatabase(), saveResourceTitleQuery, QStringLiteral( - "UPDATE ResourceInfo SET " - " title = :title" - ", autoTitle = :autoTitle " - "WHERE " - "targettedResource = :targettedResource " - )); - - Utils::exec(Utils::FailOnError, *saveResourceTitleQuery, - ":targettedResource" , uri , - ":title" , title , - ":autoTitle" , (autoTitle ? "1" : "0") - ); -} - -void StatsPlugin::saveResourceMimetype(const QString &uri, - const QString &mimetype, - bool autoMimetype) -{ - insertResourceInfo(uri); - - DATABASE_TRANSACTION(resourcesDatabase()); - - Utils::prepare(resourcesDatabase(), saveResourceMimetypeQuery, QStringLiteral( - "UPDATE ResourceInfo SET " - " mimetype = :mimetype" - ", autoMimetype = :autoMimetype " - "WHERE " - "targettedResource = :targettedResource " - )); - - Utils::exec(Utils::FailOnError, *saveResourceMimetypeQuery, - ":targettedResource" , uri , - ":mimetype" , mimetype , - ":autoMimetype" , (autoMimetype ? "1" : "0") - ); -} - - -StatsPlugin *StatsPlugin::self() -{ - return s_instance; -} - -bool StatsPlugin::acceptedEvent(const Event &event) -{ - using std::bind; - using std::any_of; - using namespace std::placeholders; - - return !( - // If the URI is empty, we do not want to process it - event.uri.isEmpty() || - - // Skip if the current activity is OTR - m_otrActivities.contains(currentActivity()) || - - // Exclude URIs that match the ignored patterns - any_of(m_urlFilters.cbegin(), m_urlFilters.cend(), - bind(&QRegExp::exactMatch, _1, event.uri)) || - - // if blocked by default, the list contains allowed applications - // ignore event if the list doesn't contain the application - // if not blocked by default, the list contains blocked applications - // ignore event if the list contains the application - (m_whatToRemember == SpecificApplications - && m_blockedByDefault - != boost::binary_search(m_apps, event.application)) - ); -} - -Event StatsPlugin::validateEvent(Event event) -{ - if (event.uri.startsWith(QStringLiteral("file://"))) { - event.uri = QUrl(event.uri).toLocalFile(); - } - - if (event.uri.startsWith(QStringLiteral("/"))) { - QFileInfo file(event.uri); - - event.uri = file.exists() ? file.canonicalFilePath() : QString(); - } - - return event; -} - -QStringList StatsPlugin::listActivities() const -{ - return Plugin::retrieve( - m_activities, "ListActivities", "QStringList"); -} - -QString StatsPlugin::currentActivity() const -{ - return Plugin::retrieve( - m_activities, "CurrentActivity", "QString"); -} - - - -void StatsPlugin::addEvents(const EventList &events) -{ - using namespace kamd::utils; - - if (m_blockAll || m_whatToRemember == NoApplications) { - return; - } - - const auto &eventsToProcess = - events | transformed(&StatsPlugin::validateEvent, this) - | filtered(&StatsPlugin::acceptedEvent, this); - - if (eventsToProcess.begin() == eventsToProcess.end()) return; - - DATABASE_TRANSACTION(resourcesDatabase()); - - for (auto event : eventsToProcess) { - - switch (event.type) { - case Event::Accessed: - openResourceEvent( - currentActivity(), event.application, event.uri, - event.timestamp, event.timestamp); - ResourceScoreMaintainer::self()->processResource( - event.uri, event.application); - - break; - - case Event::Opened: - openResourceEvent( - currentActivity(), event.application, event.uri, - event.timestamp); - - break; - - case Event::Closed: - closeResourceEvent( - currentActivity(), event.application, event.uri, - event.timestamp); - ResourceScoreMaintainer::self()->processResource( - event.uri, event.application); - - break; - - case Event::UserEventType: - ResourceScoreMaintainer::self()->processResource( - event.uri, event.application); - break; - - default: - // Nothing yet - // TODO: Add focus and modification - break; - } - } -} - -void StatsPlugin::DeleteRecentStats(const QString &activity, int count, - const QString &what) -{ - const auto usedActivity = activity.isEmpty() ? QVariant() - : QVariant(activity); - - // If we need to delete everything, - // no need to bother with the count and the date - - DATABASE_TRANSACTION(resourcesDatabase()); - - if (what == QStringLiteral("everything")) { - // Instantiating these every time is not a big overhead - // since this method is rarely executed. - - auto removeEventsQuery = resourcesDatabase().createQuery(); - removeEventsQuery.prepare( - "DELETE FROM ResourceEvent " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity)" - ); - - auto removeScoreCachesQuery = resourcesDatabase().createQuery(); - removeScoreCachesQuery.prepare( - "DELETE FROM ResourceScoreCache " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity)"); - - Utils::exec(Utils::FailOnError, removeEventsQuery, ":usedActivity", usedActivity); - Utils::exec(Utils::FailOnError, removeScoreCachesQuery, ":usedActivity", usedActivity); - - } else { - - // Deleting a specified length of time - - auto since = QDateTime::currentDateTime(); - - since = (what[0] == QLatin1Char('h')) ? since.addSecs(-count * 60 * 60) - : (what[0] == QLatin1Char('d')) ? since.addDays(-count) - : (what[0] == QLatin1Char('m')) ? since.addMonths(-count) - : since; - - // Maybe we should decrease the scores for the previously - // cached items. Thinking it is not that important - - // if something was accessed before, and the user did not - // remove the history, it is not really a secret. - - auto removeEventsQuery = resourcesDatabase().createQuery(); - removeEventsQuery.prepare( - "DELETE FROM ResourceEvent " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " - "AND end > :since" - ); - - auto removeScoreCachesQuery = resourcesDatabase().createQuery(); - removeScoreCachesQuery.prepare( - "DELETE FROM ResourceScoreCache " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " - "AND firstUpdate > :since"); - - Utils::exec(Utils::FailOnError, removeEventsQuery, - ":usedActivity", usedActivity, - ":since", since.toTime_t() - ); - - Utils::exec(Utils::FailOnError, removeScoreCachesQuery, - ":usedActivity", usedActivity, - ":since", since.toTime_t() - ); - } - - emit RecentStatsDeleted(activity, count, what); -} - -void StatsPlugin::DeleteEarlierStats(const QString &activity, int months) -{ - if (months == 0) { - return; - } - - // Deleting a specified length of time - - DATABASE_TRANSACTION(resourcesDatabase()); - - const auto time = QDateTime::currentDateTime().addMonths(-months); - const auto usedActivity = activity.isEmpty() ? QVariant() - : QVariant(activity); - - auto removeEventsQuery = resourcesDatabase().createQuery(); - removeEventsQuery.prepare( - "DELETE FROM ResourceEvent " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " - "AND start < :time" - ); - - auto removeScoreCachesQuery = resourcesDatabase().createQuery(); - removeScoreCachesQuery.prepare( - "DELETE FROM ResourceScoreCache " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " - "AND lastUpdate < :time"); - - Utils::exec(Utils::FailOnError, removeEventsQuery, - ":usedActivity", usedActivity, - ":time", time.toTime_t() - ); - - Utils::exec(Utils::FailOnError, removeScoreCachesQuery, - ":usedActivity", usedActivity, - ":time", time.toTime_t() - ); - - emit EarlierStatsDeleted(activity, months); -} - -void StatsPlugin::DeleteStatsForResource(const QString &activity, - const QString &client, - const QString &resource) -{ - Q_ASSERT_X(!client.isEmpty(), - "StatsPlugin::DeleteStatsForResource", - "Agent shoud not be empty"); - Q_ASSERT_X(!activity.isEmpty(), - "StatsPlugin::DeleteStatsForResource", - "Activity shoud not be empty"); - Q_ASSERT_X(!resource.isEmpty(), - "StatsPlugin::DeleteStatsForResource", - "Resource shoud not be empty"); - Q_ASSERT_X(client != CURRENT_AGENT_TAG, - "StatsPlugin::DeleteStatsForResource", - "We can not handle CURRENT_AGENT_TAG here"); - - DATABASE_TRANSACTION(resourcesDatabase()); - - // Check against sql injection - if (activity.contains('\'') || client.contains('\'')) return; - - const auto activityFilter = - activity == ANY_ACTIVITY_TAG ? " 1 " : - QStringLiteral(" usedActivity = '%1' ").arg( - activity == CURRENT_ACTIVITY_TAG ? - currentActivity() : activity - ); - - const auto clientFilter = - client == ANY_AGENT_TAG ? " 1 " : - QStringLiteral(" initiatingAgent = '%1' ").arg(client); - - auto removeEventsQuery = resourcesDatabase().createQuery(); - removeEventsQuery.prepare( - "DELETE FROM ResourceEvent " - "WHERE " - + activityFilter + " AND " - + clientFilter + " AND " - + "targettedResource LIKE :targettedResource ESCAPE '\\'" - ); - - auto removeScoreCachesQuery = resourcesDatabase().createQuery(); - removeScoreCachesQuery.prepare( - "DELETE FROM ResourceScoreCache " - "WHERE " - + activityFilter + " AND " - + clientFilter + " AND " - + "targettedResource LIKE :targettedResource ESCAPE '\\'" - ); - - const auto pattern = Common::starPatternToLike(resource); - - Utils::exec(Utils::FailOnError, removeEventsQuery, - ":targettedResource", pattern); - - Utils::exec(Utils::FailOnError, removeScoreCachesQuery, - ":targettedResource", pattern); - - emit ResourceScoreDeleted(activity, client, resource); -} - -bool StatsPlugin::isFeatureOperational(const QStringList &feature) const -{ - if (feature[0] == "isOTR") { - if (feature.size() != 2) return true; - - const auto activity = feature[1]; - - return activity == "activity" - || activity == "current" - || listActivities().contains(activity); - - return true; - } - - return false; -} - -// bool StatsPlugin::isFeatureEnabled(const QStringList &feature) const -// { -// if (feature[0] == "isOTR") { -// if (feature.size() != 2) return false; -// -// auto activity = feature[1]; -// -// if (activity == "activity" || activity == "current") { -// activity = currentActivity(); -// } -// -// return m_otrActivities.contains(activity); -// } -// -// return false; -// } -// -// void StatsPlugin::setFeatureEnabled(const QStringList &feature, bool value) -// { -// if (feature[0] == "isOTR") { -// if (feature.size() != 2) return; -// -// auto activity = feature[1]; -// -// if (activity == "activity" || activity == "current") { -// activity = currentActivity(); -// } -// -// if (!m_otrActivities.contains(activity)) { -// m_otrActivities << activity; -// config().writeEntry("off-the-record-activities", m_otrActivities); -// config().sync(); -// } -// } -// } - -QDBusVariant StatsPlugin::featureValue(const QStringList &feature) const -{ - if (feature[0] == "isOTR") { - if (feature.size() != 2) return QDBusVariant(false); - - auto activity = feature[1]; - - if (activity == "activity" || activity == "current") { - activity = currentActivity(); - } - - return QDBusVariant(m_otrActivities.contains(activity)); - } - - return QDBusVariant(false); - -} - -void StatsPlugin::setFeatureValue(const QStringList &feature, const QDBusVariant &value) -{ - if (feature[0] == "isOTR") { - if (feature.size() != 2) return; - - auto activity = feature[1]; - - if (activity == "activity" || activity == "current") { - activity = currentActivity(); - } - - bool isOTR = value.variant().toBool(); - - if (isOTR && !m_otrActivities.contains(activity)) { - m_otrActivities << activity; - - } else if (!isOTR && m_otrActivities.contains(activity)) { - m_otrActivities.removeAll(activity); - - } - - config().writeEntry("off-the-record-activities", m_otrActivities); - config().sync(); - } -} - - -QStringList StatsPlugin::listFeatures(const QStringList &feature) const -{ - if (feature.isEmpty() || feature[0].isEmpty()) { - return { "isOTR/" }; - - } else if (feature[0] == "isOTR") { - return listActivities(); - } - - return QStringList(); -} - -#include "StatsPlugin.moc" - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/StatsPlugin.h kactivities-kf5-5.44.0/src/service/plugins/sqlite/StatsPlugin.h --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/StatsPlugin.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/StatsPlugin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,159 +0,0 @@ -/* - * Copyright (C) 2011, 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef PLUGINS_SQLITE_STATS_PLUGIN_H -#define PLUGINS_SQLITE_STATS_PLUGIN_H - -// Qt -#include -#include - -// Boost and STL -#include -#include - -// Local -#include - -class QSqlQuery; -class QFileSystemWatcher; -class ResourceLinking; - -/** - * Communication with the outer world. - * - * - Handles configuration - * - Filters the events based on the user's configuration. - */ -class StatsPlugin : public Plugin { - Q_OBJECT - // Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Resources.Scoring") - // Q_PLUGIN_METADATA(IID "org.kde.ActivityManager.plugins.sqlite") - -public: - explicit StatsPlugin(QObject *parent = Q_NULLPTR, - const QVariantList &args = QVariantList()); - - static StatsPlugin *self(); - - bool init(QHash &modules) Q_DECL_OVERRIDE; - - QString currentActivity() const; - QStringList listActivities() const; - - inline - QObject *activitiesInterface() const { return m_activities; } - - bool isFeatureOperational(const QStringList &feature) const Q_DECL_OVERRIDE; - QStringList listFeatures(const QStringList &feature) const Q_DECL_OVERRIDE; - - QDBusVariant featureValue(const QStringList &property) const Q_DECL_OVERRIDE; - void setFeatureValue(const QStringList &property, const QDBusVariant &value) Q_DECL_OVERRIDE; - -// -// D-BUS Interface methods -// - -public Q_SLOTS: - void DeleteRecentStats(const QString &activity, int count, - const QString &what); - - void DeleteEarlierStats(const QString &activity, int months); - - void DeleteStatsForResource(const QString &activity, - const QString &client, - const QString &resource); - -Q_SIGNALS: - void ResourceScoreUpdated(const QString &activity, const QString &client, - const QString &resource, double score, - uint lastUpdate, uint firstUpdate); - void ResourceScoreDeleted(const QString &activity, const QString &client, - const QString &resource); - - void RecentStatsDeleted(const QString &activity, int count, - const QString &what); - - void EarlierStatsDeleted(const QString &activity, int months); - -// -// End D-BUS Interface methods -// - - -private Q_SLOTS: - void addEvents(const EventList &events); - void loadConfiguration(); - - void openResourceEvent(const QString &usedActivity, - const QString &initiatingAgent, - const QString &targettedResource, - const QDateTime &start, - const QDateTime &end = QDateTime()); - - void closeResourceEvent(const QString &usedActivity, - const QString &initiatingAgent, - const QString &targettedResource, - const QDateTime &end); - - void saveResourceTitle(const QString &uri, const QString &title, - bool autoTitle = false); - void saveResourceMimetype(const QString &uri, const QString &mimetype, - bool autoMimetype = false); - bool insertResourceInfo(const QString &uri); - void detectResourceInfo(const QString &uri); - - void deleteOldEvents(); - -private: - inline bool acceptedEvent(const Event &event); - inline Event validateEvent(Event event); - - - enum WhatToRemember { - AllApplications = 0, - SpecificApplications = 1, - NoApplications = 2 - }; - - QObject *m_activities; - QObject *m_resources; - - boost::container::flat_set m_apps; - QList m_urlFilters; - QStringList m_otrActivities; - - std::unique_ptr openResourceEventQuery; - std::unique_ptr closeResourceEventQuery; - - std::unique_ptr insertResourceInfoQuery; - std::unique_ptr getResourceInfoQuery; - std::unique_ptr saveResourceTitleQuery; - std::unique_ptr saveResourceMimetypeQuery; - - QTimer m_deleteOldEventsTimer; - - bool m_blockedByDefault : 1; - bool m_blockAll : 1; - WhatToRemember m_whatToRemember : 2; - - ResourceLinking *m_resourceLinking; - - static StatsPlugin *s_instance; -}; - -#endif // PLUGINS_SQLITE_STATS_PLUGIN_H diff -Nru kactivities-kf5-5.18.0/src/service/plugins/sqlite/Utils.h kactivities-kf5-5.44.0/src/service/plugins/sqlite/Utils.h --- kactivities-kf5-5.18.0/src/service/plugins/sqlite/Utils.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/sqlite/Utils.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef PLUGINS_SQLITE_DATABASE_UTILS_H -#define PLUGINS_SQLITE_DATABASE_UTILS_H - -#include -#include -#include - -namespace Utils { - - inline bool prepare(Common::Database &database, - QSqlQuery &query, - const QString &queryString) - { - Q_UNUSED(database); - - return query.prepare(queryString); - } - - inline bool prepare(Common::Database &database, - std::unique_ptr &query, - const QString &queryString) - { - if (query) { - return true; - } - - query.reset(new QSqlQuery(database.createQuery())); - - return prepare(database, *query, queryString); - } - - enum ErrorHandling { - IgnoreError, - FailOnError - }; - - inline bool exec(ErrorHandling eh, QSqlQuery &query) - { - bool success = query.exec(); - - if (eh == FailOnError) { - if (!success) { - qDebug() << query.lastQuery(); - qDebug() << query.lastError(); - } - Q_ASSERT_X(success, "Uils::exec", "Query failed"); - } - - return success; - } - - template - inline bool exec(ErrorHandling eh, QSqlQuery &query, - const T1 &variable, const T2 &value, Ts... ts) - { - query.bindValue(variable, value); - - return exec(eh, query, ts...); - } - -} // namespace Utils - - -#endif /* !PLUGINS_SQLITE_DATABASE_UTILS_H */ diff -Nru kactivities-kf5-5.18.0/src/service/plugins/virtualdesktopswitch/CMakeLists.txt kactivities-kf5-5.44.0/src/service/plugins/virtualdesktopswitch/CMakeLists.txt --- kactivities-kf5-5.18.0/src/service/plugins/virtualdesktopswitch/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/virtualdesktopswitch/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (kactivitymanagerd-virtualdesktopswitch) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${CMAKE_BINARY_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/../.. - ${CMAKE_CURRENT_BINARY_DIR} - ${KConfig_INCLUDE_DIR} - ) - -set ( - virtualdesktopswitch_SRCS - VirtualDesktopSwitchPlugin.cpp - ${plugin_implementation_SRCS} - ) - -kcoreaddons_add_plugin( - kactivitymanagerd_plugin_virtualdesktopswitch - JSON kactivitymanagerd-plugin-virtualdesktopswitch.json - SOURCES ${virtualdesktopswitch_SRCS} - INSTALL_NAMESPACE ${KAMD_PLUGIN_DIR} - ) - -target_link_libraries ( - kactivitymanagerd_plugin_virtualdesktopswitch - Qt5::Core - Qt5::DBus - KF5::ConfigCore - KF5::WindowSystem - KF5::CoreAddons - kactivitymanagerd_plugin - ) - -set_target_properties ( - kactivitymanagerd_plugin_virtualdesktopswitch - PROPERTIES PREFIX "" - ) diff -Nru kactivities-kf5-5.18.0/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json kactivities-kf5-5.44.0/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json --- kactivities-kf5-5.18.0/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "ivan.cukic@kde.org", - "Name": "Ivan Cukic", - "Name[sr@ijekavian]": "Иван Чукић", - "Name[sr@ijekavianlatin]": "Ivan Čukić", - "Name[sr@latin]": "Ivan Čukić", - "Name[sr]": "Иван Чукић", - "Name[x-test]": "xxIvan Cukicxx" - } - ], - "Category": "", - "Dependencies": [], - "Description": "When switching to an activity, opens the virtual desktop last used with that activity", - "Description[ca@valencia]": "En canviar a una activitat, obri el darrer escriptori virtual utilitzat amb esta activitat", - "Description[ca]": "En canviar a una activitat, obre el darrer escriptori virtual utilitzat amb aquesta activitat", - "Description[de]": "Beim Wechseln zu einer Aktivität wird die virtuelle Arbeitsfläche geöffnet, auf der zuletzt diese Aktivität benutzt wurde", - "Description[es]": "Al cambiar a una actividad, abre el escritorio virtual que se usó por última vez en ella", - "Description[fi]": "Aktiviteettia vaihdettaessa avaa sen virtuaalityöpöydän, jota kyseisellä aktiviteetilla viimeksi käytettiin", - "Description[gl]": "Cando se muda de actividade abre o último escritorio virtual usado con esa actividade.", - "Description[nl]": "Bij het omschakelen naar een activiteit, opent het virtuele bureaublad dat het laatst werd gebruikt met die activiteit", - "Description[pl]": "Przy przełączaniu do działania, otwiera ostatnio używany, przy tym działaniu, wirtualny pulpit", - "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[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", - "Description[sr@ijekavian]": "При пребацивању на активност, отвара виртуелну површ која је последња коришћена у тој активности", - "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[uk]": "Під час перемикання на простір дій відкриває віртуальну стільницю, яку було використано у цьому просторі останньою", - "Description[x-test]": "xxWhen switching to an activity, opens the virtual desktop last used with that activityxx", - "Description[zh_CN]": "切换活动时打开上次一同使用的虚拟桌面", - "EnabledByDefault": false, - "Icon": "preferences-system-windows", - "Id": "org.kde.ActivityManager.VirtualDesktopSwitch", - "License": "GPL", - "Name": "Virtual desktop switcher", - "Name[ca@valencia]": "Commutador pels escriptoris virtuals", - "Name[ca]": "Commutador pels escriptoris virtuals", - "Name[de]": "Virtueller Arbeitsflächenumschalter", - "Name[es]": "Cambio de escritorio virtual", - "Name[fi]": "Virtuaalityöpöydän valitsin", - "Name[gl]": "Selector de escritorio virtual", - "Name[nl]": "Virtueel bureaublad omschakelaar", - "Name[pl]": "Przełącznik wirtualnych pulpitów", - "Name[pt]": "Mudança de ecrã virtual", - "Name[pt_BR]": "Alternador de áreas de trabalho virtuais", - "Name[sk]": "Prepínač virtuálnych plôch", - "Name[sl]": "Preklapljanje navideznih namizij", - "Name[sr@ijekavian]": "Мењач виртуелних површи", - "Name[sr@ijekavianlatin]": "Menjač virtuelnih površi", - "Name[sr@latin]": "Menjač virtuelnih površi", - "Name[sr]": "Мењач виртуелних површи", - "Name[sv]": "Byte av virtuellt skrivbord", - "Name[uk]": "Перемикач віртуальних стільниць", - "Name[x-test]": "xxVirtual desktop switcherxx", - "Name[zh_CN]": "虚拟桌面切换器", - "ServiceTypes": [ - "ActivityManager/Plugin" - ], - "Version": "1.0", - "Website": "http://plasma.kde.org/" - } -} \ No newline at end of file diff -Nru kactivities-kf5-5.18.0/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.cpp kactivities-kf5-5.44.0/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.cpp --- kactivities-kf5-5.18.0/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "VirtualDesktopSwitchPlugin.h" - -#include -#include - -#include - -KAMD_EXPORT_PLUGIN(virtualdesktopswitchplugin, VirtualDesktopSwitchPlugin, "kactivitymanagerd-plugin-virtualdesktopswitch.json") - -const auto configPattern = QStringLiteral("desktop-for-%1"); - -VirtualDesktopSwitchPlugin::VirtualDesktopSwitchPlugin(QObject *parent, const QVariantList &args) - : Plugin(parent) - , m_activitiesService(Q_NULLPTR) -{ - Q_UNUSED(args); - - setName("org.kde.ActivityManager.VirtualDesktopSwitch"); -} - -VirtualDesktopSwitchPlugin::~VirtualDesktopSwitchPlugin() -{ -} - -bool VirtualDesktopSwitchPlugin::init(QHash &modules) -{ - Plugin::init(modules); - - m_activitiesService = modules["activities"]; - - m_currentActivity = Plugin::retrieve( - m_activitiesService, "CurrentActivity", "QString"); - - connect(m_activitiesService, SIGNAL(CurrentActivityChanged(QString)), - this, SLOT(currentActivityChanged(QString))); - connect(m_activitiesService, SIGNAL(ActivityRemoved(QString)), - this, SLOT(activityRemoved(QString))); - - return true; -} - -void VirtualDesktopSwitchPlugin::currentActivityChanged(const QString &activity) -{ - if (m_currentActivity == activity) { - return; - } - - config().writeEntry( - configPattern.arg(m_currentActivity), - QString::number(KWindowSystem::currentDesktop())); - - m_currentActivity = activity; - - const auto desktopId = config().readEntry(configPattern.arg(m_currentActivity), -1); - - if (desktopId <= KWindowSystem::numberOfDesktops() && desktopId >= 0) { - KWindowSystem::setCurrentDesktop(desktopId); - } -} - -void VirtualDesktopSwitchPlugin::activityRemoved(const QString &activity) -{ - config().deleteEntry(configPattern.arg(activity)); - config().sync(); -} - -#include "VirtualDesktopSwitchPlugin.moc" - diff -Nru kactivities-kf5-5.18.0/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.h kactivities-kf5-5.44.0/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.h --- kactivities-kf5-5.18.0/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef PLUGINS_VIRTUAL_DESKTOP_SWITCH_PLUGIN_H -#define PLUGINS_VIRTUAL_DESKTOP_SWITCH_PLUGIN_H - -#include - -class VirtualDesktopSwitchPlugin : public Plugin { - Q_OBJECT - // Q_PLUGIN_METADATA(IID "org.kde.ActivityManager.plugins.virtualdesktopswitch") - -public: - VirtualDesktopSwitchPlugin(QObject *parent = Q_NULLPTR, const QVariantList &args = QVariantList()); - virtual ~VirtualDesktopSwitchPlugin(); - - bool init(QHash &modules) Q_DECL_OVERRIDE; - -private Q_SLOTS: - void currentActivityChanged(const QString &activity); - void activityRemoved(const QString &activity); - -private: - QString m_currentActivity; - QObject *m_activitiesService; -}; - -#endif // PLUGINS_VIRTUAL_DESKTOP_SWITCH_PLUGIN_H diff -Nru kactivities-kf5-5.18.0/src/service/Resources.cpp kactivities-kf5-5.44.0/src/service/Resources.cpp --- kactivities-kf5-5.18.0/src/service/Resources.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Resources.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,313 +0,0 @@ -/* - * Copyright (C) 2010, 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -// Self -#include "Resources.h" -#include "Resources_p.h" - -// Qt -#include -#include -#include -#include - -// KDE -#include -#include - -// Utils -#include -#include - -// System -#include - -// Local -#include "Debug.h" -#include "Application.h" -#include "Activities.h" -#include "resourcesadaptor.h" -#include "common/dbus/common.h" - - -Resources::Private::Private(Resources *parent) - : QThread(parent) - , focussedWindow(0) - , q(parent) -{ -} - -namespace { -EventList events; -QMutex events_mutex; -} - -void Resources::Private::run() -{ - forever { - // initial delay before processing the events - sleep(1); - - EventList currentEvents; - - { - QMutexLocker locker(&events_mutex); - - if (events.count() == 0) { - return; - } - - std::swap(currentEvents, events); - } - - emit q->ProcessedResourceEvents(currentEvents); - } -} - -void Resources::Private::insertEvent(const Event &newEvent) -{ - if (lastEvent == newEvent) { - return; - } - - lastEvent = newEvent; - - { - QMutexLocker locker(&events_mutex); - events << newEvent; - } - - emit q->RegisteredResourceEvent(newEvent); -} - -void Resources::Private::addEvent(const QString &application, WId wid, - const QString &uri, int type) -{ - Event newEvent(application, wid, uri, type); - addEvent(newEvent); -} - -void Resources::Private::addEvent(const Event &newEvent) -{ - // And now, for something completely delayed - { - QMutexLocker locker(&events_mutex); - - // Deleting previously registered Accessed events if - // the current one has the same application and uri - if (newEvent.type != Event::Accessed) { - kamd::utils::remove_if(events, [&newEvent](const Event &event)->bool { - return - event.application == newEvent.application && - event.uri == newEvent.uri - ; - }); - } - } - - // Process the windowing - // Essentially, this is the brain of SLC. We need to track the - // window focus changes to be able to generate the potential - // missing events like FocussedOut before Closed and similar. - // So, there is no point in having the same logic in SLC plugin - // as well. - - if (newEvent.wid != 0) { - WindowData &window = windows[newEvent.wid]; - const QString &uri = newEvent.uri; - - window.application = newEvent.application; - - switch (newEvent.type) { - case Event::Opened: - insertEvent(newEvent); - - if (window.focussedResource.isEmpty()) { - // This window haven't had anything focused, - // assuming the new document is focused - - window.focussedResource = newEvent.uri; - insertEvent(newEvent.deriveWithType(Event::FocussedIn)); - } - - break; - - case Event::FocussedIn: - - if (!window.resources.contains(uri)) { - // This window did not contain this resource before, - // sending Opened event - - insertEvent(newEvent.deriveWithType(Event::Opened)); - } - - window.focussedResource = newEvent.uri; - insertEvent(newEvent); - - break; - - case Event::Closed: - - if (window.focussedResource == uri) { - // If we are closing a document that is in focus, - // release focus first - - insertEvent(newEvent.deriveWithType(Event::FocussedOut)); - window.focussedResource.clear(); - } - - insertEvent(newEvent); - - break; - - case Event::FocussedOut: - - if (window.focussedResource == uri) { - window.focussedResource.clear(); - } - - insertEvent(newEvent); - - break; - - default: - insertEvent(newEvent); - break; - } - - } else { - // If we haven't got a window, just pass the event on, - // but only if it is not a focus event - if (newEvent.type != Event::FocussedIn - && newEvent.type != Event::FocussedOut) { - insertEvent(newEvent); - } - } - - start(); -} - -void Resources::Private::windowClosed(WId windowId) -{ - // Testing whether the window is a registered one - - if (!windows.contains(windowId)) { - return; - } - - if (focussedWindow == windowId) { - focussedWindow = 0; - } - - // Closing all the resources that the window registered - - for (const QString &uri: windows[windowId].resources) { - q->RegisterResourceEvent(windows[windowId].application, - windowId, uri, Event::Closed); - } - - windows.remove(windowId); -} - -void Resources::Private::activeWindowChanged(WId windowId) -{ - // If the focused window has changed, we need to create a - // FocussedOut event for the resource it contains, - // and FocussedIn for the resource of the new active window. - // The windows can do this manually, but if they are - // SDI, we can do it on our own. - - if (windowId == focussedWindow) { - return; - } - - if (windows.contains(focussedWindow)) { - const WindowData &data = windows[focussedWindow]; - - if (!data.focussedResource.isEmpty()) { - insertEvent(Event(data.application, focussedWindow, data.focussedResource, Event::FocussedOut)); - } - } - - focussedWindow = windowId; - - if (windows.contains(focussedWindow)) { - const WindowData &data = windows[focussedWindow]; - - if (!data.focussedResource.isEmpty()) { - insertEvent(Event(data.application, windowId, data.focussedResource, Event::FocussedIn)); - } - } -} - -Resources::Resources(QObject *parent) - : Module(QStringLiteral("resources"), parent) - , d(this) -{ - qRegisterMetaType("Event"); - qRegisterMetaType("EventList"); - qRegisterMetaType("WId"); - - new ResourcesAdaptor(this); - KDBusConnectionPool::threadConnection().registerObject( - KAMD_DBUS_OBJECT_PATH(Resources), this); - - connect(KWindowSystem::self(), &KWindowSystem::windowRemoved, - d.operator->(), &Resources::Private::windowClosed); - connect(KWindowSystem::self(), &KWindowSystem::activeWindowChanged, - d.operator->(), &Resources::Private::activeWindowChanged); -} - -Resources::~Resources() -{ -} - -void Resources::RegisterResourceEvent(QString application, uint _windowId, - const QString &uri, uint event) -{ - if (event > Event::LastEventType - || uri.isEmpty() - || application.isEmpty()) { - return; - } - - WId windowId = (WId)_windowId; - - d->addEvent(application, windowId, uri, (Event::Type)event); -} - -void Resources::RegisterResourceMimetype(const QString &uri, const QString &mimetype) -{ - if (!mimetype.isEmpty()) { - return; - } - - emit RegisteredResourceMimetype(uri, mimetype); -} - -void Resources::RegisterResourceTitle(const QString &uri, const QString &title) -{ - // A dirty saninty check for the title - if (title.length() < 3) { - return; - } - - emit RegisteredResourceTitle(uri, title); -} - diff -Nru kactivities-kf5-5.18.0/src/service/Resources.h kactivities-kf5-5.44.0/src/service/Resources.h --- kactivities-kf5-5.18.0/src/service/Resources.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Resources.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef RESOURCES_H -#define RESOURCES_H - -// Qt -#include -#include - -// Utils -#include - -// Local -#include "Module.h" -#include "Event.h" - - -/** - * Resources - */ -class Resources : public Module { - Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Resources") - -public: - Resources(QObject *parent = Q_NULLPTR); - virtual ~Resources(); - -public Q_SLOTS: - /** - * Registers a new event - * @param application the name of application that sent the event. Ignored - * if the event is not of type Opened - * @param windowId ID of the window that displays the resource. Ignored if - * the event is of type Accessed - * @param uri URI of the resource on which the event happened - * @param event type of the event - */ - void RegisterResourceEvent(QString application, uint windowId, - const QString &uri, uint event); - - /** - * Registers resource's mimetype. - * Note that this will be forgotten when the resource in question is closed. - * @param uri URI of the resource - */ - void RegisterResourceMimetype(const QString &uri, const QString &mimetype); - - /** - * Registers resource's title. If not manually specified, it will be a - * shortened version of the uri - * - * Note that this will be forgotten when the resource in question is closed. - * @param uri URI of the resource - */ - void RegisterResourceTitle(const QString &uri, const QString &title); - -Q_SIGNALS: - void RegisteredResourceEvent(const Event &event); - void ProcessedResourceEvents(const EventList &events); - void RegisteredResourceMimetype(const QString &uri, const QString &mimetype); - void RegisteredResourceTitle(const QString &uri, const QString &title); - -private: - D_PTR; -}; - -#endif // RESOURCES_H diff -Nru kactivities-kf5-5.18.0/src/service/Resources_p.h kactivities-kf5-5.44.0/src/service/Resources_p.h --- kactivities-kf5-5.18.0/src/service/Resources_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/service/Resources_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2010, 2011, 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef RESOURCES_P_H -#define RESOURCES_P_H - -// Self -#include "Resources.h" - -// Qt -#include -#include -#include // for WId - -// Local -#include "resourcesadaptor.h" - - -class Resources::Private : public QThread { - Q_OBJECT - -public: - Private(Resources *parent); - - void run() Q_DECL_OVERRIDE; - - // Inserts the event directly into the queue - void insertEvent(const Event &newEvent); - - // Processes the event and inserts it into the queue - void addEvent(const QString &application, WId wid, const QString &uri, - int type); - - // Processes the event and inserts it into the queue - void addEvent(const Event &newEvent); - - QStringList resourcesLinkedToActivity(const QString &activity) const; - -public Q_SLOTS: - // Reacting to window manager signals - void windowClosed(WId windowId); - - void activeWindowChanged(WId windowId); - -private: - struct WindowData { - QSet resources; - QString focussedResource; - QString application; - }; - - Event lastEvent; - - QHash windows; - WId focussedWindow; - - Resources *const q; -}; - -#endif // RESOURCES_P_H diff -Nru kactivities-kf5-5.18.0/src/utils/continue_with.h kactivities-kf5-5.44.0/src/utils/continue_with.h --- kactivities-kf5-5.18.0/src/utils/continue_with.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/continue_with.h 2018-03-03 09:51:42.000000000 +0000 @@ -1,8 +1,22 @@ /* - * continue_with.h - * Copyright (C) 2014 Ivan Čukić + * Copyright (C) 2014 - 2016 by Ivan Cukic * - * Distributed under terms of the MIT license. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . */ #ifndef UTILS_CONTINUE_WITH_H diff -Nru kactivities-kf5-5.18.0/src/utils/dbusfuture_p.cpp kactivities-kf5-5.44.0/src/utils/dbusfuture_p.cpp --- kactivities-kf5-5.18.0/src/utils/dbusfuture_p.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/dbusfuture_p.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -1,19 +1,22 @@ /* - * Copyright (c) 2013 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License version 2 as published by the Free Software Foundation. + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . */ #include "dbusfuture_p.h" diff -Nru kactivities-kf5-5.18.0/src/utils/dbusfuture_p.h kactivities-kf5-5.44.0/src/utils/dbusfuture_p.h --- kactivities-kf5-5.18.0/src/utils/dbusfuture_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/dbusfuture_p.h 2018-03-03 09:51:42.000000000 +0000 @@ -1,20 +1,22 @@ /* - * Copyright (C) 2013 Ivan Cukic + * Copyright (C) 2013 - 2016 by Ivan Cukic * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . */ #ifndef ACTIVITIES_DBUSFUTURE_P_H @@ -40,7 +42,7 @@ public: DBusCallFutureInterface(QDBusPendingReply<_Result> reply) : reply(reply), - replyWatcher(Q_NULLPTR) + replyWatcher(nullptr) { } diff -Nru kactivities-kf5-5.18.0/src/utils/debug_and_return.h kactivities-kf5-5.44.0/src/utils/debug_and_return.h --- kactivities-kf5-5.18.0/src/utils/debug_and_return.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/debug_and_return.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef DEBUG_AND_RETURN_H -#define DEBUG_AND_RETURN_H - -#ifdef QT_DEBUG -#include -#endif - -namespace kamd { -namespace utils { - -template -T debug_and_return(const char * message, T && value) { - #ifdef QT_DEBUG - qDebug() << message << " " << value; - #endif - - return std::forward(value); -} - -template -T debug_and_return(bool debug, const char * message, T && value) { - #ifdef QT_DEBUG - if (debug) { - qDebug() << message << " " << value; - } - #endif - - return std::forward(value); -} - -} // namespace utils -} // namespace kamd - -#endif // DEBUG_AND_RETURN_H - diff -Nru kactivities-kf5-5.18.0/src/utils/d_ptr.h kactivities-kf5-5.44.0/src/utils/d_ptr.h --- kactivities-kf5-5.18.0/src/utils/d_ptr.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/d_ptr.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef D_PTR_H -#define D_PTR_H - -#include - -namespace kamd { -namespace utils { - -template -class d_ptr { -private: - std::unique_ptr d; - -public: - d_ptr(); - - template - d_ptr(Args &&...); - - ~d_ptr(); - - T *operator->() const; -}; - -#define D_PTR \ - class Private; \ - friend class Private; \ - const ::kamd::utils::d_ptr d - -} // namespace utils -} // namespace kamd - -#endif diff -Nru kactivities-kf5-5.18.0/src/utils/d_ptr_implementation.h kactivities-kf5-5.44.0/src/utils/d_ptr_implementation.h --- kactivities-kf5-5.18.0/src/utils/d_ptr_implementation.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/d_ptr_implementation.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef D_PTR_IMPLEMENTATION_H -#define D_PTR_IMPLEMENTATION_H - -#include - -namespace kamd { -namespace utils { - -template -d_ptr::d_ptr() - : d(new T()) -{ -} - -template -template -d_ptr::d_ptr(Args &&... args) - : d(new T(std::forward(args)...)) -{ -} - -template -d_ptr::~d_ptr() -{ -} - -template -T *d_ptr::operator->() const -{ - return d.get(); -} - -} // namespace utils -} // namespace kamd - -#endif diff -Nru kactivities-kf5-5.18.0/src/utils/for_each_assoc.h kactivities-kf5-5.44.0/src/utils/for_each_assoc.h --- kactivities-kf5-5.18.0/src/utils/for_each_assoc.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/for_each_assoc.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation,3 Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef UTILS_FOR_EACH_ASSOC_H -#define UTILS_FOR_EACH_ASSOC_H - -#include - -/******************************************************************** - * Associative container's for_each (for hash, map, and similar ) * - ********************************************************************/ - -namespace kamd { -namespace utils { - -namespace details { //_ - -// Iterator Functions - -template -Function qt_for_each_assoc(Iterator start, Iterator end, Function f) -{ - for (; start != end; ++start) - f(start.key(), start.value()); - - return f; -} - -template -Function stl_for_each_assoc(Iterator start, Iterator end, Function f) -{ - for (; start != end; ++start) - f(start->first, start->second); - - return f; -} - -// Container functions - -template -Function _for_each_assoc_helper_container(const Container &c, Function f, - decltype(&Container::constBegin) *) -{ - // STL will never have methods with camelCase :) - return qt_for_each_assoc(c.constBegin(), c.constEnd(), f); -} - -template -Function _for_each_assoc_helper_container(const Container &c, Function f, - Default *) -{ - return stl_for_each_assoc(c.cbegin(), c.cend(), f); -} - -} //^ namespace details - -template -Function for_each_assoc(const Container &c, Function f) -{ - return details::_for_each_assoc_helper_container - (c, f, Q_NULLPTR); -} - -} // namespace utils -} // namespace kamd - -#endif // UTILS_FOR_EACH_ASSOC_H diff -Nru kactivities-kf5-5.18.0/src/utils/lazy_val.h kactivities-kf5-5.44.0/src/utils/lazy_val.h --- kactivities-kf5-5.18.0/src/utils/lazy_val.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/lazy_val.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef UTILS_LAZY_VAL_H -#define UTILS_LAZY_VAL_H - -namespace kamd { -namespace utils { - -template -class lazy_val { -public: - lazy_val(F f) - : _f(std::forward(f)) - , valueRetrieved(false) - { - } - -private: - F _f; - mutable decltype(_f()) value; - mutable bool valueRetrieved; - -public: - operator decltype(_f()) () const - { - if (!valueRetrieved) { - valueRetrieved = true; - value = _f(); - } - - return value; - } -}; - -template -inline lazy_val make_lazy_val(F && f) -{ - return lazy_val(std::forward(f)); -} - -} // namespace utils -} // namespace kamd - -#endif // UTILS_LAZY_VAL_H - diff -Nru kactivities-kf5-5.18.0/src/utils/member_matcher.h kactivities-kf5-5.44.0/src/utils/member_matcher.h --- kactivities-kf5-5.18.0/src/utils/member_matcher.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/member_matcher.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,186 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef UTILS_MEMBER_MATCHER_H -#define UTILS_MEMBER_MATCHER_H - -namespace kamd { -namespace utils { - -namespace member_matcher { - struct placeholder {} _; - - namespace detail { //_ - enum ComparisonOperation { - Less, - LessOrEqual, - Equal, - GreaterOrEqual, - Greater - }; - - // Member comparison object - // Call operator returns true if: - // collection item specified item - // where can be <, >, ==, >=, <= - template - struct member_comparator { //_ - - member_comparator(ComparisonOperation comparison, Member member, Value value) - : m_comparator(comparison) - , m_member(member) - , m_value(value) - { - } - - const ComparisonOperation m_comparator; - const Member m_member; - const Value m_value; - - // When passing only a item to compare with, - // it means that we already have the value for comparison. - // For example (member(M) > 5)(2) - template - inline bool operator()(const T &collItem) const - { - return operator()(collItem, m_value); - } - - // When passing the placeholder aka 'ignore' as a value, - // it means that we already have the value for comparison. - // For example (member(M) > 5)(collItem, _) - template - inline bool operator()(const T &collItem, - const placeholder &) const - { - return operator()(collItem, m_value); - } - - // Like the previous one, but with reversed argument order - template - inline bool operator()(const placeholder &, - const T &collItem) const - { - return compare(m_value, (collItem.*m_member)()); - } - - // Comparing two values - // For example (member(M) > _)(item, 5) - template - inline bool operator()(const T &collItem, const V &value) const - { - // TODO: Make this work if the arguments are reversed, - // or even if both arhuments need to be checked - // for the specified member - return compare((collItem.*m_member)(), value); - } - - - private: - template - inline bool compare(const Left &left, const Right &right) const - { - return - m_comparator == Less ? left < right : - m_comparator == LessOrEqual ? left <= right : - m_comparator == Equal ? left == right : - m_comparator == GreaterOrEqual ? left >= right : - m_comparator == Greater ? left > right : - false; - } - - }; //^ - - // Chaining multiple comparators to achieve lexicographical - // comparison of multiple members in order. - // This would me so much nicer with variadic templates... f**ing MSVC. - template - struct member_comparator_chain { - member_comparator_chain(First first, Second second) - : first(first) - , second(second) - { - } - - // Implement if needed... - // template - // inline bool operator()(const T &item) const - // { - // return first(item) || second(item); - // } - - template - inline bool operator()(const T &item, const V &value) const - { - return first(item, value) || - (!first(value, item) && second(item, value)); - } - - First first; - Second second; - }; - - template - inline member_comparator_chain operator&&(First first, - Second second) - { - return member_comparator_chain(first, second); - } - - // Provides syntax sugar for building member comparators - template - struct member_matcher { //_ - member_matcher(Member m) - : m_member(m) - { - } - - #define IMPLEMENT_COMPARISON_OPERATOR(OPERATOR, NAME) \ - template \ - inline member_comparator \ - operator OPERATOR (const Value &value) const \ - { \ - return member_comparator(NAME, m_member, value);\ - } - - IMPLEMENT_COMPARISON_OPERATOR(< , Less) - IMPLEMENT_COMPARISON_OPERATOR(<= , LessOrEqual) - IMPLEMENT_COMPARISON_OPERATOR(== , Equal) - IMPLEMENT_COMPARISON_OPERATOR(>= , GreaterOrEqual) - IMPLEMENT_COMPARISON_OPERATOR(> , Greater) - - #undef IMPLEMENT_COMPARISON_OPERATOR - - Member m_member; - }; //^ - - } //^ namespace detail - - template - detail::member_matcher member(Member m) - { - return detail::member_matcher(m); - } -} // namespace member - - -} // namespace utils -} // namespace kamd - -#endif // UTILS_MEMBER_MATCHER_H diff -Nru kactivities-kf5-5.18.0/src/utils/merge_into.h kactivities-kf5-5.44.0/src/utils/merge_into.h --- kactivities-kf5-5.18.0/src/utils/merge_into.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/merge_into.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation,3 Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef UTILS_MERGE_INTO_H -#define UTILS_MERGE_INTO_H - -namespace kamd { -namespace utils { - -template -inline void merge_into(Container &into, const Container &from) -{ - typename Container::iterator into_begin = into.begin(); - typename Container::iterator into_end = into.end(); - typename Container::const_iterator from_begin = from.begin(); - typename Container::const_iterator from_end = from.end(); - - while (from_begin != from_end) { - while (into_begin != into_end && *from_begin >= *into_begin) - into_begin++; - - into_begin = into.insert(into_begin, *from_begin); - into_begin++; - from_begin++; - } -} - -} // namespace utils -} // namespace kamd - -#endif // UTILS_MERGE_INTO_H diff -Nru kactivities-kf5-5.18.0/src/utils/model_updaters.h kactivities-kf5-5.44.0/src/utils/model_updaters.h --- kactivities-kf5-5.18.0/src/utils/model_updaters.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/model_updaters.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2012 Ivan Cukic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * or (at your option) any later version, as published by the Free + * Software Foundation + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef KACTIVITIES_IMPORTS_UTILS_P_H +#define KACTIVITIES_IMPORTS_UTILS_P_H + +// ----------------------------------------- +// RAII classes for model updates ---------- +// ----------------------------------------- + +#define DECLARE_RAII_MODEL_UPDATERS(Class) \ + template class _model_reset { \ + T *model; \ + \ + public: \ + _model_reset(T *m) : model(m) \ + { \ + model->beginResetModel(); \ + } \ + ~_model_reset() \ + { \ + model->endResetModel(); \ + } \ + }; \ + template class _model_insert { \ + T *model; \ + \ + public: \ + _model_insert(T *m, const QModelIndex &parent, int first, int last) \ + : model(m) \ + { \ + model->beginInsertRows(parent, first, last); \ + } \ + ~_model_insert() \ + { \ + model->endInsertRows(); \ + } \ + }; \ + template class _model_remove { \ + T *model; \ + \ + public: \ + _model_remove(T *m, const QModelIndex &parent, int first, int last) \ + : model(m) \ + { \ + model->beginRemoveRows(parent, first, last); \ + } \ + ~_model_remove() \ + { \ + model->endRemoveRows(); \ + } \ + }; \ + typedef _model_reset model_reset; \ + typedef _model_remove model_remove; \ + typedef _model_insert model_insert; + +// ----------------------------------------- + +#endif // KACTIVITIES_IMPORTS_UTILS_P_H + diff -Nru kactivities-kf5-5.18.0/src/utils/optional_view.h kactivities-kf5-5.44.0/src/utils/optional_view.h --- kactivities-kf5-5.18.0/src/utils/optional_view.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/optional_view.h 2018-03-03 09:51:42.000000000 +0000 @@ -1,20 +1,22 @@ /* - * Copyright (C) 2015 Ivan Cukic + * Copyright (C) 5012 - 2016 by Ivan Cukic * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . */ #ifndef UTILS_OPTIONAL_H @@ -41,13 +43,13 @@ } optional_view(const none_t &) - : m_value(Q_NULLPTR) + : m_value(nullptr) { } bool is_initialized() const { - return m_value != Q_NULLPTR; + return m_value != nullptr; } const T &get() const diff -Nru kactivities-kf5-5.18.0/src/utils/ptr_to.h kactivities-kf5-5.44.0/src/utils/ptr_to.h --- kactivities-kf5-5.18.0/src/utils/ptr_to.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/ptr_to.h 2018-03-03 09:51:42.000000000 +0000 @@ -1,20 +1,22 @@ /* - * Copyright (C) 2015 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . */ #ifndef PTR_TO_H diff -Nru kactivities-kf5-5.18.0/src/utils/qflatset.h kactivities-kf5-5.44.0/src/utils/qflatset.h --- kactivities-kf5-5.18.0/src/utils/qflatset.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/qflatset.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2016 by Ivan Čukić + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef KACTIVITIES_STATS_QFLATSET_H +#define KACTIVITIES_STATS_QFLATSET_H + +#include +#include +#include + +namespace KActivities { + +template +class QFlatSet: public QVector { +public: + QFlatSet() + { + } + + inline + // QPair::iterator, bool> insert(const T &value) + std::tuple::iterator, int, bool> insert(const T &value) + { + auto lessThan = LessThan(); + auto begin = this->begin(); + auto end = this->end(); + + if (begin == end) { + QVector::insert(0, value); + + return std::make_tuple(QVector::begin(), 0, true); + + } else { + auto iterator = std::lower_bound(begin, end, value, lessThan); + + if (iterator != end) { + if (!lessThan(value, *iterator)) { + // Already present + return std::make_tuple(iterator, iterator - begin, false); + } + } + + QVector::insert(iterator, value); + + return std::make_tuple(iterator, iterator - begin, true); + } + } + +private: + QFlatSet(const QFlatSet &original); // = delete + +}; + + +} // namespace KActivities + +#endif // KACTIVITIES_STATS_QFLATSET_H + diff -Nru kactivities-kf5-5.18.0/src/utils/qsqlquery_iterator.cpp kactivities-kf5-5.44.0/src/utils/qsqlquery_iterator.cpp --- kactivities-kf5-5.18.0/src/utils/qsqlquery_iterator.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/qsqlquery_iterator.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "qsqlquery_iterator.h" - -NextValueIterator begin(QSqlQuery &query) -{ - return NextValueIterator(query); -} - -NextValueIterator end(QSqlQuery &query) -{ - return NextValueIterator - (query, NextValueIterator::EndIterator); -} - - - diff -Nru kactivities-kf5-5.18.0/src/utils/qsqlquery_iterator.h kactivities-kf5-5.44.0/src/utils/qsqlquery_iterator.h --- kactivities-kf5-5.18.0/src/utils/qsqlquery_iterator.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/qsqlquery_iterator.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ -/* - * Copyright (C) 2013 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef UTILS_QSQLQUERYITERATOR_H -#define UTILS_QSQLQUERYITERATOR_H - -#include -#include - -template -class NextValueIterator { -public: - enum Type { - NormalIterator, - EndIterator - }; - - NextValueIterator(ResultSet &query, Type type = NormalIterator) - : m_query(query) - , m_type(type) - { - if (type != EndIterator) { - m_query.next(); - } - } - - inline bool operator!= (const NextValueIterator &other) const - { - Q_UNUSED(other); - return m_query.isValid(); - } - - inline NextValueIterator &operator*() - { - return *this; - } - - inline QVariant operator[] (int index) const - { - return m_query.value(index); - } - - inline QVariant operator[] (const QString &name) const - { - return m_query.value(name); - } - - inline NextValueIterator &operator ++() - { - m_query.next(); - return *this; - } - -private: - ResultSet &m_query; - Type m_type; - -}; - -NextValueIterator begin(QSqlQuery &query); -NextValueIterator end(QSqlQuery &query); - - -#endif /* UTILS_QSQLQUERYITERATOR_H */ - diff -Nru kactivities-kf5-5.18.0/src/utils/remove_if.h kactivities-kf5-5.44.0/src/utils/remove_if.h --- kactivities-kf5-5.18.0/src/utils/remove_if.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/remove_if.h 2018-03-03 09:51:42.000000000 +0000 @@ -20,7 +20,6 @@ #ifndef UTILS_REMOVE_IF_H #define UTILS_REMOVE_IF_H -#include #include /******************************************************************** diff -Nru kactivities-kf5-5.18.0/src/utils/slide.h kactivities-kf5-5.44.0/src/utils/slide.h --- kactivities-kf5-5.18.0/src/utils/slide.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/utils/slide.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef UTILS_SLIDE_H -#define UTILS_SLIDE_H - -#include - -// Inspired by C++ Seasoning talk by Sean Parent - -namespace kamd { -namespace utils { - -template -void slide(Iterator f, Iterator l, Iterator p) -{ - if (p < f) { - std::rotate(p, f, l); - } else if (l < p) { - std::rotate(f, l, p); - } -} - -template -void slide_one(Iterator f, Iterator p) -{ - slide(f, f + 1, p); -} - -} // namespace utils -} // namespace kamd - - -#endif // UTILS_SLIDE_H - diff -Nru kactivities-kf5-5.18.0/src/workspace/CMakeLists.txt kactivities-kf5-5.44.0/src/workspace/CMakeLists.txt --- kactivities-kf5-5.18.0/src/workspace/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -add_subdirectory (fileitemplugin) -add_subdirectory (kio) - -find_package (KF5Declarative) -add_subdirectory (settings) - diff -Nru kactivities-kf5-5.18.0/src/workspace/fileitemplugin/CMakeLists.txt kactivities-kf5-5.44.0/src/workspace/fileitemplugin/CMakeLists.txt --- kactivities-kf5-5.18.0/src/workspace/fileitemplugin/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/fileitemplugin/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -find_package (KF5 REQUIRED COMPONENTS KIO) -find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Sql) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${CMAKE_BINARY_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR} - ) - -set (kactivitymanagerd_fileitem_linking_plugin_SRCS - FileItemLinkingPlugin.cpp - FileItemLinkingPluginActionLoader.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/qsqlquery_iterator.cpp - ) - -add_library ( - kactivitymanagerd_fileitem_linking_plugin MODULE - ${kactivitymanagerd_fileitem_linking_plugin_SRCS} - ) - -kcoreaddons_desktop_to_json ( - kactivitymanagerd_fileitem_linking_plugin - kactivitymanagerd_fileitem_linking_plugin.desktop - SERVICE_TYPES kfileitemactionplugin.desktop - ) - -target_link_libraries ( - kactivitymanagerd_fileitem_linking_plugin - Qt5::Core - Qt5::Sql - KF5::KIOFileWidgets - KF5::I18n - KF5::Activities - ) - -install ( - TARGETS kactivitymanagerd_fileitem_linking_plugin - DESTINATION ${KDE_INSTALL_PLUGINDIR} - ) -install ( - FILES kactivitymanagerd_fileitem_linking_plugin.desktop - DESTINATION ${KDE_INSTALL_KSERVICES5DIR} - ) diff -Nru kactivities-kf5-5.18.0/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp kactivities-kf5-5.44.0/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp --- kactivities-kf5-5.18.0/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,193 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "FileItemLinkingPluginActionLoader.h" - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "common/dbus/common.h" - -FileItemLinkingPluginActionLoader::FileItemLinkingPluginActionLoader( - const KFileItemListProperties &items) - : items(items) -{ -} - -void FileItemLinkingPluginActionLoader::run() -{ - ActionList actions; - - const auto activitiesList = activities.activities(); - const auto itemsSize = items.urlList().size(); - - if (itemsSize >= 10) { - // we are not going to check for this large number of files - actions << createAction(QString(), true, - i18n("Link to the current activity"), - "list-add"); - actions << createAction(QString(), false, - i18n("Unlink from the current activity"), - "list-remove"); - - actions << createSeparator(i18n("Link to:")); - for (const auto& activity: activitiesList) { - actions << createAction(activity, true); - } - - actions << createSeparator(i18n("Unlink from:")); - for (const auto& activity: activitiesList) { - actions << createAction(activity, false); - } - - } else { - auto database = QSqlDatabase::addDatabase( - QStringLiteral("QSQLITE"), - QStringLiteral("kactivities_db_resources_") - + QString::number((quintptr) this)); - - database.setDatabaseName( - QStandardPaths::writableLocation( - QStandardPaths::GenericDataLocation) - + QStringLiteral("/kactivitymanagerd/resources/database")); - - if (database.open()) { - - static const auto queryString = QStringLiteral( - "SELECT usedActivity, COUNT(targettedResource) " - "FROM ResourceLink " - "WHERE targettedResource IN (%1) " - "AND initiatingAgent = \":global\" " - "AND usedActivity != \":global\" " - "GROUP BY usedActivity"); - - QStringList escapedFiles; - QSqlField field; - field.setType(QVariant::String); - - for (const auto& item: items.urlList()) { - field.setValue(QFileInfo(item.toLocalFile()).canonicalFilePath()); - escapedFiles << database.driver()->formatValue(field); - } - - QSqlQuery query(queryString.arg(escapedFiles.join(",")), - database); - - QStringList activitiesForLinking; - QStringList activitiesForUnlinking; - - for (const auto& result: query) { - const auto linkedFileCount = result[1].toInt(); - const auto activity = result[0].toString(); - if (linkedFileCount < itemsSize) { - activitiesForLinking << activity; - } - - if (linkedFileCount > 0) { - activitiesForUnlinking << activity; - } - } - - if (activitiesForLinking.contains(activities.currentActivity()) || - !activitiesForUnlinking.contains(activities.currentActivity())) { - actions << createAction(QString(), true, - i18n("Link to the current activity"), - "list-add"); - } - if (activitiesForUnlinking.contains(activities.currentActivity())) { - actions << createAction(QString(), false, - i18n("Unlink from the current activity"), - "list-remove"); - } - - actions << createSeparator(i18n("Link to:")); - for (const auto& activity: activitiesList) { - if (activitiesForLinking.contains(activity) || - !activitiesForUnlinking.contains(activity)) { - actions << createAction(activity, true); - } - } - - actions << createSeparator(i18n("Unlink from:")); - for (const auto& activity: activitiesList) { - if (activitiesForUnlinking.contains(activity)) { - actions << createAction(activity, false); - } - } - } - } - - emit result(actions); - - deleteLater(); -} - -Action -FileItemLinkingPluginActionLoader::createAction(const QString &activity, - bool link, const QString &title, - const QString &icon) const -{ - Action action = { }; - action.link = link; - - if (title.isEmpty()) { - KActivities::Info activityInfo(activity); - action.title = activityInfo.name(); - action.icon = activityInfo.icon().isEmpty() ? "preferences-activities" - : activityInfo.icon(); - - } else { - action.title = title; - } - - if (!icon.isEmpty()) { - action.icon = icon; - } - - action.activity = activity.isEmpty() ? activities.currentActivity() - : activity; - - return action; -} - -Action -FileItemLinkingPluginActionLoader::createSeparator(const QString &title) const -{ - Action action = { }; - action.icon = "-"; - action.title = title; - return action; -} - diff -Nru kactivities-kf5-5.18.0/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h kactivities-kf5-5.44.0/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h --- kactivities-kf5-5.18.0/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/fileitemplugin/FileItemLinkingPluginActionLoader.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef FILE_ITEM_LINKING_PLUGIN_ACTION_LOADER_H -#define FILE_ITEM_LINKING_PLUGIN_ACTION_LOADER_H - -#include "FileItemLinkingPlugin.h" -#include "FileItemLinkingPlugin_p.h" - -#include - -#include - -#include "lib/core/consumer.h" - -class FileItemLinkingPluginActionLoader: public QThread { - Q_OBJECT - -public: - FileItemLinkingPluginActionLoader(const KFileItemListProperties &items); - - void run() Q_DECL_OVERRIDE; - - Action createAction(const QString &activity, bool link, - const QString &title = QString(), - const QString &icon = QString()) const; - Action createSeparator(const QString &title) const; - -Q_SIGNALS: - void result(const ActionList &actions); - -private: - KFileItemListProperties items; - KActivities::Consumer activities; -}; - -#endif // FILE_ITEM_LINKING_PLUGIN_ACTION_LOADER_H diff -Nru kactivities-kf5-5.18.0/src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp kactivities-kf5-5.44.0/src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp --- kactivities-kf5-5.18.0/src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/fileitemplugin/FileItemLinkingPlugin.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,197 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "FileItemLinkingPlugin.h" -#include "FileItemLinkingPlugin_p.h" -#include "FileItemLinkingPluginActionLoader.h" - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "common/dbus/common.h" - -K_PLUGIN_FACTORY_WITH_JSON(ActivityLinkingFileItemActionFactory, - "kactivitymanagerd_fileitem_linking_plugin.json", - registerPlugin();) - - -// Private - -FileItemLinkingPlugin::Private::Private() - : shouldLoad(false) - , loaded(false) -{ - connect(&activities, &KActivities::Consumer::serviceStatusChanged, - this, &Private::activitiesServiceStatusChanged); -} - -void FileItemLinkingPlugin::Private::activitiesServiceStatusChanged( - KActivities::Consumer::ServiceStatus status) -{ - if (status != KActivities::Consumer::Unknown) { - loadAllActions(); - } -} - -void FileItemLinkingPlugin::Private::rootActionHovered() -{ - shouldLoad = true; - loadAllActions(); -} - -void FileItemLinkingPlugin::Private::actionTriggered() -{ - QAction *action = dynamic_cast(sender()); - - if (!action) { - return; - } - - bool link = action->property("link").toBool(); - QString activity = action->property("activity").toString(); - - KAMD_DBUS_DECL_INTERFACE(service, Resources/Linking, ResourcesLinking); - - foreach (const auto &item, items.urlList()) { - service.asyncCall( - link ? "LinkResourceToActivity" : "UnlinkResourceFromActivity", - QString(), - item.toLocalFile(), - activity); - } -} - -QAction *FileItemLinkingPlugin::Private::basicAction(QWidget *parentWidget) -{ - root = new QAction(QIcon::fromTheme("preferences-activities"), - i18n("Activities"), parentWidget); - - rootMenu = new QMenu(); - rootMenu->addAction(new QAction(i18n("Loading..."), this)); - - connect(root, &QAction::hovered, - this, &Private::rootActionHovered); - - - root->setMenu(rootMenu); - - return root; -} - -void FileItemLinkingPlugin::Private::loadAllActions() -{ - if (!shouldLoad - || activities.serviceStatus() == KActivities::Consumer::Unknown) { - return; - } - - if (activities.serviceStatus() == KActivities::Consumer::NotRunning) { - Action action = { }; - action.title = i18n("The Activity Manager is not running"); - - setActions({ action }); - - } else if (!loaded) { - auto loader = new FileItemLinkingPluginActionLoader(items); - - static FileItemLinkingPluginActionStaticInit init; - - connect(loader, &FileItemLinkingPluginActionLoader::result, - this, &Private::setActions, - Qt::QueuedConnection); - - loader->start(); - - loaded = true; // ignore that the thread may not be finished at this time - } -} - -void FileItemLinkingPlugin::Private::setActions(const ActionList &actions) -{ - for (auto action: rootMenu->actions()) { - rootMenu->removeAction(action); - action->deleteLater(); - } - - for (auto actionInfo: actions) { - if (actionInfo.icon != "-") { - auto action = new QAction(Q_NULLPTR); - - action->setText(actionInfo.title); - action->setIcon(QIcon::fromTheme(actionInfo.icon)); - action->setProperty("activity", actionInfo.activity); - action->setProperty("link", actionInfo.link); - - rootMenu->addAction(action); - - connect(action, &QAction::triggered, - this, &Private::actionTriggered); - - } else { - auto action = new QAction(actionInfo.title, Q_NULLPTR); - action->setSeparator(true); - - rootMenu->addAction(action); - } - } -} - -FileItemLinkingPluginActionStaticInit::FileItemLinkingPluginActionStaticInit() -{ - qRegisterMetaType("Action"); - qRegisterMetaType("ActionList"); -} - -// Main class - -FileItemLinkingPlugin::FileItemLinkingPlugin(QObject *parent, const QVariantList &) - : KAbstractFileItemActionPlugin(parent) -{ -} - -FileItemLinkingPlugin::~FileItemLinkingPlugin() -{ - d->setActions({}); -} - -QList FileItemLinkingPlugin::actions(const KFileItemListProperties &fileItemInfos, QWidget *parentWidget) -{ - d->items = fileItemInfos; - - return { d->basicAction(parentWidget) }; -} - -#include "FileItemLinkingPlugin.moc" - diff -Nru kactivities-kf5-5.18.0/src/workspace/fileitemplugin/FileItemLinkingPlugin.h kactivities-kf5-5.44.0/src/workspace/fileitemplugin/FileItemLinkingPlugin.h --- kactivities-kf5-5.18.0/src/workspace/fileitemplugin/FileItemLinkingPlugin.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/fileitemplugin/FileItemLinkingPlugin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef FILE_ITEM_LINKING_PLUGIN_H -#define FILE_ITEM_LINKING_PLUGIN_H - -#include - -#include -#include -#include - -#include - -/** - * FileItemLinkingPlugin - */ -class FileItemLinkingPlugin : public KAbstractFileItemActionPlugin { -public: - FileItemLinkingPlugin(QObject *parent, const QVariantList &); - ~FileItemLinkingPlugin(); - - QList actions(const KFileItemListProperties &fileItemInfos, - QWidget *parentWidget) Q_DECL_OVERRIDE; - -private: - D_PTR; -}; - -#endif // FILE_ITEM_LINKING_PLUGIN_H diff -Nru kactivities-kf5-5.18.0/src/workspace/fileitemplugin/FileItemLinkingPlugin_p.h kactivities-kf5-5.44.0/src/workspace/fileitemplugin/FileItemLinkingPlugin_p.h --- kactivities-kf5-5.18.0/src/workspace/fileitemplugin/FileItemLinkingPlugin_p.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/fileitemplugin/FileItemLinkingPlugin_p.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef FILE_ITEM_LINKING_PLUGIN_P_H -#define FILE_ITEM_LINKING_PLUGIN_P_H - -#include "FileItemLinkingPlugin.h" - -#include - -#include - -#include "lib/core/consumer.h" -#include "lib/core/info.h" - -struct Action { - QString title; - QString icon; - QString activity; - bool link; -}; -typedef QList ActionList; - -class FileItemLinkingPlugin::Private : public QObject { - Q_OBJECT - -public: - Private(); - - QAction *root; - QMenu *rootMenu; - KFileItemListProperties items; - - QAction *basicAction(QWidget *parentWidget); - - KActivities::Consumer activities; - -public Q_SLOTS: - void activitiesServiceStatusChanged(KActivities::Consumer::ServiceStatus status); - void rootActionHovered(); - void setActions(const ActionList &actions); - - void actionTriggered(); - void loadAllActions(); - -private: - bool shouldLoad : 1; - bool loaded : 1; -}; - -class FileItemLinkingPluginActionStaticInit { -public: - FileItemLinkingPluginActionStaticInit(); -}; - -#endif // FILE_ITEM_LINKING_PLUGIN_P_H diff -Nru kactivities-kf5-5.18.0/src/workspace/fileitemplugin/kactivitymanagerd_fileitem_linking_plugin.desktop kactivities-kf5-5.44.0/src/workspace/fileitemplugin/kactivitymanagerd_fileitem_linking_plugin.desktop --- kactivities-kf5-5.18.0/src/workspace/fileitemplugin/kactivitymanagerd_fileitem_linking_plugin.desktop 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/fileitemplugin/kactivitymanagerd_fileitem_linking_plugin.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Type=Service -Name=File to activity linking plugin -Name[bs]=Datoteka dodatka za povezivanje na aktivnost -Name[ca]=Connector per enllaçar fitxers amb activitats -Name[ca@valencia]=Connector per enllaçar fitxers amb activitats -Name[cs]=MOdul propojující soubor do činnosti -Name[da]=Fil til plugin til aktivitetslinking -Name[de]=Modul für die Verknüpfung von Dateien zu Aktivitäten -Name[el]=Αρχείο σε πρόσθετο σύνδεσης δραστηριοτήτων -Name[en_GB]=File to activity linking plugin -Name[es]=Complemento para enlazar archivos a actividades -Name[et]=Faili tegevusega linkimise plugin -Name[eu]=Fitxategia jarduerarekin lotzeko plugina -Name[fi]=Tiedostojen yhdistäminen aktiviteettiin -Name[fr]=Module externe de liaison entre fichiers et activités -Name[gd]=Plugan gus faidhlichean a co-cheangal ri gnìomhachdan -Name[gl]=Complemento para ligar ficheiros con actividades -Name[he]=תוסף לקישור פעילויות אל קובץ -Name[hu]=Fájl-aktivitás összelinkelő bővítmény -Name[ia]=File pro Plugin ligante de activitate -Name[is]=Tengiviðbót fyrir skrá-í-virkni -Name[it]=Estensione di collegamento tra file e attività -Name[kk]=Белсенділікті файлмен байланыстыру плагині -Name[km]=ឯកសារ​ទៅ​កម្មវិធី​ជំនួយ​​កំណត់​ជួរ​សកម្មភាព -Name[ko]=활동 연결 플러그인 파일 -Name[lt]=Failo pririšimo prie veiklos papildinys -Name[mr]=फाईल कार्यपध्दतीस जोडणारे प्लगइन -Name[nb]=Programtillegg som binder fil til aktivitet -Name[nds]=Datei-na-Aktiviteet-Towiesmoduul -Name[nl]=Plug-in voor koppelen van bestand aan activiteit -Name[nn]=Programtillegg for å knyta fil til aktivitet -Name[pa]=ਐਕਟਵਿਟੀ ਲਿੰਕਿੰਗ ਪਲੱਗਇਨ ਲਈ ਫਾਈਲ -Name[pl]=Plik dla wtyczki łączącej działania -Name[pt]='Plugin' de ligação de ficheiros a actividades -Name[pt_BR]=Plugin de ligação de arquivo a atividade -Name[ro]=Extensie pentru legarea fișierelor la activități -Name[ru]=Модуль связывания файлов с комнатами -Name[sk]=Súbor na plugin linkovania aktivít -Name[sl]=Vstavek za povezovanje datoteke z dejavnostjo -Name[sr]=Фајл ка прикључку повезивања активности -Name[sr@ijekavian]=Фајл ка прикључку повезивања активности -Name[sr@ijekavianlatin]=Fajl ka priključku povezivanja aktivnosti -Name[sr@latin]=Fajl ka priključku povezivanja aktivnosti -Name[sv]=Länkinsticksprogram från fil till aktivitet -Name[tg]=Файл барои плагини баҳодиҳии фаъолият -Name[tr]=Etkinliğe dosya bağlama eklentisi -Name[ug]=پائالىيەت ئۇلانما قىستۇرما ھۆججىتى -Name[uk]=Додаток прив’язування файлів до просторів дій -Name[x-test]=xxFile to activity linking pluginxx -Name[zh_CN]=文件关联活动插件 -Name[zh_TW]=活動連結外掛程式 -Icon=preferences-activities -X-KDE-Library=kactivitymanagerd_fileitem_linking_plugin -ServiceTypes=KFileItemAction/Plugin -MimeType=application/octet-stream;inode/directory; diff -Nru kactivities-kf5-5.18.0/src/workspace/kio/activities.protocol kactivities-kf5-5.44.0/src/workspace/kio/activities.protocol --- kactivities-kf5-5.18.0/src/workspace/kio/activities.protocol 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/kio/activities.protocol 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -[Protocol] -exec=kio_activities -protocol=activities -input=none -output=filesystem -reading=true -writing=true -deleting=true -linking=false -makedir=false -moving=false -listing=Name,Type,Size,Date,AccessDate,Access,Owner,Group,Link -source=false -Icon=folder-activities -Class=:local -maxInstances=100 diff -Nru kactivities-kf5-5.18.0/src/workspace/kio/CMakeLists.txt kactivities-kf5-5.44.0/src/workspace/kio/CMakeLists.txt --- kactivities-kf5-5.18.0/src/workspace/kio/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/kio/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (kioslave-activities) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src - ${CMAKE_BINARY_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR} - ) - -find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Sql) -find_package (KF5 REQUIRED COMPONENTS KIO I18n) - -########### next target ############### - -set (kio_activities_PART_SRCS - KioActivities.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/qsqlquery_iterator.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/Database.cpp - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/schema/ResourcesDatabaseSchema.cpp - ) - -add_library ( - kio_activities MODULE - ${kio_activities_PART_SRCS} - ) - -target_link_libraries ( - kio_activities - Qt5::Sql - KF5::KIOCore - KF5::DBusAddons - KF5::Activities - KF5::I18n - ) - -install ( - TARGETS kio_activities - DESTINATION ${KDE_INSTALL_PLUGINDIR} - ) - -########### install files ############### - -install ( - FILES activities.protocol - DESTINATION ${KDE_INSTALL_KSERVICES5DIR} - ) diff -Nru kactivities-kf5-5.18.0/src/workspace/kio/KioActivities.cpp kactivities-kf5-5.44.0/src/workspace/kio/KioActivities.cpp --- kactivities-kf5-5.18.0/src/workspace/kio/KioActivities.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/kio/KioActivities.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,363 +0,0 @@ -/* - * Copyright 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License or (at your option) version 3 or any later version - * accepted by the membership of KDE e.V. (or its successor approved - * by the membership of KDE e.V.), which shall act as a proxy - * defined in Section 14 of version 3 of the license. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "KioActivities.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include "lib/core/info.h" -#include "lib/core/consumer.h" - -#include - -class ActivitiesProtocol::Private { -public: - Private() - { - } - - enum PathType { - RootItem, - ActivityRootItem, - ActivityPathItem - }; - - PathType pathType(const QUrl &url, QString *activity = Q_NULLPTR, - QString *filePath = Q_NULLPTR) const - { - const auto fullPath = url.adjusted(QUrl::StripTrailingSlash).path(); - const auto path = fullPath.midRef(fullPath.startsWith('/') ? 1 : 0); - - if (activity) { - *activity = path.mid(0, path.indexOf("/") - 1).toString(); - } - - if (filePath) { - auto strippedPath = path.mid(path.indexOf("/") + 1); - auto splitPosition = strippedPath.indexOf("/"); - - if (splitPosition == -1) { - // if we have only one path segment - *filePath = demangledPath(strippedPath.toString()); - - } else { - // if we have sub-paths - auto head = strippedPath.mid(0, splitPosition); - auto tail = strippedPath.mid(splitPosition); - - *filePath = demangledPath(head.toString()) + tail.toString(); - } - } - - return path.length() == 0 ? RootItem - : path.contains("/") ? ActivityPathItem - : ActivityRootItem; - } - - void syncActivities(KActivities::Consumer &activities) - { - // We need to use the consumer in a synchronized way - while (activities.serviceStatus() == KActivities::Consumer::Unknown) { - QCoreApplication::processEvents(); - } - } - - KIO::UDSEntry activityEntry(const QString &activity) - { - KIO::UDSEntry uds; - KActivities::Info activityInfo(activity); - uds.insert(KIO::UDSEntry::UDS_NAME, activity); - uds.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, activityInfo.name()); - uds.insert(KIO::UDSEntry::UDS_DISPLAY_TYPE, i18n("Activity")); - uds.insert(KIO::UDSEntry::UDS_ICON_NAME, activityInfo.icon()); - uds.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); - uds.insert(KIO::UDSEntry::UDS_MIME_TYPE, QStringLiteral("inode/directory")); - uds.insert(KIO::UDSEntry::UDS_ACCESS, 0500); - uds.insert(KIO::UDSEntry::UDS_USER, KUser().loginName()); - return uds; - } - - KIO::UDSEntry filesystemEntry(const QString &path) - { - KIO::UDSEntry uds; - auto url = QUrl::fromLocalFile(path); - - if (KIO::StatJob* job = KIO::stat(url, KIO::HideProgressInfo)) { - QScopedPointer sp(job); - job->setAutoDelete(false); - if (job->exec()) { - uds = job->statResult(); - } - } - - auto mangled = mangledPath(path); - // QProcess::execute("kdialog", { "--passivepopup", mangled }); - - uds.insert(KIO::UDSEntry::UDS_NAME, mangled); - uds.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, url.fileName()); - uds.insert(KIO::UDSEntry::UDS_TARGET_URL, url.url()); - uds.insert(KIO::UDSEntry::UDS_LOCAL_PATH, path); - - return uds; - } - - QString mangledPath(const QString &path) const - { - // return QString::fromUtf8(QUrl::toPercentEncoding(path)); - return QString::fromLatin1(path.toUtf8().toBase64( - QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals)); - } - - QString demangledPath(const QString &mangled) const - { - // return QUrl::fromPercentEncoding(mangled.toUtf8()); - return QString::fromUtf8(QByteArray::fromBase64(mangled.toLatin1(), - QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals)); - } - - // KActivities::Consumer activities; -}; - - - -extern "C" int Q_DECL_EXPORT kdemain(int argc, char **argv) -{ - // necessary to use other kio slaves - QCoreApplication app(argc, argv); - if (argc != 4) { - fprintf(stderr, "Usage: kio_activities protocol domain-socket1 domain-socket2\n"); - exit(-1); - } - // start the slave - ActivitiesProtocol slave(argv[2], argv[3]); - slave.dispatchLoop(); - return 0; -} - - -ActivitiesProtocol::ActivitiesProtocol(const QByteArray &poolSocket, - const QByteArray &appSocket) - : KIO::ForwardingSlaveBase("activities", poolSocket, appSocket) -{ -} - -ActivitiesProtocol::~ActivitiesProtocol() -{ -} - -bool ActivitiesProtocol::rewriteUrl(const QUrl &url, QUrl &newUrl) -{ - QString activity, path; - switch (d->pathType(url, &activity, &path)) { - case Private::RootItem: - case Private::ActivityRootItem: - if (activity == "current") { - KActivities::Consumer activities; - d->syncActivities(activities); - newUrl = QStringLiteral("activities:/") - + activities.currentActivity(); - return true; - } - return false; - - case Private::ActivityPathItem: - { - // auto demangled = d->demangledPath(path); - // QProcess::execute("kdialog", - // { "--passivepopup", - // path.midRef(1).toString() + "\n" + demangled }); - - newUrl = QUrl::fromLocalFile(path); - return true; - } - - default: - return true; - } -} - -void ActivitiesProtocol::listDir(const QUrl &url) -{ - KActivities::Consumer activities; - d->syncActivities(activities); - - QString activity, path; - switch (d->pathType(url, &activity, &path)) { - case Private::RootItem: - { - KIO::UDSEntryList udslist; - - KIO::UDSEntry uds; - uds.insert(KIO::UDSEntry::UDS_NAME, QStringLiteral("current")); - uds.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, i18n("Current activity")); - uds.insert(KIO::UDSEntry::UDS_DISPLAY_TYPE, i18n("Activity")); - uds.insert(KIO::UDSEntry::UDS_ICON_NAME, QStringLiteral("preferences-activities")); - uds.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); - uds.insert(KIO::UDSEntry::UDS_MIME_TYPE, QStringLiteral("inode/directory")); - uds.insert(KIO::UDSEntry::UDS_ACCESS, 0500); - uds.insert(KIO::UDSEntry::UDS_USER, KUser().loginName()); - uds.insert(KIO::UDSEntry::UDS_TARGET_URL, QStringLiteral("activities:/") + activities.currentActivity()); - udslist << uds; - - for (const auto activity: activities.activities()) { - udslist << d->activityEntry(activity); - } - - listEntries(udslist); - finished(); - break; - } - - case Private::ActivityRootItem: - { - KIO::UDSEntryList udslist; - - auto database = Common::Database::instance( - Common::Database::ResourcesDatabase, - Common::Database::ReadOnly); - - if (!database) { - finished(); - break; - } - - if (activity == "current") { - activity = activities.currentActivity(); - } - - static const auto queryString = QStringLiteral( - "SELECT targettedResource " - "FROM ResourceLink " - "WHERE usedActivity = '%1' " - "AND initiatingAgent = \":global\" " - ); - - auto query = database->execQuery(queryString.arg(activity)); - - for (const auto& result: query) { - auto path = result[0].toString(); - - if (!QFile(path).exists()) continue; - - KIO::UDSEntry uds; - - udslist << d->filesystemEntry(path); - } - - listEntries(udslist); - finished(); - break; - } - - case Private::ActivityPathItem: - ForwardingSlaveBase::listDir(QUrl::fromLocalFile(path)); - break; - } -} - -void ActivitiesProtocol::prepareUDSEntry(KIO::UDSEntry &entry, bool listing) const -{ - ForwardingSlaveBase::prepareUDSEntry(entry, listing); -} - -void ActivitiesProtocol::stat(const QUrl& url) -{ - QString activity; - - switch (d->pathType(url, &activity)) { - case Private::RootItem: - { - QString dirName = i18n("Activities"); - KIO::UDSEntry uds; - uds.insert(KIO::UDSEntry::UDS_NAME, dirName); - uds.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, dirName); - uds.insert(KIO::UDSEntry::UDS_DISPLAY_TYPE, dirName); - uds.insert(KIO::UDSEntry::UDS_ICON_NAME, QStringLiteral("preferences-activities")); - uds.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); - uds.insert(KIO::UDSEntry::UDS_MIME_TYPE, QStringLiteral("inode/directory")); - - statEntry(uds); - finished(); - break; - } - - case Private::ActivityRootItem: - { - KActivities::Consumer activities; - d->syncActivities(activities); - - if (activity == "current") { - activity = activities.currentActivity(); - } - - statEntry(d->activityEntry(activity)); - finished(); - break; - } - - case Private::ActivityPathItem: - ForwardingSlaveBase::stat(url); - break; - } -} - -void ActivitiesProtocol::mimetype(const QUrl& url) -{ - switch (d->pathType(url)) { - case Private::RootItem: - case Private::ActivityRootItem: - mimetype(QStringLiteral("inode/directory")); - finished(); - break; - - case Private::ActivityPathItem: - ForwardingSlaveBase::mimetype(url); - break; - } - -} - -void ActivitiesProtocol::del(const QUrl& url, bool isfile) -{ - Q_UNUSED(url); - Q_UNUSED(isfile); -} - - -// #include "KioActivities.moc" diff -Nru kactivities-kf5-5.18.0/src/workspace/kio/KioActivities.h kactivities-kf5-5.44.0/src/workspace/kio/KioActivities.h --- kactivities-kf5-5.18.0/src/workspace/kio/KioActivities.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/kio/KioActivities.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ -/* - * Copyright 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License or (at your option) version 3 or any later version - * accepted by the membership of KDE e.V. (or its successor approved - * by the membership of KDE e.V.), which shall act as a proxy - * defined in Section 14 of version 3 of the license. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef KIO_ACTIVITIES_H -#define KIO_ACTIVITIES_H - -#include - -#include - -class ActivitiesProtocol : public KIO::ForwardingSlaveBase { - Q_OBJECT - -public: - ActivitiesProtocol(const QByteArray &poolSocket, const QByteArray &appSocket); - ~ActivitiesProtocol(); - -protected: - bool rewriteUrl(const QUrl &url, QUrl &newUrl) Q_DECL_OVERRIDE; - void listDir(const QUrl &url) Q_DECL_OVERRIDE; - void prepareUDSEntry(KIO::UDSEntry &entry, bool listing = false) const Q_DECL_OVERRIDE; - void stat(const QUrl& url) Q_DECL_OVERRIDE; - void mimetype(const QUrl& url) Q_DECL_OVERRIDE; - void del(const QUrl& url, bool isfile) Q_DECL_OVERRIDE; - -private: - D_PTR; -}; - -#endif // KIO_ACTIVITIES_H diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/ActivitiesTab.cpp kactivities-kf5-5.44.0/src/workspace/settings/ActivitiesTab.cpp --- kactivities-kf5-5.18.0/src/workspace/settings/ActivitiesTab.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/ActivitiesTab.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "ActivitiesTab.h" - -#include -#include -#include - -#include -#include -#include - -#include "ExtraActivitiesInterface.h" -#include "definitions.h" - -#include - -#include "kactivities-features.h" -#include "kactivities-kcm-features.h" - -#include "utils.h" - -class ActivitiesTab::Private { -public: - std::unique_ptr viewActivities; - ExtraActivitiesInterface *extraActivitiesInterface; -}; - -ActivitiesTab::ActivitiesTab(QWidget *parent) - : QWidget(parent) - , d() -{ - new QVBoxLayout(this); - - d->extraActivitiesInterface = new ExtraActivitiesInterface(this); - - d->viewActivities = createView(this); - d->viewActivities->rootContext()->setContextProperty( - "kactivitiesExtras", d->extraActivitiesInterface); - setViewSource(d->viewActivities, "/qml/activitiesTab/main.qml"); -} - -ActivitiesTab::~ActivitiesTab() -{ -} - -void ActivitiesTab::defaults() -{ -} - -void ActivitiesTab::load() -{ -} - -void ActivitiesTab::save() -{ -} - -#include "ActivitiesTab.moc" diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/ActivitiesTab.h kactivities-kf5-5.44.0/src/workspace/settings/ActivitiesTab.h --- kactivities-kf5-5.18.0/src/workspace/settings/ActivitiesTab.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/ActivitiesTab.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITIES_TAB_H -#define ACTIVITIES_TAB_H - -#include - -#include - -/** - * ActivitiesTab - */ -class ActivitiesTab : public QWidget { - Q_OBJECT -public: - ActivitiesTab(QWidget *parent); - ~ActivitiesTab(); - -public Q_SLOTS: - void defaults(); - void load(); - void save(); - -Q_SIGNALS: - void changed(); - -private: - D_PTR; -}; - -#endif // ACTIVITIES_TAB_H diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/BlacklistedApplicationsModel.cpp kactivities-kf5-5.44.0/src/workspace/settings/BlacklistedApplicationsModel.cpp --- kactivities-kf5-5.18.0/src/workspace/settings/BlacklistedApplicationsModel.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/BlacklistedApplicationsModel.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,241 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "BlacklistedApplicationsModel.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include "definitions.h" - -class BlacklistedApplicationsModel::Private { -public: - struct ApplicationData { - QString name; - QString title; - QString icon; - bool blocked; - }; - - QList applications; - QSqlDatabase database; - - KSharedConfig::Ptr pluginConfig; - bool enabled; -}; - -BlacklistedApplicationsModel::BlacklistedApplicationsModel(QObject *parent) - : QAbstractListModel(parent) -{ - d->enabled = false; - d->pluginConfig = KSharedConfig::openConfig("kactivitymanagerd-pluginsrc"); -} - -BlacklistedApplicationsModel::~BlacklistedApplicationsModel() -{ -} - -QHash BlacklistedApplicationsModel::roleNames() const -{ - return { - { ApplicationIdRole, "name"}, - { Qt::DecorationRole, "icon"}, - { Qt::DisplayRole, "title"}, - { BlockedApplicationRole, "blocked" } - }; -} - -void BlacklistedApplicationsModel::load() -{ - // Loading plugin configuration - - const auto config = d->pluginConfig->group(SQLITE_PLUGIN_CONFIG_KEY); - - const auto defaultBlockedValue = config.readEntry("blocked-by-default", false); - auto blockedApplications = QSet::fromList(config.readEntry("blocked-applications", QStringList())); - auto allowedApplications = QSet::fromList(config.readEntry("allowed-applications", QStringList())); - - // Reading new applications from the database - - const QString path - = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) - + QStringLiteral("/kactivitymanagerd/resources/database"); - - d->database = QSqlDatabase::addDatabase("QSQLITE", "plugins_sqlite_db_resources"); - d->database.setDatabaseName(path); - - if (!d->database.open()) { - // qDebug() << "Failed to open the database" << path << d->database.lastError(); - return; - } - - auto query = d->database.exec("SELECT DISTINCT(initiatingAgent) FROM ResourceScoreCache ORDER BY initiatingAgent"); - - if (d->applications.length() > 0) { - beginRemoveRows(QModelIndex(), 0, d->applications.length() - 1); - d->applications.clear(); - endRemoveRows(); - } - - while (query.next()) { - const auto name = query.value(0).toString(); - - if (defaultBlockedValue) { - if (!allowedApplications.contains(name)) { - blockedApplications << name; - } - } else { - if (!blockedApplications.contains(name)) { - allowedApplications << name; - } - } - } - - auto applications = (blockedApplications + allowedApplications).toList(); - - if (applications.length() > 0) { - qSort(applications); - - beginInsertRows(QModelIndex(), 0, applications.length() - 1); - - foreach(const auto & name, applications) - { - const auto service = KService::serviceByDesktopName(name); - const auto blocked = blockedApplications.contains(name); - - if (service) { - d->applications << Private::ApplicationData{ - name, - service->name(), - service->icon(), - blocked - }; - } else { - d->applications << Private::ApplicationData{ name, name, QString(), blocked }; - } - } - - endInsertRows(); - } -} - -void BlacklistedApplicationsModel::save() -{ - auto config = d->pluginConfig->group(SQLITE_PLUGIN_CONFIG_KEY); - QStringList blockedApplications; - QStringList allowedApplications; - - for (int i = 0; i < rowCount(); i++) { - (d->applications[i].blocked ? blockedApplications : allowedApplications) - << d->applications[i].name; - } - - config.writeEntry("allowed-applications", allowedApplications); - config.writeEntry("blocked-applications", blockedApplications); -} - -void BlacklistedApplicationsModel::defaults() -{ - for (int i = 0; i < rowCount(); i++) { - d->applications[i].blocked = false; - } - - dataChanged(QAbstractListModel::index(0), - QAbstractListModel::index(rowCount() - 1)); -} - -void BlacklistedApplicationsModel::toggleApplicationBlocked(int index) -{ - if (index > rowCount()) { - return; - } - - d->applications[index].blocked = !d->applications[index].blocked; - dataChanged(QAbstractListModel::index(index), - QAbstractListModel::index(index)); - - emit changed(); -} - -QVariant BlacklistedApplicationsModel::headerData(int section, Qt::Orientation orientation, int role) const -{ - Q_UNUSED(section); - Q_UNUSED(orientation); - Q_UNUSED(role); - return QVariant(); -} - -QVariant BlacklistedApplicationsModel::data(const QModelIndex &modelIndex, int role) const -{ - const auto index = modelIndex.row(); - - if (index > rowCount()) { - return QVariant(); - } - - const auto &application = d->applications[index]; - - switch (role) { - default: - return QVariant(); - - case ApplicationIdRole: - return application.name; - - case Qt::DisplayRole: - return application.title; - - case Qt::DecorationRole: - return application.icon.isEmpty() ? "application-x-executable" : application.icon; - - case BlockedApplicationRole: - return application.blocked; - } -} - -int BlacklistedApplicationsModel::rowCount(const QModelIndex &parent) const -{ - Q_UNUSED(parent); - return d->applications.size(); -} - -bool BlacklistedApplicationsModel::enabled() const -{ - return d->enabled; -} - -void BlacklistedApplicationsModel::setEnabled(bool enabled) -{ - d->enabled = enabled; - emit enabledChanged(enabled); -} - -// #include diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/BlacklistedApplicationsModel.h kactivities-kf5-5.44.0/src/workspace/settings/BlacklistedApplicationsModel.h --- kactivities-kf5-5.18.0/src/workspace/settings/BlacklistedApplicationsModel.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/BlacklistedApplicationsModel.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef BLACKLISTED_APPLICATIONS_MODEL_H -#define BLACKLISTED_APPLICATIONS_MODEL_H - -#include - -#include - -/** - * BlacklistedApplicationsModel - */ -class BlacklistedApplicationsModel : public QAbstractListModel { - Q_OBJECT - - Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) - -public: - BlacklistedApplicationsModel(QObject *parent = Q_NULLPTR); - ~BlacklistedApplicationsModel(); - - enum Roles { - ApplicationIdRole = Qt::UserRole + 1, - BlockedApplicationRole - }; - - QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; - int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE; - - QHash roleNames() const Q_DECL_OVERRIDE; - -Q_SIGNALS: - void changed(); - void enabledChanged(bool enabled); - -public Q_SLOTS: - void toggleApplicationBlocked(int index); - - void setEnabled(bool); - bool enabled() const; - - void load(); - void save(); - void defaults(); - -private: - D_PTR; -}; - -#endif // BLACKLISTED_APPLICATIONS_MODEL_H diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/CMakeLists.txt kactivities-kf5-5.44.0/src/workspace/settings/CMakeLists.txt --- kactivities-kf5-5.18.0/src/workspace/settings/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: -project (KCMActivities) - -find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Core Quick Sql Qml DBus) -find_package (KF5KCMUtils ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5Declarative ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5XmlGui ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5GlobalAccel ${KF5_DEP_VERSION} CONFIG REQUIRED) - -set (KAMD_KCM_DATADIR - ${KDE_INSTALL_DATADIR_KF5}/kactivitymanagerd/workspace/settings/ - ) - -if (NOT IS_ABSOLUTE "${KDE_INSTALL_DATADIR_KF5}") - set (KAMD_KCM_DATADIR "${CMAKE_INSTALL_PREFIX}/${KAMD_KCM_DATADIR}") -endif () - -configure_file (kactivities-kcm-features.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kactivities-kcm-features.h) - -add_subdirectory(imports) - -set (KAMD_KCM_SRCS - kcm_activities.cpp - - MainConfigurationWidget.cpp - ActivitiesTab.cpp - SwitchingTab.cpp - PrivacyTab.cpp - - BlacklistedApplicationsModel.cpp - ExtraActivitiesInterface.cpp - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/dbusfuture_p.cpp - ) - -ki18n_wrap_ui ( - KAMD_KCM_SRCS - ui/MainConfigurationWidgetBase.ui - ui/PrivacyTabBase.ui - ui/SwitchingTabBase.ui - ) - -qt5_add_dbus_interface ( - KAMD_KCM_SRCS - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Features.xml - features_interface - ) - -add_library (kcm_activities MODULE ${KAMD_KCM_SRCS}) - -target_link_libraries (kcm_activities - Qt5::Quick - Qt5::Core - Qt5::Sql - Qt5::Qml - Qt5::DBus - KF5::KCMUtils - KF5::I18n - KF5::Service - KF5::Declarative - KF5::XmlGui - KF5::GlobalAccel - KF5::Activities - ) - -install ( - TARGETS kcm_activities - DESTINATION ${KDE_INSTALL_PLUGINDIR} - ) - -install ( - FILES kcm_activities.desktop - DESTINATION ${KDE_INSTALL_KSERVICES5DIR} - ) - -install ( - DIRECTORY - - qml/activitiesTab - qml/privacyTab - - DESTINATION ${KAMD_KCM_DATADIR}/qml - ) - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/definitions.h kactivities-kf5-5.44.0/src/workspace/settings/definitions.h --- kactivities-kf5-5.18.0/src/workspace/settings/definitions.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/definitions.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef DEFINITIONS_H -#define DEFINITIONS_H - -#define SQLITE_PLUGIN_CONFIG_KEY "Plugin-org.kde.ActivityManager.Resources.Scoring" - -#endif // DEFINITIONS_H - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/ExtraActivitiesInterface.cpp kactivities-kf5-5.44.0/src/workspace/settings/ExtraActivitiesInterface.cpp --- kactivities-kf5-5.18.0/src/workspace/settings/ExtraActivitiesInterface.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/ExtraActivitiesInterface.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,136 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "ExtraActivitiesInterface.h" - -#include -#include -#include -#include -#include - -#include -#include - -#include "utils/dbusfuture_p.h" -#include "features_interface.h" -#include "definitions.h" -#include "common/dbus/common.h" - -#define ENABLE_QJSVALUE_CONTINUATION -#include "utils/continue_with.h" - -class ExtraActivitiesInterface::Private { -public: - Private(ExtraActivitiesInterface *q) - : features(new KAMD_DBUS_CLASS_INTERFACE(Features, Features, q)) - , activitiesActionCollection(new KActionCollection(q, QStringLiteral("ActivityManager"))) - { - activitiesActionCollection->setComponentDisplayName(i18n("Activities")); - activitiesActionCollection->setConfigGlobal(true); - } - - ~Private() - { - } - - QAction *actionForActivity(const QString &activity) - { - if (!activityActions.contains(activity)) { - auto action = activitiesActionCollection->addAction( - "switch-to-activity-" + activity); - - activityActions[activity] = action; - action->setProperty("isConfigurationAction", true); - - KGlobalAccel::self()->setShortcut(action, {}); - } - - return activityActions[activity]; - } - - - std::unique_ptr features; - std::unique_ptr activitiesActionCollection; - QHash activityActions; -}; - -ExtraActivitiesInterface::ExtraActivitiesInterface(QObject *parent) - : QObject(parent) - , d(this) -{ -} - -ExtraActivitiesInterface::~ExtraActivitiesInterface() -{ -} - -void ExtraActivitiesInterface::setIsPrivate(const QString &activity, - bool isPrivate, QJSValue callback) -{ - auto result = d->features->SetValue( - "org.kde.ActivityManager.Resources.Scoring/isOTR/" + activity, - QDBusVariant(isPrivate)); - - auto *watcher = new QDBusPendingCallWatcher(result, this); - - QObject::connect( - watcher, &QDBusPendingCallWatcher::finished, - this, [callback] (QDBusPendingCallWatcher* watcher) mutable { - callback.call(); - watcher->deleteLater(); - } - ); -} - -void ExtraActivitiesInterface::getIsPrivate(const QString &activity, - QJSValue callback) -{ - auto result = d->features->GetValue( - "org.kde.ActivityManager.Resources.Scoring/isOTR/" + activity); - - auto *watcher = new QDBusPendingCallWatcher(result, this); - - QObject::connect( - watcher, &QDBusPendingCallWatcher::finished, - this, [callback,result] (QDBusPendingCallWatcher* watcher) mutable { - QDBusPendingReply reply = *watcher; - callback.call({reply.value().variant().toBool()}); - watcher->deleteLater(); - } - ); -} - -void ExtraActivitiesInterface::setShortcut(const QString &activity, - const QKeySequence &keySequence) -{ - auto action = d->actionForActivity(activity); - - KGlobalAccel::self()->setShortcut(action, { keySequence }, - KGlobalAccel::NoAutoloading); -} - -QKeySequence ExtraActivitiesInterface::shortcut(const QString &activity) -{ - auto action = d->actionForActivity(activity); - - const auto shortcuts = KGlobalAccel::self()->shortcut(action); - return (shortcuts.isEmpty()) ? QKeySequence() : shortcuts.first(); -} - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/ExtraActivitiesInterface.h kactivities-kf5-5.44.0/src/workspace/settings/ExtraActivitiesInterface.h --- kactivities-kf5-5.18.0/src/workspace/settings/ExtraActivitiesInterface.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/ExtraActivitiesInterface.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef EXTRA_ACTIVITES_INTERFACE_H -#define EXTRA_ACTIVITES_INTERFACE_H - -#include - -#include - -#include -#include - -class ExtraActivitiesInterface : public QObject { - Q_OBJECT - -public: - ExtraActivitiesInterface(QObject *parent = Q_NULLPTR); - ~ExtraActivitiesInterface(); - -public Q_SLOTS: - void setIsPrivate(const QString &activity, bool isPrivate, - QJSValue callback); - void getIsPrivate(const QString &activity, QJSValue callback); - - void setShortcut(const QString &activity, const QKeySequence &keySequence); - QKeySequence shortcut(const QString &activity); - -private: - D_PTR; -}; - -#endif // EXTRA_ACTIVITES_INTERFACE_H diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/activitysettings.cpp kactivities-kf5-5.44.0/src/workspace/settings/imports/activitysettings.cpp --- kactivities-kf5-5.18.0/src/workspace/settings/imports/activitysettings.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/activitysettings.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "activitysettings.h" - -#include -#include - -#include - -#include "dialog.h" - -#include -#include - -ActivitySettings::ActivitySettings(QObject *parent) - : QObject(parent) -{ -} - -ActivitySettings::~ActivitySettings() -{ -} - -void ActivitySettings::configureActivity(const QString &id) -{ - (new Dialog(id))->exec(); -} - -void ActivitySettings::newActivity() -{ - (new Dialog())->exec(); -} - -void ActivitySettings::deleteActivity(const QString &id) -{ - KActivities::Info info(id); - - if (QMessageBox::question(Q_NULLPTR, i18n("Delete activity"), - i18n("Are you sure you want to delete '%1'?", - info.name())) == QMessageBox::Yes) { - KActivities::Controller().removeActivity(id); - } -} - -void ActivitySettings::configureActivities() -{ - QProcess::startDetached("kcmshell5", { "activities" }); -} - - -#include "activitysettings.moc" - - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/activitysettings.h kactivities-kf5-5.44.0/src/workspace/settings/imports/activitysettings.h --- kactivities-kf5-5.18.0/src/workspace/settings/imports/activitysettings.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/activitysettings.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef ACTIVITYSETTINGS_H -#define ACTIVITYSETTINGS_H - -#include - -class ActivitySettings: public QObject { - Q_OBJECT - -public: - ActivitySettings(QObject *parent = Q_NULLPTR); - ~ActivitySettings(); - -public Q_SLOTS: - Q_INVOKABLE void configureActivities(); - Q_INVOKABLE void configureActivity(const QString &id); - Q_INVOKABLE void newActivity(); - Q_INVOKABLE void deleteActivity(const QString &id); -}; - -#endif // ACTIVITYSETTINGS_H - - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/CMakeLists.txt kactivities-kf5-5.44.0/src/workspace/settings/imports/CMakeLists.txt --- kactivities-kf5-5.18.0/src/workspace/settings/imports/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (kactivities-settings) -find_package (ECM 0.0.8 REQUIRED NO_MODULE) -set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) - -find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Sql Gui Widgets Qml Quick Sql QuickWidgets) -find_package (KF5GlobalAccel ${KF5_DEP_VERSION} CONFIG REQUIRED) -# find_package (KF5DBusAddons ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5I18n ${KF5_DEP_VERSION} CONFIG REQUIRED) -find_package (KF5WidgetsAddons ${KF5_DEP_VERSION} CONFIG REQUIRED) -# find_package (KF5Config ${KF5_DEP_VERSION} CONFIG REQUIRED) -# find_package (KF5CoreAddons ${KF5_DEP_VERSION} CONFIG REQUIRED) -# find_package (KF5KIO ${KF5_DEP_VERSION} CONFIG REQUIRED) - -set ( - kactivities_KCM_imports_LIB_SRCS - plugin.cpp - activitysettings.cpp - dialog.cpp - ) - -qt5_add_dbus_interface ( - kactivities_KCM_imports_LIB_SRCS - - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Features.xml - features_interface - ) - -add_library (kactivitiessettingsplugin SHARED ${kactivities_KCM_imports_LIB_SRCS}) - -target_link_libraries ( - kactivitiessettingsplugin - Qt5::Core - Qt5::DBus - Qt5::Gui - Qt5::Qml - Qt5::Quick - Qt5::Widgets - Qt5::QuickWidgets - KF5::I18n - KF5::Activities - KF5::GlobalAccel - KF5::WidgetsAddons - ) - -## install - -install ( - DIRECTORY - qml/activityDialog - - DESTINATION ${KAMD_KCM_DATADIR}/qml - ) - -install (TARGETS kactivitiessettingsplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/activities/settings) -install (FILES qmldir DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/activities/settings) - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/dialog.cpp kactivities-kf5-5.44.0/src/workspace/settings/imports/dialog.cpp --- kactivities-kf5-5.18.0/src/workspace/settings/imports/dialog.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/dialog.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,304 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "dialog.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "kactivities-features.h" -#include "../kactivities-kcm-features.h" - -#include "kactivities/info.h" -#include "kactivities/controller.h" -#include "features_interface.h" - -#include "common/dbus/common.h" -#include "utils/continue_with.h" -#include "utils/d_ptr_implementation.h" -#include "../utils.h" - -class Dialog::Private { -public: - Private(Dialog *parent) - : q(parent) - , activityName("activityName") - , activityDescription("activityDescription") - , activityIcon("activityIcon") - , activityWallpaper("activityWallpaper") - , activityIsPrivate(true) - , activityShortcut("activityShortcut") - , features(new KAMD_DBUS_CLASS_INTERFACE(Features, Features, q)) - { - } - - Dialog *const q; - QVBoxLayout *layout; - QTabWidget *tabs; - - QQuickWidget *tabGeneral; - QQuickWidget *tabOther; - KMessageWidget *message; - - QQuickWidget *createTab(const QString &title, const QString &file) - { - auto view = new QQuickWidget(); - - view->setResizeMode(QQuickWidget::SizeRootObjectToView); - -// TODO: Remove this once we start requiring Qt 5.4 -#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) - #warning "The activity configuration dialogue will not fully follow the system colours. Update to Qt 5.5." -#else - view->setClearColor(QGuiApplication::palette().window().color()); -#endif - - view->rootContext()->setContextProperty("dialog", q); - - if (setViewSource(view, "/qml/activityDialog/" + file)) { - tabs->addTab(view, title); - - auto root = view->rootObject(); - Q_ASSERT(root); - QMetaObject::invokeMethod(root, "load", Qt::DirectConnection); - - } else { - message->setText(i18n("Error loading the QML files. Check your installation.\nMissing %1", - QStringLiteral(KAMD_KCM_DATADIR) + "/qml/activityDialog/" + file)); - message->setVisible(true); - } - - return view; - } - - void setFocus(QQuickWidget *widget) - { - // TODO: does not work... - widget->setFocus(); - auto root = widget->rootObject(); - - if (!root) return; - - QMetaObject::invokeMethod(widget->rootObject(), "setFocus", - Qt::DirectConnection); - } - - QString activityId; - - QString activityName; - QString activityDescription; - QString activityIcon; - QString activityWallpaper; - bool activityIsPrivate; - QString activityShortcut; - - KActivities::Info *activityInfo; - KActivities::Controller activities; - org::kde::ActivityManager::Features *features; -}; - -Dialog::Dialog(QObject *parent) - : QDialog() - , d(this) -{ - setWindowTitle(i18n("Create a new activity")); - initUi(); -} - -Dialog::Dialog(const QString &activityId, QObject *parent) - : QDialog() - , d(this) -{ - setWindowTitle(i18n("Activity settings")); - initUi(activityId); - - setActivityId(activityId); - - d->activityInfo = new KActivities::Info(activityId, this); - - setActivityName(d->activityInfo->name()); - setActivityDescription(d->activityInfo->description()); - setActivityIcon(d->activityInfo->icon()); - - // finding the key shortcut - const auto shortcuts = KGlobalAccel::self()->globalShortcut( - QStringLiteral("ActivityManager"), "switch-to-activity-" + activityId); - setActivityShortcut(shortcuts.isEmpty() ? QKeySequence() : shortcuts.first()); - - // is private? - auto result = d->features->GetValue( - "org.kde.ActivityManager.Resources.Scoring/isOTR/" + activityId); - - auto watcher = new QDBusPendingCallWatcher(result, this); - - QObject::connect(watcher, &QDBusPendingCallWatcher::finished, this, - [&](QDBusPendingCallWatcher *watcher) mutable { - QDBusPendingReply reply = *watcher; - setActivityIsPrivate(reply.value().variant().toBool()); - }); - - -} - -void Dialog::initUi(const QString &activityId) -{ - resize(600, 500); - - d->layout = new QVBoxLayout(this); - - // Message widget for showing errors - d->message = new KMessageWidget(this); - d->message->setMessageType(KMessageWidget::Error); - d->message->setVisible(false); - d->layout->addWidget(d->message); - - // Tabs - d->tabs = new QTabWidget(this); - d->layout->addWidget(d->tabs); - d->tabGeneral = d->createTab(i18n("General"), "GeneralTab.qml"); - d->tabOther = d->createTab(i18n("Other"), "OtherTab.qml"); - - // Buttons - auto buttons = new QDialogButtonBox( - QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); - d->layout->QLayout::addWidget(buttons); - - if (activityId.isEmpty()) { - buttons->button(QDialogButtonBox::Ok)->setText(i18n("Create")); - } - - connect(buttons->button(QDialogButtonBox::Ok), &QAbstractButton::clicked, - this, &Dialog::save); - connect(buttons, &QDialogButtonBox::rejected, - this, &Dialog::close); - - setActivityName(QString()); - setActivityDescription(QString()); - setActivityIcon(QString()); - setActivityIsPrivate(false); - - setActivityShortcut(QKeySequence()); -} - -Dialog::~Dialog() -{ -} - -void Dialog::showEvent(QShowEvent *event) -{ - // Setting the focus - d->setFocus(d->tabGeneral); -} - -#define IMPLEMENT_PROPERTY(Scope, Type, PType, PropName) \ - Type Dialog::activity##PropName() const \ - { \ - auto root = d->tab##Scope->rootObject(); \ - \ - if (!root) { \ - qDebug() << "Root does not exist"; \ - return Type(); \ - } \ - \ - return root->property("activity" #PropName).value(); \ - } \ - \ - void Dialog::setActivity##PropName(PType value) \ - { \ - auto root = d->tab##Scope->rootObject(); \ - \ - if (!root) { \ - qDebug() << "Root does not exist"; \ - return; \ - } \ - \ - root->setProperty("activity" #PropName, value); \ - } - -IMPLEMENT_PROPERTY(General, QString, const QString &, Id) -IMPLEMENT_PROPERTY(General, QString, const QString &, Name) -IMPLEMENT_PROPERTY(General, QString, const QString &, Description) -IMPLEMENT_PROPERTY(General, QString, const QString &, Icon) -IMPLEMENT_PROPERTY(General, QString, const QString &, Wallpaper) -IMPLEMENT_PROPERTY(Other, QKeySequence, const QKeySequence &, Shortcut) -IMPLEMENT_PROPERTY(Other, bool, bool, IsPrivate) -#undef IMPLEMENT_PROPERTY - -void Dialog::save() -{ - if (activityId().isEmpty()) { - create(); - - } else { - saveChanges(activityId()); - - } -} - -void Dialog::create() -{ - using namespace kamd::utils; - continue_with( - d->activities.addActivity(activityName()), - [this](const optional_view &activityId) { - if (activityId.is_initialized()) { - saveChanges(activityId.get()); - } - }); -} - -void Dialog::saveChanges(const QString &activityId) -{ - d->activities.setActivityName(activityId, activityName()); - d->activities.setActivityDescription(activityId, activityDescription()); - d->activities.setActivityIcon(activityId, activityIcon()); - - // setting the key shortcut - QAction action(Q_NULLPTR); - action.setProperty("isConfigurationAction", true); - action.setProperty("componentName", "ActivityManager"); - action.setObjectName("switch-to-activity-" + activityId); - KGlobalAccel::self()->removeAllShortcuts(&action); - KGlobalAccel::self()->setGlobalShortcut(&action, activityShortcut()); - - // is private? - d->features->SetValue("org.kde.ActivityManager.Resources.Scoring/isOTR/" - + activityId, - QDBusVariant(activityIsPrivate())); - - close(); -} - -#include "dialog.moc" - - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/dialog.h kactivities-kf5-5.44.0/src/workspace/settings/imports/dialog.h --- kactivities-kf5-5.18.0/src/workspace/settings/imports/dialog.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/dialog.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef DIALOG_H -#define DIALOG_H - -#include -#include - -#include "utils/d_ptr.h" - -class Dialog: public QDialog { - Q_OBJECT - -public: - Dialog(QObject *parent = Q_NULLPTR); - Dialog(const QString &activityId, QObject *parent = Q_NULLPTR); - - ~Dialog(); - - void initUi(const QString &activityId = QString()); - - QString activityId() const; - void setActivityId(const QString &activityId); - - QString activityName() const; - void setActivityName(const QString &activityName); - - QString activityDescription() const; - void setActivityDescription(const QString &activityDescription); - - QString activityIcon() const; - void setActivityIcon(const QString &activityIcon); - - QString activityWallpaper() const; - void setActivityWallpaper(const QString &activityWallpaper); - - bool activityIsPrivate() const; - void setActivityIsPrivate(bool activityIsPrivate); - - QKeySequence activityShortcut() const; - void setActivityShortcut(const QKeySequence &activityShortcut); - -public Q_SLOTS: - void save(); - void create(); - void saveChanges(const QString &activityId); - -protected: - void showEvent(QShowEvent *event) Q_DECL_OVERRIDE; - -private: - D_PTR; - -}; - -#endif // DIALOG_H - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/plugin.cpp kactivities-kf5-5.44.0/src/workspace/settings/imports/plugin.cpp --- kactivities-kf5-5.18.0/src/workspace/settings/imports/plugin.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/plugin.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "plugin.h" - -#include - -#include "activitysettings.h" - -#include - -ActivitiesSettingsPlugin::ActivitiesSettingsPlugin(QObject *parent) - : QQmlExtensionPlugin(parent) -{ -} - -static QJSValue settingsSingleton(QQmlEngine *engine, QJSEngine *scriptEngine) -{ - Q_UNUSED(engine) - - auto result = new ActivitySettings(); - return scriptEngine->newQObject(result); -} - -void ActivitiesSettingsPlugin::registerTypes(const char *uri) -{ - Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.activities.settings")); - - qmlRegisterSingletonType("org.kde.activities.settings", 0, 1, - "ActivitySettings", - settingsSingleton); -} - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/plugin.h kactivities-kf5-5.44.0/src/workspace/settings/imports/plugin.h --- kactivities-kf5-5.18.0/src/workspace/settings/imports/plugin.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/plugin.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2011, 2012, 2013, 2014, 2015 by Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef KACTIVITIES_IMPORTS_PLUGIN_H -#define KACTIVITIES_IMPORTS_PLUGIN_H - -#include - -class ActivitiesSettingsPlugin : public QQmlExtensionPlugin { - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.kde.activities.settings") - -public: - ActivitiesSettingsPlugin(QObject *parent = Q_NULLPTR); - void registerTypes(const char *uri) Q_DECL_OVERRIDE; -}; - -#endif // KACTIVITIES_IMPORTS_PLUGIN_H - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml --- kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/components/DialogButtons.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ -/* vim:set foldmethod=marker: - * - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.0 -import QtQuick.Controls 1.0 as QtControls - -Row { - id: root - - property alias acceptText: buttonAccept.text - property alias acceptIcon: buttonAccept.iconName - - property alias cancelText: buttonCancel.text - property alias cancelIcon: buttonCancel.iconName - - signal accepted() - signal canceled() - - spacing: units.smallSpacing - - height : buttonAccept.height //childrenRect.height - width : buttonAccept.width + spacing + buttonCancel.width - - QtControls.Button { - id: buttonAccept - - text: i18n("Apply") - iconName: "list-add" - - onClicked: root.accepted() - } - - QtControls.Button { - id: buttonCancel - - text: i18n("Cancel") - iconName: "dialog-cancel" - - onClicked: root.canceled() - } -} diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/components/IconChooser.qml kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/components/IconChooser.qml --- kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/components/IconChooser.qml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/components/IconChooser.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -/* vim:set foldmethod=marker: - * - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.0 -import QtQuick.Controls 1.0 as QtControls -import org.kde.kquickcontrols 2.0 as KQuickControls -import org.kde.kquickcontrolsaddons 2.0 as KQuickControls - -QtControls.Button { - id: root - - width: height - height: units.iconSizes.medium - - iconName: "preferences-activities" - - KQuickControls.IconDialog { - id: iconDialog - onIconNameChanged: root.iconName = iconName - } - - onClicked: { - iconDialog.open(); - } -} diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/components/LabeledTextField.qml kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/components/LabeledTextField.qml --- kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/components/LabeledTextField.qml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/components/LabeledTextField.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ -/* vim:set foldmethod=marker: - * - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 -import QtQuick.Controls 1.0 as QtControls - -import org.kde.plasma.core 2.0 as PlasmaCore - -Item { - property alias text : textField.text - property alias label : label.text - - property alias labelWidth : label.width - property alias desiredLabelWidth : label.contentWidth - - height : textField.height - width : parent.width - - QtControls.Label { - id: label - - horizontalAlignment: Text.AlignRight - - anchors { - left: parent.left - verticalCenter: textField.verticalCenter - } - } - - QtControls.TextField { - id: textField - - anchors { - left : label.right - right : parent.right - - leftMargin : units.smallSpacing - } - } -} diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml --- kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/components/ShortcutChooser.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -/* vim:set foldmethod=marker: - * - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 -import QtQuick.Controls 1.0 as QtControls - -import org.kde.plasma.core 2.0 as PlasmaCore - -import org.kde.kquickcontrols 2.0 as KQuickControls -import org.kde.kquickcontrolsaddons 2.0 as KQuickControls - -Row { - spacing: units.smallSpacing - - property alias keySequence: buttonKeyShorcut.keySequence - - QtControls.Label { - anchors.verticalCenter: parent.verticalCenter - text: i18n("Shortcut for switching to this activity:") - } - - KQuickControls.KeySequenceItem { - id: buttonKeyShorcut - } -} diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/GeneralTab.qml kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/GeneralTab.qml --- kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/GeneralTab.qml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/GeneralTab.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,164 +0,0 @@ -/* vim:set foldmethod=marker: - * - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 -import QtQuick.Controls 1.0 as QtControls - -import org.kde.plasma.core 2.0 as PlasmaCore - -import "./components" as Local - -Item { - id: root - - function setFocus() { - activityName.forceActiveFocus(); - console.log("GeneralTab: Set focus called"); - } - - property string activityId: "" - - property alias activityName : activityName.text - property alias activityDescription : activityDescription.text - property alias activityIcon : buttonIcon.iconName - property alias activityWallpaper : imageWallpaper.source - - height : content.childrenRect.height + 4 * units.smallSpacing - width : content.childrenRect.width + 4 * units.smallSpacing - - Column { - id: content - - anchors { - fill: parent - margins: 2 * units.smallSpacing - } - - spacing: units.smallSpacing - - QtControls.Label { - font.bold: true - text: i18n("Activity information") - } - - property int labelWidth : 2 * units.largeSpacing + - Math.max(activityName.desiredLabelWidth, activityDescription.desiredLabelWidth) - - Local.LabeledTextField { - id: activityName - label: i18n("Name") - - labelWidth: content.labelWidth - } - - Local.LabeledTextField { - id: activityDescription - label: i18n("Description") - - labelWidth: content.labelWidth - } - - Item { - width: parent.width - height: units.smallSpacing - } - - Row { - height : units.iconSizes.large * 3 - width : childrenRect.width - spacing : units.largeSpacing - - Item { - id: panelWallpaper - - visible: false - - height: parent.height - width: buttonChangeWallpaper.width + imageWallpaper.width + units.smallSpacing - - QtControls.Label { - id: labelWallpaper - font.bold: true - text: i18n("Wallpaper") - } - - QtControls.Button { - id: buttonChangeWallpaper - width: content.labelWidth - text: i18n("Change...") - - anchors { - verticalCenter: imageWallpaper.verticalCenter - } - } - - Image { - id: imageWallpaper - source: "" - - width: height / 3 * 4 - - anchors { - top: labelWallpaper.bottom - bottom: parent.bottom - left: buttonChangeWallpaper.right - - leftMargin: units.smallSpacing - } - - } - } - - Item { - id: panelIcon - - height : parent.height - width : parent.height - - QtControls.Label { - id: labelIcon - font.bold: true - text: i18n("Icon") - } - - Item { - anchors { - top: labelIcon.bottom - bottom: parent.bottom - left: parent.left - right: parent.right - } - - Local.IconChooser { - id: buttonIcon - - width: height - height: 2 * units.iconSizes.large - - anchors { - centerIn: parent - } - } - } - } - } - } -} - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/OtherTab.qml kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/OtherTab.qml --- kactivities-kf5-5.18.0/src/workspace/settings/imports/qml/activityDialog/OtherTab.qml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/qml/activityDialog/OtherTab.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -/* vim:set foldmethod=marker: - * - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 -import QtQuick.Controls 1.0 as QtControls - -import "./components" as Local - -Item { - id: root - - property alias activityIsPrivate : checkPrivate.checked - property alias activityShortcut : panelShortcut.keySequence - - height : content.childrenRect.height + 4 * units.smallSpacing - width : content.childrenRect.width + 4 * units.smallSpacing - - Column { - anchors { - fill: parent - margins: 2 * units.smallSpacing - } - - QtControls.CheckBox { - id: checkPrivate - - text: "Private - do not track usage for this activity" - - width: parent.width - } - - Local.ShortcutChooser { - id: panelShortcut - - width: parent.width - } - } -} diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/imports/qmldir kactivities-kf5-5.44.0/src/workspace/settings/imports/qmldir --- kactivities-kf5-5.18.0/src/workspace/settings/imports/qmldir 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/imports/qmldir 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -module org.kde.activities.settings -plugin kactivitiessettingsplugin - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/kactivities-kcm-features.h.cmake kactivities-kf5-5.44.0/src/workspace/settings/kactivities-kcm-features.h.cmake --- kactivities-kf5-5.18.0/src/workspace/settings/kactivities-kcm-features.h.cmake 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/kactivities-kcm-features.h.cmake 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -#ifndef KCM_CONFIG_FEATURES_H_ -#define KCM_CONFIG_FEATURES_H_ - -#cmakedefine KAMD_KCM_DATADIR "@KAMD_KCM_DATADIR@" - -#endif diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/kcm_activities.cpp kactivities-kf5-5.44.0/src/workspace/settings/kcm_activities.cpp --- kactivities-kf5-5.18.0/src/workspace/settings/kcm_activities.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/kcm_activities.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "MainConfigurationWidget.h" diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/kcm_activities.desktop kactivities-kf5-5.44.0/src/workspace/settings/kcm_activities.desktop --- kactivities-kf5-5.18.0/src/workspace/settings/kcm_activities.desktop 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/kcm_activities.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ -[Desktop Entry] -Icon=preferences-activities -Type=Service -ServiceTypes=KCModule - -X-KDE-ModuleType=Library -X-KDE-Library=kcm_activities -X-KDE-FactoryName=kcm_activities -X-KDE-ParentApp=kcontrol -X-KDE-System-Settings-Parent-Category=desktopbehavior -X-KDE-Weight=80 - -Name=Activities -Name[ar]=الأنشطة -Name[ast]=Actividaes -Name[bs]=Aktivnosti -Name[ca]=Activitats -Name[ca@valencia]=Activitats -Name[cs]=Aktivity -Name[da]=Aktiviteter -Name[de]=Aktivitäten -Name[el]=Δραστηριότητες -Name[en_GB]=Activities -Name[es]=Actividades -Name[et]=Tegevused -Name[fi]=Aktiviteetit -Name[fr]=Activités -Name[ga]=Gníomhaíochtaí -Name[gd]=Gnìomhachdan -Name[gl]=Actividades -Name[he]=פעילויות -Name[hu]=Aktivitások -Name[ia]=Activitates -Name[is]=Virkni -Name[it]=Attività -Name[kk]=Белсенділіктер -Name[km]=​សកម្មភាព -Name[ko]=활동 -Name[lt]=Veiklos -Name[mr]=कार्यपध्दती -Name[nb]=Aktiviteter -Name[nds]=Aktiviteten -Name[nl]=Activiteiten -Name[nn]=Aktivitetar -Name[pa]=ਐਕਟਵਿਟੀ -Name[pl]=Działania -Name[pt]=Actividades -Name[pt_BR]=Atividades -Name[ro]=Activități -Name[ru]=Комнаты -Name[sk]=Aktivity -Name[sl]=Dejavnosti -Name[sr]=Активности -Name[sr@ijekavian]=Активности -Name[sr@ijekavianlatin]=Aktivnosti -Name[sr@latin]=Aktivnosti -Name[sv]=Aktiviteter -Name[tg]=Фаъолият -Name[tr]=Etkinlikler -Name[ug]=پائالىيەتلەر -Name[uk]=Простори дій -Name[x-test]=xxActivitiesxx -Name[zh_CN]=活动 -Name[zh_TW]=活動 -Comment=Activities help you to focus on a specific task -Comment[ast]=Actividaes que t'ayuden a enfocate nuna xera específica -Comment[ca]=Les activitats ajuden a centrar-vos en una tasca específica -Comment[ca@valencia]=Les activitats ajuden a centrar-vos en una tasca específica -Comment[da]=Aktiviteter hjælper dig med at fokusere på en specifik opgave -Comment[de]=Aktivitäten helfen Ihnen dabei, sich auf eine Aufgabe zu konzentrieren -Comment[el]=Οι δραστηριότητες σας βοηθούν να εστιάσετε σε μια συγκεκριμένη εργασία -Comment[en_GB]=Activities help you to focus on a specific task -Comment[es]=Las actividades le ayudan a concentrarse en una tarea específica -Comment[fi]=Aktiviteetit auttavat sinua keskittymään yhteen asiaan -Comment[fr]=Les activités vous aident à vous concentrer sur une tâche spécifique -Comment[gl]=As actividades axudan a centrarse en tarefas concretas. -Comment[it]=Le attività ti aiutano a concentrarti su un compito particolare -Comment[ko]=활동을 사용하면 개별 작업에 집중할 수 있습니다 -Comment[nl]=Activiteiten helpen u te focussen op een specifieke taak -Comment[nn]=Aktivitetar hjelper deg å fokusera på oppgåver -Comment[pl]=Działania umożliwiają ci skupienie się na danym zadaniu -Comment[pt]=As actividades ajudam-no a focar-se numa tarefa específica -Comment[pt_BR]=Ajuda-o a se concentrar em uma tarefa específica -Comment[sk]=Aktivity vám pomôžu sústrediť sa na určitú úlohu -Comment[sl]=Dejavnosti vam pomagajo, da se osredotočite na določeno opravilo -Comment[sr]=Активности вам помажу да се усредсредите на одређени задатак -Comment[sr@ijekavian]=Активности вам помажу да се усредсредите на одређени задатак -Comment[sr@ijekavianlatin]=Aktivnosti vam pomažu da se usredsredite na određeni zadatak -Comment[sr@latin]=Aktivnosti vam pomažu da se usredsredite na određeni zadatak -Comment[sv]=Aktiviteter hjälper dig att fokusera på en viss uppgift -Comment[uk]=Простори дій допоможуть вам сконцентруватися на виконанні певного завдання -Comment[x-test]=xxActivities help you to focus on a specific taskxx -Comment[zh_CN]=活动可以帮助您专注于单一任务 - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/MainConfigurationWidget.cpp kactivities-kf5-5.44.0/src/workspace/settings/MainConfigurationWidget.cpp --- kactivities-kf5-5.18.0/src/workspace/settings/MainConfigurationWidget.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/MainConfigurationWidget.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "MainConfigurationWidget.h" - -#include - -#include "ui_MainConfigurationWidgetBase.h" - -#include "ActivitiesTab.h" -#include "SwitchingTab.h" -#include "PrivacyTab.h" - -K_PLUGIN_FACTORY(ActivitiesKCMFactory, registerPlugin();) - -class MainConfigurationWidget::Private : public Ui::MainConfigurationWidgetBase { -public: - ActivitiesTab * tabActivities; - SwitchingTab * tabSwitching; - PrivacyTab * tabPrivacy; -}; - -MainConfigurationWidget::MainConfigurationWidget(QWidget *parent, QVariantList args) - : KCModule(parent, args) - , d() -{ - d->setupUi(this); - - d->tabs->insertTab(0, d->tabActivities = new ActivitiesTab(d->tabs), i18n("Activities")); - d->tabs->insertTab(1, d->tabSwitching = new SwitchingTab(d->tabs), i18n("Switching")); - d->tabs->insertTab(2, d->tabPrivacy = new PrivacyTab(d->tabs), i18n("Privacy")); - - connect(d->tabActivities, SIGNAL(changed()), this, SLOT(changed())); - connect(d->tabSwitching, SIGNAL(changed()), this, SLOT(changed())); - connect(d->tabPrivacy, SIGNAL(changed()), this, SLOT(changed())); -} - -MainConfigurationWidget::~MainConfigurationWidget() -{ -} - -void MainConfigurationWidget::defaults() -{ - d->tabActivities->defaults(); - d->tabPrivacy->defaults(); - d->tabSwitching->defaults(); -} - -void MainConfigurationWidget::load() -{ - d->tabActivities->load(); - d->tabPrivacy->load(); - d->tabSwitching->load(); -} - -void MainConfigurationWidget::save() -{ - d->tabActivities->save(); - d->tabPrivacy->save(); - d->tabSwitching->save(); -} - -#include "MainConfigurationWidget.moc" diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/MainConfigurationWidget.h kactivities-kf5-5.44.0/src/workspace/settings/MainConfigurationWidget.h --- kactivities-kf5-5.18.0/src/workspace/settings/MainConfigurationWidget.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/MainConfigurationWidget.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef MAIN_CONFIGURATION_WIDGET_H -#define MAIN_CONFIGURATION_WIDGET_H - -#include -#include -#include -#include - -#include - -/** - * MainConfigurationWidget - */ -class MainConfigurationWidget : public KCModule { - Q_OBJECT -public: - MainConfigurationWidget(QWidget *parent, QVariantList args); - ~MainConfigurationWidget(); - -public Q_SLOTS: - void defaults() Q_DECL_OVERRIDE; - void load() Q_DECL_OVERRIDE; - void save() Q_DECL_OVERRIDE; - -private: - D_PTR; -}; - -#endif // MAIN_CONFIGURATION_WIDGET_H diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/PrivacyTab.cpp kactivities-kf5-5.44.0/src/workspace/settings/PrivacyTab.cpp --- kactivities-kf5-5.18.0/src/workspace/settings/PrivacyTab.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/PrivacyTab.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,227 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "PrivacyTab.h" - -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include "ui_PrivacyTabBase.h" -#include "BlacklistedApplicationsModel.h" -#include "definitions.h" - -#include - -#include "kactivities-features.h" -#include "kactivities-kcm-features.h" - -#include "common/dbus/common.h" - -#include "utils.h" - -class PrivacyTab::Private : public Ui::PrivacyTabBase { -public: - KSharedConfig::Ptr mainConfig; - KSharedConfig::Ptr pluginConfig; - - BlacklistedApplicationsModel *blacklistedApplicationsModel; - QObject *viewBlacklistedApplicationsRoot; - std::unique_ptr viewBlacklistedApplications; - - Private() - : viewBlacklistedApplicationsRoot(Q_NULLPTR) - , viewBlacklistedApplications(Q_NULLPTR) - { - } -}; - -PrivacyTab::PrivacyTab(QWidget *parent) - : QWidget(parent) - , d() -{ - d->setupUi(this); - - d->mainConfig = KSharedConfig::openConfig("kactivitymanagerdrc"); - d->pluginConfig = KSharedConfig::openConfig("kactivitymanagerd-pluginsrc"); - - // Keep history initialization - - d->spinKeepHistory->setRange(0, INT_MAX); - d->spinKeepHistory->setSpecialValueText(i18nc("unlimited number of months", "forever")); - - connect(d->spinKeepHistory, SIGNAL(valueChanged(int)), - this, SLOT(spinKeepHistoryValueChanged(int))); - spinKeepHistoryValueChanged(0); - - // Clear recent history button - - auto menu = new QMenu(this); - - connect(menu->addAction(i18n("Forget the last hour")), &QAction::triggered, - this, &PrivacyTab::forgetLastHour); - connect(menu->addAction(i18n("Forget the last two hours")), &QAction::triggered, - this, &PrivacyTab::forgetTwoHours); - connect(menu->addAction(i18n("Forget a day")), &QAction::triggered, - this, &PrivacyTab::forgetDay); - connect(menu->addAction(i18n("Forget everything")), &QAction::triggered, - this, &PrivacyTab::forgetAll); - - d->buttonClearRecentHistory->setMenu(menu); - - // Blacklist applications - - d->blacklistedApplicationsModel = new BlacklistedApplicationsModel(this); - - new QGridLayout(d->viewBlacklistedApplicationsContainer); - - d->viewBlacklistedApplications - = createView(d->viewBlacklistedApplicationsContainer); - d->viewBlacklistedApplications->rootContext()->setContextProperty( - "applicationModel", d->blacklistedApplicationsModel); - setViewSource(d->viewBlacklistedApplications, - "/qml/privacyTab/BlacklistApplicationView.qml"); - - // React to changes - - connect(d->radioRememberAllApplications, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(d->radioDontRememberApplications, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(d->spinKeepHistory, SIGNAL(valueChanged(int)), this, SIGNAL(changed())); - connect(d->blacklistedApplicationsModel, SIGNAL(changed()), this, SIGNAL(changed())); - - connect(d->radioRememberSpecificApplications, SIGNAL(toggled(bool)), - d->blacklistedApplicationsModel, SLOT(setEnabled(bool))); - - connect(d->radioRememberSpecificApplications, SIGNAL(toggled(bool)), - d->viewBlacklistedApplicationsContainer, SLOT(setEnabled(bool))); - - connect(d->radioRememberSpecificApplications, SIGNAL(toggled(bool)), - d->checkBlacklistAllNotOnList, SLOT(setEnabled(bool))); - - defaults(); - - d->checkBlacklistAllNotOnList->setEnabled(false); - d->blacklistedApplicationsModel->setEnabled(false); - d->viewBlacklistedApplicationsContainer->setEnabled(false); -} - -PrivacyTab::~PrivacyTab() -{ -} - -void PrivacyTab::defaults() -{ - d->radioRememberAllApplications->click(); - d->spinKeepHistory->setValue(0); - d->blacklistedApplicationsModel->defaults(); -} - -void PrivacyTab::load() -{ - d->blacklistedApplicationsModel->load(); - - const auto statisticsConfig - = d->pluginConfig->group(SQLITE_PLUGIN_CONFIG_KEY); - - const auto whatToRemember = (WhatToRemember)statisticsConfig.readEntry( - "what-to-remember", (int)AllApplications); - - d->radioRememberAllApplications->setChecked(whatToRemember == AllApplications); - d->radioRememberSpecificApplications->setChecked(whatToRemember == SpecificApplications); - d->radioDontRememberApplications->setChecked(whatToRemember == NoApplications); - - d->spinKeepHistory->setValue( - statisticsConfig.readEntry("keep-history-for", 0)); - d->checkBlacklistAllNotOnList->setChecked( - statisticsConfig.readEntry("blocked-by-default", false)); -} - -void PrivacyTab::save() -{ - d->blacklistedApplicationsModel->save(); - - auto statisticsConfig = d->pluginConfig->group(SQLITE_PLUGIN_CONFIG_KEY); - - const auto whatToRemember = - d->radioRememberSpecificApplications->isChecked() ? SpecificApplications : - d->radioDontRememberApplications->isChecked() ? NoApplications : - /* otherwise */ AllApplications; - - statisticsConfig.writeEntry("what-to-remember", (int)whatToRemember); - statisticsConfig.writeEntry("keep-history-for", d->spinKeepHistory->value()); - statisticsConfig.writeEntry("blocked-by-default", d->checkBlacklistAllNotOnList->isChecked()); - - statisticsConfig.sync(); - - auto pluginListConfig = d->mainConfig->group("Plugins"); - - pluginListConfig.writeEntry("org.kde.ActivityManager.ResourceScoringEnabled", - whatToRemember != NoApplications); - - pluginListConfig.sync(); -} - -void PrivacyTab::forget(int count, const QString &what) -{ - KAMD_DBUS_DECL_INTERFACE(rankingsservice, Resources/Scoring, - ResourcesScoring); - - rankingsservice.asyncCall("DeleteRecentStats", QString(), count, what); -} - -void PrivacyTab::forgetLastHour() -{ - forget(1, "h"); -} - -void PrivacyTab::forgetTwoHours() -{ - forget(2, "h"); -} - -void PrivacyTab::forgetDay() -{ - forget(1, "d"); -} - -void PrivacyTab::forgetAll() -{ - forget(0, "everything"); -} - -void PrivacyTab::spinKeepHistoryValueChanged(int value) -{ - static auto months = ki18ncp("unit of time. months to keep the history", - " month", " months"); - - if (value) { - d->spinKeepHistory->setPrefix( - i18nc("for in 'keep history for 5 months'", "for ")); - d->spinKeepHistory->setSuffix(months.subs(value).toString()); - } -} - -#include "PrivacyTab.moc" diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/PrivacyTab.h kactivities-kf5-5.44.0/src/workspace/settings/PrivacyTab.h --- kactivities-kf5-5.18.0/src/workspace/settings/PrivacyTab.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/PrivacyTab.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef PRIVACY_TAB_H -#define PRIVACY_TAB_H - -#include - -#include - -/** - * PrivacyTab - */ -class PrivacyTab : public QWidget { - Q_OBJECT -public: - PrivacyTab(QWidget *parent); - ~PrivacyTab(); - -public Q_SLOTS: - void defaults(); - void load(); - void save(); - -private Q_SLOTS: - void forget(int count, const QString &what); - void forgetLastHour(); - void forgetTwoHours(); - void forgetDay(); - void forgetAll(); - - void spinKeepHistoryValueChanged(int value); - -Q_SIGNALS: - void changed(); - -private: - enum WhatToRemember { - AllApplications = 0, - SpecificApplications = 1, - NoApplications = 2 - }; - - D_PTR; -}; - -#endif // PRIVACY_TAB_H diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/qml/activitiesTab/ActivitiesView.qml kactivities-kf5-5.44.0/src/workspace/settings/qml/activitiesTab/ActivitiesView.qml --- kactivities-kf5-5.18.0/src/workspace/settings/qml/activitiesTab/ActivitiesView.qml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/qml/activitiesTab/ActivitiesView.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,195 +0,0 @@ -/* vim:set foldenable foldmethod=marker: - * - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.0 -import org.kde.kquickcontrolsaddons 2.0 -import QtQuick.Controls 1.0 as QtControls - -import org.kde.activities 0.1 as Activities -import org.kde.activities.settings 0.1 -import org.kde.plasma.core 2.0 as PlasmaCore - -Item { - id: root - - anchors.fill: parent - - QtControls.Button { - id: buttonCreateActivity - - text: i18n("Create activity...") - iconName: "list-add" - - anchors { - top: parent.top - left: parent.left - } - - onClicked: ActivitySettings.newActivity(); - - enabled: !dialogCreateActivityLoader.itemVisible - } - - Loader { - id: dialogCreateActivityLoader - - property bool itemVisible: status == Loader.Ready && item.visible - - z: 1 - - anchors { - top: buttonCreateActivity.bottom - left: buttonCreateActivity.left - } - } - - QtControls.ScrollView { - anchors { - top: buttonCreateActivity.bottom - topMargin: units.smallSpacing - left: parent.left - right: parent.right - bottom: parent.bottom - } - - enabled: !dialogCreateActivityLoader.itemVisible - - ListView { - width: parent.width - // anchors.fill: parent - - model: Activities.ActivityModel { - id: kactivities - } - - SystemPalette { - id: palette - colorGroup: SystemPalette.Active - } - - /////////////////////////////////////////////////////////////////// - delegate: Rectangle { - width: parent.width - - Behavior on height { PropertyAnimation { duration: units.shortDuration } } - height: icon.height + units.smallSpacing * 2 + - (dialogConfigureLoader.itemVisible ? dialogConfigureLoader.height : 0) + - (dialogDeleteLoader.itemVisible ? dialogDeleteLoader.height : 0) - - color: (model.index % 2 == 0) ? palette.base : palette.alternateBase - - Item { - id: header - - height: units.iconSizes.medium - - anchors { - left: parent.left - right: parent.right - top: parent.top - } - - QIconItem { - id: icon - icon: model.icon - - width: height - height: parent.height - - anchors { - left: parent.left - top: parent.top - - topMargin: units.smallSpacing - bottomMargin: units.smallSpacing - } - } - - QtControls.Label { - text: model.name - - anchors { - left: icon.right - right: buttons.left - leftMargin: units.largeSpacing - verticalCenter: icon.verticalCenter - } - } - - Row { - id: buttons - - spacing: units.smallSpacing - - anchors { - right: parent.right - - rightMargin: units.smallSpacing - verticalCenter: parent.verticalCenter - } - - QtControls.Button { - id: buttonConfigure - - iconName: "configure" - - onClicked: ActivitySettings.configureActivity(model.id); - } - - QtControls.Button { - id: buttonDelete - - iconName: "edit-delete" - - onClicked: ActivitySettings.deleteActivity(model.id); - } - - visible: !dialogDeleteLoader.itemVisible - } - - visible: !dialogConfigureLoader.itemVisible - } - - Loader { - id: dialogConfigureLoader - - property bool itemVisible: status == Loader.Ready && item.visible - - anchors { - left: parent.left - top: parent.top - } - } - - Loader { - id: dialogDeleteLoader - - property bool itemVisible: status == Loader.Ready && item.visible - - anchors { - left: parent.left - top: header.bottom - } - } - } - /////////////////////////////////////////////////////////////////// - } - } -} diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/qml/activitiesTab/main.qml kactivities-kf5-5.44.0/src/workspace/settings/qml/activitiesTab/main.qml --- kactivities-kf5-5.18.0/src/workspace/settings/qml/activitiesTab/main.qml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/qml/activitiesTab/main.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -/* vim:set foldmethod=marker: - * - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 - -ActivitiesView { - anchors.fill: parent - -} - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/qml/privacyTab/BlacklistApplicationView.qml kactivities-kf5-5.44.0/src/workspace/settings/qml/privacyTab/BlacklistApplicationView.qml --- kactivities-kf5-5.18.0/src/workspace/settings/qml/privacyTab/BlacklistApplicationView.qml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/qml/privacyTab/BlacklistApplicationView.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ -/* vim:set foldenable foldmethod=marker: - * - * Copyright (C) 2012 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.0 -import org.kde.kquickcontrolsaddons 2.0 -import QtQuick.Controls 1.0 as QtControls - -QtControls.ScrollView { - anchors.fill: parent - - Flow { - id: main - - SystemPalette { - id: colors - } - - width: parent.parent.width - - property int minimumHeight: 100 - - spacing: 16 - - height: Math.max(childrenRect.height, minimumHeight) - - opacity: applicationModel.enabled ? 1 : .3 - Behavior on opacity { NumberAnimation { duration: 150 } } - - Repeater { - model: applicationModel - Column { - id: item - - property bool blocked: model.blocked - - Item { - id: mainIcon - - width : 64 + 20 - height : 64 + 20 - - QIconItem { - id: icon - icon: model.icon - - anchors.fill : parent - anchors.margins : 10 - - opacity: item.blocked ? 0.5 : 1.0 - Behavior on opacity { NumberAnimation { duration: 150 } } - } - - QIconItem { - id: iconNo - icon: "dialog-cancel" - - anchors { - right : parent.right - bottom : parent.bottom - } - - width : 48 - height : 48 - opacity : (1 - icon.opacity) * 2 - } - - MouseArea { - onClicked: applicationModel.toggleApplicationBlocked(model.index) - anchors.fill: parent - } - } - - Text { - elide : Text.ElideRight - width : mainIcon.width - - text : model.title - opacity : icon.opacity - color : colors.windowText - - anchors.margins : 10 - anchors.horizontalCenter : parent.horizontalCenter - horizontalAlignment : Text.AlignHCenter - } - } - } - } - -} - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/SwitchingTab.cpp kactivities-kf5-5.44.0/src/workspace/settings/SwitchingTab.cpp --- kactivities-kf5-5.18.0/src/workspace/settings/SwitchingTab.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/SwitchingTab.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,130 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "SwitchingTab.h" - -#include -#include -#include -#include - -#include "ui_SwitchingTabBase.h" - -#include -#include - -class SwitchingTab::Private : public Ui::SwitchingTabBase { -public: - KSharedConfig::Ptr mainConfig; - - KActionCollection *mainActionCollection; - KActivities::Consumer activities; - - void createAction(const QString &actionName, const QString &actionText, - const QList &sequence) - { - auto action = mainActionCollection->addAction(actionName); - action->setProperty("isConfigurationAction", true); - action->setText(actionText); - KGlobalAccel::self()->setShortcut(action, sequence); - } - - Private() - : mainActionCollection(Q_NULLPTR) - { - } -}; - -SwitchingTab::SwitchingTab(QWidget *parent) - : QWidget(parent) - , d() -{ - d->setupUi(this); - - d->mainConfig = KSharedConfig::openConfig("kactivitymanagerdrc"); - - // Shortcut config. The shortcut belongs to the component "plasmashell"! - d->mainActionCollection = new KActionCollection(this, QStringLiteral("plasmashell")); - d->mainActionCollection->setComponentDisplayName(i18n("Activity switching")); - d->mainActionCollection->setConfigGlobal(true); - - d->createAction("next activity", - i18nc("@action", "Walk through activities"), - { Qt::META + Qt::Key_Tab }); - d->createAction("previous activity", - i18nc("@action", "Walk through activities (Reverse)"), - { Qt::META + Qt::SHIFT + Qt::Key_Tab } ); - - d->scActivities->setActionTypes(KShortcutsEditor::GlobalAction); - d->scActivities->addCollection(d->mainActionCollection); - - connect(d->scActivities, &KShortcutsEditor::keyChange, - this, [this] { changed(); }); - connect(d->checkRememberVirtualDesktop, SIGNAL(toggled(bool)), - this, SIGNAL(changed())); - - defaults(); -} - -SwitchingTab::~SwitchingTab() -{ -} - -void SwitchingTab::shortcutChanged(const QKeySequence &sequence) -{ - QString actionName = sender() - ? sender()->property("shortcutAction").toString() - : QString(); - - if (actionName.isEmpty()) return; - - auto action = d->mainActionCollection->action(actionName); - - KGlobalAccel::self()->setShortcut(action, { sequence }, - KGlobalAccel::NoAutoloading); - d->mainActionCollection->writeSettings(); - - emit changed(); -} - -void SwitchingTab::defaults() -{ - d->checkRememberVirtualDesktop->setChecked(false); -} - -void SwitchingTab::load() -{ - auto pluginListConfig = d->mainConfig->group("Plugins"); - - d->checkRememberVirtualDesktop->setChecked(pluginListConfig.readEntry( - "org.kde.ActivityManager.VirtualDesktopSwitchEnabled", false)); -} - -void SwitchingTab::save() -{ - auto pluginListConfig = d->mainConfig->group("Plugins"); - - pluginListConfig.writeEntry( - "org.kde.ActivityManager.VirtualDesktopSwitchEnabled", - d->checkRememberVirtualDesktop->isChecked()); - - pluginListConfig.sync(); -} - -#include "SwitchingTab.moc" diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/SwitchingTab.h kactivities-kf5-5.44.0/src/workspace/settings/SwitchingTab.h --- kactivities-kf5-5.18.0/src/workspace/settings/SwitchingTab.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/SwitchingTab.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2012, 2013, 2014, 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef SWITCHING_TAB_H -#define SWITCHING_TAB_H - -#include - -#include - -class QKeySequence; - -/** - * SwitchingTab - */ -class SwitchingTab : public QWidget { - Q_OBJECT -public: - SwitchingTab(QWidget *parent); - ~SwitchingTab(); - -public Q_SLOTS: - void defaults(); - void load(); - void save(); - -private Q_SLOTS: - void shortcutChanged(const QKeySequence &sequence); - -Q_SIGNALS: - void changed(); - -private: - D_PTR; -}; - -#endif // SWITCHING_TAB_H diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/ui/MainConfigurationWidgetBase.ui kactivities-kf5-5.44.0/src/workspace/settings/ui/MainConfigurationWidgetBase.ui --- kactivities-kf5-5.18.0/src/workspace/settings/ui/MainConfigurationWidgetBase.ui 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/ui/MainConfigurationWidgetBase.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,28 +0,0 @@ - - - MainConfigurationWidgetBase - - - - 0 - 0 - 760 - 613 - - - - - - - -1 - - - - - - - - - changed() - - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/ui/PrivacyTabBase.ui kactivities-kf5-5.44.0/src/workspace/settings/ui/PrivacyTabBase.ui --- kactivities-kf5-5.18.0/src/workspace/settings/ui/PrivacyTabBase.ui 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/ui/PrivacyTabBase.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,123 +0,0 @@ - - - PrivacyTabBase - - - - 0 - 0 - 631 - 479 - - - - Form - - - - - - Remember opened documents: - - - - - - - - - - - For a&ll applications - - - true - - - - - - - &Do not remember - - - - - - - O&nly for specific applications - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Keep history - - - - - - - - - - Qt::Horizontal - - - QSizePolicy::Minimum - - - - 40 - 20 - - - - - - - - Clear recent history - - - - - - - - - - 0 - 0 - - - - - - - - Blacklist all applications not on this list - - - - - - - - diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/ui/SwitchingTabBase.ui kactivities-kf5-5.44.0/src/workspace/settings/ui/SwitchingTabBase.ui --- kactivities-kf5-5.18.0/src/workspace/settings/ui/SwitchingTabBase.ui 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/ui/SwitchingTabBase.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ - - - SwitchingTabBase - - - - 0 - 0 - 666 - 558 - - - - Form - - - - - - General - - - - - - Remember the current virtual desktop for each activity (needs restart) - - - - - - - - - - Shortcuts - - - - - - - - - - - - Qt::Vertical - - - - 20 - 195 - - - - - - - - - KShortcutsEditor - QWidget -
kshortcutseditor.h
-
-
- - -
diff -Nru kactivities-kf5-5.18.0/src/workspace/settings/utils.h kactivities-kf5-5.44.0/src/workspace/settings/utils.h --- kactivities-kf5-5.18.0/src/workspace/settings/utils.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/src/workspace/settings/utils.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef UTILS_H -#define UTILS_H - -#include - -inline std::unique_ptr createView(QWidget *parent) -{ - auto view = new QQuickView(); - view->setColor(QGuiApplication::palette().window().color()); - view->setResizeMode(QQuickView::SizeRootObjectToView); - - auto container = QWidget::createWindowContainer(view, parent); - container->setFocusPolicy(Qt::TabFocus); - - parent->layout()->addWidget(container); - - return std::unique_ptr(view); -} - -template -inline bool setViewSource(View &view, const QString &file) -{ - QString sourceFile = QStringLiteral(KAMD_KCM_DATADIR) + file; - - if (QFile::exists(sourceFile)) { - view->setSource(sourceFile); - - return true; - - } else { - return false; - } - -} - -#endif // UTILS_H - diff -Nru kactivities-kf5-5.18.0/tests/activities-model/CMakeLists.txt kactivities-kf5-5.44.0/tests/activities-model/CMakeLists.txt --- kactivities-kf5-5.18.0/tests/activities-model/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/activities-model/CMakeLists.txt 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,41 @@ +# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: +project (KActivitiesModelTestApp) + +find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Core Gui Widgets) +find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Core Gui Widgets) +find_package (KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS WindowSystem) + +include_directories ( + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/ + ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/autotests/ + ) + +set ( + KActivitiesModelTestApp_SRCS + window.cpp + main.cpp + ) + +qt5_wrap_ui( + KActivitiesModelTestApp_SRCS + window.ui + ) + +if (NOT WIN32) + + add_executable ( + KActivitiesModelTestApp + ${KActivitiesModelTestApp_SRCS} + ) + + target_link_libraries ( + KActivitiesModelTestApp + Qt5::Core + Qt5::Gui + Qt5::Widgets + Qt5::DBus + KF5::Activities + KF5::WindowSystem + ) + +endif () diff -Nru kactivities-kf5-5.18.0/tests/activities-model/main.cpp kactivities-kf5-5.44.0/tests/activities-model/main.cpp --- kactivities-kf5-5.18.0/tests/activities-model/main.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/activities-model/main.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2015 Ivan Cukic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * or (at your option) any later version, as published by the Free + * Software Foundation + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include +#include "window.h" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + Window w; + w.show(); + + return app.exec(); +} + diff -Nru kactivities-kf5-5.18.0/tests/activities-model/window.cpp kactivities-kf5-5.44.0/tests/activities-model/window.cpp --- kactivities-kf5-5.18.0/tests/activities-model/window.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/activities-model/window.cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2015 Ivan Cukic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * or (at your option) any later version, as published by the Free + * Software Foundation + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "window.h" + +#include "ui_window.h" + +#include +#include + +#include + +class Delegate: public QItemDelegate { +public: + void paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index) const Q_DECL_OVERRIDE + { + painter->save(); + + const QString title = index.data().toString(); + + QRect titleRect = painter->fontMetrics().boundingRect(title); + //unused int lineHeight = titleRect.height(); + + // Header background + auto rect = option.rect; + rect.setHeight(64); + titleRect.moveTop(option.rect.top()); + titleRect.setWidth(option.rect.width()); + + if (index.data(KActivities::ActivitiesModel::ActivityIsCurrent).toBool()) { + painter->fillRect(rect, + QColor(64, 64, 64)); + } else { + painter->fillRect(rect, + QColor(32, 32, 32)); + } + + // Painting the title + painter->setPen(QColor(255,255,255)); + + titleRect.moveTop(titleRect.top() + 8); + titleRect.setLeft(64 + 8); + titleRect.setWidth(titleRect.width() - 64 - 8); + painter->drawText(titleRect, title); + + titleRect.moveTop(titleRect.bottom() + 16); + + const QString description = index.data(KActivities::ActivitiesModel::ActivityDescription).toString(); + + if (!description.isEmpty()) { + painter->drawText(titleRect, index.data(KActivities::ActivitiesModel::ActivityDescription).toString()); + } else { + painter->setPen(QColor(128,128,128)); + painter->drawText(titleRect, index.data(KActivities::ActivitiesModel::ActivityId).toString()); + } + + const QString iconName = index.data(KActivities::ActivitiesModel::ActivityIconSource).toString(); + + if (!iconName.isEmpty()) { + painter->drawPixmap(option.rect.x(), option.rect.y(), + QIcon::fromTheme(iconName).pixmap(64, 64)); + + } + + painter->restore(); + + } + + QSize sizeHint(const QStyleOptionViewItem &option, + const QModelIndex &index) const Q_DECL_OVERRIDE + { + Q_UNUSED(option); + Q_UNUSED(index); + return QSize(0, 70); + } +}; + + +Window::Window() + : ui(new Ui::MainWindow()) + , activities(new KActivities::Consumer(this)) + , modelRunningActivities(new KActivities::ActivitiesModel({ KActivities::Info::Running, KActivities::Info::Stopping }, this)) + , modelStoppedActivities(new KActivities::ActivitiesModel({ KActivities::Info::Stopped, KActivities::Info::Starting }, this)) +{ + ui->setupUi(this); + + modelRunningActivities->setObjectName("RUNNING"); + ui->listRunningActivities->setModel(modelRunningActivities); + ui->listRunningActivities->setItemDelegate(new Delegate()); + + modelStoppedActivities->setObjectName("STOPPED"); + ui->listStoppedActivities->setModel(modelStoppedActivities); + ui->listStoppedActivities->setItemDelegate(new Delegate()); + + qDebug() << + connect(activities, &KActivities::Consumer::runningActivitiesChanged, + this, [] (const QStringList &running) { qDebug() << running; }); +} + +void Window::showEvent(QShowEvent * event) +{ + Q_UNUSED(event); + KWindowSystem::self()->setOnActivities(effectiveWinId(), QStringList()); + KWindowSystem::self()->setOnAllDesktops(effectiveWinId(), true); +} + +Window::~Window() +{ + delete ui; +} diff -Nru kactivities-kf5-5.18.0/tests/activities-model/window.h kactivities-kf5-5.44.0/tests/activities-model/window.h --- kactivities-kf5-5.18.0/tests/activities-model/window.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/activities-model/window.h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2015 Ivan Cukic + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2, + * or (at your option) any later version, as published by the Free + * Software Foundation + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#pragma once + +#include + +#include +#include + +namespace Ui { + class MainWindow; +} + +class Window: public QMainWindow { + Q_OBJECT + +public: + Window(); + ~Window(); + +protected: + void showEvent(QShowEvent * event) Q_DECL_OVERRIDE; + +private: + Ui::MainWindow *ui; + KActivities::Consumer *activities; + KActivities::ActivitiesModel *modelRunningActivities; + KActivities::ActivitiesModel *modelStoppedActivities; +}; + diff -Nru kactivities-kf5-5.18.0/tests/activities-model/window.ui kactivities-kf5-5.44.0/tests/activities-model/window.ui --- kactivities-kf5-5.18.0/tests/activities-model/window.ui 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/activities-model/window.ui 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,81 @@ + + + MainWindow + + + + 0 + 0 + 406 + 869 + + + + MainWindow + + + + + + + + + Running + + + + + + + + + + + + + + Stopped + + + + + + + + + + + + + 0 + 48 + + + + Close + + + + + + + + + + buttonClose + clicked() + MainWindow + close() + + + 332 + 842 + + + 341 + 878 + + + + + diff -Nru kactivities-kf5-5.18.0/tests/CMakeLists.txt kactivities-kf5-5.44.0/tests/CMakeLists.txt --- kactivities-kf5-5.18.0/tests/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/CMakeLists.txt 2018-03-03 09:51:42.000000000 +0000 @@ -1,9 +1,6 @@ # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: -if (KACTIVITIES_INSTALL_EXPERIMENTAL_LIBRARIES) - add_subdirectory(stats/model) -endif () - -add_subdirectory(slc-interface) +# add_subdirectory(slc-interface) +add_subdirectory(activities-model) diff -Nru kactivities-kf5-5.18.0/tests/slc-interface/CMakeLists.txt kactivities-kf5-5.44.0/tests/slc-interface/CMakeLists.txt --- kactivities-kf5-5.18.0/tests/slc-interface/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/slc-interface/CMakeLists.txt 2018-03-03 09:51:42.000000000 +0000 @@ -4,10 +4,8 @@ find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Core Gui Widgets) include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/lib/core/ ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/ ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/autotests/ - ${CMAKE_BINARY_DIR}/src/lib/core/ ) set ( diff -Nru kactivities-kf5-5.18.0/tests/slc-interface/window.h kactivities-kf5-5.44.0/tests/slc-interface/window.h --- kactivities-kf5-5.18.0/tests/slc-interface/window.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/slc-interface/window.h 2018-03-03 09:51:42.000000000 +0000 @@ -1,20 +1,22 @@ /* - * Copyright (C) 2015 Ivan Cukic + * Copyright (C) 2013 - 2016 by Ivan Cukic * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. * - * This program is distributed in the hope that it will be useful, + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . */ #pragma once diff -Nru kactivities-kf5-5.18.0/tests/stats/model/CMakeLists.txt kactivities-kf5-5.44.0/tests/stats/model/CMakeLists.txt --- kactivities-kf5-5.18.0/tests/stats/model/CMakeLists.txt 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/stats/model/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: -project (KActivitiesStatsTestApp) - -find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Core Gui Widgets Test Quick QuickWidgets) - -include_directories ( - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/lib/core/ - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/lib/stats/ - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/ - ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/autotests/ - ${CMAKE_BINARY_DIR}/src/lib/core/ - ${CMAKE_BINARY_DIR}/src/lib/stats/ - ) - -set ( - KActivitiesStatsTestApp_SRCS - window.cpp - main.cpp - modeltest.cpp - ) - -qt5_wrap_ui( - KActivitiesStatsTestApp_SRCS - window.ui - ) - -qt5_add_resources( - KActivitiesStatsTestApp_SRCS - main.qrc - ) - -if (NOT WIN32) - - add_executable ( - KActivitiesStatsTestApp - ${KActivitiesStatsTestApp_SRCS} - ) - - target_link_libraries ( - KActivitiesStatsTestApp - Qt5::Core - Qt5::Gui - Qt5::Widgets - Qt5::Test - Qt5::Quick - Qt5::QuickWidgets - KF5::Activities - KF5::ActivitiesExperimentalStats - ) - -endif () diff -Nru kactivities-kf5-5.18.0/tests/stats/model/main.cpp kactivities-kf5-5.44.0/tests/stats/model/main.cpp --- kactivities-kf5-5.18.0/tests/stats/model/main.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/stats/model/main.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include -#include "window.h" - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - Window w; - w.show(); - - return app.exec(); -} - diff -Nru kactivities-kf5-5.18.0/tests/stats/model/main.qml kactivities-kf5-5.44.0/tests/stats/model/main.qml --- kactivities-kf5-5.18.0/tests/stats/model/main.qml 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/stats/model/main.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ -import QtQuick 2.0 -Rectangle { - color: "black" - ListView { - anchors.fill: parent - anchors.margins: 8 - - model: kamdmodel - - delegate: Item { - height: 100-32 - width: 500 - - Text { - text: model.index - color: '#ffffff' - - width: 24 - - anchors { - left: parent.left - top: parent.top - bottom: parent.bottom - } - } - - Rectangle { - id: titleRect - height: 32 - - color: '#202020' - anchors { - left: parent.left - leftMargin: 24 - right: parent.right - top: parent.top - } - - Text { - text: model.title - anchors { - fill: parent - margins: 6 - } - color: 'white' - } - - Text { - text: "Score: " + model.score - anchors { - fill: parent - margins: 6 - } - color: 'white' - horizontalAlignment: Text.AlignRight - } - } - - Rectangle { - anchors { - left: parent.left - leftMargin: 24 - right: parent.right - top: titleRect.bottom - } - - color: '#303030' - height: 32 - - Text { - anchors { - fill: parent - margins: 6 - } - color: 'white' - text: model.modified + "\t" + model.created + "\t" + model.resource - } - - } - } - - add: Transition { - NumberAnimation { properties: "x,y"; from: 100; duration: 1000 } - } - addDisplaced: Transition { - NumberAnimation { properties: "x,y"; duration: 1000 } - } - displaced: Transition { - NumberAnimation { properties: "x,y"; duration: 1000 } - } - move: Transition { - NumberAnimation { properties: "x,y"; duration: 1000 } - } - moveDisplaced: Transition { - NumberAnimation { properties: "x,y"; duration: 1000 } - } - // populate: Transition { - // NumberAnimation { properties: "x,y"; duration: 1000 } - // } - removeDisplaced: Transition { - NumberAnimation { properties: "x,y"; duration: 1000 } - } - remove: Transition { - ParallelAnimation { - NumberAnimation { property: "opacity"; to: 0; duration: 1000 } - NumberAnimation { properties: "x,y"; to: 100; duration: 1000 } - } - } - } -} diff -Nru kactivities-kf5-5.18.0/tests/stats/model/main.qrc kactivities-kf5-5.44.0/tests/stats/model/main.qrc --- kactivities-kf5-5.18.0/tests/stats/model/main.qrc 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/stats/model/main.qrc 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ - - - main.qml - - - diff -Nru kactivities-kf5-5.18.0/tests/stats/model/modeltest.cpp kactivities-kf5-5.44.0/tests/stats/model/modeltest.cpp --- kactivities-kf5-5.18.0/tests/stats/model/modeltest.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/stats/model/modeltest.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,598 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "modeltest.h" - -#include -#include - -/*! - Connect to all of the models signals. Whenever anything happens recheck everything. -*/ -ModelTest::ModelTest ( QAbstractItemModel *_model, QObject *parent ) : QObject ( parent ), model ( _model ), fetchingMore ( false ) -{ - if (!model) - qFatal("%s: model must not be null", Q_FUNC_INFO); - - connect(model, SIGNAL(columnsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(runAllTests()) ); - connect(model, SIGNAL(columnsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(runAllTests()) ); - connect(model, SIGNAL(columnsInserted(QModelIndex,int,int)), - this, SLOT(runAllTests()) ); - connect(model, SIGNAL(columnsRemoved(QModelIndex,int,int)), - this, SLOT(runAllTests()) ); - connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), - this, SLOT(runAllTests()) ); - connect(model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)), - this, SLOT(runAllTests()) ); - connect(model, SIGNAL(layoutAboutToBeChanged()), this, SLOT(runAllTests()) ); - connect(model, SIGNAL(layoutChanged()), this, SLOT(runAllTests()) ); - connect(model, SIGNAL(modelReset()), this, SLOT(runAllTests()) ); - connect(model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(runAllTests()) ); - connect(model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(runAllTests()) ); - connect(model, SIGNAL(rowsInserted(QModelIndex,int,int)), - this, SLOT(runAllTests()) ); - connect(model, SIGNAL(rowsRemoved(QModelIndex,int,int)), - this, SLOT(runAllTests()) ); - - // Special checks for changes - connect(model, SIGNAL(layoutAboutToBeChanged()), - this, SLOT(layoutAboutToBeChanged()) ); - connect(model, SIGNAL(layoutChanged()), - this, SLOT(layoutChanged()) ); - - connect(model, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), - this, SLOT(rowsAboutToBeInserted(QModelIndex,int,int)) ); - connect(model, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - this, SLOT(rowsAboutToBeRemoved(QModelIndex,int,int)) ); - connect(model, SIGNAL(rowsInserted(QModelIndex,int,int)), - this, SLOT(rowsInserted(QModelIndex,int,int)) ); - connect(model, SIGNAL(rowsRemoved(QModelIndex,int,int)), - this, SLOT(rowsRemoved(QModelIndex,int,int)) ); - connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), - this, SLOT(dataChanged(QModelIndex,QModelIndex)) ); - connect(model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)), - this, SLOT(headerDataChanged(Qt::Orientation,int,int)) ); - - runAllTests(); -} - -void ModelTest::runAllTests() -{ - if ( fetchingMore ) - return; - nonDestructiveBasicTest(); - rowCount(); - columnCount(); - hasIndex(); - index(); - parent(); - data(); -} - -/*! - nonDestructiveBasicTest tries to call a number of the basic functions (not all) - to make sure the model doesn't outright segfault, testing the functions that makes sense. -*/ -void ModelTest::nonDestructiveBasicTest() -{ - QVERIFY( model->buddy ( QModelIndex() ) == QModelIndex() ); - model->canFetchMore ( QModelIndex() ); - QVERIFY( model->columnCount ( QModelIndex() ) >= 0 ); - QVERIFY( model->data ( QModelIndex() ) == QVariant() ); - fetchingMore = true; - model->fetchMore ( QModelIndex() ); - fetchingMore = false; - Qt::ItemFlags flags = model->flags ( QModelIndex() ); - QVERIFY( flags == Qt::ItemIsDropEnabled || flags == 0 ); - model->hasChildren ( QModelIndex() ); - model->hasIndex ( 0, 0 ); - model->headerData ( 0, Qt::Horizontal ); - model->index ( 0, 0 ); - model->itemData ( QModelIndex() ); - QVariant cache; - model->match ( QModelIndex(), -1, cache ); - model->mimeTypes(); - QVERIFY( model->parent ( QModelIndex() ) == QModelIndex() ); - QVERIFY( model->rowCount() >= 0 ); - QVariant variant; - model->setData ( QModelIndex(), variant, -1 ); - model->setHeaderData ( -1, Qt::Horizontal, QVariant() ); - model->setHeaderData ( 999999, Qt::Horizontal, QVariant() ); - QMap roles; - model->sibling ( 0, 0, QModelIndex() ); - model->span ( QModelIndex() ); - model->supportedDropActions(); -} - -/*! - Tests model's implementation of QAbstractItemModel::rowCount() and hasChildren() - - Models that are dynamically populated are not as fully tested here. - */ -void ModelTest::rowCount() -{ -// qDebug() << "rc"; - // check top row - QModelIndex topIndex = model->index ( 0, 0, QModelIndex() ); - int rows = model->rowCount ( topIndex ); - QVERIFY( rows >= 0 ); - if ( rows > 0 ) - QVERIFY( model->hasChildren ( topIndex ) ); - - QModelIndex secondLevelIndex = model->index ( 0, 0, topIndex ); - if ( secondLevelIndex.isValid() ) { // not the top level - // check a row count where parent is valid - rows = model->rowCount ( secondLevelIndex ); - QVERIFY( rows >= 0 ); - if ( rows > 0 ) - QVERIFY( model->hasChildren ( secondLevelIndex ) ); - } - - // The models rowCount() is tested more extensively in checkChildren(), - // but this catches the big mistakes -} - -/*! - Tests model's implementation of QAbstractItemModel::columnCount() and hasChildren() - */ -void ModelTest::columnCount() -{ - // check top row - QModelIndex topIndex = model->index ( 0, 0, QModelIndex() ); - QVERIFY( model->columnCount ( topIndex ) >= 0 ); - - // check a column count where parent is valid - QModelIndex childIndex = model->index ( 0, 0, topIndex ); - if ( childIndex.isValid() ) - QVERIFY( model->columnCount ( childIndex ) >= 0 ); - - // columnCount() is tested more extensively in checkChildren(), - // but this catches the big mistakes -} - -/*! - Tests model's implementation of QAbstractItemModel::hasIndex() - */ -void ModelTest::hasIndex() -{ -// qDebug() << "hi"; - // Make sure that invalid values returns an invalid index - QVERIFY( !model->hasIndex ( -2, -2 ) ); - QVERIFY( !model->hasIndex ( -2, 0 ) ); - QVERIFY( !model->hasIndex ( 0, -2 ) ); - - int rows = model->rowCount(); - int columns = model->columnCount(); - - // check out of bounds - QVERIFY( !model->hasIndex ( rows, columns ) ); - QVERIFY( !model->hasIndex ( rows + 1, columns + 1 ) ); - - if ( rows > 0 ) - QVERIFY( model->hasIndex ( 0, 0 ) ); - - // hasIndex() is tested more extensively in checkChildren(), - // but this catches the big mistakes -} - -/*! - Tests model's implementation of QAbstractItemModel::index() - */ -void ModelTest::index() -{ -// qDebug() << "i"; - // Make sure that invalid values returns an invalid index - QVERIFY( model->index ( -2, -2 ) == QModelIndex() ); - QVERIFY( model->index ( -2, 0 ) == QModelIndex() ); - QVERIFY( model->index ( 0, -2 ) == QModelIndex() ); - - int rows = model->rowCount(); - int columns = model->columnCount(); - - if ( rows == 0 ) - return; - - // Catch off by one errors - QVERIFY( model->index ( rows, columns ) == QModelIndex() ); - QVERIFY( model->index ( 0, 0 ).isValid() ); - - // Make sure that the same index is *always* returned - QModelIndex a = model->index ( 0, 0 ); - QModelIndex b = model->index ( 0, 0 ); - QVERIFY( a == b ); - - // index() is tested more extensively in checkChildren(), - // but this catches the big mistakes -} - -/*! - Tests model's implementation of QAbstractItemModel::parent() - */ -void ModelTest::parent() -{ -// qDebug() << "p"; - // Make sure the model won't crash and will return an invalid QModelIndex - // when asked for the parent of an invalid index. - QVERIFY( model->parent ( QModelIndex() ) == QModelIndex() ); - - if ( model->rowCount() == 0 ) - return; - - // Column 0 | Column 1 | - // QModelIndex() | | - // \- topIndex | topIndex1 | - // \- childIndex | childIndex1 | - - // Common error test #1, make sure that a top level index has a parent - // that is a invalid QModelIndex. - QModelIndex topIndex = model->index ( 0, 0, QModelIndex() ); - QVERIFY( model->parent ( topIndex ) == QModelIndex() ); - - // Common error test #2, make sure that a second level index has a parent - // that is the first level index. - if ( model->rowCount ( topIndex ) > 0 ) { - QModelIndex childIndex = model->index ( 0, 0, topIndex ); - QVERIFY( model->parent ( childIndex ) == topIndex ); - } - - // Common error test #3, the second column should NOT have the same children - // as the first column in a row. - // Usually the second column shouldn't have children. - QModelIndex topIndex1 = model->index ( 0, 1, QModelIndex() ); - if ( model->rowCount ( topIndex1 ) > 0 ) { - QModelIndex childIndex = model->index ( 0, 0, topIndex ); - QModelIndex childIndex1 = model->index ( 0, 0, topIndex1 ); - QVERIFY( childIndex != childIndex1 ); - } - - // Full test, walk n levels deep through the model making sure that all - // parent's children correctly specify their parent. - checkChildren ( QModelIndex() ); -} - -/*! - Called from the parent() test. - - A model that returns an index of parent X should also return X when asking - for the parent of the index. - - This recursive function does pretty extensive testing on the whole model in an - effort to catch edge cases. - - This function assumes that rowCount(), columnCount() and index() already work. - If they have a bug it will point it out, but the above tests should have already - found the basic bugs because it is easier to figure out the problem in - those tests then this one. - */ -void ModelTest::checkChildren ( const QModelIndex &parent, int currentDepth ) -{ - // First just try walking back up the tree. - QModelIndex p = parent; - while ( p.isValid() ) - p = p.parent(); - - // For models that are dynamically populated - if ( model->canFetchMore ( parent ) ) { - fetchingMore = true; - model->fetchMore ( parent ); - fetchingMore = false; - } - - int rows = model->rowCount ( parent ); - int columns = model->columnCount ( parent ); - - if ( rows > 0 ) - QVERIFY( model->hasChildren ( parent ) ); - - // Some further testing against rows(), columns(), and hasChildren() - QVERIFY( rows >= 0 ); - QVERIFY( columns >= 0 ); - if ( rows > 0 ) - QVERIFY( model->hasChildren ( parent ) ); - - //qDebug() << "parent:" << model->data(parent).toString() << "rows:" << rows - // << "columns:" << columns << "parent column:" << parent.column(); - - const QModelIndex topLeftChild = model->index( 0, 0, parent ); - - QVERIFY( !model->hasIndex ( rows + 1, 0, parent ) ); - for ( int r = 0; r < rows; ++r ) { - if ( model->canFetchMore ( parent ) ) { - fetchingMore = true; - model->fetchMore ( parent ); - fetchingMore = false; - } - QVERIFY( !model->hasIndex ( r, columns + 1, parent ) ); - for ( int c = 0; c < columns; ++c ) { - QVERIFY( model->hasIndex ( r, c, parent ) ); - QModelIndex index = model->index ( r, c, parent ); - // rowCount() and columnCount() said that it existed... - QVERIFY( index.isValid() ); - - // index() should always return the same index when called twice in a row - QModelIndex modifiedIndex = model->index ( r, c, parent ); - QVERIFY( index == modifiedIndex ); - - // Make sure we get the same index if we request it twice in a row - QModelIndex a = model->index ( r, c, parent ); - QModelIndex b = model->index ( r, c, parent ); - QVERIFY( a == b ); - - { - const QModelIndex sibling = model->sibling( r, c, topLeftChild ); - QVERIFY( index == sibling ); - } - { - const QModelIndex sibling = topLeftChild.sibling( r, c ); - QVERIFY( index == sibling ); - } - - // Some basic checking on the index that is returned - QVERIFY( index.model() == model ); - QCOMPARE( index.row(), r ); - QCOMPARE( index.column(), c ); - // While you can technically return a QVariant usually this is a sign - // of a bug in data(). Disable if this really is ok in your model. -// QVERIFY( model->data ( index, Qt::DisplayRole ).isValid() ); - - // If the next test fails here is some somewhat useful debug you play with. - - if (model->parent(index) != parent) { - qDebug() << r << c << currentDepth << model->data(index).toString() - << model->data(parent).toString(); - qDebug() << index << parent << model->parent(index); -// And a view that you can even use to show the model. -// QTreeView view; -// view.setModel(model); -// view.show(); - } - - // Check that we can get back our real parent. - QCOMPARE( model->parent ( index ), parent ); - - // recursively go down the children - if ( model->hasChildren ( index ) && currentDepth < 10 ) { - //qDebug() << r << c << "has children" << model->rowCount(index); - checkChildren ( index, ++currentDepth ); - }/* else { if (currentDepth >= 10) qDebug() << "checked 10 deep"; };*/ - - // make sure that after testing the children that the index doesn't change. - QModelIndex newerIndex = model->index ( r, c, parent ); - QVERIFY( index == newerIndex ); - } - } -} - -/*! - Tests model's implementation of QAbstractItemModel::data() - */ -void ModelTest::data() -{ - // Invalid index should return an invalid qvariant - QVERIFY( !model->data ( QModelIndex() ).isValid() ); - - if ( model->rowCount() == 0 ) - return; - - // A valid index should have a valid QVariant data - QVERIFY( model->index ( 0, 0 ).isValid() ); - - // shouldn't be able to set data on an invalid index - QVERIFY( !model->setData ( QModelIndex(), QLatin1String ( "foo" ), Qt::DisplayRole ) ); - - // General Purpose roles that should return a QString - QVariant variant = model->data ( model->index ( 0, 0 ), Qt::ToolTipRole ); - if ( variant.isValid() ) { - QVERIFY( variant.canConvert() ); - } - variant = model->data ( model->index ( 0, 0 ), Qt::StatusTipRole ); - if ( variant.isValid() ) { - QVERIFY( variant.canConvert() ); - } - variant = model->data ( model->index ( 0, 0 ), Qt::WhatsThisRole ); - if ( variant.isValid() ) { - QVERIFY( variant.canConvert() ); - } - - // General Purpose roles that should return a QSize - variant = model->data ( model->index ( 0, 0 ), Qt::SizeHintRole ); - if ( variant.isValid() ) { - QVERIFY( variant.canConvert() ); - } - - // General Purpose roles that should return a QFont - QVariant fontVariant = model->data ( model->index ( 0, 0 ), Qt::FontRole ); - if ( fontVariant.isValid() ) { - QVERIFY( fontVariant.canConvert() ); - } - - // Check that the alignment is one we know about - QVariant textAlignmentVariant = model->data ( model->index ( 0, 0 ), Qt::TextAlignmentRole ); - if ( textAlignmentVariant.isValid() ) { - int alignment = textAlignmentVariant.toInt(); - QCOMPARE( alignment, ( alignment & ( Qt::AlignHorizontal_Mask | Qt::AlignVertical_Mask ) ) ); - } - - // General Purpose roles that should return a QColor - QVariant colorVariant = model->data ( model->index ( 0, 0 ), Qt::BackgroundColorRole ); - if ( colorVariant.isValid() ) { - QVERIFY( colorVariant.canConvert() ); - } - - colorVariant = model->data ( model->index ( 0, 0 ), Qt::TextColorRole ); - if ( colorVariant.isValid() ) { - QVERIFY( colorVariant.canConvert() ); - } - - // Check that the "check state" is one we know about. - QVariant checkStateVariant = model->data ( model->index ( 0, 0 ), Qt::CheckStateRole ); - if ( checkStateVariant.isValid() ) { - int state = checkStateVariant.toInt(); - QVERIFY( state == Qt::Unchecked || - state == Qt::PartiallyChecked || - state == Qt::Checked ); - } -} - -/*! - Store what is about to be inserted to make sure it actually happens - - \sa rowsInserted() - */ -void ModelTest::rowsAboutToBeInserted ( const QModelIndex &parent, int start, int /* end */) -{ -// Q_UNUSED(end); -// qDebug() << "rowsAboutToBeInserted" << "start=" << start << "end=" << end << "parent=" << model->data ( parent ).toString() -// << "current count of parent=" << model->rowCount ( parent ); // << "display of last=" << model->data( model->index(start-1, 0, parent) ); -// qDebug() << model->index(start-1, 0, parent) << model->data( model->index(start-1, 0, parent) ); - Changing c; - c.parent = parent; - c.oldSize = model->rowCount ( parent ); - c.last = model->data ( model->index ( start - 1, 0, parent ) ); - c.next = model->data ( model->index ( start, 0, parent ) ); - insert.push ( c ); -} - -/*! - Confirm that what was said was going to happen actually did - - \sa rowsAboutToBeInserted() - */ -void ModelTest::rowsInserted ( const QModelIndex & parent, int start, int end ) -{ - Changing c = insert.pop(); - QVERIFY( c.parent == parent ); -// qDebug() << "rowsInserted" << "start=" << start << "end=" << end << "oldsize=" << c.oldSize -// << "parent=" << model->data ( parent ).toString() << "current rowcount of parent=" << model->rowCount ( parent ); - -// for (int ii=start; ii <= end; ii++) -// { -// qDebug() << "itemWasInserted:" << ii << model->data ( model->index ( ii, 0, parent )); -// } -// qDebug(); - - QVERIFY( c.oldSize + ( end - start + 1 ) == model->rowCount ( parent ) ); - QVERIFY( c.last == model->data ( model->index ( start - 1, 0, c.parent ) ) ); - - if (c.next != model->data(model->index(end + 1, 0, c.parent))) { - qDebug() << start << end; - for (int i=0; i < model->rowCount(); ++i) - qDebug() << model->index(i, 0).data().toString(); - qDebug() << c.next << model->data(model->index(end + 1, 0, c.parent)); - } - - QVERIFY( c.next == model->data ( model->index ( end + 1, 0, c.parent ) ) ); -} - -void ModelTest::layoutAboutToBeChanged() -{ - for ( int i = 0; i < qBound ( 0, model->rowCount(), 100 ); ++i ) - changing.append ( QPersistentModelIndex ( model->index ( i, 0 ) ) ); -} - -void ModelTest::layoutChanged() -{ - for ( int i = 0; i < changing.count(); ++i ) { - QPersistentModelIndex p = changing[i]; - QVERIFY( p == model->index ( p.row(), p.column(), p.parent() ) ); - } - changing.clear(); -} - -/*! - Store what is about to be inserted to make sure it actually happens - - \sa rowsRemoved() - */ -void ModelTest::rowsAboutToBeRemoved ( const QModelIndex &parent, int start, int end ) -{ -qDebug() << "ratbr" << parent << start << end; - Changing c; - c.parent = parent; - c.oldSize = model->rowCount ( parent ); - c.last = model->data ( model->index ( start - 1, 0, parent ) ); - c.next = model->data ( model->index ( end + 1, 0, parent ) ); - remove.push ( c ); -} - -/*! - Confirm that what was said was going to happen actually did - - \sa rowsAboutToBeRemoved() - */ -void ModelTest::rowsRemoved ( const QModelIndex & parent, int start, int end ) -{ - qDebug() << "rr" << parent << start << end; - Changing c = remove.pop(); - QVERIFY( c.parent == parent ); - QVERIFY( c.oldSize - ( end - start + 1 ) == model->rowCount ( parent ) ); - QVERIFY( c.last == model->data ( model->index ( start - 1, 0, c.parent ) ) ); - QVERIFY( c.next == model->data ( model->index ( start, 0, c.parent ) ) ); -} - -void ModelTest::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight) -{ - QVERIFY(topLeft.isValid()); - QVERIFY(bottomRight.isValid()); - QModelIndex commonParent = bottomRight.parent(); - QVERIFY(topLeft.parent() == commonParent); - QVERIFY(topLeft.row() <= bottomRight.row()); - QVERIFY(topLeft.column() <= bottomRight.column()); - int rowCount = model->rowCount(commonParent); - int columnCount = model->columnCount(commonParent); - QVERIFY(bottomRight.row() < rowCount); - QVERIFY(bottomRight.column() < columnCount); -} - -void ModelTest::headerDataChanged(Qt::Orientation orientation, int start, int end) -{ - QVERIFY(start >= 0); - QVERIFY(end >= 0); - QVERIFY(start <= end); - int itemCount = orientation == Qt::Vertical ? model->rowCount() : model->columnCount(); - QVERIFY(start < itemCount); - QVERIFY(end < itemCount); -} - diff -Nru kactivities-kf5-5.18.0/tests/stats/model/modeltest.h kactivities-kf5-5.44.0/tests/stats/model/modeltest.h --- kactivities-kf5-5.18.0/tests/stats/model/modeltest.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/stats/model/modeltest.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -#ifndef MODELTEST_H -#define MODELTEST_H - -#include -#include -#include - -class ModelTest : public QObject -{ - Q_OBJECT - -public: - ModelTest( QAbstractItemModel *model, QObject *parent = 0 ); - -private Q_SLOTS: - void nonDestructiveBasicTest(); - void rowCount(); - void columnCount(); - void hasIndex(); - void index(); - void parent(); - void data(); - -protected Q_SLOTS: - void runAllTests(); - void layoutAboutToBeChanged(); - void layoutChanged(); - void rowsAboutToBeInserted( const QModelIndex &parent, int start, int end ); - void rowsInserted( const QModelIndex & parent, int start, int end ); - void rowsAboutToBeRemoved( const QModelIndex &parent, int start, int end ); - void rowsRemoved( const QModelIndex & parent, int start, int end ); - void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); - void headerDataChanged(Qt::Orientation orientation, int start, int end); - -private: - void checkChildren( const QModelIndex &parent, int currentDepth = 0 ); - - QAbstractItemModel *model; - - struct Changing { - QModelIndex parent; - int oldSize; - QVariant last; - QVariant next; - }; - QStack insert; - QStack remove; - - bool fetchingMore; - - QList changing; -}; - -#endif diff -Nru kactivities-kf5-5.18.0/tests/stats/model/window.cpp kactivities-kf5-5.44.0/tests/stats/model/window.cpp --- kactivities-kf5-5.18.0/tests/stats/model/window.cpp 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/stats/model/window.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,220 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "window.h" - -#include "ui_window.h" -#include "modeltest.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include - -namespace KAStats = KActivities::Experimental::Stats; - -using namespace KAStats; -using namespace KAStats::Terms; - -class Delegate: public QItemDelegate { -public: - void paint(QPainter *painter, const QStyleOptionViewItem &option, - const QModelIndex &index) const Q_DECL_OVERRIDE - { - painter->save(); - - const QString title = index.data(ResultModel::TitleRole).toString(); - - QRect titleRect = painter->fontMetrics().boundingRect(title); - int lineHeight = titleRect.height(); - - // Header background - titleRect.moveTop(option.rect.top()); - titleRect.setWidth(option.rect.width()); - - painter->fillRect(titleRect.x(), titleRect.y(), - titleRect.width(), titleRect.height() + 16, - QColor(32, 32, 32)); - - // Painting the title - painter->setPen(QColor(255,255,255)); - - titleRect.moveTop(titleRect.top() + 8); - titleRect.setLeft(8); - titleRect.setWidth(titleRect.width() - 8); - painter->drawText(titleRect, index.data(ResultModel::TitleRole).toString()); - - // Painting the score - painter->drawText(titleRect, - "Score: " + QString::number(index.data(ResultModel::ScoreRole).toDouble()), - QTextOption(Qt::AlignRight)); - - // Painting the moification and creation times - titleRect.moveTop(titleRect.bottom() + 16); - - painter->fillRect(titleRect.x() - 4, titleRect.y() - 8, - titleRect.width() + 8, titleRect.height() + 8 + lineHeight, - QColor(64, 64, 64)); - - titleRect.moveTop(titleRect.top() - 4); - - painter->drawText(titleRect, - index.data(ResultModel::ResourceRole).toString() - ); - - auto firstUpdate = QDateTime::fromTime_t(index.data(ResultModel::FirstUpdateRole).toUInt()); - auto lastUpdate = QDateTime::fromTime_t(index.data(ResultModel::LastUpdateRole).toUInt()); - - titleRect.moveTop(titleRect.top() + lineHeight); - - painter->drawText(titleRect, - "Modified: " + lastUpdate.toString() - ); - painter->drawText(titleRect, - "Created: " + firstUpdate.toString(), - QTextOption(Qt::AlignRight)); - - painter->restore(); - - } - - QSize sizeHint(const QStyleOptionViewItem &option, - const QModelIndex &index) const Q_DECL_OVERRIDE - { - Q_UNUSED(option); - Q_UNUSED(index); - return QSize(0, 100); - } -}; - -Window::Window() - : ui(new Ui::MainWindow()) - , model(Q_NULLPTR) - , activities(new KActivities::Consumer()) -{ - ui->setupUi(this); - ui->viewResults->setItemDelegate(new Delegate()); - // ui->viewResults->setUniformItemSizes(true); - // ui->viewResults->setGridSize(QSize(200, 100)); - - while (activities->serviceStatus() == KActivities::Consumer::Unknown) { - QCoreApplication::processEvents(); - } - - connect(ui->buttonUpdate, SIGNAL(clicked()), - this, SLOT(updateResults())); - connect(ui->buttonReloadRowCount, SIGNAL(clicked()), - this, SLOT(updateRowCount())); - - for (const auto &activity : - (QStringList() << ":current" - << ":any" - << ":global") + activities->activities()) { - ui->comboActivity->addItem(activity); - } - -} - -Window::~Window() -{ -} - -void Window::updateRowCount() -{ - ui->labelRowCount->setText(QString::number( - ui->viewResults->model()->rowCount() - )); -} - -void Window::updateResults() -{ - qDebug() << "Updating the results"; - - ui->viewResults->setModel(Q_NULLPTR); - - auto query = - // What should we get - ( - ui->radioSelectUsedResources->isChecked() ? UsedResources : - ui->radioSelectLinkedResources->isChecked() ? LinkedResources : - AllResources - ) | - - // How we should order it - ( - ui->radioOrderHighScoredFirst->isChecked() ? HighScoredFirst : - ui->radioOrderRecentlyUsedFirst->isChecked() ? RecentlyUsedFirst : - ui->radioOrderRecentlyCreatedFirst->isChecked() ? RecentlyCreatedFirst : - ui->radioOrderByUrl->isChecked() ? OrderByUrl : - OrderByTitle - ) | - - // Which agents? - Agent(ui->textAgent->text().split(',')) | - - // Which mime? - Type(ui->textMimetype->text().split(',')) | - - // Which activities? - Activity(ui->comboActivity->currentText()) | - - // And how many items - Limit(ui->spinLimitCount->value()) - - ; - - // Log results - using boost::accumulate; - - ui->textLog->setText( - accumulate(ResultSet(query), QString(), - [] (const QString &acc, const ResultSet::Result &result) { - return acc + result.title() + " (" + result.resource() + ")\n"; - }) - ); - - model.reset(new ResultModel(query)); - - modelTest.reset(); - modelTest.reset(new ModelTest(new ResultModel(query))); - - ui->viewResults->setModel(model.get()); - - // QML - - auto context = ui->viewResultsQML->rootContext(); - ui->viewResultsQML->setResizeMode(QQuickWidget::SizeRootObjectToView); - - context->setContextProperty("kamdmodel", model.get()); - - ui->viewResultsQML->setSource(QUrl("qrc:/main.qml")); -} - diff -Nru kactivities-kf5-5.18.0/tests/stats/model/window.h kactivities-kf5-5.44.0/tests/stats/model/window.h --- kactivities-kf5-5.18.0/tests/stats/model/window.h 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/stats/model/window.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2015 Ivan Cukic - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * or (at your option) any later version, as published by the Free - * Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#pragma once - -#include -#include - -class ModelTest; -namespace Ui { - class MainWindow; -} - -namespace KActivities { - class Consumer; -namespace Experimental { -namespace Stats { - class ResultModel; -} -} -} - -class Window: public QMainWindow { - Q_OBJECT - -public: - Window(); - ~Window(); - -private Q_SLOTS: - void updateResults(); - void updateRowCount(); - -private: - std::unique_ptr ui; - std::unique_ptr model; - std::unique_ptr modelTest; - std::unique_ptr activities; -}; - diff -Nru kactivities-kf5-5.18.0/tests/stats/model/window.ui kactivities-kf5-5.44.0/tests/stats/model/window.ui --- kactivities-kf5-5.18.0/tests/stats/model/window.ui 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/tests/stats/model/window.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,396 +0,0 @@ - - - MainWindow - - - - 0 - 0 - 800 - 600 - - - - MainWindow - - - - - - - Qt::Horizontal - - - 2 - - - - - 0 - 0 - - - - - 200 - 0 - - - - - 16777215 - 16777215 - - - - 0 - - - true - - - - Query - - - - - - What - - - true - - - - - - &Linked resources - - - false - - - - - - - &Used resources - - - true - - - - - - - Combined (no&t implemented) - - - - - - - - - - Ordering - - - true - - - - - - Hi&gh score - - - false - - - - - - - Recentl&y used resources - - - true - - - - - - - Rece&ntly created first - - - - - - - By url - - - - - - - By t&itle - - - - - - - - - - QFormLayout::AllNonFixedFieldsGrow - - - 8 - - - - - Activity - - - - - - - true - - - :current - - - - - - - Agent - - - - - - - :any - - - - - - - Mimetype - - - - - - - :any - - - - - - - Count - - - - - - - 10 - - - - - - - - - Update - - - - - - - Qt::Vertical - - - - 20 - 176 - - - - - - - - - Logs - - - - - - - - ... - - - - - - - ... - - - - - - - - - - - - - - QTextEdit::NoWrap - - - - - - - - - - 1 - 0 - - - - 1 - - - true - - - - QWidgets (QListView) - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 1 - 0 - - - - QFrame::StyledPanel - - - - - - - - QML - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - QQuickWidget::SizeRootObjectToView - - - - - - - - - - - - - - - - - QQuickWidget - QWidget -
QQuickWidget
-
-
- - -
diff -Nru kactivities-kf5-5.18.0/TODO kactivities-kf5-5.44.0/TODO --- kactivities-kf5-5.18.0/TODO 2016-01-02 16:22:08.000000000 +0000 +++ kactivities-kf5-5.44.0/TODO 2018-03-03 09:51:42.000000000 +0000 @@ -1,85 +1,28 @@ - -libKActivities -============== -src/lib/core/controller.cpp:41: - TODO: Make Q_ASSERT_EVENTUALLY_X or something similar - -src/lib/core/info.cpp:165: - TODO: This needs to be changed, test for the new linking feature - -src/lib/core/resourceinstance.cpp:147: +src/lib/resourceinstance.cpp:149: TODO: update the service info -src/lib/core/resourceinstance.cpp:159: +src/lib/resourceinstance.cpp:161: TODO: update the service info - -libKActivitiesStats -=================== -src/lib/stats/resultset.cpp:243: - TODO: We need to correct the scores based on the time that passed - since the cache was last updated, although, for this query, - scores are not that important. -src/lib/stats/resultset.cpp:319: - TODO: We need to correct the scores based on the time that passed - since the cache was last updated -src/lib/stats/resultset.cpp:390: - TODO: Get this to work - -src/lib/stats/resultwatcher.h:93: - TODO: BLOCKER Move these to libKActivities - -src/lib/stats/resultmodel.cpp:407: - TODO: We should also sort by the resource, not only on a single field -src/lib/stats/resultmodel.cpp:493: - TODO: This can add or remove items from the model - -src/lib/stats/resultwatcher.cpp:174: - TODO: See whether it makes sense to have lastUpdate/firstUpdate here as well - - -KActivityManagerD -================= -src/service/ksmserver/KSMServer.cpp:72: - TODO: in multi-head environment there are multiple kwin instances - running and they will export different dbus name on different - root window. We have no support for that currently. - In future, the session management for Wayland may also need to be - reimplemented in some way. - -src/service/plugins/sqlite/StatsPlugin.cpp:434: - TODO: Add focus and modification - -src/service/Application.cpp:155: - TODO: Restart on crash - KCrash::setFlags(KCrash::AutoRestart); -src/service/Application.cpp:197: - TODO: Show a notification for a plugin that failed to load - - -QML imports -=========== -src/imports/resourcemodel.cpp:105: +src/imports/resourcemodel.cpp:103: NOTE: What to do if the file does not exist? Ignoring that case since the daemon creates it on startup. Is it plausible that somebody will instantiate the ResourceModel before the daemon is started? -src/imports/resourcemodel.cpp:135: +src/imports/resourcemodel.cpp:133: TODO: Database connection naming could be smarter (thread-id-based, reusing connections...?) -src/imports/resourcemodel.cpp:337: +src/imports/resourcemodel.cpp:335: TODO: Will probably need some more special handling - for application:/ and a few more -src/imports/resourcemodel.cpp:553: +src/imports/resourcemodel.cpp:551: TODO: This might be smarter possibly, but might collide with the SQL model. Implement a custom model with internal cache instead of basing it on QSqlModel. - -Workspace plugins -================= - -Other -===== -src/common/database/schema/ResourcesDatabaseSchema.cpp:109: - TODO: This will require some refactoring after we introduce more databases +src/imports/activitiesextensionplugin.cpp:30: + TODO: Clean up unused classes from the imports module +src/imports/activitiesextensionplugin.cpp:32: + TODO: Since plasma is now dealing with activity model wallpapers, + replace ActivityModel with the KActivities::ActivitiesModel + (but keep the name) diff -Nru kactivities-kf5-5.18.0/.vim-template:cpp kactivities-kf5-5.44.0/.vim-template:cpp --- kactivities-kf5-5.18.0/.vim-template:cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/.vim-template:cpp 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,29 @@ +/* + * Copyright (C) %YEAR% %USER% <%MAIL%> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#include "%FILE%.h" + +namespace KActivities { + +%HERE% + +} // namespace KActivities + diff -Nru kactivities-kf5-5.18.0/.vim-template:h kactivities-kf5-5.44.0/.vim-template:h --- kactivities-kf5-5.18.0/.vim-template:h 1970-01-01 00:00:00.000000000 +0000 +++ kactivities-kf5-5.44.0/.vim-template:h 2018-03-03 09:51:42.000000000 +0000 @@ -0,0 +1,32 @@ +/* + * Copyright (C) %YEAR% %USER% <%MAIL%> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + * If not, see . + */ + +#ifndef KACTIVITIES_STATS_%GUARD% +#define KACTIVITIES_STATS_%GUARD% + +namespace KActivities { + +%HERE% + +} // namespace KActivities + +#endif // KACTIVITIES_STATS_%GUARD% +