diff -Nru kactivitymanagerd-5.22.4/.arcconfig kactivitymanagerd-5.12.8/.arcconfig --- kactivitymanagerd-5.22.4/.arcconfig 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/.arcconfig 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,4 @@ +{ + "project.name" : "KActivities", + "phabricator.uri" : "https://phabricator.kde.org/" +} diff -Nru kactivitymanagerd-5.22.4/.clang-format kactivitymanagerd-5.12.8/.clang-format --- kactivitymanagerd-5.22.4/.clang-format 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/.clang-format 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,49 @@ +--- +# BasedOnStyle: WebKit +Language: Cpp +AccessModifierOffset: -4 +ConstructorInitializerIndentWidth: 4 +AlignEscapedNewlinesLeft: false +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AllowShortFunctionsOnASingleLine: false +AlwaysBreakTemplateDeclarations: false +AlwaysBreakBeforeMultilineStrings: false +BreakBeforeBinaryOperators: true +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: true +BinPackParameters: true +ColumnLimit: 80 +ConstructorInitializerAllOnOneLineOrOnePerLine: true +DerivePointerBinding: false +ExperimentalAutoDetectBinPacking: false +IndentCaseLabels: true +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCSpaceBeforeProtocolList: true +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 60 +PenaltyBreakString: 1000 +PenaltyBreakFirstLessLess: 120 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerBindsToType: false +SpacesBeforeTrailingComments: 1 +Cpp11BracedListStyle: false +Standard: Cpp11 +IndentWidth: 4 +TabWidth: 8 +UseTab: Never +BreakBeforeBraces: Stroustrup +IndentFunctionDeclarationAfterType: false +SpacesInParentheses: false +SpacesInAngles: false +SpaceInEmptyParentheses: false +SpacesInCStyleCastParentheses: false +SpaceAfterControlStatementKeyword: true +SpaceBeforeAssignmentOperators: true +ContinuationIndentWidth: 4 +... + diff -Nru kactivitymanagerd-5.22.4/cmake/modules/c++11-test-auto-N2546.cpp kactivitymanagerd-5.12.8/cmake/modules/c++11-test-auto-N2546.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++11-test-auto-N2546.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++11-test-auto-N2546.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2014 - 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 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 + +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 kactivitymanagerd-5.22.4/cmake/modules/c++11-test-initializer-lists-N2672.cpp kactivitymanagerd-5.12.8/cmake/modules/c++11-test-initializer-lists-N2672.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++11-test-initializer-lists-N2672.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++11-test-initializer-lists-N2672.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2014 - 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 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 +// #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 kactivitymanagerd-5.22.4/cmake/modules/c++11-test-lambda-N2927.cpp kactivitymanagerd-5.12.8/cmake/modules/c++11-test-lambda-N2927.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++11-test-lambda-N2927.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++11-test-lambda-N2927.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2014 - 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 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 + +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 kactivitymanagerd-5.22.4/cmake/modules/c++11-test-nullptr-N2431.cpp kactivitymanagerd-5.12.8/cmake/modules/c++11-test-nullptr-N2431.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++11-test-nullptr-N2431.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++11-test-nullptr-N2431.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2014 - 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 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 . + */ + +int main() +{ + int * test = nullptr; + return test ? 1 : 0; +} diff -Nru kactivitymanagerd-5.22.4/cmake/modules/c++11-test-nullptr-N2431-fail.cpp kactivitymanagerd-5.12.8/cmake/modules/c++11-test-nullptr-N2431-fail.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++11-test-nullptr-N2431-fail.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++11-test-nullptr-N2431-fail.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2014 - 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 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 . + */ + +int main() +{ + int i = nullptr; + return 1; +} diff -Nru kactivitymanagerd-5.22.4/cmake/modules/c++11-test-override-N3206.cpp kactivitymanagerd-5.12.8/cmake/modules/c++11-test-override-N3206.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++11-test-override-N3206.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++11-test-override-N3206.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2014 - 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 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 + +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 kactivitymanagerd-5.22.4/cmake/modules/c++11-test-override-N3206-fail.cpp kactivitymanagerd-5.12.8/cmake/modules/c++11-test-override-N3206-fail.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++11-test-override-N3206-fail.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++11-test-override-N3206-fail.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2014 - 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 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 + +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 kactivitymanagerd-5.22.4/cmake/modules/c++11-test-unique_ptr-none.cpp kactivitymanagerd-5.12.8/cmake/modules/c++11-test-unique_ptr-none.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++11-test-unique_ptr-none.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++11-test-unique_ptr-none.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2014 - 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 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 +#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 kactivitymanagerd-5.22.4/cmake/modules/c++11-test-variadic-templates-N2242.cpp kactivitymanagerd-5.12.8/cmake/modules/c++11-test-variadic-templates-N2242.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++11-test-variadic-templates-N2242.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++11-test-variadic-templates-N2242.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2014 - 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 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 + +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 kactivitymanagerd-5.22.4/cmake/modules/CheckCxxFeatures.cmake kactivitymanagerd-5.12.8/cmake/modules/CheckCxxFeatures.cmake --- kactivitymanagerd-5.22.4/cmake/modules/CheckCxxFeatures.cmake 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/CheckCxxFeatures.cmake 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,109 @@ +# 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 kactivitymanagerd-5.22.4/cmake/modules/c++-test-override-attr-none.cpp kactivitymanagerd-5.12.8/cmake/modules/c++-test-override-attr-none.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++-test-override-attr-none.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++-test-override-attr-none.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2014 - 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 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 + +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 kactivitymanagerd-5.22.4/cmake/modules/c++-test-override-attr-none-fail.cpp kactivitymanagerd-5.12.8/cmake/modules/c++-test-override-attr-none-fail.cpp --- kactivitymanagerd-5.22.4/cmake/modules/c++-test-override-attr-none-fail.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/cmake/modules/c++-test-override-attr-none-fail.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2014 - 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 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 + +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 kactivitymanagerd-5.22.4/CMakeLists.txt kactivitymanagerd-5.12.8/CMakeLists.txt --- kactivitymanagerd-5.22.4/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -1,12 +1,13 @@ # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: -cmake_minimum_required(VERSION 3.16) +cmake_minimum_required (VERSION 2.8.12) -project (KActivityManagerd) +project (KActivities) -set (QT_MIN_VERSION "5.15.0") -set (KF5_MIN_VERSION "5.82") -set (Boost_MINIMUM_VERSION "1.58") +option (KACTIVITIES_LIBRARY_ONLY "If true, compiles only the KActivities library, without the service and other modules." 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) + +set (REQUIRED_QT_VERSION 5.3.0) # We don't build in-source if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") @@ -19,44 +20,36 @@ set (KACTIVITIES_CURRENT_ROOT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # Extra CMake stuff -include (FeatureSummary) -find_package(ECM ${KF5_MIN_VERSION} NO_MODULE) -set_package_properties(ECM PROPERTIES - DESCRIPTION "Extra CMake Modules." - URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules" - TYPE REQUIRED -) +include(FeatureSummary) +find_package(ECM 5.18.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) -set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) +set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) include (KDEInstallDirs) include (KDECMakeSettings) include (KDECompilerSettings NO_POLICY_SCOPE) include (GenerateExportHeader) -include (ECMConfiguredInstall) -include (ECMGenerateDBusServiceFile) include (ECMGenerateHeaders) -include (ECMQtDeclareLoggingCategory) -include (ECMSetupQtPluginMacroNames) -include (KDEClangFormat) -include (KDEGitCommitHooks) - -# C++17 -set (CMAKE_CXX_STANDARD 17) -set (CMAKE_CXX_STANDARD_REQUIRED ON) # Qt -find_package (Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core DBus Widgets) +set (CMAKE_AUTOMOC ON) +find_package (Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED COMPONENTS Core DBus Widgets) # KDE Frameworks -find_package (KF5DBusAddons ${KF5_MIN_VERSION} CONFIG REQUIRED) -find_package (KF5I18n ${KF5_MIN_VERSION} CONFIG REQUIRED) -find_package (KF5Crash ${KF5_MIN_VERSION} CONFIG REQUIRED) +set(KF5_VERSION "5.19.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 (ECMSetupVersion) + + # Adding local CMake modules set ( CMAKE_MODULE_PATH @@ -64,32 +57,19 @@ ${CMAKE_MODULE_PATH} ) -add_definitions( - -DQT_NO_URL_CAST_FROM_STRING - -DQT_NO_SIGNALS_SLOTS_KEYWORDS -) +add_definitions(-DQT_NO_URL_CAST_FROM_STRING) add_definitions (-DTRANSLATION_DOMAIN=\"kactivities5\") if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") ki18n_install (po) endif () if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set (CMAKE_CXX_VISIBILITY_PRESET default) - set (CMAKE_VISIBILITY_INLINES_HIDDEN 0) + set(CMAKE_CXX_VISIBILITY_PRESET default) + set(CMAKE_VISIBILITY_INLINES_HIDDEN 0) endif () add_subdirectory (src) -# add clang-format target for all our real source files -file (GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) -kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) -kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) - -ecm_qt_install_logging_categories( - EXPORT KACTIVITYMANAGERD - FILE kactivitymanagerd.categories - DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} - ) - # Write out the features feature_summary (WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) + diff -Nru kactivitymanagerd-5.22.4/COPYING.GPL2 kactivitymanagerd-5.12.8/COPYING.GPL2 --- kactivitymanagerd-5.22.4/COPYING.GPL2 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/COPYING.GPL2 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff -Nru kactivitymanagerd-5.22.4/COPYING.GPL3 kactivitymanagerd-5.12.8/COPYING.GPL3 --- kactivitymanagerd-5.22.4/COPYING.GPL3 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/COPYING.GPL3 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 3 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 . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff -Nru kactivitymanagerd-5.22.4/debian/changelog kactivitymanagerd-5.12.8/debian/changelog --- kactivitymanagerd-5.22.4/debian/changelog 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/changelog 2021-08-22 21:35:58.000000000 +0000 @@ -1,311 +1,181 @@ -kactivitymanagerd (5.22.4-0ubuntu1) impish; urgency=medium +kactivitymanagerd (5.12.8-0ubuntu0.1~16.04.sav0) xenial; urgency=medium - * New upstream release (5.22.4) + * Backport to Xenial - -- Rik Mills Tue, 27 Jul 2021 13:42:03 +0100 + -- Rob Savoury Sun, 22 Aug 2021 14:35:58 -0700 -kactivitymanagerd (5.22.3-0ubuntu1) impish; urgency=medium +kactivitymanagerd (5.12.8-0ubuntu0.1) bionic; urgency=medium - * New upstream release (5.22.3) + * New upstream release (5.12.8) (LP: #1819075) - -- Rik Mills Tue, 06 Jul 2021 14:05:26 +0100 + -- Rik Mills Thu, 04 Jul 2019 09:38:45 +0100 -kactivitymanagerd (5.22.2.1-0ubuntu1) impish; urgency=medium +kactivitymanagerd (5.12.7-0ubuntu0.1) bionic; urgency=medium - * New upstream release (5.22.2.1) + * New upstream release (5.12.7) (LP: #1794494) - -- Rik Mills Tue, 22 Jun 2021 21:51:06 +0100 + -- Rik Mills Thu, 04 Oct 2018 08:55:05 +0100 -kactivitymanagerd (5.22.2-0ubuntu1) impish; urgency=medium +kactivitymanagerd (5.12.6-0ubuntu0.1) bionic; urgency=medium - * New upstream release (5.22.2) + * New upstream release (5.12.6) (LP: #1779456) - -- Rik Mills Tue, 22 Jun 2021 18:57:06 +0100 + -- Rik Mills Sat, 30 Jun 2018 18:28:25 +0100 -kactivitymanagerd (5.22.1-0ubuntu1) impish; urgency=medium +kactivitymanagerd (5.12.5-0ubuntu0.1) bionic; urgency=medium - * New upstream release (5.22.1) + * New upstream release (5.12.5) (LP: #1768245) - -- Rik Mills Tue, 15 Jun 2021 14:08:59 +0100 + -- Rik Mills Tue, 15 May 2018 18:33:25 +0100 -kactivitymanagerd (5.22.0-0ubuntu1) impish; urgency=medium +kactivitymanagerd (5.12.4-0ubuntu1) bionic; urgency=medium - * New upstream release (5.22.0) + * New upstream release (5.12.4) - -- Rik Mills Thu, 10 Jun 2021 11:52:39 +0100 + -- Rik Mills Tue, 27 Mar 2018 20:52:15 +0100 -kactivitymanagerd (5.21.5-0ubuntu1) impish; urgency=medium +kactivitymanagerd (5.12.3-0ubuntu1) bionic; urgency=medium - * New upstream release (5.21.5) + * New upstream release (5.12.3) - -- Rik Mills Tue, 04 May 2021 17:01:35 +0100 + -- Rik Mills Fri, 09 Mar 2018 13:48:31 +0000 -kactivitymanagerd (5.21.4-0ubuntu1) hirsute; urgency=medium +kactivitymanagerd (5.12.2-0ubuntu1) bionic; urgency=medium - * New upstream bugfix and translation release (5.21.4) + * New upstream release (5.12.2) - -- Rik Mills Wed, 07 Apr 2021 11:08:44 +0100 + -- Rik Mills Tue, 20 Feb 2018 22:42:07 +0000 -kactivitymanagerd (5.21.3-0ubuntu1) hirsute; urgency=medium +kactivitymanagerd (5.12.1-0ubuntu1) bionic; urgency=medium - * New upstream release (5.21.3) + * New upstream release (5.12.1) - -- Rik Mills Tue, 16 Mar 2021 20:32:38 +0000 + -- Rik Mills Wed, 14 Feb 2018 12:12:11 +0000 -kactivitymanagerd (5.21.2-0ubuntu1) hirsute; urgency=medium +kactivitymanagerd (5.12.0-0ubuntu1) bionic; urgency=medium - * New upstream release (5.21.2) + * New upstream release (5.11.95) + * New upstream release (5.12.0) - -- Rik Mills Tue, 02 Mar 2021 14:11:40 +0000 + -- Rik Mills Tue, 06 Feb 2018 11:49:38 +0000 -kactivitymanagerd (5.21.1-0ubuntu1) hirsute; urgency=medium +kactivitymanagerd (5.11.5-0ubuntu1) bionic; urgency=medium - * New upstream release (5.21.1) + * New upstream release (5.11.5) - -- Rik Mills Tue, 23 Feb 2021 15:05:14 +0000 + -- Rik Mills Wed, 03 Jan 2018 17:38:18 +0000 -kactivitymanagerd (5.21.0-0ubuntu1) hirsute; urgency=medium +kactivitymanagerd (5.11.4-0ubuntu1) bionic; urgency=low - * New upstream release (5.21.0) + * New upstream release (5.11.4) - -- Rik Mills Wed, 17 Feb 2021 14:20:55 +0000 + -- Simon Quigley Tue, 28 Nov 2017 21:14:03 -0600 -kactivitymanagerd (5.20.90-0ubuntu1) hirsute; urgency=medium +kactivitymanagerd (5.11.3-0ubuntu1) bionic; urgency=medium - * New upstream (beta) release (5.20.90) + * New upstream release (5.10.95) + * New upstream release (5.11.0) + * New upstream release (5.11.1) + * New upstream release (5.11.2) + * New upstream release (5.11.3) - -- Rik Mills Thu, 21 Jan 2021 23:43:56 +0000 + -- Rik Mills Sat, 25 Nov 2017 17:57:44 +0000 -kactivitymanagerd (5.20.5-1) unstable; urgency=medium +kactivitymanagerd (5.10.5-0ubuntu1) artful; urgency=low - * New upstream release (5.20.5). + * New upstream release (5.10.5) - -- Norbert Preining Wed, 06 Jan 2021 23:50:50 +0900 + -- Simon Quigley Wed, 23 Aug 2017 14:39:26 +0100 -kactivitymanagerd (5.20.4-2) unstable; urgency=medium +kactivitymanagerd (5.10.4-0ubuntu1) artful; urgency=low - * Release to unstable. - - -- Norbert Preining Tue, 22 Dec 2020 11:04:36 +0900 - -kactivitymanagerd (5.20.4-1) experimental; urgency=medium - - [ Norbert Preining ] - * New upstream release (5.20.4). - * Remove upstream included patch fix-spelling-error.patch - - -- Norbert Preining Wed, 09 Dec 2020 14:17:31 +0900 - -kactivitymanagerd (5.19.5-3) unstable; urgency=medium - - [ Scarlett Moore ] - * Remove depreciated lintian override. - * Remove obsolete entries in d/upstream/metadata already - defined in d/copyright. - - -- Norbert Preining Fri, 06 Nov 2020 08:37:21 +0900 - -kactivitymanagerd (5.19.5-2) experimental; urgency=medium - - * Rebuild for Qt 5.15 - - -- Norbert Preining Mon, 02 Nov 2020 09:27:39 +0900 - -kactivitymanagerd (5.19.5-1) experimental; urgency=medium - - [ Scarlett Moore ] - * New upstream release (5.19.5). - - [ Norbert Preining ] - * Add Patrick and myself to uploaders. - - -- Norbert Preining Mon, 19 Oct 2020 10:27:46 +0900 - -kactivitymanagerd (5.19.4-1) experimental; urgency=medium - - * Team upload. - - [ Scarlett Moore ] - * Bump compat level to 13. - * Add Rules-Requires-Root field to control. - * New upstream release (5.18.5). - * Update build-deps and deps with the info from cmake. - * Remove not needed injection of linker flags. - * Add myself to Uploaders. - * Update Homepage link to point to new invent.kde.org - * Update field Source in debian/copyright to invent.kde.org move. - * Set/Update field Upstream-Contact in debian/copyright. - - [ Patrick Franz ] - * Add hardening=+all build flag. - * Update data in /debian/upstream/metadata. - * Update lintian overrides. - * New upstream release (5.19.4). - * Update build-deps and deps with the info from cmake. - * Change Maintainer in debian/control to Debian Qt/KDE Maintainers. - * Remove Maxy from Uploaders as requested. - * Add fix-spelling-error.patch to fix spelling error. - * Rename Lintian-overrides: - - package-must-activate-ldconfig-trigger => lacks-ldconfig-trigger - - shlib-without-versioned-soname => shared-library-lacks-version - - -- Pino Toscano Sat, 29 Aug 2020 23:37:02 +0200 - -kactivitymanagerd (5.17.5-2) unstable; urgency=medium - - * Team upload. - * Upload to unstable. - * Bump Standards-Version to 4.5.0, no changes required. - - -- Pino Toscano Fri, 14 Feb 2020 21:32:01 +0100 - -kactivitymanagerd (5.17.5-1) experimental; urgency=medium - - * Team upload. - - [ Maximiliano Curia ] - * New upstream release (5.16.5). - * Salsa CI automatic initialization by Tuco - * Update build-deps and deps with the info from cmake - - [ Pino Toscano ] - * New upstream release. - * Update the build dependencies according to the upstream build system: - - bump KF packages to 5.62.0 - - remove unused libkf5service-dev - - explicitly add gettext - * Bump the debhelper compatibility to 12: - - switch the debhelper build dependency to debhelper-compat 12 - - remove debian/compat - * Minor fixes to copyright. - * Update lintian overrides. - * Bump Standards-Version to 4.4.1, no changes required. + * New upstream release (5.10.4) - -- Pino Toscano Fri, 17 Jan 2020 22:40:06 +0100 + -- Rik Mills Wed, 19 Jul 2017 14:37:20 +0100 -kactivitymanagerd (5.14.5-1) unstable; urgency=medium +kactivitymanagerd (5.10.3-0ubuntu1) artful; urgency=low - * New upstream release (5.14.5). - * Release to unstable + * New upstream release (5.10.3) - -- Maximiliano Curia Thu, 24 Jan 2019 09:25:42 -0300 + -- Rik Mills Sat, 01 Jul 2017 10:15:55 +0100 -kactivitymanagerd (5.14.3-1) unstable; urgency=medium +kactivitymanagerd (5.10.2-0ubuntu1) artful; urgency=low - * Update upsteam signing-key - * New upstream release (5.14.3). - * Update build-deps and deps with the info from cmake - * Bump group breaks (5.14) - * Release to unstable + * New upstream release (5.10.2) - -- Maximiliano Curia Fri, 23 Nov 2018 08:50:27 -0300 + -- Rik Mills Thu, 15 Jun 2017 18:12:07 +0100 -kactivitymanagerd (5.13.5-1) unstable; urgency=medium +kactivitymanagerd (5.10.1-0ubuntu1) artful; urgency=low - * New upstream release (5.13.5). - * Release to unstable + * New upstream release (5.10.1) - -- Maximiliano Curia Thu, 06 Sep 2018 20:40:29 +0200 + -- Rik Mills Tue, 06 Jun 2017 19:08:48 +0100 -kactivitymanagerd (5.13.4-1) unstable; urgency=medium +kactivitymanagerd (5.10.0-0ubuntu1) artful; urgency=low - * New upstream release (5.13.4). - * Release to unstable + * New upstream release (5.9.95) + * New upstream release (5.10.0) - -- Maximiliano Curia Sun, 19 Aug 2018 23:17:52 +0200 + -- Rik Mills Tue, 30 May 2017 09:49:08 +0100 -kactivitymanagerd (5.13.1-1) unstable; urgency=medium +kactivitymanagerd (5.9.5-0ubuntu1) artful; urgency=low - * New upstream release (5.13.1). - * Update build-deps and deps with the info from cmake - * Bump group breaks (5.13) - * Release to unstable + * New upstream release (5.9.5) - -- Maximiliano Curia Tue, 26 Jun 2018 13:42:49 +0200 + -- José Manuel Santamaría Lema Sun, 30 Apr 2017 11:31:10 +0100 -kactivitymanagerd (5.12.5-1) unstable; urgency=medium +kactivitymanagerd (5.9.4-0ubuntu1) zesty; urgency=low - * New upstream release (5.12.2). - * New upstream release (5.12.5). - * Bump Standards-Version to 4.1.4. - * Use https for the debian/copyright - * Release to unstable + * New upstream bugfix release (5.9.4) - -- Maximiliano Curia Wed, 09 May 2018 13:23:51 +0200 + -- Rik Mills Thu, 23 Mar 2017 19:57:25 +0000 -kactivitymanagerd (5.12.1-1) sid; urgency=medium +kactivitymanagerd (5.9.3-0ubuntu1) zesty; urgency=low - * Use the salsa canonical urls - * New upstream release (5.12.1). - * Release to sid + * New upstream bugfix release (5.9.3) - -- Maximiliano Curia Tue, 20 Feb 2018 22:08:39 +0100 + -- Rik Mills Thu, 02 Mar 2017 09:51:19 +0000 -kactivitymanagerd (5.12.0-2) sid; urgency=medium +kactivitymanagerd (5.9.2-0ubuntu1) zesty; urgency=low - * New revision - * Release to sid + * New upstream bugfix release (5.9.2) - -- Maximiliano Curia Mon, 12 Feb 2018 16:03:27 +0100 + -- Rik Mills Mon, 20 Feb 2017 11:04:29 +0000 -kactivitymanagerd (5.12.0-1) experimental; urgency=medium +kactivitymanagerd (5.9.1-0ubuntu1) zesty; urgency=low - * Bump debhelper build-dep and compat to 11. - * Build without build_stamp - * Add link options as-needed - * Add Bhushan Shah upstream signing key - * New upstream release (5.12.0). - * Bump Standards-Version to 4.1.3. - * Bump group breaks (5.12) - * Use https uri for uscan - * Release to experimental + * New upstream release (5.9.1) - -- Maximiliano Curia Thu, 08 Feb 2018 15:20:29 +0100 + -- Rik Mills Tue, 14 Feb 2017 23:19:26 +0000 -kactivitymanagerd (5.11.4-1) experimental; urgency=medium +kactivitymanagerd (5.9.0-0ubuntu1) zesty; urgency=low - * New upstream release (5.11.4). - * Bump Standards-Version to 4.1.2. - * Release to experimental + * New upstream release (5.9.0) - -- Maximiliano Curia Wed, 03 Jan 2018 16:48:46 -0300 + -- Rik Mills Sat, 04 Feb 2017 00:54:50 +0000 -kactivitymanagerd (5.10.5-2) sid; urgency=medium +kactivitymanagerd (5.8.5-0ubuntu1) zesty; urgency=low - * New revision - * Bump Standards-Version to 4.1.0. - * Release to sid + * New upstream release (5.8.5) - -- Maximiliano Curia Sun, 03 Sep 2017 09:55:13 +0200 + -- Rik Mills Thu, 29 Dec 2016 16:44:41 +0000 -kactivitymanagerd (5.10.5-1) experimental; urgency=medium +kactivitymanagerd (5.8.4-0ubuntu1) zesty; urgency=medium - [ Maximiliano Curia ] - * New upstream release (5.10.3). - * Bump Standards-Version to 4.0.0. - * Update upstream metadata - * Bump group breaks (5.10) - * New upstream release (5.10.4). - * Update build-deps and deps with the info from cmake - * New upstream release (5.10.5). - * Release to experimental - - [ Jonathan Riddell ] - * update watch file to version=4 with pgp signature checking - - -- Maximiliano Curia Mon, 28 Aug 2017 15:28:06 +0200 + [ José Manuel Santamaría Lema ] + * Update Vcs-Git fields to use https:// instead of git:// + * Merge with debian + * Add lintian overrides for package-name-doesnt-match-sonames and + shlib-without-versioned-soname + * Remove undesired debian Breaks after merge -kactivitymanagerd (5.8.5-1) experimental; urgency=medium - - * New upstream release (5.8.5). - - -- Maximiliano Curia Fri, 30 Dec 2016 18:46:13 +0100 - -kactivitymanagerd (5.8.4-1) unstable; urgency=medium + [ Simon Quigley ] + * New upstream release (5.8.3) + [ Rik Mills ] * New upstream release (5.8.4) - -- Maximiliano Curia Wed, 23 Nov 2016 18:28:13 +0100 + -- Rik Mills Mon, 05 Dec 2016 19:54:05 +0000 kactivitymanagerd (5.8.2-1) unstable; urgency=medium @@ -320,6 +190,13 @@ -- Maximiliano Curia Sun, 16 Oct 2016 22:54:44 +0200 +kactivitymanagerd (5.7.5-0ubuntu1) yakkety; urgency=medium + + * New upstream release (5.7.4) + * New upstream release (5.7.5) + + -- Rik Mills Tue, 20 Sep 2016 20:25:23 -0500 + kactivitymanagerd (5.7.4-1) unstable; urgency=medium * Force dependency in the sqlite database driver. @@ -329,12 +206,25 @@ -- Maximiliano Curia Fri, 26 Aug 2016 14:46:32 +0200 +kactivitymanagerd (5.7.2-0ubuntu1) yakkety; urgency=medium + + * New upstream release (5.7.1) + * New upstream release (5.7.2) + + -- Clive Johnston Thu, 28 Jul 2016 12:03:57 +0000 + kactivitymanagerd (5.7.0-1) unstable; urgency=medium * New upstream release. -- Maximiliano Curia Fri, 08 Jul 2016 16:11:50 +0200 +kactivitymanagerd (5.6.5-0ubuntu1) yakkety; urgency=medium + + * New upstream release (5.6.5) + + -- Clive Johnston Fri, 15 Jul 2016 20:42:52 +0100 + kactivitymanagerd (5.6.4-2) unstable; urgency=medium * Update lintian override for libkactivitymanagerd_plugin.so @@ -362,3 +252,20 @@ * Bump Standards-Version to 3.9.8 -- Maximiliano Curia Wed, 25 May 2016 11:45:41 +0200 +kactivitymanagerd (5.6.4-0ubuntu1) yakkety; urgency=medium + + [ Jonathan Riddell ] + * Initial package + + [ Scarlett Clark ] + * Add missing depend to libboost. + + [ Maximiliano Curia ] + * New upstream release (5.6.2). + * Bump Standards-Version to 3.9.7, no changes needed. + + [ Clive Johnston ] + * New upstream release (5.6.3) + * New upstream release (5.6.4) + + -- Clive Johnston Wed, 18 May 2016 13:14:00 -0700 diff -Nru kactivitymanagerd-5.22.4/debian/compat kactivitymanagerd-5.12.8/debian/compat --- kactivitymanagerd-5.22.4/debian/compat 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/compat 2019-07-04 08:38:45.000000000 +0000 @@ -0,0 +1 @@ +9 diff -Nru kactivitymanagerd-5.22.4/debian/control kactivitymanagerd-5.12.8/debian/control --- kactivitymanagerd-5.22.4/debian/control 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/control 2019-07-04 08:38:45.000000000 +0000 @@ -1,39 +1,32 @@ Source: kactivitymanagerd Section: kde Priority: optional -Maintainer: Debian Qt/KDE Maintainers -Uploaders: Scarlett Moore , - Patrick Franz , - Norbert Preining -Build-Depends: cmake (>= 3.0~), - debhelper-compat (= 13), - extra-cmake-modules (>= 5.82.0~), - gettext, +Maintainer: Debian/Kubuntu Qt/KDE Maintainers +Uploaders: Maximiliano Curia +Build-Depends: cmake (>= 2.8.12), + debhelper (>= 9), + extra-cmake-modules (>= 5.42.0~), libboost-dev (>= 1.49~), - libkf5config-dev (>= 5.82.0~), - libkf5coreaddons-dev (>= 5.82.0~), - libkf5crash-dev (>= 5.82.0~), - libkf5dbusaddons-dev (>= 5.82.0~), - libkf5globalaccel-dev (>= 5.82.0~), - libkf5i18n-dev (>= 5.82.0~), - libkf5kio-dev (>= 5.82.0~), - libkf5windowsystem-dev (>= 5.82.0~), - libkf5xmlgui-dev (>= 5.82.0~), + libkf5config-dev (>= 5.42.0~), + libkf5coreaddons-dev (>= 5.42.0~), + libkf5dbusaddons-dev (>= 5.42.0~), + libkf5globalaccel-dev (>= 5.42.0~), + libkf5i18n-dev (>= 5.42.0~), + libkf5kio-dev (>= 5.42.0~), + libkf5service-dev (>= 5.42.0~), + libkf5windowsystem-dev (>= 5.42.0~), + libkf5xmlgui-dev (>= 5.42.0~), pkg-kde-tools (>= 0.15.18~), - qtbase5-dev (>= 5.15.0~), -Standards-Version: 4.5.0 -Homepage: https://invent.kde.org/plasma/kactivitymanagerd -Vcs-Browser: https://salsa.debian.org/qt-kde-team/kde/kactivitymanagerd -Vcs-Git: https://salsa.debian.org/qt-kde-team/kde/kactivitymanagerd.git -Rules-Requires-Root: no + qtbase5-dev (>= 5.6.1~), +Standards-Version: 3.9.8 +Homepage: https://projects.kde.org/projects/kde/workspace/kactivitymanagerd +Vcs-Browser: https://code.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/kactivitymanagerd +Vcs-Git: https://git.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/kactivitymanagerd Package: kactivitymanagerd Architecture: any Depends: libqt5sql5-sqlite, ${misc:Depends}, ${shlibs:Depends} -Breaks: kactivities (<< 5.20~), - libkactivities-bin, - plasma-desktop (<< 4:5.14), - plasma-workspace (<< 4:5.14) +Breaks: kactivities (<< 5.20~), libkactivities-bin Replaces: kactivities (<< 5.20~), libkactivities-bin Description: System service to manage user's activities System service to manage user's activities, track the usage patterns diff -Nru kactivitymanagerd-5.22.4/debian/copyright kactivitymanagerd-5.12.8/debian/copyright --- kactivitymanagerd-5.22.4/debian/copyright 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/copyright 2019-07-04 08:38:45.000000000 +0000 @@ -1,8 +1,6 @@ - -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: kactivitymanagerd -Source: https://invent.kde.org/plasma/kactivitymanagerd -Upstream-Contact: plasma-devel@kde.org +Source: https://projects.kde.org/projects/kde/workspace/kactivitymanagerd Files: * Copyright: 2010-2016 Ivan Cukic @@ -14,7 +12,8 @@ Copyright: 2011-2016, This_file_is_part_of_KDE License: LGPL-2.1+3+KDEeV -Files: src/service/plugins/activitytemplates/TemplatesPlugin.cpp +Files: COPYING.GPL2 + src/service/plugins/activitytemplates/TemplatesPlugin.cpp src/service/plugins/activitytemplates/TemplatesPlugin.h src/service/plugins/eventspy/EventSpy.cpp src/service/plugins/eventspy/EventSpy.h diff -Nru kactivitymanagerd-5.22.4/debian/kactivitymanagerd.install kactivitymanagerd-5.12.8/debian/kactivitymanagerd.install --- kactivitymanagerd-5.22.4/debian/kactivitymanagerd.install 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/kactivitymanagerd.install 2019-07-04 08:38:45.000000000 +0000 @@ -0,0 +1 @@ +usr diff -Nru kactivitymanagerd-5.22.4/debian/kactivitymanagerd.lintian-overrides kactivitymanagerd-5.12.8/debian/kactivitymanagerd.lintian-overrides --- kactivitymanagerd-5.22.4/debian/kactivitymanagerd.lintian-overrides 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/kactivitymanagerd.lintian-overrides 2019-07-04 08:38:45.000000000 +0000 @@ -1,5 +1,4 @@ -kactivitymanagerd: lacks-ldconfig-trigger usr/lib/*/libkactivitymanagerd_plugin.so +kactivitymanagerd: package-must-activate-ldconfig-trigger usr/lib/*/libkactivitymanagerd_plugin.so +kactivitymanagerd: postinst-must-call-ldconfig usr/lib/*/libkactivitymanagerd_plugin.so kactivitymanagerd: package-name-doesnt-match-sonames libkactivitymanagerd-plugin -kactivitymanagerd: shared-library-lacks-version usr/lib/*/libkactivitymanagerd_plugin.so libkactivitymanagerd_plugin.so -kactivitymanagerd: no-symbols-control-file usr/lib/*/libkactivitymanagerd_plugin.so -kactivitymanagerd: dbus-session-service-wrong-name org.kde.ActivityManager.service usr/share/dbus-1/services/org.kde.activitymanager.service +kactivitymanagerd: shlib-without-versioned-soname usr/lib/*/libkactivitymanagerd_plugin.so libkactivitymanagerd_plugin.so diff -Nru kactivitymanagerd-5.22.4/debian/rules kactivitymanagerd-5.12.8/debian/rules --- kactivitymanagerd-5.22.4/debian/rules 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/rules 2019-07-04 08:38:45.000000000 +0000 @@ -1,7 +1,7 @@ #!/usr/bin/make -f # -*- makefile -*- -export DEB_BUILD_MAINT_OPTIONS=hardening=+all +include /usr/share/pkg-kde-tools/qt-kde-team/3/debian-qt-kde.mk -%: - dh $@ --with kf5,pkgkde_symbolshelper --buildsystem kf5 --without build_stamp +override_dh_auto_install: + $(overridden_command) --destdir=debian/tmp diff -Nru kactivitymanagerd-5.22.4/debian/salsa/extra_repository.list kactivitymanagerd-5.12.8/debian/salsa/extra_repository.list --- kactivitymanagerd-5.22.4/debian/salsa/extra_repository.list 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/salsa/extra_repository.list 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -deb https://qt-kde-team.debian.net/debian qt-kde-snapshots main diff -Nru kactivitymanagerd-5.22.4/debian/salsa/qt-kde-team.debian.net.asc kactivitymanagerd-5.12.8/debian/salsa/qt-kde-team.debian.net.asc --- kactivitymanagerd-5.22.4/debian/salsa/qt-kde-team.debian.net.asc 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/salsa/qt-kde-team.debian.net.asc 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQINBFbRhD8BEADR1NNpDI/ekbEMKy0rn8wYWMFgkdg8T7U7iok+QbNd6pad7ZmY -vMZ9YydyKFDXzrXdx06SFDUMdFnYHhedReROJF3C6/IWBQHHKsad1cxu6HtHwBER -P7CMqyjwbQaNf7VR40iSPLiSH4AhpW4L9G0POCrl3oMVKRreMhk86aST6H5YLafb -CTwoELE5GU50pNMena98MUdjCrDNPRdUu1+GFxjjGB5T2ESeQ1zsa1OhMxHw8dgt -pk35WTyD5ETGYs6JVpN1GYvGruCm6dKjMMgIiH0OO7oNUtkqiUE/jAzb0UEX1VqS -d74QrFpqfRpDy+gatglYt3aK1k6HX2aGR3NJshtjejjVhDpOTn8oQrslD+Rtn7nN -bdzf5agYFzyfWBA/466VXWpRp0n+2QfDYnpabuzKN+CYaWsIdpNgVgr3PshpTzKV -vN3wle0V5kEeA1wO5lNRcc+NG98SvL+gNIrH0BZzNOVKAGuZ83pm2cr636IJSBTo -wP40+RWCy5skB67s6MlXa3tq4Q/EVoL9VdgyffOQHgVb6d2jMiXXEjPYqPVnsWkp -w7+PgqaH32wLKwyUbYRz21WVzkwbFr7LvDgaj0PiI9r5c/qN4cKmi4+1zgJuAFOh -wjKbRIzFOApYmcIWXA8suVhUHgzKye1Cix4mD0eoKIGA2nM+wEvLy0DcaQARAQAB -tDxMWFF0IFBhY2thZ2luZyBUZWFtIDxwa2ctbHhxdC1kZXZlbEBsaXN0cy5hbGlv -dGguZGViaWFuLm9yZz6JAjcEEwEKACEFAlbRhD8CGwMFCwkIBwMFFQoJCAsFFgID -AQACHgECF4AACgkQOgXVl5oByVEhUxAAp3TQOStOjwRN26/I4YFeMttDQ3AlWuSB -PycTZbkHoZLNkvIJJuzoXkGXiGZLA7UVuEPTEztB3Bo3IgB+FiDkXWUtG5qj42KV -vqGYq8IjIO8gxRQH+ZK0aiPIZrcCE2z7jFi5ocGVDveS9PbXs7FxVnuP+nBvpuI9 -e43rJM5VgQZbVQbqSmyeaM5KFd+izTfkm0qDVRz6X0l+q1lb2fRjalYXtrueeQro -0E7r1QrYgCxvWT8L71E8eRAdrDbmtCTUebIE/Dle6TDm/tagS9I05COEdOFi2SPa -I4esRzU1tuQxtCVb8E+1rSi1wmNRQSDr2GumIGAJC8ME5StuntwLAJXbzWu/NjJT -uNz2noyfk4ZRNVRuJAZjFivJQqAC1ycRJpLPZuHFJy8Z+8ugKD3sE6MJJfM/tZi1 -hD1nZzgV35uPo2kgVe96zZQlDAZJVlNIF5GOFNOgSN/s+Bq8/zmBJGrkz6/kwRp7 -dJJG1BSMGoyi1vh3Iy9H+Eq1TYd2C1u3GbV2wE7UR2d9Obt+NmCwTpG0nimsW0DD -KNNuzkgBjBQUpt0b99gJULI6aYxWFIvTD77fsmjaKgnlx4shS0y4i+L5sOWqdTXX -ICu+Xnq0ROzmf1+aOGeR500RR7OjU+PmShDklmdE5Ss3Hzqi36tTipGpjKDaDoKA -lM6xZCxUi+25Ag0EVtGEPwEQALR3uffc7bq+xGUVUtCiEbeOYvEDYzoZPvt/Yu57 -BQ56Ar/SkrKthAt7C+IMOJ2NJDHRWtkcYOqQqb4anAlf9a7NSkIwtZh4KeXfA6VZ -3T3JubIrMcO0YFKi11wga2BNkDPv+z9MdYPq9ocoP7pyIWSz70TE/Yo1aaA18l6g -Rx1Wdg/+vjrNjcz8BVEM1szaZTGSb8W2lPqESiG/lTUC90rGKh+7fbEOJPvf1CG9 -wzGgH5NhcU4evu14obvQTwmXo6XPjmx7YtvcfQynNBECdJOyZg2O6qR4wwMKYzSU -+U0KnntCxSFGt4cspnMvnC13DhRmfRJoZxCaCA2GE6ThLu6aqAqcXvaUQUZRP9o/ -HIQm4rEPaZSdJq4pgPv8QKOXWhvk88uh0xW5j2tYyrS8klok42tXIKmGhYej13rJ -e2CJ57bZTGz12ferGCLUUMTH3oAUxdzykrao/gDk+kKxxYpCe6MAbtamVbsBbiar -rp11y4WhLmeb69SXrE2uNJSf71f7GvjjiZQoCvRJL/1OFtpUCj/c8Dz+8gnMsPwU -lXJa7tbsxLrOhkNf/clBt4Nf/v60o7Ig9glgyuNXc2cq8VtP+vU3Pde1GNJp4qsP -JgmlU97n1eIdubg2o7HBsSBJ860+Fn2CfnO1umQoMP0uzF4M5fyfTWXy0A/DgFEH -7o03ABEBAAGJAh8EGAEKAAkFAlbRhD8CGwwACgkQOgXVl5oByVHfeA/9HCaVGqpv -RaZa5ciomYsg9vsZoMB6WhM1kyG11utwgV+Hl9XhktAFFo6B9BnyzhxYGn8Tcefi -Et3lKi/vt6vvk9BU5sKmE9Pt+T9tnjK8MKcOHco0bmnCByE6HZxtVkcSlYgnyf4s -II9kQoSADwwodQn4f5JSb9NIxHxBD+Aga3d4yYBDOLrBzW2BN6xilqTGZpcMioht -8VIOvs/YUOpLhZuARtPszCUjGB/WGspQlrIldSRIpvshSUd79SrcYM5OyzeuF7aP -h1xt+3l5kxDE1oKYgW9rKycp6liillOQyZlIJmeU2D30IqVQshYDfYvy/3cL9TO6 -CcYGkBaFFf8fKGEEBWG35M0+PXaiivQ2efBfekt1i3MaFn25t2Lgjt31wKjZqRfZ -xRFodkRx/qSxZcaJU8NYSxVC2OEwlEIN0v3/eWZMOzYwFvCcg/a3M7ARlQOwt1YZ -Lsj83SJ263KjdGpgDE0Rk6B416dT/vClRmGg5jyX05keymzzfl//z93rerwPqbV/ -ygi4vRVswBSrACwRKXEzaUEeutGX8L49XFNi/p5gYL8RCTGOM4PxD5AmTC7+VnnO -T1155UsunpBrlFUTKhxJGUux11TgojiGJY3ID7fP8EqyZWp6z3CXqXTxv8CP8Ye1 -bMTcHe5rk6snXqz1neEmP2K7qdNwwakRdAA= -=o8PI ------END PGP PUBLIC KEY BLOCK----- diff -Nru kactivitymanagerd-5.22.4/debian/salsa-ci.yml kactivitymanagerd-5.12.8/debian/salsa-ci.yml --- kactivitymanagerd-5.22.4/debian/salsa-ci.yml 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/salsa-ci.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -include: - - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml - - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml -variables: - SALSA_CI_DISABLE_MISSING_BREAKS: 'no' - SALSA_CI_DISABLE_RC_BUGS: 'no' - SALSA_CI_REPROTEST_ARGS: '--variations=-build-path' - EXTRA_REPOSITORY: 'debian/salsa/extra_repository.list' - EXTRA_REPOSITORY_KEY: 'debian/salsa/qt-kde-team.debian.net.asc' diff -Nru kactivitymanagerd-5.22.4/debian/upstream/metadata kactivitymanagerd-5.12.8/debian/upstream/metadata --- kactivitymanagerd-5.22.4/debian/upstream/metadata 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/upstream/metadata 2019-07-04 08:38:45.000000000 +0000 @@ -1,6 +1,7 @@ -Bug-Database: https://bugs.kde.org/buglist.cgi?product=kactivitymanagerd -Changelog: https://kde.org/announcements/ +Name: kactivitymanagerd +Changelog: https://quickgit.kde.org/?p=kactivitymanagerd.git&a=log +Contact: plasma-devel@kde.org Donation: https://www.kde.org/community/donations/index.php -Repository: https://invent.kde.org/plasma/kactivitymanagerd.git -Repository-Browse: https://invent.kde.org/plasma/kactivitymanagerd +Repository: https://anongit.kde.org/kactivitymanagerd.git +Repository-Browse: https://quickgit.kde.org/?p=kactivitymanagerd.git Security-Contact: security@kde.org diff -Nru kactivitymanagerd-5.22.4/debian/upstream/signing-key.asc kactivitymanagerd-5.12.8/debian/upstream/signing-key.asc --- kactivitymanagerd-5.22.4/debian/upstream/signing-key.asc 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/upstream/signing-key.asc 1970-01-01 00:00:00.000000000 +0000 @@ -1,118 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 - -mQENBFG1+bQBCAC3p+fdi9+55LFuKPqW0XrQkQQ2CRfXcM5lqb6B4xQewLorsdX7 -SRDmLzpdDZ9bCpqxMsiFbB+9lxljHNTzx9BIEO9w6aYtVgPsG4L9ZxwBXUTlgtIA -UoOy4lTQnUR0QDFlJQx8c4Cy82htOSCiWO4iaEvMbo+BGe8g4f2/N0tJOrnAc/xl -sdA64GTWId4NB12F+QeRgWWNQs/W/j/kyy37+L0juD06RMKth0uRMN37wEa9KcLa -lOBEUETrImZfx74wagt6WDnJknLf0ceqzfojk82po0C46BJAu49tLehYYKgo0HKZ -fK7CDw53y9SjkI8cU8g48AyUw8Uk/FyJeW1bABEBAAG0N0RhdmlkIEVkbXVuZHNv -biAoRGF2aWQgYXQgS0RFKSA8ZGF2aWRlZG11bmRzb25Aa2RlLm9yZz6JATgEEwEC -ACIFAlG1+bQCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEPVnVgXHTgLP -KD0H/0Cnj1bM6MYV5nKXJhLpd8as2OHFlhdtaU7QG3QcMVqdtP3rdOp1RgjmkYsB -xgwrxvDTLz0L/PH9UTCXjQeZgNR0hG8iy4IBC9ay0PDdkNpjnHoAiUMRstcDODUZ -QdLEOXCbPbRG3q0OlSaOvETL7YkSY8c2N6yqmWaJvudpJ0VVPyIWa2xT53JTXgAD -4m1w8MThAZBZpJi852nQCByCsRC+3cofA7bQd60XLiFWgmnq+rlqryMlWvUmMmat -e7U1NC5UsfH6ToXf/ZNZG+fMGE+ntYiHWRFr2tZMyXfUOrgHsAVMAE8v/xVtwS5e -VCAdM21GNG4d6XiF7T32GDzrEQm5AQ0EUbX5tAEIAL0uLkPxHbg9boIuVdahyy6F -BOcUf8xj3qj8FUGpRkcSSsoyvFTHZRTR+wwTPTaZzzzTFSITRGVv7vdKyl/A+SMw -/nlUVfB9xGvvCgzPGesUk9lmxX2DRVpoq9CyVIw0XXJQtNkC3O1yEws4zuDzHe99 -sfDvXpA1ikfN+Hgn3oLjCHHtWuTyXGKXUimzToDMqWentVkP1rzKPlin9XJ0KDT/ -axrrD9L5s4KCjHdWEQwG3miJDxQnlsAFDBj7Bs8DZZE+xdzx/l8qBKOxmXD9ohFp -4q0wXVV4QJMHtjhvhId9EN965drlYmMfusMCwavklBOWdR1MdSSBIYPS5eISmj0A -EQEAAYkBHwQYAQIACQUCUbX5tAIbDAAKCRD1Z1YFx04Cz4CzCACpN1l39Yzoniqx -laabcOrEbFjhKXlFXPm5TC+nj2iO8BieJLoltTcQL1nbxBHcxMkxUUJAVKBSmlh3 -BPjYJhXBNRvW/gamjaO+LoStXI+0vO4aOhkR0tLqA9/zQFM9uVPu6InS0N98oMaL -azyxnXuqEanCN7yWfKHKxmkKiVMB1RMaE+2TYQBKPfFukiX2vv3qByVez8qYGa98 -80x6fkrqFbPoJ2oDXEGGD0W7fkv1pZV/1XCuXV/qKz3htD3AQDuLijqt6sM9Oe7Y -Lsv5lqTb5DK6g2N9xvhTz64Z+j9bf44fbMReg3ub3GXlf9rFT8eDYfyYLJgWJ/1h -YZximth9mQENBFfOfR0BCAC9W+wYcz5Ha4Hwllb0c8Cqwp4k5d0bsVWjYgMcn+DL -uJmh7VT80oqiHay9Z75sGZ7flLjdB8ZiAgi2qARz+rNMb9p/S+T4MbjVF2L87on9 -/PdgurUgMsof+UmIClCJBOMvod+BK7VBSPu8XUJzOu61QHQxnhRbLgwmcds15giG -3oSK/h9l/6r2FwD543WZtQ6sforBZ/GtUjFDYsgdPC50RQXRuhNP/ow8py253GQD -gKw37Sx1tRGMHjvD4Dk95i0yeQWcjMoY+VWMWCDOQ2swKjl8q3BX2ltKFir5Bu7l -JeC/96ql9vKaWSTgIqnyQD4+8nYSmetkaGU2LROSg8grABEBAAG0IkpvbmF0aGFu -IFJpZGRlbGwgPGpyQGpyaWRkZWxsLm9yZz6JATgEEwECACIFAlfOfR0CGwMGCwkI -BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEOyU0Y9/BZl+538H/ixizKvWeq5pPi77 -fYMUWQ57bGBeNuEFLJUk0y6Rz2fAnBPDKYCwLdUEBnDxHDffIl6uVRdCtfMGwQZo -1HutE0ZvGgi20EItsle9qzUUiLfuTyz7Dh1tPz7J8NI7VUffq+XTr/mzhqTbCH0p -uY2AflfHOHQbEJL7wdqCQ95wXQw6fg5/1pbhvxxbRojjGILEiiW1L37gyDjfDZKo -/IdT0e30EgL91vTW1Ctn3IXLOmzp46+h5EatWB/22iIrUZm1ubgX4ubBpHmKmZkK -3ou5vN4qi664EMw8xnh4GmnPM1vNRwXTbt7kQakzOFeT6N2C8AeLPM3oYitGxzMS -KSnmRC25AQ0EV859HQEIAM116WD7qM2bwIuMIYFxe2ARaYpLlHvfm4ptgD6QQH4G -FhK00pWwd3pMXB7MXHv2gY6my1Y7hPQyn+clsE7mPzyxm3lswdZLWn1h6QCrMc+T -s+dynz9F46chbpDJ90QXs/hG8BOsA5P0F7D1YAjv1imPqm1Uo8RfsVCgnRSiENvm -hCKi5+TZiQnpy2wXDUyqiDcm4WvJRhr8UM+cZmOJHUJbUXWTw5iVIjlp6UN8Kbib -TXGsxSKjuEKFLIGZmhX1qP3V0ciZvqx8MMUJqtulcrJ8Pop2Vf2wGrTbfnJ9A2qD -i/MPVV9bfOnE3DO+E+cpoUVcdfe94yIbx3+ZXX3B0zcAEQEAAYkBHwQYAQIACQUC -V859HQIbDAAKCRDslNGPfwWZfs3LCACjpcZ3mE4k720A/11+0sYOvuQJqj7Kf+kT -Cy2AvGBwhHkWSJycz6XMxAiGTX9e9auk2Qwo5UiS9aDboipJJgEc9ptU2aDKi1uV -UCles9u0zNdcEPD03rKfGQ4MzGaMip3U+4OIWXtjhl5UsUOPnWSVjv5Ix6HHyY+y -i1y+ZDl7pyuaMzvTY5LuZEPOUpj/RibzfrYGNkH9XfsNVH29c8nS8Auz50ATr21T -qsALdsaeITr5ibhlPv0PGOhlwYk/cSD5647WoSK1NxhIOabzpb0Fl7CseC34PbQ1 -mVpvqmXoL+jeMnUliXxuyVVhf534xqJl0X6wyZXiZsGBApHyJDVzmQENBFaTa+4B -CACxyJ3oTNhz5oJOCu70mrxFqj/uqDfNm2K8Prr0CQ2I7yXijfTZGVIjURIzp+Zh -mc1LhZYlNwwI9ivFFvLoS9kH2rkx9EaIuP3ljtxQskRFrX4BepR9/EvIoi7tUuOE -qCy2pRy/y7Rc7s3Qbu/sPQ17wvRQqzTKsvoh9wxat6990l1MFjlF/xBOD4Qb9LJG -zc6Y8SLEEs7l/vAesL0viOME1hVQk+fG0KFosI32aeNnnLHPZbLiZ2YETvI5nROM -hleSDusqUpVxXzkIBcVLbCyeJooRsZAhJ6AB8qvhOXx2xTBBgMpwaE/DHF6Zkvms -VB6lRNqMLjGeLOkmqx1vjZynABEBAAG0IkJodXNoYW4gU2hhaCAoa2RlKSA8YnNo -YWhAa2RlLm9yZz6JATcEEwEIACEFAld3rtICGwMFCwkIBwIGFQgJCgsCBBYCAwEC -HgECF4AACgkQ/geEEX+84R1tfwf9GSACMGPFi9AArBwFhaYUKB4BJqNgCSRvQJ7g -tG6YAaW+o919AtmpO+nq0JtvrSXQVLbJ1jxEMXsNJnvZByiACm91u8z/LzMoI5C6 -RK13eGTTBr57LAE8lXI0xhkiSwQUAPQWJXumE1evoHExHrAi+z6aLa6QXwyqmP5a -mwked6S6R9GxGI2c+UPm9sVh4Lb1L/pEzeCdt7/1R1baAQ+weI1cVbfd4b9Qc5r/ -baq41CesZKz29UgorqiLyBXlWLUCClAXB/nrbAh7hR4pDhSsIExSTp8gBnBTpKc2 -NAzGZTxopcvi/SOAxkdFlfkBewXuvHOxg0S8s8z7Owaeckbj7bQgQmh1c2hhbiBT -aGFoIDxiaHVzaDk0QGdtYWlsLmNvbT6JATcEEwEIACEFAlaTa+4CGwMFCwkIBwIG -FQgJCgsCBBYCAwECHgECF4AACgkQ/geEEX+84R3CQggAmSPWL+WBizj5WIcSZ2Ox -1jCNnCcZ73K84s7ZSd83mq6fgi4O4/JqoZCMCU2YzMuo7Cs/h1UPXkARgf/bPFi7 -XKvEytQd0lOSUSubn27ederXfUuhUo5FNneiyYBX9Ri1RjOPv5oE3cmYWM34Xvl/ -O6ucRJ28s8Z9GuWG6NChbbHdkDIhulCzWWiMtIQXG7zGWRdjcqRItGVSjEaCdyWE -L6i//5n0TiM+PPidmFO4A56blLCHrIe6MPW/fAiWBzWpTxTUpn66XC3AMBWdLT/5 -ZCNea1qXY+I/TBwIiBl1mKFN1j945j216mnX1IHBSR01yrMxsBnJ+Hx3i32OxhEf -jrkBDQRWk2vuAQgAvA+l8nsDh1/p03OJgUHy5q5jSbukV+5GP3MLwLLJHrzkzT84 -CSbZ1CUCNYgAViO1PPGn4wL1NcM2KwXxH0ON4dXD8OjTGOP3Jh3vGIpgoJPHDWCh -ktLDN/mCfITU0hsSiWu2N0Q8QyyvX0qhtcWulEXHLTU+e62ru8VLVRMRaTdKhnk7 -TADiw6d+sGPo0mAaVWe/2f49Eg0H/UoVNBtjmTCrGb3B9SmnTlVuJE9uyEhzexCW -43TDwpmcrSfuUsYvTxR2Aq/50dagWP49KLiku9bkoc3LLM+VoJ5Jj/O377H6XwkC -ZeUpIj2r3XaHWaAQkUSsKkJ1e57NyRZoe1NvpQARAQABiQEfBBgBCAAJBQJWk2vu -AhsMAAoJEP4HhBF/vOEdONIH/RviPwDNbm+1AITwED2duUnSGkx/ejFeXJlrLnE5 -xlMtVw4fCNIWWhAf5JFhzq5mysqoYPzbYBKl7T/5KiV+a7k7fQDd00pcSfiKwssA -pt95Eu8j0QA4MDbIaAn/xx91bo3HDeCnw4yLooy0mW3yGxunBqNm4Ks+reKfTWma -H3EIRXz8AIH79yC9QzRamb1KIQz8v4+XlOyHQ48rS54RlGU30q84Vl5AmcmykTlt -Oc0nDEXebi92/op/2bvK4HhP5SxfJ5g+NmCdOfJ/u9i40ez+Q6q25WwIS4kIPAgW -6yBSaM0FMlA5088LBkRbkAMe268qbDkqln2HFRKl8YicHay5AQ0EWivdggEIALrl -1fmIdKmDulkGS5xPl9AYrz5UWNbx+Adsw4AwWNKq2yHT5eP6b28EC5P1aNslWah3 -6BoW6pwZF2Rac1fUDDpxHa6zKPLp5v9Nn+27hGeel5JCk6XpbJet0LtKrtvyEqX8 -QsURSxmXY/lSwNEloXtHnMIEfvdWb3ChNW8n8xvfrG1WNL/FkKvWX8dIVKP9CX+/ -hQIlFiIJkulx7gp/g2AUx6xnBhH/glOuPpXx+Qmxs+NgCqrGM2cGFleEWq8DQVQ7 -jOl3apQvZuFnETqLOasldF0ObBP0gcrhztWuWWsxRT2656ogbYNTzkLOLkMOMFNk -bBDPmxlCETUxaCKYx7EAEQEAAYkCbAQYAQgAIBYhBAqsd1u2Q3qNmvejrP4HhBF/ -vOEdBQJaK92CAhsCAUAJEP4HhBF/vOEdwHQgBBkBCAAdFiEEs8s2ZVJUC+Bu6a2X -EZaMRJKMrvwFAlor3YIACgkQEZaMRJKMrvxlSQf/dMHVeQbG+d1/2otR3UnBO3T/ -nJYQ41RIFPO+tNRe3J7c3qPRAErKNmC3ZF5zROBqvEx1KVy5Pzy05bpuc9jqzmG3 -H681lNZC0YLg4FXIqnMiPuHr+T+cHIU6y60Tl+7shBquX0x2Iu8RJqJURlxVBAHL -FkRsEugzqtvLA0m4aPi0S18jwRVROpU5l84yGsOacT4DFxxj429r7hz94XBUt/Ap -GyoBYJ75Qs3gnmt8uq1bPOsVVIv5dQv7QHUxR5MW0EM8qGzVjheebo4ddoljjxap -Wi10iXEoEW+iQbpj0t1+INwxDnliyjl4Kl11nU8/Z/duRtbPWc+RKkRjj4ObVDaa -B/4g4VraKz1/cqbliz5ic6v3v+pe3dWGOadRT/PHxvt9ywzsT+vaQqnyKEuId8bS -AbaumTg/L3lYW+Bl0l96Nf6xxLq9cI/CXSCk4si0HHNGxP6qpFNc9sLTw56QzIkq -fitF87nq6zpE0dzb246tTd3gE+3KfbvrfYyDQXuC9+vg80GXcFBr4u6IzD02Nryj -OlWUhxCg5sNQuCH6faEhFQJUJNgLJZXSwP/IbgN1e+dvgqLFc+JDtIP34tS6pE7J -BX0VTu2NWW7OTeKm/9q3V6eHGBJijXvyCPsvcaAscqGwRGQRAixwmXyHTtrAeJ7e -9mPtPxudnFths9so2z9DGmaduQENBFor3b0BCACzoDyH2gsTKGGDkR3yybCeerjh -j+mHISDX8u8Blb7TT752wuF6eqvFD0oo6LpI2n8OWT2RbgWexN0KuFcf3kU3B6GK -uNAmocRQ5lL7em5wwhZbDFzVwkjlLZ4Xo+XJTIwrZu2sLZDg9uSUK8twJpsQHkL/ -NOywXImMvv4nUZWr9bEMlDoHIYkv57EkF/pZLY8FypLO0I/9zqZbvg/I04oNqhnT -VK3nZG4GYbFbHb4rZribgatyGsNopV+JevYPYqMQYu+PNW5mi1dT9gbR7KlKZhO8 -KcOCXUPjUwYgD7jPjqqNvJlk1aKL+Uh/UBznr4FSSgnzO0XwY/MxlSdx/w3LABEB -AAGJATYEGAEIACAWIQQKrHdbtkN6jZr3o6z+B4QRf7zhHQUCWivdvQIbIAAKCRD+ -B4QRf7zhHd90CACFf1rob/ih2CpCs8MyWKhGRCkXhakpPdVvnrRw3+9pjwdyfiH6 -JDWAkoBJuEf+e9KfbiAQXHMSz8E72yVO7/VLb3NJBXLvbcTVjoHtFtOOqqrkaFiM -BWcWy8HEpfF8JYYra7dUwGT67CEccs18x3hPVUyAFkH7Z470RqfCn3Ql6C4JTJG+ -CkReuaczD3+dYT0kOe29lYZsGaIfWOG+RTOHICnaLoNgof4DxVk3dChlrkkbPMSp -1LoJN19I9PPaaPNY9Q03DHswM/UGW0rNajNT4cZf0miRBMG/0j+j2hkvTD73zKbI -bs8/0reS1nrBgjiRzBunFiJv0ABSLle1liqY -=l3YP ------END PGP PUBLIC KEY BLOCK----- diff -Nru kactivitymanagerd-5.22.4/debian/watch kactivitymanagerd-5.12.8/debian/watch --- kactivitymanagerd-5.22.4/debian/watch 2021-07-27 12:42:03.000000000 +0000 +++ kactivitymanagerd-5.12.8/debian/watch 2019-07-04 08:38:45.000000000 +0000 @@ -1,2 +1,2 @@ -version=4 -opts=pgpsigurlmangle=s/$/.sig/ https://download.kde.org/stable/plasma/([\d.]+)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ +version=3 +http://download.kde.org/stable/plasma/([\d.]+)/kactivitymanagerd-([\d.]+)\.tar\.xz diff -Nru kactivitymanagerd-5.22.4/.git-blame-ignore-revs kactivitymanagerd-5.12.8/.git-blame-ignore-revs --- kactivitymanagerd-5.22.4/.git-blame-ignore-revs 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/.git-blame-ignore-revs 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -# clang-format -3845e5af39cc8fff4bdfc9ae7ce9c4302e5a8ced diff -Nru kactivitymanagerd-5.22.4/.gitignore kactivitymanagerd-5.12.8/.gitignore --- kactivitymanagerd-5.22.4/.gitignore 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/.gitignore 2019-03-05 12:13:01.000000000 +0000 @@ -16,10 +16,3 @@ GRTAGS GSYMS GTAGS -.clang-format -CMakeLists.txt.user* -/build*/ -.clangd -.idea -/cmake-build* -.cache diff -Nru kactivitymanagerd-5.22.4/LICENSES/GPL-2.0-only.txt kactivitymanagerd-5.12.8/LICENSES/GPL-2.0-only.txt --- kactivitymanagerd-5.22.4/LICENSES/GPL-2.0-only.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/LICENSES/GPL-2.0-only.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,319 +0,0 @@ -GNU GENERAL PUBLIC LICENSE - -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. - -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - -Preamble - -The licenses for most software are designed to take away your freedom to share -and change it. By contrast, the GNU General Public License is intended to -guarantee your freedom to share and change free software--to make sure the -software is free for all its users. This General Public License applies to -most of the Free Software Foundation's software and to any other program whose -authors commit to using it. (Some other Free Software Foundation software -is covered by the GNU Lesser General Public License instead.) You can apply -it to your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our -General Public Licenses are designed to make sure that you have the freedom -to distribute copies of free software (and charge for this service if you -wish), that you receive source code or can get it if you want it, that you -can change the software or use pieces of it in new free programs; and that -you know you can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to -deny you these rights or to ask you to surrender the rights. These restrictions -translate to certain responsibilities for you if you distribute copies of -the software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or -for a fee, you must give the recipients all the rights that you have. You -must make sure that they, too, receive or can get the source code. And you -must show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) -offer you this license which gives you legal permission to copy, distribute -and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that -everyone understands that there is no warranty for this free software. If -the software is modified by someone else and passed on, we want its recipients -to know that what they have is not the original, so that any problems introduced -by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We -wish to avoid the danger that redistributors of a free program will individually -obtain patent licenses, in effect making the program proprietary. To prevent -this, we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification -follow. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a notice -placed by the copyright holder saying it may be distributed under the terms -of this General Public License. The "Program", below, refers to any such program -or work, and a "work based on the Program" means either the Program or any -derivative work under copyright law: that is to say, a work containing the -Program or a portion of it, either verbatim or with modifications and/or translated -into another language. (Hereinafter, translation is included without limitation -in the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not covered -by this License; they are outside its scope. The act of running the Program -is not restricted, and the output from the Program is covered only if its -contents constitute a work based on the Program (independent of having been -made by running the Program). Whether that is true depends on what the Program -does. - -1. You may copy and distribute verbatim copies of the Program's source code -as you receive it, in any medium, provided that you conspicuously and appropriately -publish on each copy an appropriate copyright notice and disclaimer of warranty; -keep intact all the notices that refer to this License and to the absence -of any warranty; and give any other recipients of the Program a copy of this -License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you -may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, -thus forming a work based on the Program, and copy and distribute such modifications -or work under the terms of Section 1 above, provided that you also meet all -of these conditions: - -a) You must cause the modified files to carry prominent notices stating that -you changed the files and the date of any change. - -b) You must cause any work that you distribute or publish, that in whole or -in part contains or is derived from the Program or any part thereof, to be -licensed as a whole at no charge to all third parties under the terms of this -License. - -c) If the modified program normally reads commands interactively when run, -you must cause it, when started running for such interactive use in the most -ordinary way, to print or display an announcement including an appropriate -copyright notice and a notice that there is no warranty (or else, saying that -you provide a warranty) and that users may redistribute the program under -these conditions, and telling the user how to view a copy of this License. -(Exception: if the Program itself is interactive but does not normally print -such an announcement, your work based on the Program is not required to print -an announcement.) - -These requirements apply to the modified work as a whole. If identifiable -sections of that work are not derived from the Program, and can be reasonably -considered independent and separate works in themselves, then this License, -and its terms, do not apply to those sections when you distribute them as -separate works. But when you distribute the same sections as part of a whole -which is a work based on the Program, the distribution of the whole must be -on the terms of this License, whose permissions for other licensees extend -to the entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest your -rights to work written entirely by you; rather, the intent is to exercise -the right to control the distribution of derivative or collective works based -on the Program. - -In addition, mere aggregation of another work not based on the Program with -the Program (or with a work based on the Program) on a volume of a storage -or distribution medium does not bring the other work under the scope of this -License. - -3. You may copy and distribute the Program (or a work based on it, under Section -2) in object code or executable form under the terms of Sections 1 and 2 above -provided that you also do one of the following: - -a) Accompany it with the complete corresponding machine-readable source code, -which must be distributed under the terms of Sections 1 and 2 above on a medium -customarily used for software interchange; or, - -b) Accompany it with a written offer, valid for at least three years, to give -any third party, for a charge no more than your cost of physically performing -source distribution, a complete machine-readable copy of the corresponding -source code, to be distributed under the terms of Sections 1 and 2 above on -a medium customarily used for software interchange; or, - -c) Accompany it with the information you received as to the offer to distribute -corresponding source code. (This alternative is allowed only for noncommercial -distribution and only if you received the program in object code or executable -form with such an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for making -modifications to it. For an executable work, complete source code means all -the source code for all modules it contains, plus any associated interface -definition files, plus the scripts used to control compilation and installation -of the executable. However, as a special exception, the source code distributed -need not include anything that is normally distributed (in either source or -binary form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component itself -accompanies the executable. - -If distribution of executable or object code is made by offering access to -copy from a designated place, then offering equivalent access to copy the -source code from the same place counts as distribution of the source code, -even though third parties are not compelled to copy the source along with -the object code. - -4. You may not copy, modify, sublicense, or distribute the Program except -as expressly provided under this License. Any attempt otherwise to copy, modify, -sublicense or distribute the Program is void, and will automatically terminate -your rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses terminated -so long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed -it. However, nothing else grants you permission to modify or distribute the -Program or its derivative works. These actions are prohibited by law if you -do not accept this License. Therefore, by modifying or distributing the Program -(or any work based on the Program), you indicate your acceptance of this License -to do so, and all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the Program), -the recipient automatically receives a license from the original licensor -to copy, distribute or modify the Program subject to these terms and conditions. -You may not impose any further restrictions on the recipients' exercise of -the rights granted herein. You are not responsible for enforcing compliance -by third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent infringement -or for any other reason (not limited to patent issues), conditions are imposed -on you (whether by court order, agreement or otherwise) that contradict the -conditions of this License, they do not excuse you from the conditions of -this License. If you cannot distribute so as to satisfy simultaneously your -obligations under this License and any other pertinent obligations, then as -a consequence you may not distribute the Program at all. For example, if a -patent license would not permit royalty-free redistribution of the Program -by all those who receive copies directly or indirectly through you, then the -only way you could satisfy both it and this License would be to refrain entirely -from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply and -the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents -or other property right claims or to contest validity of any such claims; -this section has the sole purpose of protecting the integrity of the free -software distribution system, which is implemented by public license practices. -Many people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing to -distribute software through any other system and a licensee cannot impose -that choice. - -This section is intended to make thoroughly clear what is believed to be a -consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain -countries either by patents or by copyrighted interfaces, the original copyright -holder who places the Program under this License may add an explicit geographical -distribution limitation excluding those countries, so that distribution is -permitted only in or among countries not thus excluded. In such case, this -License incorporates the limitation as if written in the body of this License. - -9. The Free Software Foundation may publish revised and/or new versions of -the General Public License from time to time. Such new versions will be similar -in spirit to the present version, but may differ in detail to address new -problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies -a version number of this License which applies to it and "any later version", -you have the option of following the terms and conditions either of that version -or of any later version published by the Free Software Foundation. If the -Program does not specify a version number of this License, you may choose -any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs -whose distribution conditions are different, write to the author to ask for -permission. For software which is copyrighted by the Free Software Foundation, -write to the Free Software Foundation; we sometimes make exceptions for this. -Our decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing and reuse -of software generally. - - NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR -THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE -STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM -"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE -OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE -OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA -OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES -OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH -HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Programs - -If you develop a new program, and you want it to be of the greatest possible -use to the public, the best way to achieve this is to make it free software -which everyone can redistribute and change under these terms. - -To do so, attach the following notices to the program. It is safest to attach -them to the start of each source file to most effectively convey the exclusion -of warranty; and each file should have at least the "copyright" line and a -pointer to where the full notice is found. - - - -Copyright (C)< yyyy> - -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, write to the Free Software Foundation, Inc., 51 Franklin -Street, Fifth Floor, Boston, MA 02110-1301, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this when -it starts in an interactive mode: - -Gnomovision version 69, Copyright (C) year name of author Gnomovision comes -with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, -and you are welcome to redistribute it under certain conditions; type `show -c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may be -called something other than `show w' and `show c'; they could even be mouse-clicks -or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your school, -if any, to sign a "copyright disclaimer" for the program, if necessary. Here -is a sample; alter the names: - -Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' -(which makes passes at compilers) written by James Hacker. - -, 1 April 1989 Ty Coon, President of Vice This General -Public License does not permit incorporating your program into proprietary -programs. If your program is a subroutine library, you may consider it more -useful to permit linking proprietary applications with the library. If this -is what you want to do, use the GNU Lesser General Public License instead -of this License. diff -Nru kactivitymanagerd-5.22.4/LICENSES/GPL-2.0-or-later.txt kactivitymanagerd-5.12.8/LICENSES/GPL-2.0-or-later.txt --- kactivitymanagerd-5.22.4/LICENSES/GPL-2.0-or-later.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/LICENSES/GPL-2.0-or-later.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,319 +0,0 @@ -GNU GENERAL PUBLIC LICENSE - -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. - -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - -Preamble - -The licenses for most software are designed to take away your freedom to share -and change it. By contrast, the GNU General Public License is intended to -guarantee your freedom to share and change free software--to make sure the -software is free for all its users. This General Public License applies to -most of the Free Software Foundation's software and to any other program whose -authors commit to using it. (Some other Free Software Foundation software -is covered by the GNU Lesser General Public License instead.) You can apply -it to your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our -General Public Licenses are designed to make sure that you have the freedom -to distribute copies of free software (and charge for this service if you -wish), that you receive source code or can get it if you want it, that you -can change the software or use pieces of it in new free programs; and that -you know you can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to -deny you these rights or to ask you to surrender the rights. These restrictions -translate to certain responsibilities for you if you distribute copies of -the software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or -for a fee, you must give the recipients all the rights that you have. You -must make sure that they, too, receive or can get the source code. And you -must show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) -offer you this license which gives you legal permission to copy, distribute -and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that -everyone understands that there is no warranty for this free software. If -the software is modified by someone else and passed on, we want its recipients -to know that what they have is not the original, so that any problems introduced -by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We -wish to avoid the danger that redistributors of a free program will individually -obtain patent licenses, in effect making the program proprietary. To prevent -this, we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification -follow. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a notice -placed by the copyright holder saying it may be distributed under the terms -of this General Public License. The "Program", below, refers to any such program -or work, and a "work based on the Program" means either the Program or any -derivative work under copyright law: that is to say, a work containing the -Program or a portion of it, either verbatim or with modifications and/or translated -into another language. (Hereinafter, translation is included without limitation -in the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not covered -by this License; they are outside its scope. The act of running the Program -is not restricted, and the output from the Program is covered only if its -contents constitute a work based on the Program (independent of having been -made by running the Program). Whether that is true depends on what the Program -does. - -1. You may copy and distribute verbatim copies of the Program's source code -as you receive it, in any medium, provided that you conspicuously and appropriately -publish on each copy an appropriate copyright notice and disclaimer of warranty; -keep intact all the notices that refer to this License and to the absence -of any warranty; and give any other recipients of the Program a copy of this -License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you -may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, -thus forming a work based on the Program, and copy and distribute such modifications -or work under the terms of Section 1 above, provided that you also meet all -of these conditions: - -a) You must cause the modified files to carry prominent notices stating that -you changed the files and the date of any change. - -b) You must cause any work that you distribute or publish, that in whole or -in part contains or is derived from the Program or any part thereof, to be -licensed as a whole at no charge to all third parties under the terms of this -License. - -c) If the modified program normally reads commands interactively when run, -you must cause it, when started running for such interactive use in the most -ordinary way, to print or display an announcement including an appropriate -copyright notice and a notice that there is no warranty (or else, saying that -you provide a warranty) and that users may redistribute the program under -these conditions, and telling the user how to view a copy of this License. -(Exception: if the Program itself is interactive but does not normally print -such an announcement, your work based on the Program is not required to print -an announcement.) - -These requirements apply to the modified work as a whole. If identifiable -sections of that work are not derived from the Program, and can be reasonably -considered independent and separate works in themselves, then this License, -and its terms, do not apply to those sections when you distribute them as -separate works. But when you distribute the same sections as part of a whole -which is a work based on the Program, the distribution of the whole must be -on the terms of this License, whose permissions for other licensees extend -to the entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest your -rights to work written entirely by you; rather, the intent is to exercise -the right to control the distribution of derivative or collective works based -on the Program. - -In addition, mere aggregation of another work not based on the Program with -the Program (or with a work based on the Program) on a volume of a storage -or distribution medium does not bring the other work under the scope of this -License. - -3. You may copy and distribute the Program (or a work based on it, under Section -2) in object code or executable form under the terms of Sections 1 and 2 above -provided that you also do one of the following: - -a) Accompany it with the complete corresponding machine-readable source code, -which must be distributed under the terms of Sections 1 and 2 above on a medium -customarily used for software interchange; or, - -b) Accompany it with a written offer, valid for at least three years, to give -any third party, for a charge no more than your cost of physically performing -source distribution, a complete machine-readable copy of the corresponding -source code, to be distributed under the terms of Sections 1 and 2 above on -a medium customarily used for software interchange; or, - -c) Accompany it with the information you received as to the offer to distribute -corresponding source code. (This alternative is allowed only for noncommercial -distribution and only if you received the program in object code or executable -form with such an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for making -modifications to it. For an executable work, complete source code means all -the source code for all modules it contains, plus any associated interface -definition files, plus the scripts used to control compilation and installation -of the executable. However, as a special exception, the source code distributed -need not include anything that is normally distributed (in either source or -binary form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component itself -accompanies the executable. - -If distribution of executable or object code is made by offering access to -copy from a designated place, then offering equivalent access to copy the -source code from the same place counts as distribution of the source code, -even though third parties are not compelled to copy the source along with -the object code. - -4. You may not copy, modify, sublicense, or distribute the Program except -as expressly provided under this License. Any attempt otherwise to copy, modify, -sublicense or distribute the Program is void, and will automatically terminate -your rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses terminated -so long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed -it. However, nothing else grants you permission to modify or distribute the -Program or its derivative works. These actions are prohibited by law if you -do not accept this License. Therefore, by modifying or distributing the Program -(or any work based on the Program), you indicate your acceptance of this License -to do so, and all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the Program), -the recipient automatically receives a license from the original licensor -to copy, distribute or modify the Program subject to these terms and conditions. -You may not impose any further restrictions on the recipients' exercise of -the rights granted herein. You are not responsible for enforcing compliance -by third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent infringement -or for any other reason (not limited to patent issues), conditions are imposed -on you (whether by court order, agreement or otherwise) that contradict the -conditions of this License, they do not excuse you from the conditions of -this License. If you cannot distribute so as to satisfy simultaneously your -obligations under this License and any other pertinent obligations, then as -a consequence you may not distribute the Program at all. For example, if a -patent license would not permit royalty-free redistribution of the Program -by all those who receive copies directly or indirectly through you, then the -only way you could satisfy both it and this License would be to refrain entirely -from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply and -the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents -or other property right claims or to contest validity of any such claims; -this section has the sole purpose of protecting the integrity of the free -software distribution system, which is implemented by public license practices. -Many people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing to -distribute software through any other system and a licensee cannot impose -that choice. - -This section is intended to make thoroughly clear what is believed to be a -consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain -countries either by patents or by copyrighted interfaces, the original copyright -holder who places the Program under this License may add an explicit geographical -distribution limitation excluding those countries, so that distribution is -permitted only in or among countries not thus excluded. In such case, this -License incorporates the limitation as if written in the body of this License. - -9. The Free Software Foundation may publish revised and/or new versions of -the General Public License from time to time. Such new versions will be similar -in spirit to the present version, but may differ in detail to address new -problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies -a version number of this License which applies to it and "any later version", -you have the option of following the terms and conditions either of that version -or of any later version published by the Free Software Foundation. If the -Program does not specify a version number of this License, you may choose -any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs -whose distribution conditions are different, write to the author to ask for -permission. For software which is copyrighted by the Free Software Foundation, -write to the Free Software Foundation; we sometimes make exceptions for this. -Our decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing and reuse -of software generally. - - NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR -THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE -STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM -"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE -OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE -OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA -OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES -OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH -HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Programs - -If you develop a new program, and you want it to be of the greatest possible -use to the public, the best way to achieve this is to make it free software -which everyone can redistribute and change under these terms. - -To do so, attach the following notices to the program. It is safest to attach -them to the start of each source file to most effectively convey the exclusion -of warranty; and each file should have at least the "copyright" line and a -pointer to where the full notice is found. - - - -Copyright (C) - -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, write to the Free Software Foundation, Inc., 51 Franklin -Street, Fifth Floor, Boston, MA 02110-1301, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this when -it starts in an interactive mode: - -Gnomovision version 69, Copyright (C) year name of author Gnomovision comes -with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, -and you are welcome to redistribute it under certain conditions; type `show -c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may be -called something other than `show w' and `show c'; they could even be mouse-clicks -or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your school, -if any, to sign a "copyright disclaimer" for the program, if necessary. Here -is a sample; alter the names: - -Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' -(which makes passes at compilers) written by James Hacker. - -, 1 April 1989 Ty Coon, President of Vice This General -Public License does not permit incorporating your program into proprietary -programs. If your program is a subroutine library, you may consider it more -useful to permit linking proprietary applications with the library. If this -is what you want to do, use the GNU Lesser General Public License instead -of this License. diff -Nru kactivitymanagerd-5.22.4/LICENSES/GPL-3.0-only.txt kactivitymanagerd-5.12.8/LICENSES/GPL-3.0-only.txt --- kactivitymanagerd-5.22.4/LICENSES/GPL-3.0-only.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/LICENSES/GPL-3.0-only.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,625 +0,0 @@ -GNU GENERAL PUBLIC LICENSE - -Version 3, 29 June 2007 - -Copyright © 2007 Free Software Foundation, Inc. - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - -Preamble - -The GNU General Public License is a free, copyleft license for software and -other kinds of works. - -The licenses for most software and other practical works are designed to take -away your freedom to share and change the works. By contrast, the GNU General -Public License is intended to guarantee your freedom to share and change all -versions of a program--to make sure it remains free software for all its users. -We, the Free Software Foundation, use the GNU General Public License for most -of our software; it applies also to any other work released this way by its -authors. You can apply it to your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our -General Public Licenses are designed to make sure that you have the freedom -to distribute copies of free software (and charge for them if you wish), that -you receive source code or can get it if you want it, that you can change -the software or use pieces of it in new free programs, and that you know you -can do these things. - -To protect your rights, we need to prevent others from denying you these rights -or asking you to surrender the rights. Therefore, you have certain responsibilities -if you distribute copies of the software, or if you modify it: responsibilities -to respect the freedom of others. - -For example, if you distribute copies of such a program, whether gratis or -for a fee, you must pass on to the recipients the same freedoms that you received. -You must make sure that they, too, receive or can get the source code. And -you must show them these terms so they know their rights. - -Developers that use the GNU GPL protect your rights with two steps: (1) assert -copyright on the software, and (2) offer you this License giving you legal -permission to copy, distribute and/or modify it. - -For the developers' and authors' protection, the GPL clearly explains that -there is no warranty for this free software. For both users' and authors' -sake, the GPL requires that modified versions be marked as changed, so that -their problems will not be attributed erroneously to authors of previous versions. - -Some devices are designed to deny users access to install or run modified -versions of the software inside them, although the manufacturer can do so. -This is fundamentally incompatible with the aim of protecting users' freedom -to change the software. The systematic pattern of such abuse occurs in the -area of products for individuals to use, which is precisely where it is most -unacceptable. Therefore, we have designed this version of the GPL to prohibit -the practice for those products. If such problems arise substantially in other -domains, we stand ready to extend this provision to those domains in future -versions of the GPL, as needed to protect the freedom of users. - -Finally, every program is threatened constantly by software patents. States -should not allow patents to restrict development and use of software on general-purpose -computers, but in those that do, we wish to avoid the special danger that -patents applied to a free program could make it effectively proprietary. To -prevent this, the GPL assures that patents cannot be used to render the program -non-free. - -The precise terms and conditions for copying, distribution and modification -follow. - -TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - -"Copyright" also means copyright-like laws that apply to other kinds of works, -such as semiconductor masks. - -"The Program" refers to any copyrightable work licensed under this License. -Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals -or organizations. - -To "modify" a work means to copy from or adapt all or part of the work in -a fashion requiring copyright permission, other than the making of an exact -copy. The resulting work is called a "modified version" of the earlier work -or a work "based on" the earlier work. - -A "covered work" means either the unmodified Program or a work based on the -Program. - -To "propagate" a work means to do anything with it that, without permission, -would make you directly or secondarily liable for infringement under applicable -copyright law, except executing it on a computer or modifying a private copy. -Propagation includes copying, distribution (with or without modification), -making available to the public, and in some countries other activities as -well. - -To "convey" a work means any kind of propagation that enables other parties -to make or receive copies. Mere interaction with a user through a computer -network, with no transfer of a copy, is not conveying. - -An interactive user interface displays "Appropriate Legal Notices" to the -extent that it includes a convenient and prominently visible feature that -(1) displays an appropriate copyright notice, and (2) tells the user that -there is no warranty for the work (except to the extent that warranties are -provided), that licensees may convey the work under this License, and how -to view a copy of this License. If the interface presents a list of user commands -or options, such as a menu, a prominent item in the list meets this criterion. - - 1. Source Code. - -The "source code" for a work means the preferred form of the work for making -modifications to it. "Object code" means any non-source form of a work. - -A "Standard Interface" means an interface that either is an official standard -defined by a recognized standards body, or, in the case of interfaces specified -for a particular programming language, one that is widely used among developers -working in that language. - -The "System Libraries" of an executable work include anything, other than -the work as a whole, that (a) is included in the normal form of packaging -a Major Component, but which is not part of that Major Component, and (b) -serves only to enable use of the work with that Major Component, or to implement -a Standard Interface for which an implementation is available to the public -in source code form. A "Major Component", in this context, means a major essential -component (kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to produce -the work, or an object code interpreter used to run it. - -The "Corresponding Source" for a work in object code form means all the source -code needed to generate, install, and (for an executable work) run the object -code and to modify the work, including scripts to control those activities. -However, it does not include the work's System Libraries, or general-purpose -tools or generally available free programs which are used unmodified in performing -those activities but which are not part of the work. For example, Corresponding -Source includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically linked -subprograms that the work is specifically designed to require, such as by -intimate data communication or control flow between those subprograms and -other parts of the work. - -The Corresponding Source need not include anything that users can regenerate -automatically from other parts of the Corresponding Source. - - The Corresponding Source for a work in source code form is that same work. - - 2. Basic Permissions. - -All rights granted under this License are granted for the term of copyright -on the Program, and are irrevocable provided the stated conditions are met. -This License explicitly affirms your unlimited permission to run the unmodified -Program. The output from running a covered work is covered by this License -only if the output, given its content, constitutes a covered work. This License -acknowledges your rights of fair use or other equivalent, as provided by copyright -law. - -You may make, run and propagate covered works that you do not convey, without -conditions so long as your license otherwise remains in force. You may convey -covered works to others for the sole purpose of having them make modifications -exclusively for you, or provide you with facilities for running those works, -provided that you comply with the terms of this License in conveying all material -for which you do not control copyright. Those thus making or running the covered -works for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of your copyrighted -material outside their relationship with you. - -Conveying under any other circumstances is permitted solely under the conditions -stated below. Sublicensing is not allowed; section 10 makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - -No covered work shall be deemed part of an effective technological measure -under any applicable law fulfilling obligations under article 11 of the WIPO -copyright treaty adopted on 20 December 1996, or similar laws prohibiting -or restricting circumvention of such measures. - -When you convey a covered work, you waive any legal power to forbid circumvention -of technological measures to the extent such circumvention is effected by -exercising rights under this License with respect to the covered work, and -you disclaim any intention to limit operation or modification of the work -as a means of enforcing, against the work's users, your or third parties' -legal rights to forbid circumvention of technological measures. - - 4. Conveying Verbatim Copies. - -You may convey verbatim copies of the Program's source code as you receive -it, in any medium, provided that you conspicuously and appropriately publish -on each copy an appropriate copyright notice; keep intact all notices stating -that this License and any non-permissive terms added in accord with section -7 apply to the code; keep intact all notices of the absence of any warranty; -and give all recipients a copy of this License along with the Program. - -You may charge any price or no price for each copy that you convey, and you -may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - -You may convey a work based on the Program, or the modifications to produce -it from the Program, in the form of source code under the terms of section -4, provided that you also meet all of these conditions: - -a) The work must carry prominent notices stating that you modified it, and -giving a relevant date. - -b) The work must carry prominent notices stating that it is released under -this License and any conditions added under section 7. This requirement modifies -the requirement in section 4 to "keep intact all notices". - -c) You must license the entire work, as a whole, under this License to anyone -who comes into possession of a copy. This License will therefore apply, along -with any applicable section 7 additional terms, to the whole of the work, -and all its parts, regardless of how they are packaged. This License gives -no permission to license the work in any other way, but it does not invalidate -such permission if you have separately received it. - -d) If the work has interactive user interfaces, each must display Appropriate -Legal Notices; however, if the Program has interactive interfaces that do -not display Appropriate Legal Notices, your work need not make them do so. - -A compilation of a covered work with other separate and independent works, -which are not by their nature extensions of the covered work, and which are -not combined with it such as to form a larger program, in or on a volume of -a storage or distribution medium, is called an "aggregate" if the compilation -and its resulting copyright are not used to limit the access or legal rights -of the compilation's users beyond what the individual works permit. Inclusion -of a covered work in an aggregate does not cause this License to apply to -the other parts of the aggregate. - - 6. Conveying Non-Source Forms. - -You may convey a covered work in object code form under the terms of sections -4 and 5, provided that you also convey the machine-readable Corresponding -Source under the terms of this License, in one of these ways: - -a) Convey the object code in, or embodied in, a physical product (including -a physical distribution medium), accompanied by the Corresponding Source fixed -on a durable physical medium customarily used for software interchange. - -b) Convey the object code in, or embodied in, a physical product (including -a physical distribution medium), accompanied by a written offer, valid for -at least three years and valid for as long as you offer spare parts or customer -support for that product model, to give anyone who possesses the object code -either (1) a copy of the Corresponding Source for all the software in the -product that is covered by this License, on a durable physical medium customarily -used for software interchange, for a price no more than your reasonable cost -of physically performing this conveying of source, or (2) access to copy the -Corresponding Source from a network server at no charge. - -c) Convey individual copies of the object code with a copy of the written -offer to provide the Corresponding Source. This alternative is allowed only -occasionally and noncommercially, and only if you received the object code -with such an offer, in accord with subsection 6b. - -d) Convey the object code by offering access from a designated place (gratis -or for a charge), and offer equivalent access to the Corresponding Source -in the same way through the same place at no further charge. You need not -require recipients to copy the Corresponding Source along with the object -code. If the place to copy the object code is a network server, the Corresponding -Source may be on a different server (operated by you or a third party) that -supports equivalent copying facilities, provided you maintain clear directions -next to the object code saying where to find the Corresponding Source. Regardless -of what server hosts the Corresponding Source, you remain obligated to ensure -that it is available for as long as needed to satisfy these requirements. - -e) Convey the object code using peer-to-peer transmission, provided you inform -other peers where the object code and Corresponding Source of the work are -being offered to the general public at no charge under subsection 6d. - -A separable portion of the object code, whose source code is excluded from -the Corresponding Source as a System Library, need not be included in conveying -the object code work. - -A "User Product" is either (1) a "consumer product", which means any tangible -personal property which is normally used for personal, family, or household -purposes, or (2) anything designed or sold for incorporation into a dwelling. -In determining whether a product is a consumer product, doubtful cases shall -be resolved in favor of coverage. For a particular product received by a particular -user, "normally used" refers to a typical or common use of that class of product, -regardless of the status of the particular user or of the way in which the -particular user actually uses, or expects or is expected to use, the product. -A product is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent the -only significant mode of use of the product. - -"Installation Information" for a User Product means any methods, procedures, -authorization keys, or other information required to install and execute modified -versions of a covered work in that User Product from a modified version of -its Corresponding Source. The information must suffice to ensure that the -continued functioning of the modified object code is in no case prevented -or interfered with solely because modification has been made. - -If you convey an object code work under this section in, or with, or specifically -for use in, a User Product, and the conveying occurs as part of a transaction -in which the right of possession and use of the User Product is transferred -to the recipient in perpetuity or for a fixed term (regardless of how the -transaction is characterized), the Corresponding Source conveyed under this -section must be accompanied by the Installation Information. But this requirement -does not apply if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has been installed -in ROM). - -The requirement to provide Installation Information does not include a requirement -to continue to provide support service, warranty, or updates for a work that -has been modified or installed by the recipient, or for the User Product in -which it has been modified or installed. Access to a network may be denied -when the modification itself materially and adversely affects the operation -of the network or violates the rules and protocols for communication across -the network. - -Corresponding Source conveyed, and Installation Information provided, in accord -with this section must be in a format that is publicly documented (and with -an implementation available to the public in source code form), and must require -no special password or key for unpacking, reading or copying. - - 7. Additional Terms. - -"Additional permissions" are terms that supplement the terms of this License -by making exceptions from one or more of its conditions. Additional permissions -that are applicable to the entire Program shall be treated as though they -were included in this License, to the extent that they are valid under applicable -law. If additional permissions apply only to part of the Program, that part -may be used separately under those permissions, but the entire Program remains -governed by this License without regard to the additional permissions. - -When you convey a copy of a covered work, you may at your option remove any -additional permissions from that copy, or from any part of it. (Additional -permissions may be written to require their own removal in certain cases when -you modify the work.) You may place additional permissions on material, added -by you to a covered work, for which you have or can give appropriate copyright -permission. - -Notwithstanding any other provision of this License, for material you add -to a covered work, you may (if authorized by the copyright holders of that -material) supplement the terms of this License with terms: - -a) Disclaiming warranty or limiting liability differently from the terms of -sections 15 and 16 of this License; or - -b) Requiring preservation of specified reasonable legal notices or author -attributions in that material or in the Appropriate Legal Notices displayed -by works containing it; or - -c) Prohibiting misrepresentation of the origin of that material, or requiring -that modified versions of such material be marked in reasonable ways as different -from the original version; or - -d) Limiting the use for publicity purposes of names of licensors or authors -of the material; or - -e) Declining to grant rights under trademark law for use of some trade names, -trademarks, or service marks; or - -f) Requiring indemnification of licensors and authors of that material by -anyone who conveys the material (or modified versions of it) with contractual -assumptions of liability to the recipient, for any liability that these contractual -assumptions directly impose on those licensors and authors. - -All other non-permissive additional terms are considered "further restrictions" -within the meaning of section 10. If the Program as you received it, or any -part of it, contains a notice stating that it is governed by this License -along with a term that is a further restriction, you may remove that term. -If a license document contains a further restriction but permits relicensing -or conveying under this License, you may add to a covered work material governed -by the terms of that license document, provided that the further restriction -does not survive such relicensing or conveying. - -If you add terms to a covered work in accord with this section, you must place, -in the relevant source files, a statement of the additional terms that apply -to those files, or a notice indicating where to find the applicable terms. - -Additional terms, permissive or non-permissive, may be stated in the form -of a separately written license, or stated as exceptions; the above requirements -apply either way. - - 8. Termination. - -You may not propagate or modify a covered work except as expressly provided -under this License. Any attempt otherwise to propagate or modify it is void, -and will automatically terminate your rights under this License (including -any patent licenses granted under the third paragraph of section 11). - -However, if you cease all violation of this License, then your license from -a particular copyright holder is reinstated (a) provisionally, unless and -until the copyright holder explicitly and finally terminates your license, -and (b) permanently, if the copyright holder fails to notify you of the violation -by some reasonable means prior to 60 days after the cessation. - -Moreover, your license from a particular copyright holder is reinstated permanently -if the copyright holder notifies you of the violation by some reasonable means, -this is the first time you have received notice of violation of this License -(for any work) from that copyright holder, and you cure the violation prior -to 30 days after your receipt of the notice. - -Termination of your rights under this section does not terminate the licenses -of parties who have received copies or rights from you under this License. -If your rights have been terminated and not permanently reinstated, you do -not qualify to receive new licenses for the same material under section 10. - - 9. Acceptance Not Required for Having Copies. - -You are not required to accept this License in order to receive or run a copy -of the Program. Ancillary propagation of a covered work occurring solely as -a consequence of using peer-to-peer transmission to receive a copy likewise -does not require acceptance. However, nothing other than this License grants -you permission to propagate or modify any covered work. These actions infringe -copyright if you do not accept this License. Therefore, by modifying or propagating -a covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - -Each time you convey a covered work, the recipient automatically receives -a license from the original licensors, to run, modify and propagate that work, -subject to this License. You are not responsible for enforcing compliance -by third parties with this License. - -An "entity transaction" is a transaction transferring control of an organization, -or substantially all assets of one, or subdividing an organization, or merging -organizations. If propagation of a covered work results from an entity transaction, -each party to that transaction who receives a copy of the work also receives -whatever licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the Corresponding -Source of the work from the predecessor in interest, if the predecessor has -it or can get it with reasonable efforts. - -You may not impose any further restrictions on the exercise of the rights -granted or affirmed under this License. For example, you may not impose a -license fee, royalty, or other charge for exercise of rights granted under -this License, and you may not initiate litigation (including a cross-claim -or counterclaim in a lawsuit) alleging that any patent claim is infringed -by making, using, selling, offering for sale, or importing the Program or -any portion of it. - - 11. Patents. - -A "contributor" is a copyright holder who authorizes use under this License -of the Program or a work on which the Program is based. The work thus licensed -is called the contributor's "contributor version". - -A contributor's "essential patent claims" are all patent claims owned or controlled -by the contributor, whether already acquired or hereafter acquired, that would -be infringed by some manner, permitted by this License, of making, using, -or selling its contributor version, but do not include claims that would be -infringed only as a consequence of further modification of the contributor -version. For purposes of this definition, "control" includes the right to -grant patent sublicenses in a manner consistent with the requirements of this -License. - -Each contributor grants you a non-exclusive, worldwide, royalty-free patent -license under the contributor's essential patent claims, to make, use, sell, -offer for sale, import and otherwise run, modify and propagate the contents -of its contributor version. - -In the following three paragraphs, a "patent license" is any express agreement -or commitment, however denominated, not to enforce a patent (such as an express -permission to practice a patent or covenant not to sue for patent infringement). -To "grant" such a patent license to a party means to make such an agreement -or commitment not to enforce a patent against the party. - -If you convey a covered work, knowingly relying on a patent license, and the -Corresponding Source of the work is not available for anyone to copy, free -of charge and under the terms of this License, through a publicly available -network server or other readily accessible means, then you must either (1) -cause the Corresponding Source to be so available, or (2) arrange to deprive -yourself of the benefit of the patent license for this particular work, or -(3) arrange, in a manner consistent with the requirements of this License, -to extend the patent license to downstream recipients. "Knowingly relying" -means you have actual knowledge that, but for the patent license, your conveying -the covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that country -that you have reason to believe are valid. - -If, pursuant to or in connection with a single transaction or arrangement, -you convey, or propagate by procuring conveyance of, a covered work, and grant -a patent license to some of the parties receiving the covered work authorizing -them to use, propagate, modify or convey a specific copy of the covered work, -then the patent license you grant is automatically extended to all recipients -of the covered work and works based on it. - -A patent license is "discriminatory" if it does not include within the scope -of its coverage, prohibits the exercise of, or is conditioned on the non-exercise -of one or more of the rights that are specifically granted under this License. -You may not convey a covered work if you are a party to an arrangement with -a third party that is in the business of distributing software, under which -you make payment to the third party based on the extent of your activity of -conveying the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory patent -license (a) in connection with copies of the covered work conveyed by you -(or copies made from those copies), or (b) primarily for and in connection -with specific products or compilations that contain the covered work, unless -you entered into that arrangement, or that patent license was granted, prior -to 28 March 2007. - -Nothing in this License shall be construed as excluding or limiting any implied -license or other defenses to infringement that may otherwise be available -to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - -If conditions are imposed on you (whether by court order, agreement or otherwise) -that contradict the conditions of this License, they do not excuse you from -the conditions of this License. If you cannot convey a covered work so as -to satisfy simultaneously your obligations under this License and any other -pertinent obligations, then as a consequence you may not convey it at all. -For example, if you agree to terms that obligate you to collect a royalty -for further conveying from those to whom you convey the Program, the only -way you could satisfy both those terms and this License would be to refrain -entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - -Notwithstanding any other provision of this License, you have permission to -link or combine any covered work with a work licensed under version 3 of the -GNU Affero General Public License into a single combined work, and to convey -the resulting work. The terms of this License will continue to apply to the -part which is the covered work, but the special requirements of the GNU Affero -General Public License, section 13, concerning interaction through a network -will apply to the combination as such. - - 14. Revised Versions of this License. - -The Free Software Foundation may publish revised and/or new versions of the -GNU General Public License from time to time. Such new versions will be similar -in spirit to the present version, but may differ in detail to address new -problems or concerns. - -Each version is given a distinguishing version number. If the Program specifies -that a certain numbered version of the GNU General Public License "or any -later version" applies to it, you have the option of following the terms and -conditions either of that numbered version or of any later version published -by the Free Software Foundation. If the Program does not specify a version -number of the GNU General Public License, you may choose any version ever -published by the Free Software Foundation. - -If the Program specifies that a proxy can decide which future versions of -the GNU General Public License can be used, that proxy's public statement -of acceptance of a version permanently authorizes you to choose that version -for the Program. - -Later license versions may give you additional or different permissions. However, -no additional obligations are imposed on any author or copyright holder as -a result of your choosing to follow a later version. - - 15. Disclaimer of Warranty. - -THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE -LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER -EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM -PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR -CORRECTION. - - 16. Limitation of Liability. - -IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL -ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM -AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, -INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO -USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED -INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE -PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER -PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - -If the disclaimer of warranty and limitation of liability provided above cannot -be given local legal effect according to their terms, reviewing courts shall -apply local law that most closely approximates an absolute waiver of all civil -liability in connection with the Program, unless a warranty or assumption -of liability accompanies a copy of the Program in return for a fee. END OF -TERMS AND CONDITIONS - -How to Apply These Terms to Your New Programs - -If you develop a new program, and you want it to be of the greatest possible -use to the public, the best way to achieve this is to make it free software -which everyone can redistribute and change under these terms. - -To do so, attach the following notices to the program. It is safest to attach -them to the start of each source file to most effectively state the exclusion -of warranty; and each file should have at least the "copyright" line and a -pointer to where the full notice is found. - - - -Copyright (C) - -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 3 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 . - -Also add information on how to contact you by electronic and paper mail. - -If the program does terminal interaction, make it output a short notice like -this when it starts in an interactive mode: - - Copyright (C) - -This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - -This is free software, and you are welcome to redistribute it under certain -conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands might -be different; for a GUI interface, you would use an "about box". - -You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. For -more information on this, and how to apply and follow the GNU GPL, see . - -The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General Public -License instead of this License. But first, please read . diff -Nru kactivitymanagerd-5.22.4/LICENSES/LGPL-2.1-only.txt kactivitymanagerd-5.12.8/LICENSES/LGPL-2.1-only.txt --- kactivitymanagerd-5.22.4/LICENSES/LGPL-2.1-only.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/LICENSES/LGPL-2.1-only.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,467 +0,0 @@ -GNU LESSER GENERAL PUBLIC LICENSE - -Version 2.1, February 1999 - -Copyright (C) 1991, 1999 Free Software Foundation, Inc. - -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts as the -successor of the GNU Library Public License, version 2, hence the version -number 2.1.] - -Preamble - -The licenses for most software are designed to take away your freedom to share -and change it. By contrast, the GNU General Public Licenses are intended to -guarantee your freedom to share and change free software--to make sure the -software is free for all its users. - -This license, the Lesser General Public License, applies to some specially -designated software packages--typically libraries--of the Free Software Foundation -and other authors who decide to use it. You can use it too, but we suggest -you first think carefully about whether this license or the ordinary General -Public License is the better strategy to use in any particular case, based -on the explanations below. - -When we speak of free software, we are referring to freedom of use, not price. -Our General Public Licenses are designed to make sure that you have the freedom -to distribute copies of free software (and charge for this service if you -wish); that you receive source code or can get it if you want it; that you -can change the software and use pieces of it in new free programs; and that -you are informed that you can do these things. - -To protect your rights, we need to make restrictions that forbid distributors -to deny you these rights or to ask you to surrender these rights. These restrictions -translate to certain responsibilities for you if you distribute copies of -the library or if you modify it. - -For example, if you distribute copies of the library, whether gratis or for -a fee, you must give the recipients all the rights that we gave you. You must -make sure that they, too, receive or can get the source code. If you link -other code with the library, you must provide complete object files to the -recipients, so that they can relink them with the library after making changes -to the library and recompiling it. And you must show them these terms so they -know their rights. - -We protect your rights with a two-step method: (1) we copyright the library, -and (2) we offer you this license, which gives you legal permission to copy, -distribute and/or modify the library. - -To protect each distributor, we want to make it very clear that there is no -warranty for the free library. Also, if the library is modified by someone -else and passed on, the recipients should know that what they have is not -the original version, so that the original author's reputation will not be -affected by problems that might be introduced by others. - -Finally, software patents pose a constant threat to the existence of any free -program. We wish to make sure that a company cannot effectively restrict the -users of a free program by obtaining a restrictive license from a patent holder. -Therefore, we insist that any patent license obtained for a version of the -library must be consistent with the full freedom of use specified in this -license. - -Most GNU software, including some libraries, is covered by the ordinary GNU -General Public License. This license, the GNU Lesser General Public License, -applies to certain designated libraries, and is quite different from the ordinary -General Public License. We use this license for certain libraries in order -to permit linking those libraries into non-free programs. - -When a program is linked with a library, whether statically or using a shared -library, the combination of the two is legally speaking a combined work, a -derivative of the original library. The ordinary General Public License therefore -permits such linking only if the entire combination fits its criteria of freedom. -The Lesser General Public License permits more lax criteria for linking other -code with the library. - -We call this license the "Lesser" General Public License because it does Less -to protect the user's freedom than the ordinary General Public License. It -also provides other free software developers Less of an advantage over competing -non-free programs. These disadvantages are the reason we use the ordinary -General Public License for many libraries. However, the Lesser license provides -advantages in certain special circumstances. - -For example, on rare occasions, there may be a special need to encourage the -widest possible use of a certain library, so that it becomes a de-facto standard. -To achieve this, non-free programs must be allowed to use the library. A more -frequent case is that a free library does the same job as widely used non-free -libraries. In this case, there is little to gain by limiting the free library -to free software only, so we use the Lesser General Public License. - -In other cases, permission to use a particular library in non-free programs -enables a greater number of people to use a large body of free software. For -example, permission to use the GNU C Library in non-free programs enables -many more people to use the whole GNU operating system, as well as its variant, -the GNU/Linux operating system. - -Although the Lesser General Public License is Less protective of the users' -freedom, it does ensure that the user of a program that is linked with the -Library has the freedom and the wherewithal to run that program using a modified -version of the Library. - -The precise terms and conditions for copying, distribution and modification -follow. Pay close attention to the difference between a "work based on the -library" and a "work that uses the library". The former contains code derived -from the library, whereas the latter must be combined with the library in -order to run. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License Agreement applies to any software library or other program -which contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Lesser General -Public License (also called "this License"). Each licensee is addressed as -"you". - -A "library" means a collection of software functions and/or data prepared -so as to be conveniently linked with application programs (which use some -of those functions and data) to form executables. - -The "Library", below, refers to any such software library or work which has -been distributed under these terms. A "work based on the Library" means either -the Library or any derivative work under copyright law: that is to say, a -work containing the Library or a portion of it, either verbatim or with modifications -and/or translated straightforwardly into another language. (Hereinafter, translation -is included without limitation in the term "modification".) - -"Source code" for a work means the preferred form of the work for making modifications -to it. For a library, complete source code means all the source code for all -modules it contains, plus any associated interface definition files, plus -the scripts used to control compilation and installation of the library. - -Activities other than copying, distribution and modification are not covered -by this License; they are outside its scope. The act of running a program -using the Library is not restricted, and output from such a program is covered -only if its contents constitute a work based on the Library (independent of -the use of the Library in a tool for writing it). Whether that is true depends -on what the Library does and what the program that uses the Library does. - -1. You may copy and distribute verbatim copies of the Library's complete source -code as you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and disclaimer -of warranty; keep intact all the notices that refer to this License and to -the absence of any warranty; and distribute a copy of this License along with -the Library. - -You may charge a fee for the physical act of transferring a copy, and you -may at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Library or any portion of it, -thus forming a work based on the Library, and copy and distribute such modifications -or work under the terms of Section 1 above, provided that you also meet all -of these conditions: - - a) The modified work must itself be a software library. - -b) You must cause the files modified to carry prominent notices stating that -you changed the files and the date of any change. - -c) You must cause the whole of the work to be licensed at no charge to all -third parties under the terms of this License. - -d) If a facility in the modified Library refers to a function or a table of -data to be supplied by an application program that uses the facility, other -than as an argument passed when the facility is invoked, then you must make -a good faith effort to ensure that, in the event an application does not supply -such function or table, the facility still operates, and performs whatever -part of its purpose remains meaningful. - -(For example, a function in a library to compute square roots has a purpose -that is entirely well-defined independent of the application. Therefore, Subsection -2d requires that any application-supplied function or table used by this function -must be optional: if the application does not supply it, the square root function -must still compute square roots.) - -These requirements apply to the modified work as a whole. If identifiable -sections of that work are not derived from the Library, and can be reasonably -considered independent and separate works in themselves, then this License, -and its terms, do not apply to those sections when you distribute them as -separate works. But when you distribute the same sections as part of a whole -which is a work based on the Library, the distribution of the whole must be -on the terms of this License, whose permissions for other licensees extend -to the entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest your -rights to work written entirely by you; rather, the intent is to exercise -the right to control the distribution of derivative or collective works based -on the Library. - -In addition, mere aggregation of another work not based on the Library with -the Library (or with a work based on the Library) on a volume of a storage -or distribution medium does not bring the other work under the scope of this -License. - -3. You may opt to apply the terms of the ordinary GNU General Public License -instead of this License to a given copy of the Library. To do this, you must -alter all the notices that refer to this License, so that they refer to the -ordinary GNU General Public License, version 2, instead of to this License. -(If a newer version than version 2 of the ordinary GNU General Public License -has appeared, then you can specify that version instead if you wish.) Do not -make any other change in these notices. - -Once this change is made in a given copy, it is irreversible for that copy, -so the ordinary GNU General Public License applies to all subsequent copies -and derivative works made from that copy. - -This option is useful when you wish to copy part of the code of the Library -into a program that is not a library. - -4. You may copy and distribute the Library (or a portion or derivative of -it, under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you accompany it with the complete corresponding -machine-readable source code, which must be distributed under the terms of -Sections 1 and 2 above on a medium customarily used for software interchange. - -If distribution of object code is made by offering access to copy from a designated -place, then offering equivalent access to copy the source code from the same -place satisfies the requirement to distribute the source code, even though -third parties are not compelled to copy the source along with the object code. - -5. A program that contains no derivative of any portion of the Library, but -is designed to work with the Library by being compiled or linked with it, -is called a "work that uses the Library". Such a work, in isolation, is not -a derivative work of the Library, and therefore falls outside the scope of -this License. - -However, linking a "work that uses the Library" with the Library creates an -executable that is a derivative of the Library (because it contains portions -of the Library), rather than a "work that uses the library". The executable -is therefore covered by this License. Section 6 states terms for distribution -of such executables. - -When a "work that uses the Library" uses material from a header file that -is part of the Library, the object code for the work may be a derivative work -of the Library even though the source code is not. Whether this is true is -especially significant if the work can be linked without the Library, or if -the work is itself a library. The threshold for this to be true is not precisely -defined by law. - -If such an object file uses only numerical parameters, data structure layouts -and accessors, and small macros and small inline functions (ten lines or less -in length), then the use of the object file is unrestricted, regardless of -whether it is legally a derivative work. (Executables containing this object -code plus portions of the Library will still fall under Section 6.) - -Otherwise, if the work is a derivative of the Library, you may distribute -the object code for the work under the terms of Section 6. Any executables -containing that work also fall under Section 6, whether or not they are linked -directly with the Library itself. - -6. As an exception to the Sections above, you may also combine or link a "work -that uses the Library" with the Library to produce a work containing portions -of the Library, and distribute that work under terms of your choice, provided -that the terms permit modification of the work for the customer's own use -and reverse engineering for debugging such modifications. - -You must give prominent notice with each copy of the work that the Library -is used in it and that the Library and its use are covered by this License. -You must supply a copy of this License. If the work during execution displays -copyright notices, you must include the copyright notice for the Library among -them, as well as a reference directing the user to the copy of this License. -Also, you must do one of these things: - -a) Accompany the work with the complete corresponding machine-readable source -code for the Library including whatever changes were used in the work (which -must be distributed under Sections 1 and 2 above); and, if the work is an -executable linked with the Library, with the complete machine-readable "work -that uses the Library", as object code and/or source code, so that the user -can modify the Library and then relink to produce a modified executable containing -the modified Library. (It is understood that the user who changes the contents -of definitions files in the Library will not necessarily be able to recompile -the application to use the modified definitions.) - -b) Use a suitable shared library mechanism for linking with the Library. A -suitable mechanism is one that (1) uses at run time a copy of the library -already present on the user's computer system, rather than copying library -functions into the executable, and (2) will operate properly with a modified -version of the library, if the user installs one, as long as the modified -version is interface-compatible with the version that the work was made with. - -c) Accompany the work with a written offer, valid for at least three years, -to give the same user the materials specified in Subsection 6a, above, for -a charge no more than the cost of performing this distribution. - -d) If distribution of the work is made by offering access to copy from a designated -place, offer equivalent access to copy the above specified materials from -the same place. - -e) Verify that the user has already received a copy of these materials or -that you have already sent this user a copy. - -For an executable, the required form of the "work that uses the Library" must -include any data and utility programs needed for reproducing the executable -from it. However, as a special exception, the materials to be distributed -need not include anything that is normally distributed (in either source or -binary form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component itself -accompanies the executable. - -It may happen that this requirement contradicts the license restrictions of -other proprietary libraries that do not normally accompany the operating system. -Such a contradiction means you cannot use both them and the Library together -in an executable that you distribute. - -7. You may place library facilities that are a work based on the Library side-by-side -in a single library together with other library facilities not covered by -this License, and distribute such a combined library, provided that the separate -distribution of the work based on the Library and of the other library facilities -is otherwise permitted, and provided that you do these two things: - -a) Accompany the combined library with a copy of the same work based on the -Library, uncombined with any other library facilities. This must be distributed -under the terms of the Sections above. - -b) Give prominent notice with the combined library of the fact that part of -it is a work based on the Library, and explaining where to find the accompanying -uncombined form of the same work. - -8. You may not copy, modify, sublicense, link with, or distribute the Library -except as expressly provided under this License. Any attempt otherwise to -copy, modify, sublicense, link with, or distribute the Library is void, and -will automatically terminate your rights under this License. However, parties -who have received copies, or rights, from you under this License will not -have their licenses terminated so long as such parties remain in full compliance. - -9. You are not required to accept this License, since you have not signed -it. However, nothing else grants you permission to modify or distribute the -Library or its derivative works. These actions are prohibited by law if you -do not accept this License. Therefore, by modifying or distributing the Library -(or any work based on the Library), you indicate your acceptance of this License -to do so, and all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - -10. Each time you redistribute the Library (or any work based on the Library), -the recipient automatically receives a license from the original licensor -to copy, distribute, link with or modify the Library subject to these terms -and conditions. You may not impose any further restrictions on the recipients' -exercise of the rights granted herein. You are not responsible for enforcing -compliance by third parties with this License. - -11. If, as a consequence of a court judgment or allegation of patent infringement -or for any other reason (not limited to patent issues), conditions are imposed -on you (whether by court order, agreement or otherwise) that contradict the -conditions of this License, they do not excuse you from the conditions of -this License. If you cannot distribute so as to satisfy simultaneously your -obligations under this License and any other pertinent obligations, then as -a consequence you may not distribute the Library at all. For example, if a -patent license would not permit royalty-free redistribution of the Library -by all those who receive copies directly or indirectly through you, then the -only way you could satisfy both it and this License would be to refrain entirely -from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents -or other property right claims or to contest validity of any such claims; -this section has the sole purpose of protecting the integrity of the free -software distribution system which is implemented by public license practices. -Many people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing to -distribute software through any other system and a licensee cannot impose -that choice. - -This section is intended to make thoroughly clear what is believed to be a -consequence of the rest of this License. - -12. If the distribution and/or use of the Library is restricted in certain -countries either by patents or by copyrighted interfaces, the original copyright -holder who places the Library under this License may add an explicit geographical -distribution limitation excluding those countries, so that distribution is -permitted only in or among countries not thus excluded. In such case, this -License incorporates the limitation as if written in the body of this License. - -13. The Free Software Foundation may publish revised and/or new versions of -the Lesser General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to address -new problems or concerns. - -Each version is given a distinguishing version number. If the Library specifies -a version number of this License which applies to it and "any later version", -you have the option of following the terms and conditions either of that version -or of any later version published by the Free Software Foundation. If the -Library does not specify a license version number, you may choose any version -ever published by the Free Software Foundation. - -14. If you wish to incorporate parts of the Library into other free programs -whose distribution conditions are incompatible with these, write to the author -to ask for permission. For software which is copyrighted by the Free Software -Foundation, write to the Free Software Foundation; we sometimes make exceptions -for this. Our decision will be guided by the two goals of preserving the free -status of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - -15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR -THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE -STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY -"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE -OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE -THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE -OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA -OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES -OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH -HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Libraries - -If you develop a new library, and you want it to be of the greatest possible -use to the public, we recommend making it free software that everyone can -redistribute and change. You can do so by permitting redistribution under -these terms (or, alternatively, under the terms of the ordinary General Public -License). - -To apply these terms, attach the following notices to the library. It is safest -to attach them to the start of each source file to most effectively convey -the exclusion of warranty; and each file should have at least the "copyright" -line and a pointer to where the full notice is found. - -< one line to give the library's name and an idea of what it does. > - -Copyright (C) < year > < name of author > - -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) -any later version. - -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, write to the Free Software Foundation, Inc., 51 -Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information -on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your school, -if any, to sign a "copyright disclaimer" for the library, if necessary. Here -is a sample; alter the names: - -Yoyodyne, Inc., hereby disclaims all copyright interest in - -the library `Frob' (a library for tweaking knobs) written - -by James Random Hacker. - -< signature of Ty Coon > , 1 April 1990 - -Ty Coon, President of Vice - -That's all there is to it! diff -Nru kactivitymanagerd-5.22.4/LICENSES/LGPL-3.0-only.txt kactivitymanagerd-5.12.8/LICENSES/LGPL-3.0-only.txt --- kactivitymanagerd-5.22.4/LICENSES/LGPL-3.0-only.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/LICENSES/LGPL-3.0-only.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,163 +0,0 @@ -GNU LESSER GENERAL PUBLIC LICENSE - -Version 3, 29 June 2007 - -Copyright (C) 2007 Free Software Foundation, Inc. - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - -This version of the GNU Lesser General Public License incorporates the terms -and conditions of version 3 of the GNU General Public License, supplemented -by the additional permissions listed below. - - 0. Additional Definitions. - - - -As used herein, "this License" refers to version 3 of the GNU Lesser General -Public License, and the "GNU GPL" refers to version 3 of the GNU General Public -License. - - - -"The Library" refers to a covered work governed by this License, other than -an Application or a Combined Work as defined below. - - - -An "Application" is any work that makes use of an interface provided by the -Library, but which is not otherwise based on the Library. Defining a subclass -of a class defined by the Library is deemed a mode of using an interface provided -by the Library. - - - -A "Combined Work" is a work produced by combining or linking an Application -with the Library. The particular version of the Library with which the Combined -Work was made is also called the "Linked Version". - - - -The "Minimal Corresponding Source" for a Combined Work means the Corresponding -Source for the Combined Work, excluding any source code for portions of the -Combined Work that, considered in isolation, are based on the Application, -and not on the Linked Version. - - - -The "Corresponding Application Code" for a Combined Work means the object -code and/or source code for the Application, including any data and utility -programs needed for reproducing the Combined Work from the Application, but -excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - -You may convey a covered work under sections 3 and 4 of this License without -being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - -If you modify a copy of the Library, and, in your modifications, a facility -refers to a function or data to be supplied by an Application that uses the -facility (other than as an argument passed when the facility is invoked), -then you may convey a copy of the modified version: - -a) under this License, provided that you make a good faith effort to ensure -that, in the event an Application does not supply the function or data, the -facility still operates, and performs whatever part of its purpose remains -meaningful, or - -b) under the GNU GPL, with none of the additional permissions of this License -applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - -The object code form of an Application may incorporate material from a header -file that is part of the Library. You may convey such object code under terms -of your choice, provided that, if the incorporated material is not limited -to numerical parameters, data structure layouts and accessors, or small macros, -inline functions and templates (ten or fewer lines in length), you do both -of the following: - -a) Give prominent notice with each copy of the object code that the Library -is used in it and that the Library and its use are covered by this License. - -b) Accompany the object code with a copy of the GNU GPL and this license document. - - 4. Combined Works. - -You may convey a Combined Work under terms of your choice that, taken together, -effectively do not restrict modification of the portions of the Library contained -in the Combined Work and reverse engineering for debugging such modifications, -if you also do each of the following: - -a) Give prominent notice with each copy of the Combined Work that the Library -is used in it and that the Library and its use are covered by this License. - -b) Accompany the Combined Work with a copy of the GNU GPL and this license -document. - -c) For a Combined Work that displays copyright notices during execution, include -the copyright notice for the Library among these notices, as well as a reference -directing the user to the copies of the GNU GPL and this license document. - - d) Do one of the following: - -0) Convey the Minimal Corresponding Source under the terms of this License, -and the Corresponding Application Code in a form suitable for, and under terms -that permit, the user to recombine or relink the Application with a modified -version of the Linked Version to produce a modified Combined Work, in the -manner specified by section 6 of the GNU GPL for conveying Corresponding Source. - -1) Use a suitable shared library mechanism for linking with the Library. A -suitable mechanism is one that (a) uses at run time a copy of the Library -already present on the user's computer system, and (b) will operate properly -with a modified version of the Library that is interface-compatible with the -Linked Version. - -e) Provide Installation Information, but only if you would otherwise be required -to provide such information under section 6 of the GNU GPL, and only to the -extent that such information is necessary to install and execute a modified -version of the Combined Work produced by recombining or relinking the Application -with a modified version of the Linked Version. (If you use option 4d0, the -Installation Information must accompany the Minimal Corresponding Source and -Corresponding Application Code. If you use option 4d1, you must provide the -Installation Information in the manner specified by section 6 of the GNU GPL -for conveying Corresponding Source.) - - 5. Combined Libraries. - -You may place library facilities that are a work based on the Library side -by side in a single library together with other library facilities that are -not Applications and are not covered by this License, and convey such a combined -library under terms of your choice, if you do both of the following: - -a) Accompany the combined library with a copy of the same work based on the -Library, uncombined with any other library facilities, conveyed under the -terms of this License. - -b) Give prominent notice with the combined library that part of it is a work -based on the Library, and explaining where to find the accompanying uncombined -form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - -The Free Software Foundation may publish revised and/or new versions of the -GNU Lesser General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to address -new problems or concerns. - -Each version is given a distinguishing version number. If the Library as you -received it specifies that a certain numbered version of the GNU Lesser General -Public License "or any later version" applies to it, you have the option of -following the terms and conditions either of that published version or of -any later version published by the Free Software Foundation. If the Library -as you received it does not specify a version number of the GNU Lesser General -Public License, you may choose any version of the GNU Lesser General Public -License ever published by the Free Software Foundation. - -If the Library as you received it specifies that a proxy can decide whether -future versions of the GNU Lesser General Public License shall apply, that -proxy's public statement of acceptance of any version is permanent authorization -for you to choose that version for the Library. diff -Nru kactivitymanagerd-5.22.4/LICENSES/LicenseRef-KDE-Accepted-GPL.txt kactivitymanagerd-5.12.8/LICENSES/LicenseRef-KDE-Accepted-GPL.txt --- kactivitymanagerd-5.22.4/LICENSES/LicenseRef-KDE-Accepted-GPL.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/LICENSES/LicenseRef-KDE-Accepted-GPL.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -This library 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 3 of -the license or (at your option) at any later version that is -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 as 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. diff -Nru kactivitymanagerd-5.22.4/LICENSES/LicenseRef-KDE-Accepted-LGPL.txt kactivitymanagerd-5.12.8/LICENSES/LicenseRef-KDE-Accepted-LGPL.txt --- kactivitymanagerd-5.22.4/LICENSES/LicenseRef-KDE-Accepted-LGPL.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/LICENSES/LicenseRef-KDE-Accepted-LGPL.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -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 3 of the license or (at your option) any later version -that is 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 as defined in Section 6 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. Binary files /tmp/tmptsxyvt_z/CtaUJhTmoC/kactivitymanagerd-5.22.4/logo.png and /tmp/tmptsxyvt_z/amI41aN9my/kactivitymanagerd-5.12.8/logo.png differ diff -Nru kactivitymanagerd-5.22.4/po/ar/kactivities5.po kactivitymanagerd-5.12.8/po/ar/kactivities5.po --- kactivitymanagerd-5.22.4/po/ar/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ar/kactivities5.po 2019-03-05 12:13:09.000000000 +0000 @@ -0,0 +1,42 @@ +# 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: 2016-11-19 20:20+0100\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "صفا الفليج" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "safaalfulaij@hotmail.com" + +#: service/Activities.cpp:124 +#, fuzzy, kde-format +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\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ast/kactivities5.po kactivitymanagerd-5.12.8/po/ast/kactivities5.po --- kactivitymanagerd-5.22.4/po/ast/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ast/kactivities5.po 2019-03-05 12:13:09.000000000 +0000 @@ -0,0 +1,40 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# enolp , 2016. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-12-21 16:26+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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Softastur" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "alministradores@softastur.org" + +#: service/Activities.cpp:124 +#, kde-format +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 "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/az/kactivities5.po kactivitymanagerd-5.12.8/po/az/kactivities5.po --- kactivitymanagerd-5.22.4/po/az/kactivities5.po 2021-07-27 10:18:27.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/az/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ -# Copyright (C) YEAR This file is copyright: -# This file is distributed under the same license as the kactivitymanagerd package. -# -# Xəyyam Qocayev , 2020, 2021. -msgid "" -msgstr "" -"Project-Id-Version: kactivitymanagerd\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-03-01 12:51+0400\n" -"Last-Translator: Kheyyam Gojayev \n" -"Language-Team: Azerbaijani \n" -"Language: az\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 20.12.2\n" - -#: service/Activities.cpp:111 -#, kde-format -msgid "Default" -msgstr "Standart" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, kde-format -msgid "Activity Manager" -msgstr "İş otağı Meneceri" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "\"%1\" otağına keçin" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "iş otağı" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, kde-format -msgid "Switch to \"%1\"" -msgstr "\"%1\" otağına keçin" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/bg/kactivities5.po kactivitymanagerd-5.12.8/po/bg/kactivities5.po --- kactivitymanagerd-5.22.4/po/bg/kactivities5.po 2021-07-27 10:18:27.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/bg/kactivities5.po 2019-03-05 12:13:10.000000000 +0000 @@ -2,48 +2,39 @@ # This file is distributed under the same license as the PACKAGE package. # # Dimitar Popov , 2011. -# Yasen Pramatarov , 2021. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-01-11 13:57+0200\n" -"Last-Translator: Yasen Pramatarov \n" -"Language-Team: Bulgarian \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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 20.08.2\n" +"X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "По подразбиране" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, kde-format -msgid "Activity Manager" -msgstr "Управление на дейностите" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Димитър Попов" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Превключване към дейност \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "insane@fmi.uni-sofia.bg" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" +msgid "Default" msgstr "" -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" -msgstr "Превключване към дейност \"%1\"" \ No newline at end of file +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 +#, kde-format +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/bs/kactivities5.po kactivitymanagerd-5.12.8/po/bs/kactivities5.po --- kactivitymanagerd-5.22.4/po/bs/kactivities5.po 2021-07-27 10:18:28.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/bs/kactivities5.po 2019-03-05 12:13:11.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: kde 49i410\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2013-10-18 20:18+0000\n" "Last-Translator: Samir Ribić \n" "Language-Team: Bosnian\n" @@ -20,34 +20,24 @@ "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" -#: service/Activities.cpp:111 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Samir Ribić" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "samir.ribic@etf.unsa.ba" + +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, fuzzy, kde-format -#| msgid "Activities..." -msgid "Activity Manager" -msgstr "Aktivnosti..." - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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\"" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activities..." -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Aktivnosti..." - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Pređi na aktivnost \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ca/kactivities5.po kactivitymanagerd-5.12.8/po/ca/kactivities5.po --- kactivitymanagerd-5.22.4/po/ca/kactivities5.po 2021-07-27 10:18:28.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ca/kactivities5.po 2019-03-05 12:13:10.000000000 +0000 @@ -1,17 +1,17 @@ # Translation of kactivities5.po to Catalan -# Copyright (C) 2014-2021 This_file_is_part_of_KDE +# 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, 2018, 2021. +# Antoni Bella Pérez , 2014, 2015. msgid "" msgstr "" -"Project-Id-Version: kactivitymanagerd\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-02-28 12:06+0100\n" -"Last-Translator: Antoni Bella Pérez \n" +"Project-Id-Version: kactivities5\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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" @@ -19,32 +19,26 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" -"X-Generator: Lokalize 20.12.2\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Per defecte" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Josep Ma. Ferrer" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Gestor d'activitats" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Canvia a l'activitat «%1»" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "txemaq@gmail.com" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "activitat" +msgid "Default" +msgstr "Per defecte" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Canvia a «%1»" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Canvia a l'activitat «%1»" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ca@valencia/kactivities5.po kactivitymanagerd-5.12.8/po/ca@valencia/kactivities5.po --- kactivitymanagerd-5.22.4/po/ca@valencia/kactivities5.po 2021-07-27 10:18:28.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ca@valencia/kactivities5.po 2019-03-05 12:13:11.000000000 +0000 @@ -1,18 +1,17 @@ # Translation of kactivities5.po to Catalan (Valencian) -# Copyright (C) 2014-2018 This_file_is_part_of_KDE +# 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. -# or the same license as the source of its messages in English. # # Josep Ma. Ferrer , 2014, 2015. -# Antoni Bella Pérez , 2014, 2015, 2018. +# Antoni Bella Pérez , 2014, 2015. msgid "" msgstr "" -"Project-Id-Version: kactivitymanagerd\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2019-07-03 13:09+0200\n" -"Last-Translator: Antoni Bella Pérez \n" +"Project-Id-Version: kactivities5\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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" @@ -20,34 +19,26 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Per defecte" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Josep Ma. Ferrer" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Gestor d'activitats" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "txemaq@gmail.com" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: service/Activities.cpp:124 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Canvia a l'activitat «%1»" +msgid "Default" +msgstr "Per defecte" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" +msgctxt "@action" +msgid "Switch to activity \"%1\"" msgstr "Canvia a l'activitat «%1»" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/cs/kactivities5.po kactivitymanagerd-5.12.8/po/cs/kactivities5.po --- kactivitymanagerd-5.22.4/po/cs/kactivities5.po 2021-07-27 10:18:29.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/cs/kactivities5.po 2019-03-05 12:13:11.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2016-04-07 17:07+0100\n" "Last-Translator: Vít Pelčák \n" "Language-Team: Czech \n" @@ -17,30 +17,24 @@ "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Lokalize 2.0\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Výchozí" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Vít Pelčák" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Správce aktivit" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Přepnout na aktivitu \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "vit@pelcak.org" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "aktivita" +msgid "Default" +msgstr "Výchozí" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Přepnout na \"%1\"" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Přepnout na aktivitu \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/da/kactivities5.po kactivitymanagerd-5.12.8/po/da/kactivities5.po --- kactivitymanagerd-5.22.4/po/da/kactivities5.po 2021-07-27 10:18:29.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/da/kactivities5.po 2019-03-05 12:13:11.000000000 +0000 @@ -1,13 +1,13 @@ # 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, 2016, 2019. +# Martin Schlander , 2012, 2013, 2014, 2015, 2016. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2019-05-07 13:08+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-01-25 22:47+0100\n" "Last-Translator: Martin Schlander \n" "Language-Team: Danish \n" "Language: da\n" @@ -17,33 +17,24 @@ "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 2.0\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Standard" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Martin Schlander" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "mschlander@opensuse.org" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 +#: service/Activities.cpp:124 #, kde-format -msgid "Activity Manager" -msgstr "Aktivitetshåndtering" +msgid "Default" +msgstr "Standard" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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\"" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activity" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Aktivitet" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Skift til aktiviteten \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/de/kactivities5.po kactivitymanagerd-5.12.8/po/de/kactivities5.po --- kactivitymanagerd-5.22.4/po/de/kactivities5.po 2021-07-27 10:18:29.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/de/kactivities5.po 2019-03-05 12:13:11.000000000 +0000 @@ -2,45 +2,39 @@ # This file is distributed under the same license as the PACKAGE package. # # Frederik Schwarzer , 2016. -# Burkhard Lück , 2018, 2021. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-03-29 07:58+0200\n" -"Last-Translator: Burkhard Lück \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-03-01 13:29+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" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Standard" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Frederik Schwarzer" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Aktivitätenverwaltung" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Zu Aktivität „%1“ wechseln" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "schwarzer@kde.org" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Aktivität" +msgid "Default" +msgstr "Standard" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Zu „%1“ wechseln" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Zu Aktivität „%1“ wechseln" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/el/kactivities5.po kactivitymanagerd-5.12.8/po/el/kactivities5.po --- kactivitymanagerd-5.22.4/po/el/kactivities5.po 2021-07-27 10:18:30.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/el/kactivities5.po 2019-03-05 12:13:11.000000000 +0000 @@ -2,48 +2,42 @@ # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # -# Stelios , 2012, 2020, 2021. +# Stelios , 2012. # Antonis Geralis , 2013, 2014. # Dimitris Kardarakos , 2015. msgid "" msgstr "" "Project-Id-Version: kactivitymanagerd_fileitem_linking_plugin\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-06-04 21:53+0300\n" -"Last-Translator: Stelios \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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 20.04.2\n" +"X-Generator: Lokalize 2.0\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Προκαθορισμένη" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Stelios" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Διαχειριστής δραστηριοτήτων" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Εναλλαγή στη δραστηριότητα \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sstavra@gmail.com" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "δραστηριότητα" +msgid "Default" +msgstr "Προκαθορισμένη" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Εναλλαγή στην \"%1\"" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Εναλλαγή στη δραστηριότητα \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/en_GB/kactivities5.po kactivitymanagerd-5.12.8/po/en_GB/kactivities5.po --- kactivitymanagerd-5.22.4/po/en_GB/kactivities5.po 2021-07-27 10:18:30.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/en_GB/kactivities5.po 2019-03-05 12:13:12.000000000 +0000 @@ -2,13 +2,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Andrew Coles , 2010. -# Steve Allewell , 2014, 2015, 2016, 2018, 2021. +# Steve Allewell , 2014, 2015, 2016. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-04-03 15:20+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-01-10 13:39+0000\n" "Last-Translator: Steve Allewell \n" "Language-Team: British English \n" "Language: en_GB\n" @@ -16,32 +16,26 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 20.12.3\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Default" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Steve Allewell" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Activity Manager" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Switch to activity \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "steve.allewell@gmail.com" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "activity" +msgid "Default" +msgstr "Default" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Switch to \"%1\"" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Switch to activity \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/es/kactivities5.po kactivitymanagerd-5.12.8/po/es/kactivities5.po --- kactivitymanagerd-5.22.4/po/es/kactivities5.po 2021-07-27 10:18:30.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/es/kactivities5.po 2019-03-05 12:13:12.000000000 +0000 @@ -3,13 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Automatically generated, 2016. -# Eloy Cuadra , 2016, 2018, 2021. +# Eloy Cuadra , 2016. msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-02-28 12:27+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-03-01 20:42+0100\n" "Last-Translator: Eloy Cuadra \n" "Language-Team: Spanish \n" "Language: es\n" @@ -17,32 +17,26 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 20.12.2\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Por omisión" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Eloy Cuadra" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Gestor de actividades" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Cambiar a la actividad «%1»" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "ecuadra@eloihr.net" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "actividad" +msgid "Default" +msgstr "Por omisión" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Cambiar a «%1»" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Cambiar a la actividad «%1»" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/et/kactivities5.po kactivitymanagerd-5.12.8/po/et/kactivities5.po --- kactivitymanagerd-5.22.4/po/et/kactivities5.po 2021-07-27 10:18:30.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/et/kactivities5.po 2019-03-05 12:13:12.000000000 +0000 @@ -1,49 +1,40 @@ # 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, 2016, 2019. +# Marek Laane , 2012, 2014, 2016. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2019-10-30 13:43+0200\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-07-27 01:37+0300\n" "Last-Translator: Marek Laane \n" -"Language-Team: Estonian \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 19.08.1\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Vaikimisi" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Marek Laane" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "bald@smail.ee" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 +#: service/Activities.cpp:124 #, kde-format -msgid "Activity Manager" -msgstr "Tegevuste haldur" +msgid "Default" +msgstr "Vaikimisi" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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\"" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activities..." -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Tegevused ..." - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Lülitu tegevusele \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/eu/kactivities5.po kactivitymanagerd-5.12.8/po/eu/kactivities5.po --- kactivitymanagerd-5.22.4/po/eu/kactivities5.po 2021-07-27 10:18:31.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/eu/kactivities5.po 2019-03-05 12:13:12.000000000 +0000 @@ -1,50 +1,43 @@ -# Translation for kactivities5.po to Euskara/Basque (eu). -# Copyright (C) 2005-2018, Free Software Foundation. -# Copyright (C) 2019-2021, This file is copyright: -# This file is distributed under the same license as the kactivitymanagerd package. -# KDE euskaratzeko proiektuko arduraduna . +# Translation of kactivities5.po to Euskara/Basque (eu). +# Copyright (C) 2005-2017, Free Software Foundation, Inc. +# This file is distributed under the same license as the kde-workspace package. +# KDE Euskaratzeko proiektuaren arduraduna . # # Translators -# Iñigo Salvador Azurmendi , 2010, 2012, 2017, 2018, 2021. +# Iñigo Salvador Azurmendi , 2010, 2012, 2017. msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-05-06 22:32+0200\n" -"Last-Translator: Iñigo Salvador Azurmendi \n" -"Language-Team: Basque \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2017-08-29 23:05+0100\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 21.04.0\n" +"X-Generator: Lokalize 2.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Lehenetsia" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Iñigo Salvador Azurmendi" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Jarduera kudeatzailea" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Aldatu jarduera honetara: \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "xalba@euskalnet.net" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "jarduera" +msgid "Default" +msgstr "Lehenetsia" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Aldatu «%1»(e)ra" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Aldatu jarduera honetara: \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/fi/kactivities5.po kactivitymanagerd-5.12.8/po/fi/kactivities5.po --- kactivitymanagerd-5.22.4/po/fi/kactivities5.po 2021-07-27 10:18:31.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/fi/kactivities5.po 2019-03-05 12:13:12.000000000 +0000 @@ -1,15 +1,15 @@ # 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. -# Tommi Nieminen , 2018, 2021. +# Tommi Nieminen , 2018. # # KDE Finnish translation sprint participants: msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-04-08 14:47+0300\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2018-08-15 13:03+0200\n" "Last-Translator: Tommi Nieminen \n" "Language-Team: Finnish \n" "Language: fi\n" @@ -17,42 +17,31 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 20.04.2\n" +"X-Generator: Lokalize 2.0\n" "X-POT-Import-Date: 2012-12-01 22:24:16+0000\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Oletus" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Lasse Liehu, Tommi Nieminen" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "lasse.liehu@gmail.com, translator@legisign.org" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 +#: service/Activities.cpp:124 #, kde-format -msgid "Activity Manager" -msgstr "Aktiviteettien hallinta" +msgid "Default" +msgstr "Oletus" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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" -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "aktiviteetti" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, kde-format -msgid "Switch to \"%1\"" -msgstr "Vaihda aktiviteettiin ”%1”" - - - - - - diff -Nru kactivitymanagerd-5.22.4/po/fr/kactivities5.po kactivitymanagerd-5.12.8/po/fr/kactivities5.po --- kactivitymanagerd-5.22.4/po/fr/kactivities5.po 2021-07-27 10:18:31.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/fr/kactivities5.po 2019-03-05 12:13:13.000000000 +0000 @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: kcm_activities\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2016-01-23 11:53+0100\n" "Last-Translator: Thomas Vergnaud \n" "Language-Team: French \n" @@ -24,30 +24,24 @@ "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Défaut" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Joëlle Cornavin, Thomas Vergnaud" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Gestion des activités" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Passer à l'activité « %1 »" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "jcorn@free.fr, thomas.vergnaud@gmx.fr" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "activité" +msgid "Default" +msgstr "Défaut" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Passer à « %1 »" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Passer à l'activité « %1 »" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ga/kactivities5.po kactivitymanagerd-5.12.8/po/ga/kactivities5.po --- kactivitymanagerd-5.22.4/po/ga/kactivities5.po 2021-07-27 10:18:31.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ga/kactivities5.po 2019-03-05 12:13:12.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: kactivitymanagerd_fileitem_linking_plugin\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2012-11-29 14:59-0500\n" "Last-Translator: Kevin Scannell \n" "Language-Team: Irish \n" @@ -17,34 +17,24 @@ "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? " "3 : 4\n" -#: service/Activities.cpp:111 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Kevin Scannell" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kscanne@gmail.com" + +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, fuzzy, kde-format -#| msgid "Activities" -msgid "Activity Manager" -msgstr "Gníomhartha" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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\"" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activities" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Gníomhartha" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Athraigh go gníomhaíocht \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/gd/kactivities5.po kactivitymanagerd-5.12.8/po/gd/kactivities5.po --- kactivitymanagerd-5.22.4/po/gd/kactivities5.po 2021-07-27 10:18:32.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/gd/kactivities5.po 2019-03-05 12:13:13.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2015-11-04 15:11+0000\n" "Last-Translator: Michael Bauer \n" "Language-Team: Fòram na Gàidhlig\n" @@ -19,34 +19,24 @@ "X-Generator: Poedit 1.8.4\n" "X-Project-Style: kde\n" -#: service/Activities.cpp:111 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "GunChleoc" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "fios@foramnagaidhlig.net" + +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "Thùsail" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, fuzzy, kde-format -#| msgid "Activity name" -msgid "Activity Manager" -msgstr "Ainm na gnìomhachd" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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\"" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activity" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Gnìomhachd" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Gearr leum dhan ghnìomhachd \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/gl/kactivities5.po kactivitymanagerd-5.12.8/po/gl/kactivities5.po --- kactivitymanagerd-5.22.4/po/gl/kactivities5.po 2021-07-27 10:18:32.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/gl/kactivities5.po 2019-03-05 12:13:13.000000000 +0000 @@ -3,48 +3,43 @@ # # Marce Villarino , 2012, 2013, 2014. # Adrián Chaves Fernández , 2015. -# Adrián Chaves (Gallaecio) , 2018. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2018-10-21 20:46+0100\n" -"Last-Translator: Adrián Chaves (Gallaecio) \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Predeterminado" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Marce Villarino" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "mvillarino@kde-espana.es" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 +#: service/Activities.cpp:124 #, kde-format -msgid "Activity Manager" -msgstr "Xestor de actividades" +msgid "Default" +msgstr "Predeterminado" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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»" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activity" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Actividade" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Cambiar para a actividade «%1»" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/gu/kactivities5.po kactivitymanagerd-5.12.8/po/gu/kactivities5.po --- kactivitymanagerd-5.22.4/po/gu/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/gu/kactivities5.po 2019-03-05 12:13:13.000000000 +0000 @@ -0,0 +1,41 @@ +# 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: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2010-11-26 18:05+0530\n" +"Last-Translator: Sweta Kothari \n" +"Language-Team: Gujarati\n" +"Language: gu\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ઉમંગ ભટ્ટ" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "bhatt.umang7@gmail.com" + +#: service/Activities.cpp:124 +#, kde-format +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 "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/he/kactivities5.po kactivitymanagerd-5.12.8/po/he/kactivities5.po --- kactivitymanagerd-5.22.4/po/he/kactivities5.po 2021-07-27 10:18:32.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/he/kactivities5.po 2019-03-05 12:13:13.000000000 +0000 @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2017-05-16 06:51-0400\n" "Last-Translator: Copied by Zanata \n" "Language-Team: Hebrew \n" @@ -19,32 +19,24 @@ "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Zanata 3.9.6\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "ברירת מחדל" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "צוות התרגום של KDE ישראל" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde-i18n-he@kde.org" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: service/Activities.cpp:124 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "עבור לפעילות \"%1\"" +msgid "Default" +msgstr "ברירת מחדל" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" +msgctxt "@action" +msgid "Switch to activity \"%1\"" msgstr "עבור לפעילות \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/hi/kactivities5.po kactivitymanagerd-5.12.8/po/hi/kactivities5.po --- kactivitymanagerd-5.22.4/po/hi/kactivities5.po 2021-07-27 10:18:33.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/hi/kactivities5.po 2019-03-05 12:13:14.000000000 +0000 @@ -1,49 +1,41 @@ # 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. # -# G Karunakar , 2020. msgid "" msgstr "" "Project-Id-Version: kactivitymanagerd\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2020-08-18 01:05+0530\n" -"Last-Translator: G Karunakar \n" -"Language-Team: Hindi \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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: Lokalize 2.0\n" +"X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "तयशुदा" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, kde-format -msgid "Activity Manager" -msgstr "क्रिया प्रबंधक" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "जी करूणाकर" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "\"%1\" क्रिया पर बदलें " +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "karunakar@indlinux.org" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" +msgid "Default" msgstr "" -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" -msgstr "\"%1\" क्रिया पर बदलें " \ No newline at end of file +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 +#, kde-format +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/hr/kactivities5.po kactivitymanagerd-5.12.8/po/hr/kactivities5.po --- kactivitymanagerd-5.22.4/po/hr/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/hr/kactivities5.po 2019-03-05 12:13:14.000000000 +0000 @@ -0,0 +1,43 @@ +# 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: 2016-11-19 20:20+0100\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Marko Dimjasevic" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "marko@dimjasevic.net" + +#: service/Activities.cpp:124 +#, kde-format +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 "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/hu/kactivities5.po kactivitymanagerd-5.12.8/po/hu/kactivities5.po --- kactivitymanagerd-5.22.4/po/hu/kactivities5.po 2021-07-27 10:18:33.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/hu/kactivities5.po 2019-03-05 12:13:14.000000000 +0000 @@ -3,49 +3,39 @@ # # Balázs Úr , 2012, 2013. # Kristóf Kiszel , 2014. -# Kristof Kiszel , 2018. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2018-10-19 18:19+0200\n" -"Last-Translator: Kristof Kiszel \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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 2.0\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Alapértelmezés" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Kiszel Kristóf,Úr Balázs" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "ulysses@kubuntu.org,urbalazs@gmail.com" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 +#: service/Activities.cpp:124 #, kde-format -msgid "Activity Manager" -msgstr "Aktivitáskezelő" +msgid "Default" +msgstr "Alapértelmezés" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activity" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Aktivitás" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Váltás a(z) „%1” aktivitásra" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ia/kactivities5.po kactivitymanagerd-5.12.8/po/ia/kactivities5.po --- kactivitymanagerd-5.22.4/po/ia/kactivities5.po 2021-07-27 10:18:33.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ia/kactivities5.po 2019-03-05 12:13:14.000000000 +0000 @@ -1,46 +1,40 @@ # 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, 2019, 2021. +# Giovanni Sora , 2012, 2013, 2014. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-03-21 22:56+0100\n" -"Last-Translator: Giovanni Sora \n" -"Language-Team: Interlingua \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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 2.0\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Predefinite" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Giovanni Sora" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Gerente de activitate" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Commuta a activitate \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "g.sora@tiscali.it" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "activitate" +msgid "Default" +msgstr "Predefinite" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Commuta a \"%1\"" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Commuta a activitate \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/id/kactivities5.po kactivitymanagerd-5.12.8/po/id/kactivities5.po --- kactivitymanagerd-5.22.4/po/id/kactivities5.po 2021-07-27 10:18:34.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/id/kactivities5.po 2019-03-05 12:13:14.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2019-01-19 08:55+0700\n" "Last-Translator: Wantoyo \n" "Language-Team: Indonesian \n" @@ -14,34 +14,27 @@ "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" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 18.12.0\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Baku" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Wantoyo" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Pengelola Aktivitas" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "wantoyek@gmail.com" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: service/Activities.cpp:124 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Alihkan ke aktivitas \"%1\"" +msgid "Default" +msgstr "Baku" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" +msgctxt "@action" +msgid "Switch to activity \"%1\"" msgstr "Alihkan ke aktivitas \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/is/kactivities5.po kactivitymanagerd-5.12.8/po/is/kactivities5.po --- kactivitymanagerd-5.22.4/po/is/kactivities5.po 2021-07-27 10:18:34.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/is/kactivities5.po 2019-03-05 12:13:14.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2016-04-08 22:57+0000\n" "Last-Translator: Sveinn í Felli \n" "Language-Team: Icelandic \n" @@ -17,34 +17,24 @@ "X-Generator: Lokalize 1.5\n" "Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n" -#: service/Activities.cpp:111 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Sveinn í Felli" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sv1@fellsnet.is" + +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, fuzzy, kde-format -#| msgid "Activities" -msgid "Activity Manager" -msgstr "Virkni" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activities" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Virkni" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Skipta í \"%1\" virkni" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/it/kactivities5.po kactivitymanagerd-5.12.8/po/it/kactivities5.po --- kactivitymanagerd-5.22.4/po/it/kactivities5.po 2021-07-27 10:18:34.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/it/kactivities5.po 2019-03-05 12:13:14.000000000 +0000 @@ -1,14 +1,14 @@ # 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. -# Vincenzo Reale , 2018, 2021. +# Vincenzo Reale , 2018. # msgid "" msgstr "" "Project-Id-Version: kactivitymanagerd_fileitem_linking_plugin\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-03-01 12:15+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2015-12-28 22:26+0100\n" "Last-Translator: Vincenzo Reale \n" "Language-Team: Italian \n" "Language: it\n" @@ -16,32 +16,26 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 20.12.2\n" +"X-Generator: Lokalize 2.0\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Predefinita" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Vincenzo Reale,Federico Zenith" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Gestore delle attività" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Passa all'attività «%1»" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "smart2128@baslug.org," -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "attività" +msgid "Default" +msgstr "Predefinita" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Passa a «%1»" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Passa all'attività «%1»" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ja/kactivities5.po kactivitymanagerd-5.12.8/po/ja/kactivities5.po --- kactivitymanagerd-5.22.4/po/ja/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ja/kactivities5.po 2019-03-05 12:13:15.000000000 +0000 @@ -0,0 +1,37 @@ +msgid "" +msgstr "" +"Project-Id-Version: kcm_activities\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Fumiaki Okushi" + +#, fuzzy, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "okushi@kde.gr.jp" + +#: service/Activities.cpp:124 +#, kde-format +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 "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/kk/kactivities5.po kactivitymanagerd-5.12.8/po/kk/kactivities5.po --- kactivitymanagerd-5.22.4/po/kk/kactivities5.po 2021-07-27 10:18:35.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/kk/kactivities5.po 2019-03-05 12:13:15.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2013-06-12 03:46+0600\n" "Last-Translator: Sairan Kikkarin \n" "Language-Team: Kazakh \n" @@ -17,41 +17,26 @@ "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: service/Activities.cpp:111 +# +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Сайран Киккарин" + +# +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sairan@computer.org" + +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, fuzzy, kde-format -#| msgid "Activities..." -msgid "Activity Manager" -msgstr "Белсенділіктер..." - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format msgctxt "@action" msgid "Switch to activity \"%1\"" -msgstr "\"%1\" белсенділігіне ауысу" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activities..." -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Белсенділіктер..." - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" -msgstr "\"%1\" белсенділігіне ауысу" - -# - - - - -# \ No newline at end of file +msgstr "\"%1\" белсенділігіне ауысу" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/km/kactivities5.po kactivitymanagerd-5.12.8/po/km/kactivities5.po --- kactivitymanagerd-5.22.4/po/km/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/km/kactivities5.po 2019-03-05 12:13:15.000000000 +0000 @@ -0,0 +1,41 @@ +# 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: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2012-06-07 16:10+0700\n" +"Last-Translator: Khoem Sokhem \n" +"Language-Team: Khmer \n" +"Language: km\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ខឹម សុខែម,ម៉ន ម៉េត, សេង សុត្ថា" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "khoemsokhem@khmeros.info,mornmet@khmeros.info,sutha@khmeros.info​​" + +#: service/Activities.cpp:124 +#, kde-format +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 "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/kn/kactivities5.po kactivitymanagerd-5.12.8/po/kn/kactivities5.po --- kactivitymanagerd-5.22.4/po/kn/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/kn/kactivities5.po 2019-03-05 12:13:15.000000000 +0000 @@ -0,0 +1,41 @@ +# 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: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2010-12-22 12:59+0530\n" +"Last-Translator: Shankar Prasad \n" +"Language-Team: kn-l10n \n" +"Language: kn\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ಅಶೋಕ್ ಕುಮಾರ್, ಶಂಕರ್ ಪ್ರಸಾದ್" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "ashok567@gmail.com, svenkate@redhat.com" + +#: service/Activities.cpp:124 +#, kde-format +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 "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ko/kactivities5.po kactivitymanagerd-5.12.8/po/ko/kactivities5.po --- kactivitymanagerd-5.22.4/po/ko/kactivities5.po 2021-07-27 10:18:35.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ko/kactivities5.po 2019-03-05 12:13:15.000000000 +0000 @@ -1,46 +1,40 @@ # 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, 2016, 2018, 2021. +# Shinjo Park , 2013, 2014, 2015, 2016, 2018. # msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-05-16 21:18+0200\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-02-14 15:11+0100\n" "Last-Translator: Shinjo Park \n" -"Language-Team: Korean \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 20.12.3\n" +"X-Generator: Lokalize 2.0\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "기본값" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Shinjo Park" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "활동 관리자" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "활동 \"%1\"(으)로 전환" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde@peremen.name" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "활동" +msgid "Default" +msgstr "기본값" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "\"%1\"(으)로 전환" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "활동 \"%1\"(으)로 전환" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/lt/kactivities5.po kactivitymanagerd-5.12.8/po/lt/kactivities5.po --- kactivitymanagerd-5.22.4/po/lt/kactivities5.po 2021-07-27 10:18:36.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/lt/kactivities5.po 2019-03-05 12:13:16.000000000 +0000 @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: l 10n\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2019-06-01 19:23+0000\n" -"Last-Translator: Moo\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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" @@ -18,35 +18,26 @@ "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: Poedit 2.0.6\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Numatytoji" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Liudas Ališauskas" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "liudas@akmc.lt" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 +#: service/Activities.cpp:124 #, kde-format -msgid "Activity Manager" -msgstr "Veiklų tvarkytuvė" +msgid "Default" +msgstr "Numatyta" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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“" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activity" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Veikla" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Persijungti į veiklą „%1“" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/lv/kactivities5.po kactivitymanagerd-5.12.8/po/lv/kactivities5.po --- kactivitymanagerd-5.22.4/po/lv/kactivities5.po 2021-07-27 10:18:36.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/lv/kactivities5.po 2019-03-05 12:13:15.000000000 +0000 @@ -2,49 +2,40 @@ # This file is distributed under the same license as the PACKAGE package. # # Einars Sprugis , 2011. -# Maris Nartiss , 2019. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2019-12-07 12:23+0200\n" -"Last-Translator: Maris Nartiss \n" -"Language-Team: Latvian \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2011-08-17 23:34+0300\n" +"Last-Translator: Einars Sprugis \n" +"Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 19.08.3\n" +"X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " "2);\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Noklusējuma" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, kde-format -msgid "Activity Manager" -msgstr "Aktivitāšu pārvaldnieks" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Einārs Sprūģis" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Pārslēgties uz aktivitāti \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "einars8@gmail.com" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" +msgid "Default" msgstr "" -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" -msgstr "Pārslēgties uz aktivitāti \"%1\"" \ No newline at end of file +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 +#, kde-format +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/mr/kactivities5.po kactivitymanagerd-5.12.8/po/mr/kactivities5.po --- kactivitymanagerd-5.22.4/po/mr/kactivities5.po 2021-07-27 10:18:37.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/mr/kactivities5.po 2019-03-05 12:13:16.000000000 +0000 @@ -5,46 +5,36 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2013-01-14 22:14+0530\n" "Last-Translator: Chetan Khona \n" "Language-Team: American English \n" -"Language: mr\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" -#: service/Activities.cpp:111 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "चेतन खोना" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "chetan@kompkin.com" + +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, fuzzy, kde-format -#| msgid "Activities" -msgid "Activity Manager" -msgstr "कार्यपध्दती" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format msgctxt "@action" msgid "Switch to activity \"%1\"" -msgstr "\"%1\" या कार्यपध्दतीप्रमाणे काम सुरु करा" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activities" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "कार्यपध्दती" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "\"%1\" या कार्यपध्दतीप्रमाणे काम सुरु करा" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ms/kactivities5.po kactivitymanagerd-5.12.8/po/ms/kactivities5.po --- kactivitymanagerd-5.22.4/po/ms/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ms/kactivities5.po 2019-03-05 12:13:16.000000000 +0000 @@ -0,0 +1,41 @@ +# 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: 2016-11-19 20:20+0100\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Sharuzzaman Ahmat Raslan" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sharuzzaman@gmail.com" + +#: service/Activities.cpp:124 +#, kde-format +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 "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/nb/kactivities5.po kactivitymanagerd-5.12.8/po/nb/kactivities5.po --- kactivitymanagerd-5.22.4/po/nb/kactivities5.po 2021-07-27 10:18:37.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/nb/kactivities5.po 2019-03-05 12:13:17.000000000 +0000 @@ -4,11 +4,11 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2014-09-09 12:52+0200\n" "Last-Translator: Bjørn Steensrud \n" -"Language-Team: Norwegian Bokmål \n" +"Language-Team: Norwegian Bokmål \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,30 +19,24 @@ "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Standard" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, kde-format -msgid "Activity Manager" -msgstr "" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Bjørn Steensrud" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Bytt til aktivitet «%1»" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "bjornst@skogkatt.homelinux.org" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "" +msgid "Default" +msgstr "Standard" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Bytt til aktivitet «%1»" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/nds/kactivities5.po kactivitymanagerd-5.12.8/po/nds/kactivities5.po --- kactivitymanagerd-5.22.4/po/nds/kactivities5.po 2021-07-27 10:18:37.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/nds/kactivities5.po 2019-03-05 12:13:17.000000000 +0000 @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2014-08-21 16:34+0200\n" "Last-Translator: Sönke Dibbern \n" "Language-Team: Low Saxon \n" @@ -17,34 +17,24 @@ "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 1.4\n" -#: service/Activities.cpp:111 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Sönke Dibbern" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "s_dibbern@web.de" + +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "Standard" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, fuzzy, kde-format -#| msgid "Activity" -msgid "Activity Manager" -msgstr "Aktiviteet" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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 " - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activity" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Aktiviteet" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Na Aktiviteet \"%1\" wesseln " \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/nl/kactivities5.po kactivitymanagerd-5.12.8/po/nl/kactivities5.po --- kactivitymanagerd-5.22.4/po/nl/kactivities5.po 2021-07-27 10:18:38.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/nl/kactivities5.po 2019-03-05 12:13:17.000000000 +0000 @@ -1,13 +1,13 @@ # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # -# Freek de Kruijf , 2016, 2018, 2021. +# Freek de Kruijf , 2016. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-02-28 12:17+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-03-01 13:12+0100\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -15,32 +15,26 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 20.12.2\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Standaard" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Freek de Kruijf" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Activiteitenbeheerder" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Omschakelen naar activiteit \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "freekdekruijf@kde.nl" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "activiteit" +msgid "Default" +msgstr "Standaard" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Omschakelen naar \"%1\"" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Omschakelen naar activiteit \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/nn/kactivities5.po kactivitymanagerd-5.12.8/po/nn/kactivities5.po --- kactivitymanagerd-5.22.4/po/nn/kactivities5.po 2021-07-27 10:18:38.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/nn/kactivities5.po 2019-03-05 12:13:18.000000000 +0000 @@ -1,48 +1,42 @@ # Translation of kactivities5 to Norwegian Nynorsk # -# Karl Ove Hufthammer , 2014, 2015, 2018, 2019, 2021. +# Karl Ove Hufthammer , 2014, 2015, 2018. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-03-21 17:40+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2015-11-10 20:13+0100\n" "Last-Translator: Karl Ove Hufthammer \n" -"Language-Team: Norwegian Nynorsk \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 20.12.3\n" +"X-Generator: Lokalize 2.0\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Standard" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Karl Ove Hufthammer" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Aktivitetshandsamar" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Byt til aktiviteten «%1»" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "karl@huftis.org" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "aktivitet" +msgid "Default" +msgstr "Standard" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Byt til «%1»" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Byt til aktivitet «%1»" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/pa/kactivities5.po kactivitymanagerd-5.12.8/po/pa/kactivities5.po --- kactivitymanagerd-5.22.4/po/pa/kactivities5.po 2021-07-27 10:18:39.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/pa/kactivities5.po 2019-03-05 12:13:18.000000000 +0000 @@ -1,49 +1,40 @@ # 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, 2018. +# A S Alam , 2012, 2014. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2018-09-22 22:43-0600\n" -"Last-Translator: A S Alam \n" -"Language-Team: Punjabi \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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 2.0\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "ਡਿਫਾਲਟ" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "aalam@users.sf.net" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 +#: service/Activities.cpp:124 #, kde-format -msgid "Activity Manager" -msgstr "ਸਰਗਰਮੀ ਮੈਨੇਜਰ" +msgid "Default" +msgstr "ਡਿਫਾਲਟ" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format msgctxt "@action" msgid "Switch to activity \"%1\"" -msgstr "\"%1\" ਸਰਗਰਮੀ ਲਈ ਬਦਲੋ" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activity" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "ਸਰਗਰਮੀ" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" -msgstr "\"%1\" ਸਰਗਰਮੀ ਲਈ ਬਦਲੋ" \ No newline at end of file +msgstr "\"%1\" ਐਕਟਵਿਟੀ ਲਈ ਬਦਲੋ" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/pl/kactivities5.po kactivitymanagerd-5.12.8/po/pl/kactivities5.po --- kactivitymanagerd-5.22.4/po/pl/kactivities5.po 2021-07-27 10:18:39.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/pl/kactivities5.po 2019-03-05 12:13:19.000000000 +0000 @@ -1,14 +1,13 @@ # 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, 2018, 2021. -# Ignacy Kajdan , 2020. +# Łukasz Wojniłowicz , 2012, 2014, 2015, 2016. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-04-05 07:36+0200\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-05-07 08:00+0100\n" "Last-Translator: Łukasz Wojniłowicz \n" "Language-Team: Polish \n" "Language: pl\n" @@ -17,32 +16,26 @@ "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 20.12.1\n" +"X-Generator: Lokalize 2.0\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Domyślna" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, kde-format -msgid "Activity Manager" -msgstr "Zarządzanie aktywnościami" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Łukasz Wojniłowicz" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Przełącz do aktywności „%1”" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "lukasz.wojnilowicz@gmail.com" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "aktywność" +msgid "Default" +msgstr "Domyślne" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Przełącz na \"%1\"" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Przełącz do aktywności \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/pt/kactivities5.po kactivitymanagerd-5.12.8/po/pt/kactivities5.po --- kactivitymanagerd-5.22.4/po/pt/kactivities5.po 2021-07-27 10:18:39.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/pt/kactivities5.po 2019-03-05 12:13:19.000000000 +0000 @@ -1,9 +1,9 @@ msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-03-02 12:57+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2015-12-28 13:58+0000\n" "Last-Translator: José Nuno Coelho Pires \n" "Language-Team: Portuguese \n" "Language: pt\n" @@ -13,30 +13,24 @@ "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-POFile-SpellExtra: Cukic QML\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Predefinição" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "José Nuno Pires" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Gestor de Actividades" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Mudar para a actividade \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "zepires@gmail.com" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "actividade" +msgid "Default" +msgstr "Predefinição" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Mudar para a \"%1\"" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Mudar para a actividade \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/pt_BR/kactivities5.po kactivitymanagerd-5.12.8/po/pt_BR/kactivities5.po --- kactivitymanagerd-5.22.4/po/pt_BR/kactivities5.po 2021-07-27 10:18:39.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/pt_BR/kactivities5.po 2019-03-05 12:13:19.000000000 +0000 @@ -3,46 +3,39 @@ # This file is distributed under the same license as the PACKAGE package. # # André Marcelo Alvarenga , 2016. -# Luiz Fernando Ranghetti , 2018, 2021. msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-03-19 10:46-0300\n" -"Last-Translator: Luiz Fernando Ranghetti \n" -"Language-Team: Brazilian Portuguese \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-03-01 08:24-0300\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 20.04.2\n" +"X-Generator: Lokalize 2.0\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Padrão" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "André Marcelo Alvarenga" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Gerenciador de atividades" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Alternar para a atividade \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "alvarenga@kde.org" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "atividade" +msgid "Default" +msgstr "Padrão" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Mudar para \"%1\"" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Alternar para a atividade \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ro/kactivities5.po kactivitymanagerd-5.12.8/po/ro/kactivities5.po --- kactivitymanagerd-5.22.4/po/ro/kactivities5.po 2021-07-27 10:18:39.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ro/kactivities5.po 2019-03-05 12:13:19.000000000 +0000 @@ -1,47 +1,41 @@ # 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, 2020, 2021. # +# Sergiu Bivol , 2012, 2013. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-07-25 10:32+0100\n" -"Last-Translator: Sergiu Bivol \n" -"Language-Team: Romanian\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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 19.12.3\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Implicită" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, kde-format -msgid "Activity Manager" -msgstr "Gestionar de activități" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Sergiu Bivol" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Comută la activitatea „%1”" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sergiu@ase.md" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "activitate" +msgid "Default" +msgstr "" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Comută la „%1”" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Comută la activitatea „%1”" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ru/kactivities5.po kactivitymanagerd-5.12.8/po/ru/kactivities5.po --- kactivitymanagerd-5.22.4/po/ru/kactivities5.po 2021-07-27 10:18:39.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ru/kactivities5.po 2019-03-05 12:13:20.000000000 +0000 @@ -3,13 +3,13 @@ # # Julia Dronova , 2013. # Yuri Efremov , 2013. -# Alexander Potashev , 2014, 2015, 2018. +# Alexander Potashev , 2014, 2015. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2018-09-15 16:30+0300\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2015-09-01 10:30+0300\n" "Last-Translator: Alexander Potashev \n" "Language-Team: Russian \n" "Language: ru\n" @@ -20,42 +20,28 @@ "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 2.0\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Начальная комната" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Александр Лахин" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Диспетчер комнат" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "exclusion@gmail.com" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: service/Activities.cpp:124 +#, kde-format +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»" -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activity" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Комната" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" -msgstr "Переключиться на комнату «%1»" - - - - - - diff -Nru kactivitymanagerd-5.22.4/po/se/kactivities5.po kactivitymanagerd-5.12.8/po/se/kactivities5.po --- kactivitymanagerd-5.22.4/po/se/kactivities5.po 2021-07-27 10:18:40.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/se/kactivities5.po 2019-03-05 12:13:20.000000000 +0000 @@ -4,11 +4,11 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2011-10-26 01:37+0200\n" "Last-Translator: Børre Gaup \n" -"Language-Team: Northern Sami \n" +"Language-Team: Northern Sami \n" "Language: se\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,30 +19,24 @@ "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Standárda" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Børre Gaup" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "boerre@skolelinux.no" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: service/Activities.cpp:124 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "" +msgid "Default" +msgstr "Standárda" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" +msgctxt "@action" +msgid "Switch to activity \"%1\"" msgstr "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/sk/kactivities5.po kactivitymanagerd-5.12.8/po/sk/kactivities5.po --- kactivitymanagerd-5.22.4/po/sk/kactivities5.po 2021-07-27 10:18:40.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/sk/kactivities5.po 2019-03-05 12:13:20.000000000 +0000 @@ -1,14 +1,13 @@ # translation of kactivities5.po to Slovak # Roman Paholík , 2014, 2015. -# Mthw , 2018. msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2018-09-14 10:23+0100\n" -"Last-Translator: Mthw \n" -"Language-Team: Slovak \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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" @@ -16,33 +15,24 @@ "X-Generator: Lokalize 2.0\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Predvolené" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Roman Paholík" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "wizzardsk@gmail.com" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 +#: service/Activities.cpp:124 #, kde-format -msgid "Activity Manager" -msgstr "Správca aktivít" +msgid "Default" +msgstr "Predvolené" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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\"" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activity" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Aktivita" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "Prepnúť na aktivitu \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/sl/kactivities5.po kactivitymanagerd-5.12.8/po/sl/kactivities5.po --- kactivitymanagerd-5.22.4/po/sl/kactivities5.po 2021-07-27 10:18:40.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/sl/kactivities5.po 2019-03-05 12:13:21.000000000 +0000 @@ -4,48 +4,40 @@ # Andrej Vernekar , 2012. # Jure Repinc , 2013. # Andrej Mernik , 2013, 2014, 2015, 2016. -# Matjaž Jeran , 2020, 2021. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-03-01 13:21+0100\n" -"Last-Translator: Matjaž Jeran \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-01-03 13:19+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" -"Translator: Andrej Mernik \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 20.08.1\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Privzeto" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, kde-format -msgid "Activity Manager" -msgstr "Upravljalnik aktivnosti" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Andrej Vernekar,Andrej Mernik" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Preklopi na dejavnost \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "andrej.vernekar@gmail.com,andrejm@ubuntu.si" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "dejavnost" +msgid "Default" +msgstr "Privzeta" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Preklopi na \"%1\"" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Preklopi na dejavnost »%1«" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/sr/kactivities5.po kactivitymanagerd-5.12.8/po/sr/kactivities5.po --- kactivitymanagerd-5.22.4/po/sr/kactivities5.po 2021-07-27 10:18:41.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/sr/kactivities5.po 2019-03-05 12:13:21.000000000 +0000 @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2020-02-24 03:39+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2016-01-01 15:42+0100\n" "Last-Translator: Chusslove Illich \n" "Language-Team: Serbian \n" @@ -18,19 +18,24 @@ "X-Text-Markup: kde4\n" "X-Environment: kde\n" +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Часлав Илић" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "caslav.ilic@gmx.net" + # >> @item activity name -#: service/Activities.cpp:134 +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "Подразумевана" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:42 -#, kde-format -msgid "Activity Manager" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:89 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:123 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format msgctxt "@action" msgid "Switch to activity \"%1\"" diff -Nru kactivitymanagerd-5.22.4/po/sr@ijekavian/kactivities5.po kactivitymanagerd-5.12.8/po/sr@ijekavian/kactivities5.po --- kactivitymanagerd-5.22.4/po/sr@ijekavian/kactivities5.po 2021-07-27 10:18:41.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/sr@ijekavian/kactivities5.po 2019-03-05 12:13:21.000000000 +0000 @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2020-02-24 03:39+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2016-01-01 15:42+0100\n" "Last-Translator: Chusslove Illich \n" "Language-Team: Serbian \n" @@ -18,19 +18,24 @@ "X-Text-Markup: kde4\n" "X-Environment: kde\n" +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Часлав Илић" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "caslav.ilic@gmx.net" + # >> @item activity name -#: service/Activities.cpp:134 +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "Подразумевана" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:42 -#, kde-format -msgid "Activity Manager" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:89 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:123 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format msgctxt "@action" msgid "Switch to activity \"%1\"" diff -Nru kactivitymanagerd-5.22.4/po/sr@ijekavianlatin/kactivities5.po kactivitymanagerd-5.12.8/po/sr@ijekavianlatin/kactivities5.po --- kactivitymanagerd-5.22.4/po/sr@ijekavianlatin/kactivities5.po 2021-07-27 10:18:41.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/sr@ijekavianlatin/kactivities5.po 2019-03-05 12:13:21.000000000 +0000 @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2020-02-24 03:39+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2016-01-01 15:42+0100\n" "Last-Translator: Chusslove Illich \n" "Language-Team: Serbian \n" @@ -18,19 +18,24 @@ "X-Text-Markup: kde4\n" "X-Environment: kde\n" +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Časlav Ilić" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "caslav.ilic@gmx.net" + # >> @item activity name -#: service/Activities.cpp:134 +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "Podrazumevana" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:42 -#, kde-format -msgid "Activity Manager" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:89 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:123 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format msgctxt "@action" msgid "Switch to activity \"%1\"" diff -Nru kactivitymanagerd-5.22.4/po/sr@latin/kactivities5.po kactivitymanagerd-5.12.8/po/sr@latin/kactivities5.po --- kactivitymanagerd-5.22.4/po/sr@latin/kactivities5.po 2021-07-27 10:18:41.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/sr@latin/kactivities5.po 2019-03-05 12:13:21.000000000 +0000 @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2020-02-24 03:39+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2016-01-01 15:42+0100\n" "Last-Translator: Chusslove Illich \n" "Language-Team: Serbian \n" @@ -18,19 +18,24 @@ "X-Text-Markup: kde4\n" "X-Environment: kde\n" +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Časlav Ilić" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "caslav.ilic@gmx.net" + # >> @item activity name -#: service/Activities.cpp:134 +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "Podrazumevana" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:42 -#, kde-format -msgid "Activity Manager" -msgstr "" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:89 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:123 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format msgctxt "@action" msgid "Switch to activity \"%1\"" diff -Nru kactivitymanagerd-5.22.4/po/sv/kactivities5.po kactivitymanagerd-5.12.8/po/sv/kactivities5.po --- kactivitymanagerd-5.22.4/po/sv/kactivities5.po 2021-07-27 10:18:41.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/sv/kactivities5.po 2019-03-05 12:13:21.000000000 +0000 @@ -1,13 +1,13 @@ # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # -# Stefan Asserhäll , 2016, 2018, 2021. +# Stefan Asserhäll , 2016. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-02-28 08:59+0100\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-03-01 18:14+0100\n" "Last-Translator: Stefan Asserhäll \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -15,32 +15,26 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 20.08.1\n" +"X-Generator: Lokalize 2.0\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Förval" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Stefan Asserhäll" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Aktivitetshanterare" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Byt till aktivitet \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "stefan.asserhall@bredband.net" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "aktivitet" +msgid "Default" +msgstr "Förval" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "Byt till \"%1\"" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "Byt till aktivitet \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/tg/kactivities5.po kactivitymanagerd-5.12.8/po/tg/kactivities5.po --- kactivitymanagerd-5.22.4/po/tg/kactivities5.po 2021-07-27 10:18:42.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/tg/kactivities5.po 2019-03-05 12:13:21.000000000 +0000 @@ -1,49 +1,42 @@ +# 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 # -# Victor Ibragimov , 2013, 2019. msgid "" msgstr "" "Project-Id-Version: Tajik KDE Localization\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2019-09-16 19:46+0500\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2013-07-26 14:48-0000\n" "Last-Translator: Victor Ibragimov \n" "Language-Team: Tajik \n" -"Language: tg\n" +"Language: Tajik\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 19.04.3\n" +"X-Generator: Poedit 1.5.7\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Poedit-SourceCharset: UTF-8\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Стандартӣ" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, kde-format -msgid "Activity Manager" -msgstr "Мудири фаъолиятҳо" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Гузариш ба фаъолияти \"%1\"" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" +msgid "Default" msgstr "" -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 +#, kde-format +msgctxt "@action" +msgid "Switch to activity \"%1\"" msgstr "Гузариш ба фаъолияти \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/th/kactivities5.po kactivitymanagerd-5.12.8/po/th/kactivities5.po --- kactivitymanagerd-5.22.4/po/th/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/th/kactivities5.po 2019-03-05 12:13:22.000000000 +0000 @@ -0,0 +1,40 @@ +# 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: 2016-11-19 20:20+0100\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ภูวณัฏฐ์ สาครสกลพัฒน์" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "narachai@gmail.com" + +#: service/Activities.cpp:124 +#, kde-format +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 "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/tr/kactivities5.po kactivitymanagerd-5.12.8/po/tr/kactivities5.po --- kactivitymanagerd-5.22.4/po/tr/kactivities5.po 2021-07-27 10:18:42.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/tr/kactivities5.po 2019-03-05 12:13:22.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2015-09-08 14:31+0000\n" "Last-Translator: Necdet \n" "Language-Team: Turkish \n" @@ -18,34 +18,24 @@ "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Volkan Gezer" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "volkangezer@gmail.com" + +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "Öntanımlı" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, fuzzy, kde-format -#| msgid "Activity name" -msgid "Activity Manager" -msgstr "Etkinlik adı" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: 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ç" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activity" -msgctxt "KRunner keyword" -msgid "activity" -msgstr "Etkinlik" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "\"%1\" etkinliğine geç" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/ug/kactivities5.po kactivitymanagerd-5.12.8/po/ug/kactivities5.po --- kactivitymanagerd-5.22.4/po/ug/kactivities5.po 2021-07-27 10:18:43.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/ug/kactivities5.po 2019-03-05 12:13:22.000000000 +0000 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: kactivitymanagerd_fileitem_linking_plugin\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" "PO-Revision-Date: 2013-09-08 07:05+0900\n" "Last-Translator: Gheyret Kenji \n" "Language-Team: \n" @@ -18,34 +18,24 @@ "X-Generator: Poedit 1.5.5\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: service/Activities.cpp:111 +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ئابدۇقادىر ئابلىز, غەيرەت كەنجى" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sahran.ug@gmail.com, gheyret@gmail.com" + +#: service/Activities.cpp:124 #, kde-format msgid "Default" msgstr "" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 -#, fuzzy, kde-format -#| msgid "Activities..." -msgid "Activity Manager" -msgstr "پائالىيەتلەر…" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format msgctxt "@action" msgid "Switch to activity \"%1\"" -msgstr "\"%1\" پائالىيەتكە ئالماشتۇر" - -#: service/plugins/krunner/ActivityRunner.cpp:19 -#, fuzzy, kde-format -#| msgid "Activities..." -msgctxt "KRunner keyword" -msgid "activity" -msgstr "پائالىيەتلەر…" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" msgstr "\"%1\" پائالىيەتكە ئالماشتۇر" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/uk/kactivities5.po kactivitymanagerd-5.12.8/po/uk/kactivities5.po --- kactivitymanagerd-5.22.4/po/uk/kactivities5.po 2021-07-27 10:18:43.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/uk/kactivities5.po 2019-03-05 12:13:22.000000000 +0000 @@ -1,15 +1,15 @@ # Translation of kactivities5.po to Ukrainian -# Copyright (C) 2018-2021 This_file_is_part_of_KDE +# Copyright (C) 2014-2016 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 , 2016, 2018, 2021. +# Yuri Chornoivan , 2016. msgid "" msgstr "" "Project-Id-Version: kactivities5\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-02-28 08:37+0200\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2016-03-01 20:12+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -18,32 +18,26 @@ "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 20.11.70\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "Типовий" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Юрій Чорноіван" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "Керування просторами дій" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "Перемкнутися на простір дій «%1»" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "yurchor@ukr.net" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "activity" +msgid "Default" +msgstr "Типовий" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" +msgctxt "@action" +msgid "Switch to activity \"%1\"" msgstr "Перемкнутися на простір дій «%1»" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/wa/kactivities5.po kactivitymanagerd-5.12.8/po/wa/kactivities5.po --- kactivitymanagerd-5.22.4/po/wa/kactivities5.po 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/wa/kactivities5.po 2019-03-05 12:13:22.000000000 +0000 @@ -0,0 +1,40 @@ +# 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: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2010-12-17 16:59+0100\n" +"Last-Translator: Jean Cayron \n" +"Language-Team: Walloon \n" +"Language: wa\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Djan Cayron" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "jean.cayron@gmail.com" + +#: service/Activities.cpp:124 +#, kde-format +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 "" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/zh_CN/kactivities5.po kactivitymanagerd-5.12.8/po/zh_CN/kactivities5.po --- kactivitymanagerd-5.22.4/po/zh_CN/kactivities5.po 2021-07-27 10:18:44.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/zh_CN/kactivities5.po 2019-03-05 12:13:23.000000000 +0000 @@ -7,46 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: kdeorg\n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2021-07-26 13:50\n" -"Last-Translator: \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\n" +"PO-Revision-Date: 2018-05-18 06:28-0400\n" +"Last-Translator: guoyunhebrave \n" "Language-Team: Chinese Simplified\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: crowdin.com\n" "X-Crowdin-Project: kdeorg\n" -"X-Crowdin-Project-ID: 269464\n" "X-Crowdin-Language: zh-CN\n" -"X-Crowdin-File: /kf5-stable/messages/kactivitymanagerd/kactivities5.pot\n" -"X-Crowdin-File-ID: 2464\n" +"X-Crowdin-File: /kf5-stable/messages/kde-workspace/kactivities5.pot\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "默认" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "KDE 中国, Feng Chao" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "活动管理器" - -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 -#, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "切换到活动“%1”" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde-china@kde.org, chaofeng111@gmail.com" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/Activities.cpp:124 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "活动" +msgid "Default" +msgstr "默认" -#: service/plugins/krunner/ActivityRunner.cpp:70 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgid "Switch to \"%1\"" -msgstr "切换到“%1”" \ No newline at end of file +msgctxt "@action" +msgid "Switch to activity \"%1\"" +msgstr "切换到活动 \"%1\"" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/po/zh_TW/kactivities5.po kactivitymanagerd-5.12.8/po/zh_TW/kactivities5.po --- kactivitymanagerd-5.22.4/po/zh_TW/kactivities5.po 2021-07-27 10:18:44.000000000 +0000 +++ kactivitymanagerd-5.12.8/po/zh_TW/kactivities5.po 2019-03-05 12:13:23.000000000 +0000 @@ -2,48 +2,39 @@ # This file is distributed under the same license as the PACKAGE package. # # Franklin Weng , 2012, 2013, 2014, 2015. -# pan93412 , 2018. msgid "" msgstr "" "Project-Id-Version: \n" -"Report-Msgid-Bugs-To: https://bugs.kde.org\n" -"POT-Creation-Date: 2021-04-12 00:19+0000\n" -"PO-Revision-Date: 2018-08-08 19:29+0800\n" -"Last-Translator: pan93412 \n" -"Language-Team: Chinese \n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2016-11-19 20:20+0100\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 2.0\n" +"X-Generator: Lokalize 1.5\n" -#: service/Activities.cpp:111 #, kde-format -msgid "Default" -msgstr "預設" +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Franklin Weng" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:31 #, kde-format -msgid "Activity Manager" -msgstr "活動管理器" +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "franklin@goodhorse.idv.tw" -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:72 -#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:108 +#: service/Activities.cpp:124 #, kde-format -msgctxt "@action" -msgid "Switch to activity \"%1\"" -msgstr "切換到活動 %1" +msgid "Default" +msgstr "預設" -#: service/plugins/krunner/ActivityRunner.cpp:19 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:90 +#: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:125 #, kde-format -msgctxt "KRunner keyword" -msgid "activity" -msgstr "" - -#: service/plugins/krunner/ActivityRunner.cpp:70 -#, fuzzy, kde-format -#| msgctxt "@action" -#| msgid "Switch to activity \"%1\"" -msgid "Switch to \"%1\"" +msgctxt "@action" +msgid "Switch to activity \"%1\"" msgstr "切換到活動 %1" \ No newline at end of file diff -Nru kactivitymanagerd-5.22.4/src/CMakeLists.txt kactivitymanagerd-5.12.8/src/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -2,21 +2,44 @@ # Boosting us a bit -find_package(Boost ${Boost_MINIMUM_VERSION} MODULE REQUIRED) -set_package_properties(Boost PROPERTIES - DESCRIPTION "Boost C++ Libraries" - URL "https://www.boost.org" - TYPE REQUIRED -) -include_directories (${Boost_INCLUDE_DIRS}) +find_package (Boost 1.49 REQUIRED) +include_directories (${Boost_INCLUDE_DIR}) + +string (REGEX MATCH "1053.." BOOST_VERSION_BLACKLISTED ${Boost_VERSION}) + +if (BOOST_VERSION_BLACKLISTED AND NOT KACTIVITIES_ENABLE_EXCEPTIONS) + message ( + WARNING + "Boost.Container 1.53 has issues when exceptions are disabled. " + "We will set the KACTIVITIES_ENABLE_EXCEPTIONS option." + ) + set (KACTIVITIES_ENABLE_EXCEPTIONS ON) +endif () + +if (KACTIVITIES_ENABLE_EXCEPTIONS) + string (REPLACE "-fno-exceptions" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + 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}") # ======================================================= # Starting the actual project definition # 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 "${KDE_INSTALL_FULL_PLUGINDIR}/${KAMD_PLUGIN_DIR}/") +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 ( @@ -24,37 +47,28 @@ ${CMAKE_CURRENT_SOURCE_DIR} ) -# D-Bus activation service file, and associated systemd service -ecm_generate_dbus_service_file( - NAME org.kde.ActivityManager - EXECUTABLE "${KDE_INSTALL_FULL_LIBEXECDIR}/kactivitymanagerd" - SYSTEMD_SERVICE plasma-kactivitymanagerd.service - DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR} -) -ecm_install_configured_files( - INPUT plasma-kactivitymanagerd.service.in - DESTINATION ${KDE_INSTALL_SYSTEMDUSERUNITDIR} -) - -ecm_qt_declare_logging_category(debug_SRCS - HEADER DebugActivities.h - IDENTIFIER KAMD_LOG_ACTIVITIES - CATEGORY_NAME org.kde.kactivities.activities - DEFAULT_SEVERITY Warning - DESCRIPTION "KActivities Activities" EXPORT KACTIVITYMANAGERD) -ecm_qt_declare_logging_category(debug_SRCS - HEADER DebugResources.h - IDENTIFIER KAMD_LOG_RESOURCES - CATEGORY_NAME org.kde.kactivities.resources - DEFAULT_SEVERITY Warning - DESCRIPTION "KActivities Resources" EXPORT KACTIVITYMANAGERD) -ecm_qt_declare_logging_category(debug_SRCS - HEADER DebugApplication.h - IDENTIFIER KAMD_LOG_APPLICATION - CATEGORY_NAME org.kde.kactivities.application - DEFAULT_SEVERITY Warning - DESCRIPTION "KActivities Application" EXPORT KACTIVITYMANAGERD) +# Is the compiler modern enough to build the ActivityManager service +# and accompanying workspace addons? -ecm_setup_qtplugin_macro_names(JSON_ARG3 "KAMD_EXPORT_PLUGIN") +string (COMPARE EQUAL "${CXX_FEATURES_UNSUPPORTED}" "" CXX_COMPILER_IS_MODERN) + +# 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 () + +configure_file(org.kde.activitymanager.service.in + ${CMAKE_CURRENT_BINARY_DIR}/org.kde.activitymanager.service) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.activitymanager.service + DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}) add_subdirectory (service) + diff -Nru kactivitymanagerd-5.22.4/src/common/database/Database.cpp kactivitymanagerd-5.12.8/src/common/database/Database.cpp --- kactivitymanagerd-5.22.4/src/common/database/Database.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/common/database/Database.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,51 +1,66 @@ /* - * SPDX-FileCopyrightText: 2014-2016 Ivan Cukic + * Copyright (C) 2014 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 +#include -#include +#include #include +#include -#include "DebugResources.h" +namespace Common { -namespace Common -{ -namespace -{ +namespace { #ifdef QT_DEBUG -QString lastExecutedQuery; + QString lastExecutedQuery; #endif -std::mutex databases_mutex; + std::mutex databases_mutex; -struct DatabaseInfo { - Qt::HANDLE thread; - Database::OpenMode openMode; -}; + 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; -} + 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; + std::map> databases; } -class QSqlDatabaseWrapper -{ +class QSqlDatabaseWrapper { private: QSqlDatabase m_database; bool m_open; @@ -55,14 +70,17 @@ 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); + 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")); @@ -74,8 +92,10 @@ m_open = m_database.open(); if (!m_open) { - qCWarning(KAMD_LOG_RESOURCES) << "KActivities: Database is not open: " << m_database.connectionName() << m_database.databaseName() - << m_database.lastError(); + 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"); @@ -85,12 +105,7 @@ ~QSqlDatabaseWrapper() { - qCDebug(KAMD_LOG_RESOURCES) << "Closing SQL connection: " << m_connectionName; - } - - void close() - { - m_database.close(); + qDebug() << "Closing SQL connection: " << m_connectionName; } QSqlDatabase &get() @@ -109,8 +124,7 @@ } }; -class Database::Private -{ +class Database::Private { public: Private() { @@ -148,7 +162,7 @@ // We are saving instances per thread and per read/write mode DatabaseInfo info; - info.thread = QThread::currentThreadId(); + info.thread = QThread::currentThreadId(); info.openMode = openMode; // Do we have an instance matching the request? @@ -167,7 +181,7 @@ ptr->d->database.reset(new QSqlDatabaseWrapper(info)); if (!ptr->d->database->isOpen()) { - return nullptr; + return Q_NULLPTR; } databases[info] = ptr; @@ -188,24 +202,21 @@ auto walResult = ptr->pragma(QStringLiteral("journal_mode = WAL")); if (walResult != "wal") { - qCWarning(KAMD_LOG_RESOURCES) << "KActivities: Database can not be opened in WAL mode. Check the " - "SQLite version (required >3.7.0). And whether your filesystem " - "supports shared memory"; - - ptr->d->database->close(); - - return nullptr; + 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")); - qCDebug(KAMD_LOG_RESOURCES) << "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")); + 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; } @@ -223,11 +234,6 @@ return d->query(); } -void Database::reportError(const QSqlError &error_) -{ - Q_EMIT error(error_); -} - QString Database::lastQuery() const { #ifdef QT_DEBUG @@ -238,23 +244,17 @@ QSqlQuery Database::execQuery(const QString &query, bool ignoreErrors) const { - Q_UNUSED(ignoreErrors); #ifdef QT_NO_DEBUG - auto result = d->query(query); - - if (!ignoreErrors && result.lastError().isValid()) { - Q_EMIT error(result.lastError()); - } - - return result; + return d->query(query); #else auto result = d->query(query); lastExecutedQuery = query; if (!ignoreErrors && result.lastError().isValid()) { - qCWarning(KAMD_LOG_RESOURCES) << "SQL: " - << "\n error: " << result.lastError() << "\n query: " << query; + qWarning() << "SQL: " + << "\n error: " << result.lastError() + << "\n query: " << query; } return result; @@ -265,7 +265,7 @@ { QSqlQuery result; - for (const auto &query : queries) { + for (const auto query: queries) { result = execQuery(query); } diff -Nru kactivitymanagerd-5.22.4/src/common/database/Database.h kactivitymanagerd-5.12.8/src/common/database/Database.h --- kactivitymanagerd-5.22.4/src/common/database/Database.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/common/database/Database.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,34 +1,44 @@ /* - * SPDX-FileCopyrightText: 2014 Ivan Cukic + * Copyright 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 #include +#include +#include +#include -namespace Common -{ -class Database : public QObject -{ - Q_OBJECT +namespace Common { +class Database { public: typedef std::shared_ptr Ptr; enum Source { - ResourcesDatabase, + ResourcesDatabase }; enum OpenMode { ReadWrite, - ReadOnly, + ReadOnly }; static Ptr instance(Source source, OpenMode openMode); @@ -48,43 +58,41 @@ Database(); friend class Locker; - class Locker - { + class Locker { public: - explicit Locker(Database &database); + Locker(Database &database); ~Locker(); private: QSqlDatabase &m_database; }; - void reportError(const QSqlError &error); - -#define DATABASE_TRANSACTION(A) \ - /* enable this for debugging only: qCDebug(KAMD_LOG_RESOURCES) << "Location:" << __FILE__ << __LINE__; */ \ - Common::Database::Locker lock(A) - -Q_SIGNALS: - void error(const QSqlError &error) const; + #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) +template +QString parseStarPattern(const QString &pattern, const QString &joker, + EscapeFunction escape) { - const auto begin = pattern.constBegin(); - const auto end = pattern.constEnd(); + const auto begin = pattern.constBegin(); + const auto end = pattern.constEnd(); - auto currentStart = pattern.constBegin(); + 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)); + 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 @@ -100,13 +108,14 @@ // Just skip the current character isEscaped = false; - } else if (*currentPosition == QLatin1Char('\\')) { + } else if (*currentPosition == '\\') { // Skip two characters isEscaped = true; - } else if (*currentPosition == QLatin1Char('*')) { + } else if (*currentPosition == '*') { // Replacing the star with the sql like joker - % - resultPattern.append(escape(stringFromIterators(currentStart, currentPosition)) + joker); + resultPattern.append(escape(stringFromIterators( + currentStart, currentPosition)) + joker); currentStart = currentPosition + 1; } else { @@ -115,7 +124,8 @@ } if (currentStart != currentPosition) { - resultPattern.append(escape(stringFromIterators(currentStart, currentPosition))); + resultPattern.append(escape(stringFromIterators( + currentStart, currentPosition))); } return resultPattern; @@ -139,3 +149,4 @@ } // namespace Common #endif // COMMON_DATABASE_H + diff -Nru kactivitymanagerd-5.22.4/src/common/database/schema/ResourcesDatabaseSchema.cpp kactivitymanagerd-5.12.8/src/common/database/schema/ResourcesDatabaseSchema.cpp --- kactivitymanagerd-5.22.4/src/common/database/schema/ResourcesDatabaseSchema.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/common/database/schema/ResourcesDatabaseSchema.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,19 +1,32 @@ /* - * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 "ResourcesDatabaseSchema.h" -#include #include #include +#include + +namespace Common { +namespace ResourcesDatabaseSchema { -namespace Common -{ -namespace ResourcesDatabaseSchema -{ const QString name = QStringLiteral("Resources"); QString version() @@ -27,32 +40,30 @@ return QStringList() - << // Schema information table, used for versioning - QStringLiteral( - "CREATE TABLE IF NOT EXISTS SchemaInfo (" + << // 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. - // Focusing events are not stored in order not to get a + // 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 (" + QStringLiteral("CREATE TABLE IF NOT EXISTS ResourceEvent (" "usedActivity TEXT, " "initiatingAgent TEXT, " "targettedResource TEXT, " "start INTEGER, " "end INTEGER " - ")") + ")") - << // The ResourceScoreCache table stores the calculated scores + << // The ResourceScoreCache table stores the calcualted scores // for resources based on the recorded events. - QStringLiteral( - "CREATE TABLE IF NOT EXISTS ResourceScoreCache (" + QStringLiteral("CREATE TABLE IF NOT EXISTS ResourceScoreCache (" "usedActivity TEXT, " "initiatingAgent TEXT, " "targettedResource TEXT, " @@ -61,7 +72,8 @@ "firstUpdate INTEGER, " "lastUpdate INTEGER, " "PRIMARY KEY(usedActivity, initiatingAgent, targettedResource)" - ")") + ")") + << // @since 2014.05.05 // The ResourceLink table stores the information, formerly kept by @@ -69,13 +81,12 @@ // 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 (" + 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 @@ -84,23 +95,24 @@ // 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 (" + 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"); + return QStandardPaths::writableLocation( + QStandardPaths::GenericDataLocation) + + QStringLiteral("/kactivitymanagerd/resources/database"); } const char *overrideFlagProperty = "org.kde.KActivities.ResourcesDatabase.overrideDatabase"; @@ -110,7 +122,10 @@ { auto app = QCoreApplication::instance(); - return (app->property(overrideFlagProperty).toBool()) ? app->property(overrideFileProperty).toString() : defaultPath(); + return + (app->property(overrideFlagProperty).toBool()) ? + app->property(overrideFileProperty).toString() : + defaultPath(); } void overridePath(const QString &path) @@ -125,8 +140,9 @@ { QString dbSchemaVersion; - auto query = database.execQuery(QStringLiteral("SELECT value FROM SchemaInfo WHERE key = 'version'"), - /* ignore error */ true); + auto query = database.execQuery( + QStringLiteral("SELECT value FROM SchemaInfo WHERE key = 'version'"), + /* ignore error */ true); if (query.next()) { dbSchemaVersion = query.value(0).toString(); @@ -144,36 +160,26 @@ // 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.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 are asking for trouble. If the database is corrupt, - // some of these should fail. - // WARNING: Sqlite specific! - database.execQueries(QStringList{ - ".tables", - "SELECT count(*) FROM SchemaInfo", - "SELECT count(*) FROM ResourceEvent", - "SELECT count(*) FROM ResourceScoreCache", - "SELECT count(*) FROM ResourceLink", - "SELECT count(*) FROM ResourceInfo", - }); - // We can not allow empty fields for activity and agent, they need to // be at least magic values. These do not change the structure // of the database, but the old data. if (dbSchemaVersion < QStringLiteral("2015.02.09")) { - const QString updateActivity = QStringLiteral( - "SET usedActivity=':global' " + const QString updateActivity = + QStringLiteral("SET usedActivity=':global' " "WHERE usedActivity IS NULL OR usedActivity = ''"); - const QString updateAgent = QStringLiteral( - "SET initiatingAgent=':global' " + const QString updateAgent = + QStringLiteral("SET initiatingAgent=':global' " "WHERE initiatingAgent IS NULL OR initiatingAgent = ''"); // When the activity field was empty, it meant the file was @@ -190,8 +196,10 @@ database.execQuery("UPDATE ResourceEvent " + updateAgent); database.execQuery("UPDATE ResourceScoreCache " + updateActivity); database.execQuery("UPDATE ResourceScoreCache " + updateAgent); + } } } // namespace Common } // namespace ResourcesDatabaseSchema + diff -Nru kactivitymanagerd-5.22.4/src/common/database/schema/ResourcesDatabaseSchema.h kactivitymanagerd-5.12.8/src/common/database/schema/ResourcesDatabaseSchema.h --- kactivitymanagerd-5.22.4/src/common/database/schema/ResourcesDatabaseSchema.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/common/database/schema/ResourcesDatabaseSchema.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,29 +1,43 @@ /* - * SPDX-FileCopyrightText: 2011-2016 Ivan Cukic + * Copyright (C) 2011 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 RESOURCESDATABASESCHEMA_H #define RESOURCESDATABASESCHEMA_H -#include "../Database.h" #include +#include "../Database.h" + +namespace Common { +namespace ResourcesDatabaseSchema { -namespace Common -{ -namespace ResourcesDatabaseSchema -{ -QString version(); + QString version(); -QStringList schema(); + QStringList schema(); -QString path(); -void overridePath(const QString &path); + QString path(); + void overridePath(const QString &path); -void initSchema(Database &database); + void initSchema(Database &database); } // namespace ResourcesDatabase } // namespace Common #endif // RESOURCESDATABASESCHEMA_H + diff -Nru kactivitymanagerd-5.22.4/src/common/dbus/common.h kactivitymanagerd-5.12.8/src/common/dbus/common.h --- kactivitymanagerd-5.22.4/src/common/dbus/common.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/common/dbus/common.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 DBUS_COMMON_H @@ -10,17 +24,15 @@ #include #include -// clang-format off - #define KAMD_DBUS_SERVICE \ QStringLiteral("org.kde.ActivityManager") #define KAMD_DBUS_OBJECT_PATH(A) \ - (sizeof(A) > 2 ? QLatin1String("/ActivityManager/" A) \ - : QLatin1String("/ActivityManager")) + (sizeof(#A) > 2 ? QLatin1String("/ActivityManager/" #A) \ + : QLatin1String("/ActivityManager")) #define KAMD_DBUS_OBJECT(A) \ - QLatin1String("org.kde.ActivityManager." A) + QLatin1String("org.kde.ActivityManager." #A) #define KAMD_DBUS_INTERFACE(OBJECT_PATH, OBJECT, PARENT) \ QDBusInterface(KAMD_DBUS_SERVICE, \ @@ -34,7 +46,7 @@ KAMD_DBUS_OBJECT_PATH(OBJECT_PATH), \ KAMD_DBUS_OBJECT(OBJECT), \ QDBusConnection::sessionBus(), \ - nullptr) + Q_NULLPTR) #define KAMD_DBUS_CLASS_INTERFACE(OBJECT_PATH, OBJECT, PARENT) \ org::kde::ActivityManager::OBJECT( \ diff -Nru kactivitymanagerd-5.22.4/src/common/dbus/org.kde.ActivityManager.Activities.cpp kactivitymanagerd-5.12.8/src/common/dbus/org.kde.ActivityManager.Activities.cpp --- kactivitymanagerd-5.22.4/src/common/dbus/org.kde.ActivityManager.Activities.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/common/dbus/org.kde.ActivityManager.Activities.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,18 +1,31 @@ /* - * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 "org.kde.ActivityManager.Activities.h" -#include #include +#include -namespace details -{ -class ActivityInfoStaticInit -{ +namespace details { + +class ActivityInfoStaticInit { public: ActivityInfoStaticInit() { @@ -27,7 +40,7 @@ } // namespace details -QDBusArgument &operator<<(QDBusArgument &arg, const ActivityInfo &r) +QDBusArgument &operator<<(QDBusArgument &arg, const ActivityInfo r) { arg.beginStructure(); diff -Nru kactivitymanagerd-5.22.4/src/common/dbus/org.kde.ActivityManager.Activities.h kactivitymanagerd-5.12.8/src/common/dbus/org.kde.ActivityManager.Activities.h --- kactivitymanagerd-5.22.4/src/common/dbus/org.kde.ActivityManager.Activities.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/common/dbus/org.kde.ActivityManager.Activities.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,16 +1,31 @@ /* - * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL + * 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 KAMD_ACTIVITIES_DBUS_H #define KAMD_ACTIVITIES_DBUS_H +#include +#include #include #include -#include -#include struct ActivityInfo { QString id; @@ -38,7 +53,7 @@ Q_DECLARE_METATYPE(ActivityInfo) Q_DECLARE_METATYPE(ActivityInfoList) -QDBusArgument &operator<<(QDBusArgument &arg, const ActivityInfo &); +QDBusArgument &operator<<(QDBusArgument &arg, const ActivityInfo); const QDBusArgument &operator>>(const QDBusArgument &arg, ActivityInfo &rec); QDebug operator<<(QDebug dbg, const ActivityInfo &r); diff -Nru kactivitymanagerd-5.22.4/src/common/dbus/org.kde.ActivityManager.Activities.xml kactivitymanagerd-5.12.8/src/common/dbus/org.kde.ActivityManager.Activities.xml --- kactivitymanagerd-5.22.4/src/common/dbus/org.kde.ActivityManager.Activities.xml 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/common/dbus/org.kde.ActivityManager.Activities.xml 2019-03-05 12:13:01.000000000 +0000 @@ -9,12 +9,6 @@ - - - - - - diff -Nru kactivitymanagerd-5.22.4/src/common/specialvalues.h kactivitymanagerd-5.12.8/src/common/specialvalues.h --- kactivitymanagerd-5.22.4/src/common/specialvalues.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/common/specialvalues.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 SPECIALVALUES_H @@ -9,14 +23,16 @@ #include -#define GLOBAL_ACTIVITY_TAG QStringLiteral(":global") -#define ANY_ACTIVITY_TAG QStringLiteral(":any") +#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 GLOBAL_AGENT_TAG QStringLiteral(":global") +#define ANY_AGENT_TAG QStringLiteral(":any") +#define CURRENT_AGENT_TAG QStringLiteral(":current") + +#define ANY_TYPE_TAG QStringLiteral(":any") -#define ANY_TYPE_TAG QStringLiteral(":any") #endif // SPECIALVALUES_H + diff -Nru kactivitymanagerd-5.22.4/src/kactivities-features.h.cmake kactivitymanagerd-5.12.8/src/kactivities-features.h.cmake --- kactivitymanagerd-5.22.4/src/kactivities-features.h.cmake 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/kactivities-features.h.cmake 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,17 @@ #ifndef CONFIG_FEATURES_H_ #define CONFIG_FEATURES_H_ +#cmakedefine KAMD_DATA_DIR "@KAMD_DATA_DIR@" + #cmakedefine KAMD_PLUGIN_DIR "@KAMD_PLUGIN_DIR@" #cmakedefine KAMD_FULL_PLUGIN_DIR "@KAMD_FULL_PLUGIN_DIR@" +#cmakedefine KAMD_INSTALL_PREFIX "@KAMD_INSTALL_PREFIX@" + +#cmakedefine01 HAVE_CXX11_AUTO +#cmakedefine01 HAVE_CXX11_NULLPTR +#cmakedefine01 HAVE_CXX11_LAMBDA +#cmakedefine01 HAVE_CXX11_OVERRIDE +#cmakedefine01 HAVE_CXX_OVERRIDE_ATTR + #endif diff -Nru kactivitymanagerd-5.22.4/src/org.kde.activitymanager.service.in kactivitymanagerd-5.12.8/src/org.kde.activitymanager.service.in --- kactivitymanagerd-5.22.4/src/org.kde.activitymanager.service.in 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/org.kde.activitymanager.service.in 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.kde.ActivityManager +Exec=@CMAKE_INSTALL_PREFIX@/bin/kactivitymanagerd diff -Nru kactivitymanagerd-5.22.4/src/plasma-kactivitymanagerd.service.in kactivitymanagerd-5.12.8/src/plasma-kactivitymanagerd.service.in --- kactivitymanagerd-5.22.4/src/plasma-kactivitymanagerd.service.in 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/plasma-kactivitymanagerd.service.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -[Unit] -Description=KActivityManager Activity manager Service -PartOf=graphical-session.target - -[Service] -ExecStart=@KDE_INSTALL_FULL_LIBEXECDIR@/kactivitymanagerd -BusName=org.kde.ActivityManager -Slice=background.slice diff -Nru kactivitymanagerd-5.22.4/src/service/Activities.cpp kactivitymanagerd-5.12.8/src/service/Activities.cpp --- kactivitymanagerd-5.22.4/src/service/Activities.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Activities.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,26 +1,41 @@ /* - * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 . */ // Self +#include #include "Activities.h" #include "Activities_p.h" -#include // Qt +#include #include -#include #include #include +#include #include -#include // KDE +#include +#include #include #include -#include #include // Utils @@ -28,28 +43,21 @@ #include // Local -#include "DebugActivities.h" +#include "Debug.h" #include "activitiesadaptor.h" -#include "common/dbus/common.h" #include "ksmserver/KSMServer.h" +#include "common/dbus/common.h" // Private #define ACTIVITY_MANAGER_CONFIG_FILE_NAME QStringLiteral("kactivitymanagerdrc") -namespace -{ -inline bool nameBasedOrdering(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); -} -} - Activities::Private::KDE4ConfigurationTransitionChecker::KDE4ConfigurationTransitionChecker() { // Checking whether we need to transfer the KActivities/KDE4 // configuration file to the new location. - const QString newConfigLocation = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + QLatin1Char('/') + ACTIVITY_MANAGER_CONFIG_FILE_NAME; + const QString newConfigLocation + = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + + '/' + ACTIVITY_MANAGER_CONFIG_FILE_NAME; if (QFile(newConfigLocation).exists()) { return; @@ -61,7 +69,7 @@ return; } - QString oldConfigFile(migration.locateLocal("config", QStringLiteral("activitymanagerrc"))); + QString oldConfigFile(migration.locateLocal("config", "activitymanagerrc")); if (!oldConfigFile.isEmpty()) { QFile(oldConfigFile).copy(newConfigLocation); } @@ -83,18 +91,24 @@ // errors in the config, we might end up with all activities // stopped - const auto defaultState = !mainConfig().hasKey("runningActivities") ? Activities::Running - : !mainConfig().hasKey("stoppedActivities") ? Activities::Stopped - : Activities::Running; - - const auto runningActivities = mainConfig().readEntry("runningActivities", QStringList()); - const auto stoppedActivities = mainConfig().readEntry("stoppedActivities", QStringList()); + const auto defaultState + = !mainConfig().hasKey("runningActivities") ? Activities::Running : + !mainConfig().hasKey("stoppedActivities") ? Activities::Stopped : + Activities::Running; + + const auto runningActivities + = mainConfig().readEntry("runningActivities", QStringList()).toSet(); + const auto stoppedActivities + = mainConfig().readEntry("stoppedActivities", QStringList()).toSet(); // Do we have a running activity? bool atLeastOneRunning = false; - for (const auto &activity : activityNameConfig().keyList()) { - auto state = runningActivities.contains(activity) ? Activities::Running : stoppedActivities.contains(activity) ? Activities::Stopped : defaultState; + for (const auto &activity: activityNameConfig().keyList()) { + auto state = + runningActivities.contains(activity) ? Activities::Running : + stoppedActivities.contains(activity) ? Activities::Stopped : + defaultState; activities[activity] = state; @@ -106,13 +120,14 @@ // Is this our first start? if (activities.isEmpty()) { // We need to add this only after the service has been properly started - KConfigGroup cg(KSharedConfig::openConfig(QStringLiteral("kdeglobals")), QStringLiteral("Activities")); - // NOTE: config key still singular for retrocompatibility - const QStringList names = cg.readEntry("defaultActivityName", QStringList{i18n("Default")}); + KConfigGroup cg(KSharedConfig::openConfig("kdeglobals"), "Activities"); + const QString name = cg.readEntry("defaultActivityName", i18n("Default")); - for (const auto &name : names) { - QMetaObject::invokeMethod(q, "AddActivity", Qt::QueuedConnection, Q_ARG(QString, name)); - } + QMetaObject::invokeMethod( + q, + "AddActivity", + Qt::QueuedConnection, + Q_ARG(QString, name)); } else if (!atLeastOneRunning) { // If we have no running activities, but we have activities, @@ -120,26 +135,11 @@ // configuration file is in a big problem and told us there // are no running activities, and enlists all of them as stopped. // In that case, we will pretend all of them are running - qCWarning(KAMD_LOG_ACTIVITIES) << "The config file enlisted all activities as stopped"; - for (const auto &keys : activities.keys()) { + qWarning() << "The config file enlisted all activities as stopped"; + for (const auto &keys: activities.keys()) { activities[keys] = Activities::Running; } } - - QMetaObject::invokeMethod(this, "updateSortedActivityList", Qt::QueuedConnection); -} - -void Activities::Private::updateSortedActivityList() -{ - QVector a; - for (const auto &activity : activities.keys()) { - a.append(q->ActivityInformation(activity)); - } - - std::sort(a.begin(), a.end(), &nameBasedOrdering); - - QWriteLocker lock(&activitiesLock); - sortedActivities = a; } void Activities::Private::loadLastActivity() @@ -147,9 +147,13 @@ // 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()); + const auto lastUsedActivity + = mainConfig().readEntry("currentActivity", QString()); - setCurrentActivity((lastUsedActivity.isEmpty() && activities.size() > 0) ? activities.keys().at(0) : lastUsedActivity); + setCurrentActivity( + (lastUsedActivity.isEmpty() && activities.size() > 0) + ? activities.keys().at(0) + : lastUsedActivity); } Activities::Private::~Private() @@ -197,32 +201,6 @@ return true; } -bool Activities::Private::previousActivity() -{ - const auto a = q->ListActivities(Activities::Running); - - for (int i = 0; i < a.count(); ++i) { - if (a[i] == currentActivity) { - return setCurrentActivity(a[(i + a.size() - 1) % a.size()]); - } - } - - return false; -} - -bool Activities::Private::nextActivity() -{ - const auto a = q->ListActivities(Activities::Running); - - for (int i = 0; i < a.count(); ++i) { - if (a[i] == currentActivity) { - return setCurrentActivity(a[(i + 1) % a.size()]); - } - } - - return false; -} - QString Activities::Private::addActivity(const QString &name) { QString activity; @@ -253,8 +231,6 @@ q->SetActivityName(activity, name); - updateSortedActivityList(); - emit q->ActivityAdded(activity); scheduleConfigSync(); @@ -296,13 +272,6 @@ // Removing the activity activities.remove(activity); - for (int i = 0; i < sortedActivities.count(); ++i) { - if (sortedActivities[i].id == activity) { - sortedActivities.remove(i); - break; - } - } - // If the removed activity was the current one, // set another activity as current currentActivityDeleted = (currentActivity == activity); @@ -318,7 +287,8 @@ emit q->ActivityRemoved(activity); - QMetaObject::invokeMethod(q, "ActivityRemoved", Qt::QueuedConnection, Q_ARG(QString, activity)); + QMetaObject::invokeMethod(q, "ActivityRemoved", Qt::QueuedConnection, + Q_ARG(QString, activity)); QMetaObject::invokeMethod(this, "configSync", Qt::QueuedConnection); } @@ -337,7 +307,9 @@ // the timer was already started when this method was invoked, // we do not know whether the interval is properly set etc. if (!configSyncTimer.isActive()) { - QMetaObject::invokeMethod(&configSyncTimer, "start", Qt::QueuedConnection, Q_ARG(int, shortInterval)); + QMetaObject::invokeMethod( + &configSyncTimer, "start", Qt::QueuedConnection, + Q_ARG(int, shortInterval)); } } @@ -348,7 +320,8 @@ config.sync(); } -void Activities::Private::setActivityState(const QString &activity, Activities::State state) +void Activities::Private::setActivityState(const QString &activity, + Activities::State state) { bool configNeedsUpdating = false; @@ -369,16 +342,16 @@ } switch (state) { - case Activities::Running: - emit q->ActivityStarted(activity); - break; - - case Activities::Stopped: - emit q->ActivityStopped(activity); - break; + case Activities::Running: + emit q->ActivityStarted(activity); + break; + + case Activities::Stopped: + emit q->ActivityStopped(activity); + break; - default: - break; + default: + break; } emit q->ActivityStateChanged(activity, state); @@ -386,12 +359,14 @@ if (configNeedsUpdating) { QReadLocker lock(&activitiesLock); - mainConfig().writeEntry("runningActivities", activities.keys(Activities::Running) + activities.keys(Activities::Starting)); - mainConfig().writeEntry("stoppedActivities", activities.keys(Activities::Stopped) + activities.keys(Activities::Stopping)); + mainConfig().writeEntry("runningActivities", + activities.keys(Activities::Running) + + activities.keys(Activities::Starting)); + mainConfig().writeEntry("stoppedActivities", + activities.keys(Activities::Stopped) + + activities.keys(Activities::Stopping)); scheduleConfigSync(); } - - updateSortedActivityList(); } void Activities::Private::ensureCurrentActivityIsRunning() @@ -401,12 +376,14 @@ const auto runningActivities = q->ListActivities(Activities::Running); - if (!runningActivities.contains(currentActivity) && runningActivities.size() > 0) { + if (!runningActivities.contains(currentActivity) && + runningActivities.size() > 0) { setCurrentActivity(runningActivities.first()); } } -void Activities::Private::activitySessionStateChanged(const QString &activity, int status) +void Activities::Private::activitySessionStateChanged(const QString &activity, + int status) { QString currentActivity = this->currentActivity; @@ -418,48 +395,54 @@ } switch (status) { - case KSMServer::Started: - case KSMServer::FailedToStop: - setActivityState(activity, Activities::Running); - break; + case KSMServer::Started: + case KSMServer::FailedToStop: + setActivityState(activity, Activities::Running); + break; - case KSMServer::Stopped: - setActivityState(activity, Activities::Stopped); + case KSMServer::Stopped: + setActivityState(activity, Activities::Stopped); - if (currentActivity == activity) { - ensureCurrentActivityIsRunning(); - } + if (currentActivity == activity) { + ensureCurrentActivityIsRunning(); + } - break; + 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(); + qCDebug(KAMD_LOG_ACTIVITIES) << "Starting the KDE Activity Manager daemon" + << QDateTime::currentDateTime(); // Basic initialization //////////////////////////////////////////////////// // Initializing D-Bus service new ActivitiesAdaptor(this); - QDBusConnection::sessionBus().registerObject(KAMD_DBUS_OBJECT_PATH("Activities"), this); + KDBusConnectionPool::threadConnection().registerObject( + KAMD_DBUS_OBJECT_PATH(Activities), this); // Initializing config - qCDebug(KAMD_LOG_ACTIVITIES) << "Config timer connecting..."; - d->connect(&d->configSyncTimer, SIGNAL(timeout()), SLOT(configSync()), Qt::QueuedConnection); + qDebug() << "Config timer connecting..."; + 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))); + d->connect(d->ksmserver, SIGNAL(activitySessionStateChanged(QString, int)), + SLOT(activitySessionStateChanged(QString, int))); // Loading the last used activity, if possible d->loadLastActivity(); @@ -485,20 +468,11 @@ return d->setCurrentActivity(activity); } -bool Activities::PreviousActivity() -{ - return d->previousActivity(); -} - -bool Activities::NextActivity() -{ - return d->nextActivity(); -} - QString Activities::AddActivity(const QString &name) { // We do not care about authorization if this is the first start - if (!d->activities.isEmpty() && !KAuthorized::authorize(QStringLiteral("plasma-desktop/add_activities"))) { + if (!d->activities.isEmpty() && + !KAuthorized::authorize("plasma-desktop/add_activities")) { return QString(); } @@ -507,7 +481,7 @@ void Activities::RemoveActivity(const QString &activity) { - if (!KAuthorized::authorize(QStringLiteral("plasma-desktop/add_activities"))) { + if (!KAuthorized::authorize("plasma-desktop/add_activities")) { return; } @@ -517,25 +491,13 @@ QStringList Activities::ListActivities() const { QReadLocker lock(&d->activitiesLock); - - QStringList s; - for (const auto &a : d->sortedActivities) { - s << a.id; - } - return s; + return d->activities.keys(); } QStringList Activities::ListActivities(int state) const { QReadLocker lock(&d->activitiesLock); - - QStringList s; - for (const auto &a : d->sortedActivities) { - if (a.state == (State)state) { - s << a.id; - } - } - return s; + return d->activities.keys((State)state); } QList Activities::ListActivitiesWithInformation() const @@ -544,42 +506,54 @@ // Mapping activity ids to info - return as_collection>(ListActivities() | transformed(&Activities::ActivityInformation, this)); + 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(); \ - \ - emit Activity##What##Changed(activity, value); \ - emit ActivityChanged(activity); \ + 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(); \ + \ + 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_GETTER_AND_SETTER +#undef CREATE_GETTE_AND_SETTERR // Main @@ -587,7 +561,8 @@ { { QReadLocker lock(&d->activitiesLock); - if (!d->activities.contains(activity) || d->activities[activity] != Stopped) { + if (!d->activities.contains(activity) + || d->activities[activity] != Stopped) { return; } } @@ -600,10 +575,11 @@ { { QReadLocker lock(&d->activitiesLock); - if (!d->activities.contains(activity) // - || d->activities[activity] == Stopped // - || d->activities.size() == 1 // - || d->activities.keys(Activities::Running).size() <= 1) { + if (!d->activities.contains(activity) + || d->activities[activity] == Stopped + || d->activities.size() == 1 + || d->activities.keys(Activities::Running).size() <= 1 + ) { return; } } @@ -617,3 +593,4 @@ QReadLocker lock(&d->activitiesLock); return d->activities.contains(activity) ? d->activities[activity] : Invalid; } + diff -Nru kactivitymanagerd-5.22.4/src/service/Activities.h kactivitymanagerd-5.12.8/src/service/Activities.h --- kactivitymanagerd-5.22.4/src/service/Activities.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Activities.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 ACTIVITIES_H @@ -18,12 +32,12 @@ #include "Module.h" #include + /** * Service for tracking the user actions and managing the * activities */ -class Activities : public Module -{ +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) @@ -38,18 +52,18 @@ Running = 2, Starting = 3, Stopped = 4, - Stopping = 5, + Stopping = 5 }; /** * Creates new Activities object */ - explicit Activities(QObject *parent = nullptr); + Activities(QObject *parent = Q_NULLPTR); /** * Destroys this interface */ - ~Activities() override; + virtual ~Activities(); // workspace activities control public Q_SLOTS: @@ -65,16 +79,6 @@ bool SetCurrentActivity(const QString &activity); /** - * Switches to the previous activity - */ - bool PreviousActivity(); - - /** - * Switches to the next activity - */ - bool NextActivity(); - - /** * Adds a new activity * @param name name of the activity * @returns id of the newly created activity @@ -210,7 +214,8 @@ * @param activity id of the changed activity * @param description description of the changed activity */ - void ActivityDescriptionChanged(const QString &activity, const QString &description); + void ActivityDescriptionChanged(const QString &activity, + const QString &description); /** * Emitted when an activity icon is changed diff -Nru kactivitymanagerd-5.22.4/src/service/Activities_p.h kactivitymanagerd-5.12.8/src/service/Activities_p.h --- kactivitymanagerd-5.22.4/src/service/Activities_p.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Activities_p.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 ACTIVITIES_P_H @@ -11,23 +25,25 @@ #include "Activities.h" // Qt -#include #include #include +#include // KDE #include #include + class KSMServer; -class Activities::Private : public QObject -{ +class QDBusInterface; + +class Activities::Private : public QObject { Q_OBJECT public: Private(Activities *parent); - ~Private() override; + ~Private(); // Loads the last activity // the user has used @@ -39,16 +55,12 @@ public Q_SLOTS: bool setCurrentActivity(const QString &activity); - bool previousActivity(); - bool nextActivity(); - void updateSortedActivityList(); public: void setActivityState(const QString &activity, Activities::State state); // Configuration - class KDE4ConfigurationTransitionChecker - { + class KDE4ConfigurationTransitionChecker { public: KDE4ConfigurationTransitionChecker(); } kde4ConfigurationTransitionChecker; @@ -59,7 +71,6 @@ KSMServer *ksmserver; QHash activities; - QVector sortedActivities; QReadWriteLock activitiesLock; QString currentActivity; diff -Nru kactivitymanagerd-5.22.4/src/service/Application.cpp kactivitymanagerd-5.12.8/src/service/Application.cpp --- kactivitymanagerd-5.22.4/src/service/Application.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Application.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,28 +1,44 @@ /* - * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 . */ // Self -#include "Application.h" #include +#include "Application.h" // Qt -#include -#include -#include -#include +#include #include #include -#include +#include +#include +#include // KDE -#include -#include +// #include +// #include +// #include #include -#include +#include #include +#include +#include // Boost and utils #include @@ -30,42 +46,41 @@ #include // System -#include -#include #include #include +#include +#include // Local #include "Activities.h" -#include "Config.h" -#include "DebugApplication.h" +#include "Resources.h" #include "Features.h" +#include "Config.h" #include "Plugin.h" -#include "Resources.h" +#include "Debug.h" #include "common/dbus/common.h" -namespace -{ -QList s_moduleThreads; + +namespace { + QList s_moduleThreads; } // Runs a QObject inside a QThread -template +template T *runInQThread() { T *object = new T(); - class Thread : public QThread - { + class Thread : public QThread { public: - Thread(T *ptr = nullptr) + Thread(T *ptr = Q_NULLPTR) : QThread() , object(ptr) { } - void run() override + void run() Q_DECL_OVERRIDE { std::unique_ptr o(object); exec(); @@ -84,27 +99,27 @@ return object; } -class Application::Private -{ +class Application::Private { public: Private() { } - static inline bool isPluginEnabled(const KConfigGroup &config, const KPluginMetaData &plugin) + 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 == QLatin1String("org.kde.ActivityManager.ResourceScoring")) { + if (pluginName == "org.kde.ActivityManager.ResourceScoring") { // SQLite plugin is necessary for the proper workspace behaviour return true; } else { - return config.readEntry(pluginName + QStringLiteral("Enabled"), plugin.isEnabledByDefault()); + return config.readEntry(pluginName + "Enabled", plugin.isEnabledByDefault()); } } - bool loadPlugin(const KPluginMetaData &plugin); + bool loadPlugin(const KPluginMetaData& plugin); Resources *resources; Activities *activities; @@ -116,7 +131,7 @@ static Application *s_instance; }; -Application *Application::Private::s_instance = nullptr; +Application *Application::Private::s_instance = Q_NULLPTR; Application::Application(int &argc, char **argv) : QApplication(argc, argv) @@ -125,7 +140,8 @@ void Application::init() { - if (!QDBusConnection::sessionBus().registerService(KAMD_DBUS_SERVICE)) { + if (!KDBusConnectionPool::threadConnection().registerService( + KAMD_DBUS_SERVICE)) { QCoreApplication::exit(EXIT_SUCCESS); } @@ -133,17 +149,18 @@ // long as it restarts properly // TODO: Restart on crash // KCrash::setFlags(KCrash::AutoRestart); - d->resources = runInQThread(); + d->resources = runInQThread(); d->activities = runInQThread(); - d->features = 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(QStringLiteral("/ActivityManager"), this, QDBusConnection::ExportAllSlots); + QDBusConnection::sessionBus().registerObject("/ActivityManager", this, + QDBusConnection::ExportAllSlots); } -bool Application::Private::loadPlugin(const KPluginMetaData &plugin) +bool Application::Private::loadPlugin(const KPluginMetaData& plugin) { if (!plugin.isValid()) { qCWarning(KAMD_LOG_APPLICATION) << "[ FAILED ] plugin offer not valid"; @@ -151,14 +168,15 @@ } if (pluginIds.contains(plugin.pluginId())) { - qCDebug(KAMD_LOG_APPLICATION) << "[ OK ] already loaded: " << plugin.pluginId(); + qCDebug(KAMD_LOG_APPLICATION) << "[ OK ] already loaded: " << plugin.pluginId(); return true; } KPluginLoader loader(plugin.fileName()); - KPluginFactory *factory = loader.factory(); + KPluginFactory* factory = loader.factory(); if (!factory) { - qCWarning(KAMD_LOG_APPLICATION) << "[ FAILED ] Could not load KPluginFactory for:" << plugin.pluginId() << loader.errorString(); + qCWarning(KAMD_LOG_APPLICATION) << "[ FAILED ] Could not load KPluginFactory for:" + << plugin.pluginId() << loader.errorString(); return false; } @@ -167,20 +185,13 @@ auto &modules = Module::get(); if (pluginInstance) { - bool success = pluginInstance->init(modules); + pluginInstance->init(modules); - if (success) { - pluginIds << plugin.pluginId(); - plugins << pluginInstance; + pluginIds << plugin.pluginId(); + plugins << pluginInstance; - qCDebug(KAMD_LOG_APPLICATION) << "[ OK ] loaded: " << plugin.pluginId(); - return true; - } else { - qCWarning(KAMD_LOG_APPLICATION) << "[ FAILED ] init: " << plugin.pluginId() << loader.errorString(); - // TODO: Show a notification for a plugin that failed to load - delete pluginInstance; - return false; - } + qCDebug(KAMD_LOG_APPLICATION) << "[ OK ] loaded: " << plugin.pluginId(); + return true; } else { qCWarning(KAMD_LOG_APPLICATION) << "[ FAILED ] loading: " << plugin.pluginId() << loader.errorString(); @@ -193,8 +204,11 @@ { 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)); + 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) { @@ -216,7 +230,7 @@ Application::~Application() { - qCDebug(KAMD_LOG_APPLICATION) << "Cleaning up..."; + qDebug() << "Cleaning up..."; // Waiting for the threads to finish for (const auto thread : s_moduleThreads) { @@ -231,12 +245,12 @@ delete plugin; } - Private::s_instance = nullptr; + Private::s_instance = Q_NULLPTR; } int Application::newInstance() { - // We don't want to show the mainWindow() + //We don't want to show the mainWindow() return 0; } @@ -269,6 +283,31 @@ 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) { // Disable session management for this process @@ -280,15 +319,100 @@ application.setApplicationName(QStringLiteral("ActivityManager")); application.setOrganizationDomain(QStringLiteral("kde.org")); - KCrash::initialize(); - KDBusService service(KDBusService::Unique); + // 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) { + QCoreApplication::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"; - application.init(); + QCoreApplication::exit(EXIT_SUCCESS); - return application.exec(); -} + } else if (arguments.size() == 1 || arguments[1] == "start") { -QStringList Application::loadedPlugins() const -{ - return d->pluginIds; + // Checking whether the service is already running + if (isServiceRunning()) { + QTextStream(stdout) << "Already running\n"; + QCoreApplication::exit(EXIT_SUCCESS); + } + + // Creating the watcher, but not on the wall + + QDBusServiceWatcher watcher(KAMD_DBUS_SERVICE, + QDBusConnection::sessionBus(), + QDBusServiceWatcher::WatchForRegistration); + + QObject::connect(&watcher, &QDBusServiceWatcher::serviceRegistered, + [] (const QString &service) { + QTextStream(stdout) + << "Service started, version: " << runningServiceVersion() + << "\n"; + + QCoreApplication::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"; + QCoreApplication::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); + + application.init(); + + return application.exec(); + + } else { + QTextStream(stdout) << "Unrecognized command: " << arguments[1] << '\n'; + + return EXIT_FAILURE; + } } + diff -Nru kactivitymanagerd-5.22.4/src/service/Application.h kactivitymanagerd-5.12.8/src/service/Application.h --- kactivitymanagerd-5.22.4/src/service/Application.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Application.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 APPLICATION_H @@ -13,6 +27,7 @@ // Utils #include + class Resources; class Activities; class Features; @@ -22,14 +37,13 @@ * This can *not* be a QGuiApplication because * we need KWindowSystem widgets. */ -class Application : public QApplication -{ +class Application : public QApplication { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Application") public: Application(int &argc, char **argv); - ~Application() override; + virtual ~Application(); virtual int newInstance(); @@ -44,7 +58,6 @@ void quit(); QString serviceVersion() const; bool loadPlugin(const QString &plugin); - QStringList loadedPlugins() const; private Q_SLOTS: void init(); @@ -53,7 +66,7 @@ private: D_PTR; - friend int main(int, char **); + friend int main(int, char**); }; #endif // APPLICATION_H diff -Nru kactivitymanagerd-5.22.4/src/service/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -8,21 +8,21 @@ find_package (Qt5 REQUIRED NO_MODULE COMPONENTS Sql Gui Widgets) -find_package (KF5Config ${KF5_MIN_VERSION} CONFIG REQUIRED) -find_package (KF5CoreAddons ${KF5_MIN_VERSION} CONFIG REQUIRED) -find_package (KF5I18n ${KF5_MIN_VERSION} CONFIG REQUIRED) -find_package (KF5WindowSystem ${KF5_MIN_VERSION} CONFIG REQUIRED) -find_package (KF5GlobalAccel ${KF5_MIN_VERSION} CONFIG REQUIRED) -find_package (KF5XmlGui ${KF5_MIN_VERSION} CONFIG REQUIRED) -find_package (KF5KIO ${KF5_MIN_VERSION} CONFIG REQUIRED) -find_package (KF5Crash ${KF5_MIN_VERSION} CONFIG REQUIRED) - +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 -add_library(kactivitymanagerd_plugin SHARED Plugin.cpp Module.cpp Event.cpp ${debug_SRCS}) +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 Qt::Core Qt::DBus KF5::CoreAddons KF5::ConfigCore) +target_link_libraries(kactivitymanagerd_plugin PUBLIC Qt5::Core Qt5::DBus KF5::CoreAddons KF5::ConfigCore) add_subdirectory (plugins) @@ -30,7 +30,7 @@ Application.cpp ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.cpp - ${debug_SRCS} + Debug.cpp Activities.cpp Resources.cpp Features.cpp @@ -60,16 +60,15 @@ add_executable (kactivitymanagerd ${kactivitymanager_SRCS}) target_link_libraries (kactivitymanagerd - Qt::Core - Qt::DBus - Qt::Gui - Qt::Widgets + Qt5::Core + Qt5::DBus + Qt5::Gui + Qt5::Widgets KF5::DBusAddons KF5::CoreAddons KF5::ConfigCore KF5::I18n KF5::WindowSystem - KF5::Crash kactivitymanagerd_plugin ) @@ -81,12 +80,7 @@ ) install (TARGETS - kactivitymanagerd - DESTINATION ${KDE_INSTALL_LIBEXECDIR} - ) - -install (TARGETS - kactivitymanagerd_plugin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} + kactivitymanagerd kactivitymanagerd_plugin ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} ) install (FILES diff -Nru kactivitymanagerd-5.22.4/src/service/Config.cpp kactivitymanagerd-5.12.8/src/service/Config.cpp --- kactivitymanagerd-5.22.4/src/service/Config.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Config.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,35 +1,54 @@ /* - * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 #include -#include #include +#include #include #include -class Config::Private -{ +class Config::Private { public: Private(Config *parent) : q(parent) - , mainConfigFile(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + QStringLiteral("/kactivitymanagerdrc")) - , pluginConfigFile(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + QStringLiteral("/kactivitymanagerd-pluginsrc")) + , 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)); + 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) @@ -44,14 +63,14 @@ KDirWatch watcher; private: - Config *const q; + Config * const q; const QString mainConfigFile; const QString pluginConfigFile; }; Config::Config(QObject *parent) - : Module(QStringLiteral("config"), parent) + : Module("config", parent) , d(this) { } @@ -59,3 +78,5 @@ Config::~Config() { } + + diff -Nru kactivitymanagerd-5.22.4/src/service/Config.h kactivitymanagerd-5.12.8/src/service/Config.h --- kactivitymanagerd-5.22.4/src/service/Config.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Config.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 CONFIG_H @@ -9,13 +23,12 @@ #include -class Config : public Module -{ +class Config : public Module { Q_OBJECT public: - explicit Config(QObject *parent = nullptr); - ~Config() override; + Config(QObject *parent = Q_NULLPTR); + virtual ~Config(); Q_SIGNALS: void pluginConfigChanged(); @@ -26,3 +39,4 @@ }; #endif // CONFIG_H + diff -Nru kactivitymanagerd-5.22.4/src/service/Debug.cpp kactivitymanagerd-5.12.8/src/service/Debug.cpp --- kactivitymanagerd-5.22.4/src/service/Debug.cpp 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Debug.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,32 @@ +/* + * 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 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 "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 kactivitymanagerd-5.22.4/src/service/Debug.h kactivitymanagerd-5.12.8/src/service/Debug.h --- kactivitymanagerd-5.22.4/src/service/Debug.h 1970-01-01 00:00:00.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Debug.h 2019-03-05 12:13:01.000000000 +0000 @@ -0,0 +1,31 @@ +/* + * 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 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 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 kactivitymanagerd-5.22.4/src/service/Event.cpp kactivitymanagerd-5.12.8/src/service/Event.cpp --- kactivitymanagerd-5.22.4/src/service/Event.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Event.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,14 +1,29 @@ /* - * SPDX-FileCopyrightText: 2011-2016 Ivan Cukic + * Copyright (C) 2011 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 . */ // Self #include "Event.h" // Local -#include +#include "Debug.h" + Event::Event() : wid(0) @@ -43,20 +58,20 @@ 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"); + 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"); } } diff -Nru kactivitymanagerd-5.22.4/src/service/Event.h kactivitymanagerd-5.12.8/src/service/Event.h --- kactivitymanagerd-5.22.4/src/service/Event.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Event.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2011-2016 Ivan Cukic + * Copyright (C) 2011 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 EVENT_H @@ -10,15 +24,15 @@ #include "kactivitymanagerd_plugin_export.h" // Qt +#include #include #include -#include + /** * */ -class KACTIVITYMANAGERD_PLUGIN_EXPORT Event -{ +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 @@ -31,19 +45,20 @@ FocussedOut = 5, ///< resource lost the focus LastEventType = 5, - UserEventType = 32, + 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, + UpdateScore = UserEventType + 1 }; Event(); - explicit Event(const QString &application, quintptr wid, const QString &uri, int type = Accessed); + explicit Event(const QString &application, quintptr wid, const QString &uri, + int type = Accessed); Event deriveWithType(Type type) const; diff -Nru kactivitymanagerd-5.22.4/src/service/Features.cpp kactivitymanagerd-5.12.8/src/service/Features.cpp --- kactivitymanagerd-5.22.4/src/service/Features.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Features.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,24 +1,38 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 . */ // Self #include "Features.h" -// Qt -#include +// KDE +#include // Utils #include // Local -#include "common/dbus/common.h" #include "featuresadaptor.h" +#include "common/dbus/common.h" -class Features::Private -{ + +class Features::Private { }; Features::Features(QObject *parent) @@ -26,7 +40,8 @@ , d() { new FeaturesAdaptor(this); - QDBusConnection::sessionBus().registerObject(KAMD_DBUS_OBJECT_PATH("Features"), this); + KDBusConnectionPool::threadConnection().registerObject( + KAMD_DBUS_OBJECT_PATH(Features), this); } Features::~Features() @@ -36,7 +51,7 @@ // 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 +template static RetType passToModule(const QString &key, RetType defaultResult, Function f) { if (key.isEmpty()) { @@ -50,17 +65,20 @@ return defaultResult; } - return f(static_cast(module), params.mid(1)); + 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 \ - }); +#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);); + return FEATURES_PASS_TO_MODULE(bool, false, + return module->isFeatureOperational(params);); } QStringList Features::ListFeatures(const QString &key) const @@ -69,17 +87,22 @@ return Module::get().keys(); } - return FEATURES_PASS_TO_MODULE(QStringList, QStringList(), return module->listFeatures(params);); + 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);); + 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;); + FEATURES_PASS_TO_MODULE(bool, true, + module->setFeatureValue(params, value); + return true; + ); } #undef FEATURES_PASS_TO_MODULE diff -Nru kactivitymanagerd-5.22.4/src/service/Features.h kactivitymanagerd-5.12.8/src/service/Features.h --- kactivitymanagerd-5.22.4/src/service/Features.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Features.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,16 +1,30 @@ /* - * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 FEATURES_H #define FEATURES_H // Qt -#include #include #include +#include // Utils #include @@ -18,18 +32,18 @@ // Local #include "Module.h" + /** * Features object provides one interface for clients * to access other objects' features */ -class Features : public Module -{ +class Features : public Module { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Features") public: - explicit Features(QObject *parent = nullptr); - ~Features() override; + Features(QObject *parent = Q_NULLPTR); + virtual ~Features(); public Q_SLOTS: /** diff -Nru kactivitymanagerd-5.22.4/src/service/files/kactivitymanagerd.desktop kactivitymanagerd-5.12.8/src/service/files/kactivitymanagerd.desktop --- kactivitymanagerd-5.22.4/src/service/files/kactivitymanagerd.desktop 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/files/kactivitymanagerd.desktop 2019-03-05 12:13:01.000000000 +0000 @@ -8,8 +8,6 @@ Name=Activity Manager Name[ar]=مدير الأنشطة -Name[az]=Fəaliyyət menegeri -Name[bg]=Управление на дейностите Name[bs]=Menadžer aktivnosti Name[ca]=Gestor d'activitats Name[ca@valencia]=Gestor d'activitats @@ -35,8 +33,7 @@ Name[kk]=Белсенділік менеджері Name[km]=កម្មវិធី​គ្រប់គ្រង​សកម្មភាព Name[ko]=활동 관리자 -Name[lt]=Veiklų tvarkytuvė -Name[ml]=പ്രവർത്തനങ്ങൾ കൈകാര്യം ചെയ്യാന്‍ +Name[lt]=Veiklų tvarkyklė Name[mr]=कार्यपध्दती व्यवस्थापक Name[nb]=Aktivitetsbehandler Name[nds]=Aktivitetenpleger @@ -66,11 +63,9 @@ Comment=The activity management backend Comment[ar]=سند إدارة الأنشطة -Comment[az]=Fəaliyyətlərin İdarə Mexanizmi -Comment[bg]=Ядро за управление на дейностите Comment[bs]=Pozadina za upravljanje aktivnostima Comment[ca]=El dorsal pel gestor d'activitats -Comment[ca@valencia]=El dorsal per al gestor d'activitats +Comment[ca@valencia]=El dorsal pel gestor d'activitats Comment[cs]=Podpůrná vrstva pro správu aktivit Comment[da]=Backend til aktivitetshåndtering Comment[de]=Backend der Aktivitätenverwaltung @@ -93,8 +88,7 @@ Comment[kk]=Белсенділікті басқару бағдарламасы Comment[km]=កម្មវិធី​ខាងក្រោយ​ការ​គ្រប់គ្រង​សកម្មភាព Comment[ko]=활동 관리 백엔드 -Comment[lt]=Veiklos tvarkymo vidinė pusė -Comment[ml]=പ്രവർത്തന നടത്തിപ്പിനുള്ള ബാക്കെന്‍ഡ് +Comment[lt]=Veiklos tvarkymo sąsaja Comment[mr]=कार्यपध्दती व्यवस्थापन बॅकएन्ड Comment[nb]=Bakgrunnsmotoren for aktivitetsbehandling Comment[nds]=Hülpprogramm för den Aktivitetenpleger @@ -114,7 +108,7 @@ Comment[sr@ijekavianlatin]=Pozadina za upravljanje aktivnostima Comment[sr@latin]=Pozadina za upravljanje aktivnostima Comment[sv]=Gränssnittet för aktivitetshanteringen -Comment[tg]=Коркардкунандаи мудири фаъолият +Comment[tg]=Сервери идоракунии фаъолият Comment[tr]=Etkinlik yönetimi arka ucu Comment[ug]=پائالىيەت باشقۇرغۇچ ئارقا ئۇچى Comment[uk]=Сервер керування просторами дій diff -Nru kactivitymanagerd-5.22.4/src/service/files/kactivitymanagerd-plugin.desktop kactivitymanagerd-5.12.8/src/service/files/kactivitymanagerd-plugin.desktop --- kactivitymanagerd-5.22.4/src/service/files/kactivitymanagerd-plugin.desktop 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/files/kactivitymanagerd-plugin.desktop 2019-03-05 12:13:01.000000000 +0000 @@ -4,11 +4,9 @@ Comment=Activity manager plugin Comment[ar]=ملحقة مدير الأنشطة -Comment[az]=Fəaliyyət Menecerinin Əlavəsi -Comment[bg]=Приставка за управление на дейностите Comment[bs]=Priključak za praćenje aktivnosti Comment[ca]=Connector pel gestor d'activitats -Comment[ca@valencia]=Connector per al gestor d'activitats +Comment[ca@valencia]=Connector pel gestor d'activitats Comment[cs]=Modul správce aktivit Comment[da]=Plugin til aktivitetshåndtering Comment[de]=Modul für Aktivitätenverwaltung @@ -31,8 +29,7 @@ Comment[kk]=Белсенділік менеджер плагині Comment[km]=កម្មវិធី​ជំនួយ​កម្មវិធី​គ្រប់គ្រង​សកម្មភាព Comment[ko]=활동 관리자 플러그인 -Comment[lt]=Veiklų tvarkytuvės priedas -Comment[ml]=പ്രവർത്തനങ്ങൾ കൈകാര്യം ചെയ്യാന്‍ പ്ലഗിൻ +Comment[lt]=Veiklų tvarkyklės papildinys Comment[mr]=कार्यपध्दती व्यवस्थापक प्लगइन Comment[nb]=Programtillegg for aktivitetsbehandler Comment[nds]=Aktivitetenpleger-Moduul @@ -52,7 +49,7 @@ Comment[sr@ijekavianlatin]=Priključak menadžera aktivnosti Comment[sr@latin]=Priključak menadžera aktivnosti Comment[sv]=Aktivitetshanterare -Comment[tg]=Васлкунаки мудири фаъолият +Comment[tg]=Плагини мудири фаъолият Comment[tr]=Etkinlik yöneticisi eklentisi Comment[ug]=پائالىيەت باشقۇرغۇچ قىستۇرمىسى Comment[uk]=Додаток керування просторами дій diff -Nru kactivitymanagerd-5.22.4/src/service/ksmserver/KSMServer.cpp kactivitymanagerd-5.12.8/src/service/ksmserver/KSMServer.cpp --- kactivitymanagerd-5.22.4/src/service/ksmserver/KSMServer.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/ksmserver/KSMServer.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 . */ // Self @@ -10,25 +24,70 @@ // Qt #include -#include +#include #include -#include +#include #include -#include +#include + +// KDE +#include // Utils #include // Local -#include "DebugActivities.h" +#include #define KWIN_SERVICE QStringLiteral("org.kde.KWin") KSMServer::Private::Private(KSMServer *parent) - : kwin(new QDBusInterface(KWIN_SERVICE, QStringLiteral("/KWin"), QStringLiteral("org.kde.KWin"), QDBusConnection::sessionBus(), this)) + : 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) @@ -53,8 +112,8 @@ void KSMServer::Private::processLater(const QString &activity, bool start) { - if (kwin->isValid()) { - for (const auto &item : queue) { + if (kwin) { + for (const auto &item: queue) { if (item.first == activity) { return; } @@ -68,7 +127,8 @@ } } else { // We don't have kwin. No way to invoke the session stuff - subSessionSendEvent(start ? KSMServer::Started : KSMServer::Stopped); + subSessionSendEvent(start ? KSMServer::Started + : KSMServer::Stopped); } } @@ -91,30 +151,34 @@ void KSMServer::Private::makeRunning(bool value) { - if (!kwin->isValid()) { - qCDebug(KAMD_LOG_ACTIVITIES) << "Activities KSM: No kwin, marking activity as: " << value; + if (!kwin) { + qDebug() << "Activities KSM: No kwin, marking activity as: " << value; subSessionSendEvent(value ? KSMServer::Started : KSMServer::Stopped); return; } - const auto call = kwin->asyncCall(value ? QLatin1String("startActivity") : QLatin1String("stopActivity"), processingActivity); + const auto call = kwin->asyncCall( + value ? QLatin1String("startActivity") : QLatin1String("stopActivity"), + processingActivity); const auto watcher = new QDBusPendingCallWatcher(call, this); - qCDebug(KAMD_LOG_ACTIVITIES) << "Activities KSM: Telling kwin to start/stop activity : " << processingActivity << value; - QObject::connect(watcher, - SIGNAL(finished(QDBusPendingCallWatcher *)), - this, - value ? SLOT(startCallFinished(QDBusPendingCallWatcher *)) : SLOT(stopCallFinished(QDBusPendingCallWatcher *))); + qDebug() << "Activities KSM: Telling kwin to start/stop activity : " << processingActivity << value; + QObject::connect( + watcher, SIGNAL(finished(QDBusPendingCallWatcher *)), + this, + value + ? SLOT(startCallFinished(QDBusPendingCallWatcher *)) + : SLOT(stopCallFinished(QDBusPendingCallWatcher *))); } void KSMServer::Private::startCallFinished(QDBusPendingCallWatcher *call) { - qCDebug(KAMD_LOG_ACTIVITIES) << "Activities KSM: Start call is finished"; + qDebug() << "Activities KSM: Start call is finished"; QDBusPendingReply reply = *call; if (reply.isError()) { - qCDebug(KAMD_LOG_ACTIVITIES) << "Activities KSM: Error in getting a reply for start, marking as started"; + qDebug() << "Activities KSM: Error in getting a reply for start, marking as started"; subSessionSendEvent(KSMServer::Started); } else { @@ -123,10 +187,10 @@ const auto retval = reply.argumentAt<0>(); if (!retval) { - qCDebug(KAMD_LOG_ACTIVITIES) << "Activities KSM: Error starting, marking as stopped"; + qDebug() << "Activities KSM: Error starting, marking as stopped"; subSessionSendEvent(KSMServer::Stopped); } else { - qCDebug(KAMD_LOG_ACTIVITIES) << "Activities KSM: All OK starting, marking as starting"; + qDebug() << "Activities KSM: All OK starting, marking as starting"; subSessionSendEvent(KSMServer::Started); } } @@ -136,11 +200,11 @@ void KSMServer::Private::stopCallFinished(QDBusPendingCallWatcher *call) { - qCDebug(KAMD_LOG_ACTIVITIES) << "Activities KSM: Stop call is finished"; + qDebug() << "Activities KSM: Stop call is finished"; QDBusPendingReply reply = *call; if (reply.isError()) { - qCDebug(KAMD_LOG_ACTIVITIES) << "Activities KSM: Error in getting a reply for stop, marking as stopped"; + qDebug() << "Activities KSM: Error in getting a reply for stop, marking as stopped"; subSessionSendEvent(KSMServer::Stopped); } else { @@ -149,10 +213,10 @@ const auto retval = reply.argumentAt<0>(); if (!retval) { - qCDebug(KAMD_LOG_ACTIVITIES) << "Activities KSM: Error stopping, marking as started"; + qDebug() << "Activities KSM: Error stopping, marking as started"; subSessionSendEvent(KSMServer::FailedToStop); } else { - qCDebug(KAMD_LOG_ACTIVITIES) << "Activities KSM: All OK stopping, marking as stopped"; + qDebug() << "Activities KSM: All OK stopping, marking as stopped"; subSessionSendEvent(KSMServer::Stopped); } } diff -Nru kactivitymanagerd-5.22.4/src/service/ksmserver/KSMServer.h kactivitymanagerd-5.12.8/src/service/ksmserver/KSMServer.h --- kactivitymanagerd-5.22.4/src/service/ksmserver/KSMServer.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/ksmserver/KSMServer.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 KSMSERVER_H @@ -16,18 +30,18 @@ /** * KSMServer */ -class KSMServer : public QObject -{ +class KSMServer : public QObject { Q_OBJECT public: + enum ReturnStatus { Started = 0, Stopped = 1, - FailedToStop = 2, + FailedToStop = 2 }; - explicit KSMServer(QObject *parent = nullptr); - ~KSMServer() override; + KSMServer(QObject *parent = Q_NULLPTR); + virtual ~KSMServer(); public Q_SLOTS: void startActivitySession(const QString &activity); diff -Nru kactivitymanagerd-5.22.4/src/service/ksmserver/KSMServer_p.h kactivitymanagerd-5.12.8/src/service/ksmserver/KSMServer_p.h --- kactivitymanagerd-5.22.4/src/service/ksmserver/KSMServer_p.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/ksmserver/KSMServer_p.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 KSMSERVER_P_H @@ -20,8 +34,7 @@ class QDBusInterface; class QDBusPendingCallWatcher; -class KSMServer::Private : public QObject -{ +class KSMServer::Private : public QObject { Q_OBJECT public: @@ -30,6 +43,8 @@ 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); @@ -39,6 +54,7 @@ void subSessionSendEvent(int event); private: + std::unique_ptr serviceWatcher; QDBusInterface *kwin; bool processing; diff -Nru kactivitymanagerd-5.22.4/src/service/Module.cpp kactivitymanagerd-5.12.8/src/service/Module.cpp --- kactivitymanagerd-5.22.4/src/service/Module.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Module.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 . */ // Self @@ -9,15 +23,17 @@ // Qt #include +#include +#include // Utils #include // Local -#include "DebugApplication.h" +#include "Debug.h" -class Module::Private -{ + +class Module::Private { public: static QHash s_modules; }; @@ -47,7 +63,7 @@ } qCWarning(KAMD_LOG_APPLICATION) << "The requested module doesn't exist:" << name; - return nullptr; + return Q_NULLPTR; } QHash &Module::get() @@ -91,3 +107,4 @@ Q_UNUSED(property); Q_UNUSED(value); } + diff -Nru kactivitymanagerd-5.22.4/src/service/Module.h kactivitymanagerd-5.12.8/src/service/Module.h --- kactivitymanagerd-5.22.4/src/service/Module.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Module.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2014-2016 Ivan Cukic + * Copyright (C) 2014 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 MODULE_H @@ -10,24 +24,24 @@ #include "kactivitymanagerd_plugin_export.h" // Qt -#include #include #include #include +#include // Utils #include + /** * Module */ -class KACTIVITYMANAGERD_PLUGIN_EXPORT Module : public QObject -{ +class KACTIVITYMANAGERD_PLUGIN_EXPORT Module : public QObject { Q_OBJECT public: - explicit Module(const QString &name, QObject *parent = nullptr); - ~Module() override; + explicit Module(const QString &name, QObject *parent = Q_NULLPTR); + virtual ~Module(); static QObject *get(const QString &name); static QHash &get(); diff -Nru kactivitymanagerd-5.22.4/src/service/Plugin.cpp kactivitymanagerd-5.12.8/src/service/Plugin.cpp --- kactivitymanagerd-5.22.4/src/service/Plugin.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Plugin.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2011-2016 Ivan Cukic + * Copyright (C) 2011 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 . */ // Self @@ -14,13 +28,13 @@ #include // Local -#include "DebugApplication.h" +#include "Debug.h" -class Plugin::Private -{ + +class Plugin::Private { public: Private() - : config(nullptr) + : config(Q_NULLPTR) { } @@ -41,7 +55,7 @@ KConfigGroup Plugin::config() const { if (d->name.isEmpty()) { - qCWarning(KAMD_LOG_APPLICATION) << "The plugin needs a name in order to have a config section"; + qWarning() << "The plugin needs a name in order to have a config section"; return KConfigGroup(); } @@ -57,7 +71,7 @@ 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"); - qCDebug(KAMD_LOG_APPLICATION) << "Setting the name of " << (void *)this << " to " << name; + qDebug() << "Setting the name of " << (void*)this << " to " << name; d->name = name; } @@ -74,3 +88,4 @@ return true; } + diff -Nru kactivitymanagerd-5.22.4/src/service/Plugin.h kactivitymanagerd-5.12.8/src/service/Plugin.h --- kactivitymanagerd-5.22.4/src/service/Plugin.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Plugin.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2011-2016 Ivan Cukic + * Copyright (C) 2011 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 PLUGIN_H @@ -10,12 +24,12 @@ #include "kactivitymanagerd_plugin_export.h" // Qt -#include #include +#include // KDE -#include #include +#include // Utils #include @@ -24,18 +38,18 @@ #include "Event.h" #include "Module.h" -#define KAMD_EXPORT_PLUGIN(libname, classname, jsonFile) K_PLUGIN_FACTORY_WITH_JSON(factory, jsonFile, registerPlugin();) +#define KAMD_EXPORT_PLUGIN(libname, classname, jsonFile) \ + K_PLUGIN_FACTORY_WITH_JSON(factory, jsonFile, registerPlugin();) /** * */ -class KACTIVITYMANAGERD_PLUGIN_EXPORT Plugin : public Module -{ +class KACTIVITYMANAGERD_PLUGIN_EXPORT Plugin : public Module { Q_OBJECT public: - explicit Plugin(QObject *parent); - ~Plugin() override; + Plugin(QObject *parent); + virtual ~Plugin(); /** * Initializes the plugin. @@ -68,12 +82,17 @@ // return result; // } - template - inline static ReturnType retrieve(QObject *object, const char *method, const char *returnTypeName, Args... args) + 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...); + QMetaObject::invokeMethod( + object, method, Qt::DirectConnection, + QReturnArgument(returnTypeName, result), + args...); return result; } @@ -89,10 +108,13 @@ // QMetaObject::invokeMethod(object, method, connection); // } - template - inline static void invoke(QObject *object, const char *method, Args... args) + template + inline static void invoke(QObject *object, const char *method, + Args... args) { - QMetaObject::invokeMethod(object, method, connection, args...); + QMetaObject::invokeMethod( + object, method, connection, + args...); } protected: diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/activitytemplates/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/plugins/activitytemplates/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/plugins/activitytemplates/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/activitytemplates/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -2,6 +2,15 @@ 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 @@ -21,8 +30,8 @@ target_link_libraries ( kactivitymanagerd_plugin_activitytemplates - Qt::Core - Qt::DBus + Qt5::Core + Qt5::DBus KF5::ConfigCore KF5::DBusAddons KF5::CoreAddons diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json kactivitymanagerd-5.12.8/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json --- kactivitymanagerd-5.22.4/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/activitytemplates/kactivitymanagerd-plugin-activitytemplates.json 2019-03-05 12:13:01.000000000 +0000 @@ -4,7 +4,7 @@ { "Email": "ivan.cukic@kde.org", "Name": "Ivan Čukić", - "Name[az]": "Ivan Čukić", + "Name[ast]": "Ivan Čukić", "Name[ca@valencia]": "Ivan Čukić", "Name[ca]": "Ivan Čukić", "Name[cs]": "Ivan Čukić", @@ -23,13 +23,11 @@ "Name[id]": "Ivan Čukić", "Name[it]": "Ivan Čukić", "Name[ko]": "Ivan Čukić", - "Name[lt]": "Ivan Čukić", "Name[nl]": "Ivan Čukić", "Name[nn]": "Ivan Čukić", "Name[pl]": "Ivan Čukić", "Name[pt]": "Ivan Čukić", "Name[pt_BR]": "Ivan Čukić", - "Name[ro]": "Ivan Čukić", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Čukić", "Name[sl]": "Ivan Čukić", @@ -48,7 +46,6 @@ "Category": "", "Dependencies": [], "Description": "Support for creating templated activities", - "Description[az]": "Fəaliyyət nümunələrinin yaradılmasının dəstəklənməsi", "Description[ca@valencia]": "Suport per a la creació d'activitats amb plantilles", "Description[ca]": "Suport per a la creació d'activitats amb plantilles", "Description[cs]": "Podpora pro vytváření aktivit podle šablon", @@ -63,17 +60,14 @@ "Description[fr]": "Aide pour la création d'activités par modèles", "Description[gl]": "Permite a creación de modelos de actividades", "Description[hu]": "Támogatás sablonaktivitások létrehozásához", - "Description[ia]": "Supporto pro crear activitates de forma de patrono", "Description[id]": "Dukungan untuk membuat aktivitas templat", "Description[it]": "Supporto per creare attività da modelli", "Description[ko]": "템플릿에서 활동 생성 지원", - "Description[lt]": "Šabloninių veiklų sukūrimo palaikymas", "Description[nl]": "Ondersteuning voor aanmaken van activiteiten volgens sjablonen", "Description[nn]": "Støtte for å oppretta aktivitetar frå malar", "Description[pl]": "Obsługa tworzenia szablonowych działań", "Description[pt]": "Suporte para a criação de actividades com modelos", "Description[pt_BR]": "Suporte para criação de atividades em modelos", - "Description[ro]": "Suport pentru crearea activităților din șablon", "Description[ru]": "Поддержка создания шаблонов комнат", "Description[sk]": "Podpora pre vytváranie šablónovaných aktivít", "Description[sl]": "Podpora za ustvarjanje predlog dejavnosti", @@ -92,7 +86,6 @@ "Id": "org.kde.ActivityManager.ActivityTemplates", "License": "GPL", "Name": "Activity Templates", - "Name[az]": "Fəaliyyət Nümunələri", "Name[ca@valencia]": "Plantilles de les activitats", "Name[ca]": "Plantilles de les activitats", "Name[cs]": "Šablony aktivit", @@ -107,17 +100,14 @@ "Name[fr]": "Modèles d'activités", "Name[gl]": "Modelos de actividade", "Name[hu]": "Aktivitássablonok", - "Name[ia]": "Patronos de Activitate", "Name[id]": "Templat Aktivitas", "Name[it]": "Modelli di attività", "Name[ko]": "활동 템플릿", - "Name[lt]": "Veiklos šablonai", "Name[nl]": "Sjablonen voor activiteit", "Name[nn]": "Aktivitetsmalar", "Name[pl]": "Szablony działań", "Name[pt]": "Modelos de Actividades", "Name[pt_BR]": "Modelos de atividades", - "Name[ro]": "Șabloane de activitate", "Name[ru]": "Шаблоны комнат", "Name[sk]": "Šablóny aktivít", "Name[sl]": "Predloge dejavnosti", @@ -135,6 +125,6 @@ "ActivityManager/Plugin" ], "Version": "1.0", - "Website": "https://kde.org/plasma-desktop" + "Website": "http://plasma.kde.org/" } } diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/activitytemplates/TemplatesPlugin.cpp kactivitymanagerd-5.12.8/src/service/plugins/activitytemplates/TemplatesPlugin.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/activitytemplates/TemplatesPlugin.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/activitytemplates/TemplatesPlugin.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,16 +1,29 @@ /* - * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 #include +#include + +// KDE +#include // Utils #include @@ -20,6 +33,7 @@ KAMD_EXPORT_PLUGIN(templatesplugin, TemplatesPlugin, "kactivitymanagerd-plugin-activitytemplates.json") + TemplatesPlugin::TemplatesPlugin(QObject *parent, const QVariantList &args) : Plugin(parent) { @@ -28,7 +42,7 @@ setName(QStringLiteral("org.kde.ActivityManager.ActivityTemplates")); new TemplatesAdaptor(this); - QDBusConnection::sessionBus().registerObject(QStringLiteral("/Templates"), this); + KDBusConnectionPool::threadConnection().registerObject(QStringLiteral("/Templates"), this); } TemplatesPlugin::~TemplatesPlugin() @@ -50,36 +64,39 @@ return QDBusVariant(QString()); } - const auto &id = property[0]; + const auto& id = property[0]; KConfigGroup pluginConfig(config()); KConfigGroup activityConfig(&pluginConfig, id); if (property.size() == 2) { - const auto &key = property[1]; + 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) +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"}}, + 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)); + } } @@ -89,32 +106,42 @@ QVariantHash values = _values.variant().toHash(); - auto takeStringValue = [&values](const QString &key) { + auto takeStringValue = [&values] (const QString &key) { auto result = values[key].toString(); values.remove(key); return result; }; - const QString name = takeStringValue("activity.name"); + const QString name = takeStringValue("activity.name"); const QString description = takeStringValue("activity.description"); - const QString icon = takeStringValue("activity.icon"); + 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)); + 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) { + 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)); + 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 kactivitymanagerd-5.22.4/src/service/plugins/activitytemplates/TemplatesPlugin.h kactivitymanagerd-5.12.8/src/service/plugins/activitytemplates/TemplatesPlugin.h --- kactivitymanagerd-5.22.4/src/service/plugins/activitytemplates/TemplatesPlugin.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/activitytemplates/TemplatesPlugin.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,34 +1,50 @@ /* - * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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_PLUGIN_H -#define PLUGINS_GLOBAL_TEMPLATES_PLUGIN_H +#ifndef PLUGINS_GLOBAL_TEMPLATES_H +#define PLUGINS_GLOBAL_TEMPLATES_H #include -class TemplatesPlugin : public Plugin -{ +class QSignalMapper; +class KActionCollection; + +class TemplatesPlugin : public Plugin { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Templates") public: - explicit TemplatesPlugin(QObject *parent = nullptr, const QVariantList &args = QVariantList()); - ~TemplatesPlugin() override; + TemplatesPlugin(QObject *parent = Q_NULLPTR, + const QVariantList &args = QVariantList()); + virtual ~TemplatesPlugin(); - bool init(QHash &modules) override; + bool init(QHash &modules) Q_DECL_OVERRIDE; - QDBusVariant featureValue(const QStringList &property) const override; + QDBusVariant featureValue(const QStringList &property) const Q_DECL_OVERRIDE; - void setFeatureValue(const QStringList &property, const QDBusVariant &value) 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_PLUGIN_H +#endif // PLUGINS_GLOBAL_TEMPLATES_ diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/plugins/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/plugins/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -6,6 +6,4 @@ add_subdirectory (virtualdesktopswitch) add_subdirectory (globalshortcuts) add_subdirectory (eventspy) -add_subdirectory (gtk-eventspy) add_subdirectory (runapplication) -add_subdirectory (krunner) diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/eventspy/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/plugins/eventspy/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/plugins/eventspy/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/eventspy/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -2,7 +2,16 @@ project (activitymanager-eventspy) -find_package (KF5KIO ${KF5_MIN_VERSION} CONFIG REQUIRED) +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 @@ -18,8 +27,8 @@ target_link_libraries ( kactivitymanagerd_plugin_eventspy - Qt::Core - Qt::DBus + Qt5::Core + Qt5::DBus KF5::ConfigCore KF5::CoreAddons KF5::KIOCore diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/eventspy/EventSpy.cpp kactivitymanagerd-5.12.8/src/service/plugins/eventspy/EventSpy.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/eventspy/EventSpy.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/eventspy/EventSpy.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,32 +1,45 @@ /* - * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 #include +#include +#include +#include KAMD_EXPORT_PLUGIN(eventspyplugin, EventSpyPlugin, "kactivitymanagerd-plugin-eventspy.json") EventSpyPlugin::EventSpyPlugin(QObject *parent, const QVariantList &args) : Plugin(parent) - , m_resources(nullptr) - , m_dirWatcher(new KDirWatch(this)) + , 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); + connect(m_dirWatcher.get(), &KDirWatch::dirty, + this, &EventSpyPlugin::directoryUpdated); } void EventSpyPlugin::directoryUpdated(const QString &dir) @@ -35,7 +48,7 @@ const auto newDocuments = KRecentDocument::recentDocuments(); // Processing the new arrivals - for (const auto &document : newDocuments) { + for (const auto& document: newDocuments) { QFileInfo fileInfo(document); if (fileInfo.lastModified() > m_lastUpdate) { addDocument(document); @@ -52,15 +65,16 @@ const QString url = QUrl(desktopFile.readUrl()).toLocalFile(); const QString name = desktopFile.readName(); - const QString application = desktopGroup.readEntry("X-KDE-LastOpenedWith", QString()); + 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 - ); + 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() @@ -77,3 +91,4 @@ } #include "EventSpy.moc" + diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/eventspy/EventSpy.h kactivitymanagerd-5.12.8/src/service/plugins/eventspy/EventSpy.h --- kactivitymanagerd-5.22.4/src/service/plugins/eventspy/EventSpy.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/eventspy/EventSpy.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,28 +1,38 @@ /* - * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 #include class KDirWatch; -class EventSpyPlugin : public Plugin -{ +class EventSpyPlugin : public Plugin { Q_OBJECT public: - explicit EventSpyPlugin(QObject *parent = nullptr, const QVariantList &args = QVariantList()); - ~EventSpyPlugin() override; + EventSpyPlugin(QObject *parent = Q_NULLPTR, const QVariantList &args = QVariantList()); + virtual ~EventSpyPlugin(); - bool init(QHash &modules) override; + bool init(QHash &modules) Q_DECL_OVERRIDE; private Q_SLOTS: void directoryUpdated(const QString &dir); diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json kactivitymanagerd-5.12.8/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json --- kactivitymanagerd-5.22.4/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/eventspy/kactivitymanagerd-plugin-eventspy.json 2019-03-05 12:13:01.000000000 +0000 @@ -4,7 +4,7 @@ { "Email": "ivan.cukic(at)kde.org", "Name": "Ivan Čukić", - "Name[az]": "Ivan Čukić", + "Name[ast]": "Ivan Čukić", "Name[ca@valencia]": "Ivan Čukić", "Name[ca]": "Ivan Čukić", "Name[cs]": "Ivan Čukić", @@ -23,13 +23,11 @@ "Name[id]": "Ivan Čukić", "Name[it]": "Ivan Čukić", "Name[ko]": "Ivan Čukić", - "Name[lt]": "Ivan Čukić", "Name[nl]": "Ivan Čukić", "Name[nn]": "Ivan Čukić", "Name[pl]": "Ivan Čukić", "Name[pt]": "Ivan Čukić", "Name[pt_BR]": "Ivan Čukić", - "Name[ro]": "Ivan Čukić", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Čukić", "Name[sl]": "Ivan Čukić", @@ -48,7 +46,6 @@ "Category": "", "Dependencies": [], "Description": "Collects events from applications that support recent documents specification", - "Description[az]": "Son istifadə olunan sənədlərin xüsusiyyətlərini dəstəkləyən tətbiqlərdən hadisələri toplayır", "Description[ca@valencia]": "Recull els esdeveniments de les aplicacions que admeten l'especificació dels documents recents", "Description[ca]": "Recull els esdeveniments de les aplicacions que admeten l'especificació dels documents recents", "Description[cs]": "Sbírá z aplikací události jenž podporují určení nedávných dokumentů", @@ -61,19 +58,16 @@ "Description[eu]": "Azken dokumentuen zehaztapenak betetzen dituzten aplikazioen gertaerak biltzen ditu", "Description[fi]": "Kerää tapahtumia sovelluksilta, jotka tukevat viimeaikaisten tiedostojen määrittelyä", "Description[fr]": "Collecte les évènements des applications qui prennent en charge la spécification de documents récents", - "Description[gl]": "Recolle eventos das aplicacións compatíbeis coa especificación de documentos recentes", + "Description[gl]": "Recolle eventos dos aplicativos compatíbeis coa especificación de documentos recentes.", "Description[hu]": "Eseményeket gyűjt olyan alkalmazásoktól, amik támogatják a legutóbbi dokumentumok specifikációt", - "Description[ia]": "Collige eventos ab applicationes que supporta specification de documentos recente", "Description[id]": "Memungut peristiwa dari aplikasi yang mendukung ketentuan dokumen terkini", "Description[it]": "Raccoglie eventi dalle applicazioni che supportano la specifica dei documenti recenti", "Description[ko]": "최근 문서 규격을 지원하는 프로그램의 이벤트 수집", - "Description[lt]": "Surenka įvykius iš programų, kurios palaiko paskiausiai naudotų dokumentų specifikaciją", "Description[nl]": "Verzamelt gebeurtenissen uit toepassingen die recente documentspecificaties ondersteunen", "Description[nn]": "Samlar hendingar frå program som støttar spesifikasjonen for nyleg brukte dokument", "Description[pl]": "Gromadzi wydarzenia z aplikacji, które spełniają wymogi ostatnich dokumentów ", "Description[pt]": "Recolhe eventos das aplicações que suportam a especificação de documentos recentes", "Description[pt_BR]": "Identifica eventos a partir de aplicativos que tem suporte a especificação de documentos recentes", - "Description[ro]": "Colectează evenimente de la aplicații ce susțin specificația de documente recente", "Description[ru]": "Собирает от поддерживаемых приложений события о последних открытых документах", "Description[sk]": "Zbiera udalosti z aplikácií, ktoré podporujú špecifikáciu nedávnych dokumentov", "Description[sl]": "Zbira dogodke iz programov, ki podpirajo določitev nedavnih dokumentov", @@ -92,7 +86,6 @@ "Id": "org.kde.ActivityManager.EventSpy", "License": "GPL", "Name": "Event Spy", - "Name[az]": "Hadisələrin izlənməsi", "Name[ca@valencia]": "Espia l'esdeveniment", "Name[ca]": "Espia l'esdeveniment", "Name[cs]": "Špeh událostí", @@ -107,20 +100,17 @@ "Name[fr]": "Espion d'évènements", "Name[gl]": "Espía de eventos", "Name[hu]": "Eseményfigyelő", - "Name[ia]": "Gtk Event Spy (Spia de evento de GTK)", "Name[id]": "Event Spy", "Name[it]": "Spia degli eventi", "Name[ko]": "이벤트 스파이", - "Name[lt]": "Įvykių šnipas", "Name[nl]": "Gebeurtenisspion", "Name[nn]": "Hendingsovervaking", "Name[pl]": "Szpieg wydarzeń", "Name[pt]": "Espião de Eventos", "Name[pt_BR]": "Espião de eventos", - "Name[ro]": "Spion de evenimente", "Name[ru]": "Монитор событий", "Name[sk]": "Špión udalostí", - "Name[sl]": "Nadzornik dogodkov", + "Name[sl]": "Nadzor dogodkov", "Name[sr@ijekavian]": "Шпијун догађаја", "Name[sr@ijekavianlatin]": "Špijun događaja", "Name[sr@latin]": "Špijun događaja", @@ -129,12 +119,12 @@ "Name[tr]": "Olay Casusu", "Name[uk]": "Журнал подій", "Name[x-test]": "xxEvent Spyxx", - "Name[zh_CN]": "事件间谍", + "Name[zh_CN]": "事件记录", "Name[zh_TW]": "事件探測", "ServiceTypes": [ "ActivityManager/Plugin" ], "Version": "1.0", - "Website": "https://kde.org/plasma-desktop" + "Website": "http://plasma.kde.org/" } } diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/globalshortcuts/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/plugins/globalshortcuts/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/plugins/globalshortcuts/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/globalshortcuts/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -2,6 +2,15 @@ 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 @@ -16,9 +25,9 @@ target_link_libraries ( kactivitymanagerd_plugin_globalshortcuts - Qt::Core - Qt::DBus - Qt::Widgets + Qt5::Core + Qt5::DBus + Qt5::Widgets KF5::ConfigCore KF5::GlobalAccel KF5::I18n diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp kactivitymanagerd-5.12.8/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,15 +1,27 @@ /* - * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic - * SPDX-FileCopyrightText: 2012 Makis Marimpis + * Copyright (C) 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2012 Makis Marimpis * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 #include @@ -22,13 +34,11 @@ GlobalShortcutsPlugin::GlobalShortcutsPlugin(QObject *parent, const QVariantList &args) : Plugin(parent) - , m_activitiesService(nullptr) + , m_activitiesService(Q_NULLPTR) + , m_signalMapper(new QSignalMapper(this)) , m_actionCollection(new KActionCollection(this)) { Q_UNUSED(args); - - m_actionCollection->setComponentName("ActivityManager"); - m_actionCollection->setComponentDisplayName(i18n("Activity Manager")); } GlobalShortcutsPlugin::~GlobalShortcutsPlugin() @@ -42,18 +52,25 @@ m_activitiesService = modules["activities"]; - m_activitiesList = Plugin::retrieve(m_activitiesService, "ListActivities", "QStringList"); + m_activitiesList = Plugin::retrieve( + m_activitiesService, "ListActivities", "QStringList"); - for (const auto &activity : m_activitiesList) { + for (const auto &activity: m_activitiesList) { activityAdded(activity); } - connect(this, SIGNAL(currentActivityChanged(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))); + 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; } @@ -67,16 +84,16 @@ m_activitiesList << activity; } - const auto action = m_actionCollection->addAction(objectNamePattern.arg(activity)); + const auto action = m_actionCollection->addAction( + objectNamePattern.arg(activity)); action->setText(i18nc("@action", "Switch to activity \"%1\"", activityName(activity))); - KGlobalAccel::setGlobalShortcut(action, QList{}); + KGlobalAccel::self()->setGlobalShortcut(action, QList{}); - connect(action, &QAction::triggered, [this, activity]() { - Q_EMIT currentActivityChanged(activity); - }); + connect(action, SIGNAL(triggered()), m_signalMapper, SLOT(map())); + m_signalMapper->setMapping(action, activity); - // m_actionCollection->writeSettings(); + m_actionCollection->writeSettings(); } QString GlobalShortcutsPlugin::activityForAction(QAction *action) const @@ -89,10 +106,10 @@ m_activitiesList.removeAll(deletedActivity); // Removing all shortcuts that refer to an unknown activity - for (const auto &action : m_actionCollection->actions()) { + for (const auto &action: m_actionCollection->actions()) { const auto actionActivity = activityForAction(action); - if ((deletedActivity.isEmpty() && !m_activitiesList.contains(actionActivity)) // - || deletedActivity == actionActivity) { + if ((deletedActivity.isEmpty() && !m_activitiesList.contains(actionActivity)) + || deletedActivity == actionActivity) { KGlobalAccel::self()->removeAllShortcuts(action); m_actionCollection->removeAction(action); } @@ -103,16 +120,20 @@ void GlobalShortcutsPlugin::activityChanged(const QString &activity) { - for (const auto &action : m_actionCollection->actions()) { + for (const auto &action: m_actionCollection->actions()) { if (activity == activityForAction(action)) { - action->setText(i18nc("@action", "Switch to activity \"%1\"", activityName(activity))); + 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)); + return Plugin::retrieve( + m_activitiesService, "ActivityName", "QString", + Q_ARG(QString, activity)); } #include "GlobalShortcutsPlugin.moc" + diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.h kactivitymanagerd-5.12.8/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.h --- kactivitymanagerd-5.22.4/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,41 +1,51 @@ /* - * SPDX-FileCopyrightText: 2012 Makis Marimpis - * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2012 Makis Marimpis + * Copyright (C) 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 -{ +class GlobalShortcutsPlugin : public Plugin { Q_OBJECT // Q_PLUGIN_METADATA(IID "org.kde.ActivityManager.plugins.globalshortcutsplugin") public: - explicit GlobalShortcutsPlugin(QObject *parent = nullptr, const QVariantList &args = QVariantList()); - ~GlobalShortcutsPlugin() override; + GlobalShortcutsPlugin(QObject *parent = Q_NULLPTR, const QVariantList &args = QVariantList()); + virtual ~GlobalShortcutsPlugin(); - bool init(QHash &modules) override; + bool init(QHash &modules) Q_DECL_OVERRIDE; private Q_SLOTS: void activityAdded(const QString &activity); - void activityRemoved(const QString &activity); + void activityRemoved(const QString &activity = QString()); void activityChanged(const QString &activity); -Q_SIGNALS: - void currentActivityChanged(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; }; diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json kactivitymanagerd-5.12.8/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json --- kactivitymanagerd-5.22.4/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/globalshortcuts/kactivitymanagerd-plugin-globalshortcuts.json 2019-03-05 12:13:01.000000000 +0000 @@ -4,7 +4,6 @@ { "Email": "makhsm@gmail.com", "Name": "Makis Marimpis", - "Name[az]": "Makis Marimpis", "Name[ca@valencia]": "Makis Marimpis", "Name[ca]": "Makis Marimpis", "Name[cs]": "Makis Marimpis", @@ -19,17 +18,14 @@ "Name[fr]": "Makis Marimpis", "Name[gl]": "Makis Marimpis", "Name[hu]": "Makis Marimpis", - "Name[ia]": "Makis Marimpis", "Name[id]": "Makis Marimpis", "Name[it]": "Makis Marimpis", "Name[ko]": "Makis Marimpis", - "Name[lt]": "Makis Marimpis", "Name[nl]": "Makis Marimpis", "Name[nn]": "Makis Marimpis", "Name[pl]": "Makis Marimpis", "Name[pt]": "Makis Marimpis", "Name[pt_BR]": "Makis Marimpis", - "Name[ro]": "Makis Marimpis", "Name[ru]": "Makis Marimpis", "Name[sk]": "Makis Marimpis", "Name[sl]": "Makis Marimpis", @@ -48,9 +44,8 @@ "Category": "", "Dependencies": [], "Description": "Adds global keyboard shortcuts for activity switching", - "Description[az]": "Fəaliyyətlər arası keçid üçün qlobal qısayolları təyin edir", - "Description[ca@valencia]": "Afig dreceres de teclat globals per a canviar d'activitat", - "Description[ca]": "Afegeix dreceres de teclat globals per a canviar d'activitat", + "Description[ca@valencia]": "Afig dreceres de teclat globals per canviar d'activitat", + "Description[ca]": "Afegeix dreceres de teclat globals per canviar d'activitat", "Description[cs]": "Přidává globální klávesové zkratky pro přepínání aktivit", "Description[da]": "Tilføjer globale tastaturgenvej til skift mellem aktiviteter", "Description[de]": "Fügt globale Tastatur-Kurzbefehle für das Wechseln von Aktivitäten hinzu", @@ -63,17 +58,14 @@ "Description[fr]": "Ajoute les raccourcis globaux pour changer d'activité", "Description[gl]": "Engade atallos de teclado globais para cambiar de actividade", "Description[hu]": "Globális gyorsbillentyű aktivitások közti váltáshoz", - "Description[ia]": "Adde vias breve de claviero global pro commutation de activitate", "Description[id]": "Menambahkan pintasan keyboard untuk pengalihan aktivitas", "Description[it]": "Aggiunge scorciatoie della tastiera globali per cambiare attività", "Description[ko]": "활동 전환에 사용하는 전역 키보드 단축키 추가", - "Description[lt]": "Prideda visuotinius sparčiuosius klavišus veiklų perjungimui", "Description[nl]": "Voegt globale sneltoetsen toe aan omschakelen van activiteit", "Description[nn]": "Legg til globale tastatursnarvegar for aktivitetsbyting", "Description[pl]": "Dodaje globalne skróty klawiaturowe do przełączania działań", "Description[pt]": "Adiciona atalhos globais de teclado para a mudança de actividades", "Description[pt_BR]": "Adiciona atalhos de teclado globais para alternar atividades", - "Description[ro]": "Adaugă scurtături globale de taste pentru comutarea activităților", "Description[ru]": "Определяет глобальные комбинации клавиш для переключения комнат", "Description[sk]": "Pridá globálne klávesové skratky na prepínanie aktivít", "Description[sl]": "Doda splošne tipkovne bližnjice za preklapljanje dejavnosti", @@ -87,12 +79,11 @@ "Description[x-test]": "xxAdds global keyboard shortcuts for activity switchingxx", "Description[zh_CN]": "添加活动切换的全局键盘快捷方式", "Description[zh_TW]": "新增活動切換的全域快速鍵", - "EnabledByDefault": true, + "EnabledByDefault": false, "Icon": "configure-shortcuts", "Id": "org.kde.ActivityManager.GlobalShortcuts", "License": "GPL", "Name": "Global Shortcuts", - "Name[az]": "Qlobal Qısayollar Birləşmələri", "Name[ca@valencia]": "Dreceres globals", "Name[ca]": "Dreceres globals", "Name[cs]": "Globální zkratky", @@ -107,17 +98,14 @@ "Name[fr]": "Raccourcis globaux", "Name[gl]": "Atallos globais", "Name[hu]": "Globális billentyűparancsok", - "Name[ia]": "Vias breve Global ", "Name[id]": "Pintasan Global", "Name[it]": "Scorciatoie globali", "Name[ko]": "전역 단축키", - "Name[lt]": "Visuotiniai spartieji klavišai", "Name[nl]": "Globale sneltoetsen", "Name[nn]": "Globale snarvegar", "Name[pl]": "Skróty globalne", "Name[pt]": "Atalhos Globais", "Name[pt_BR]": "Atalhos globais", - "Name[ro]": "Scurtături globale", "Name[ru]": "Глобальные комбинации клавиш", "Name[sk]": "Globálne skratky", "Name[sl]": "Splošne bližnjice", @@ -135,6 +123,6 @@ "ActivityManager/Plugin" ], "Version": "1.0", - "Website": "https://kde.org/plasma-desktop" + "Website": "http://plasma.kde.org/" } } diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/gtk-eventspy/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/plugins/gtk-eventspy/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/plugins/gtk-eventspy/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/gtk-eventspy/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (activitymanager-gtk-eventspy) - -find_package (KF5KIO ${KF5_MIN_VERSION} CONFIG REQUIRED) - -set ( - gtkevenyspy_SRCS - GtkEventSpy.cpp - ) - -ecm_qt_declare_logging_category(gtkevenyspy_SRCS - HEADER DebugPluginGtkEventSpy.h - IDENTIFIER KAMD_LOG_PLUGIN_GTK_EVENTSPY - CATEGORY_NAME org.kde.kactivities.plugin.gtk-eventspy - DEFAULT_SEVERITY Warning - DESCRIPTION "KActivities Gtk Event Spy Resources" EXPORT KACTIVITYMANAGERD) - -kcoreaddons_add_plugin( - kactivitymanagerd_plugin_gtk_eventspy - JSON kactivitymanagerd-plugin-gtk-eventspy.json - SOURCES ${gtkevenyspy_SRCS} - INSTALL_NAMESPACE ${KAMD_PLUGIN_DIR} - ) - -target_link_libraries ( - kactivitymanagerd_plugin_gtk_eventspy - Qt::Core - Qt::Xml - KF5::CoreAddons - KF5::Service - kactivitymanagerd_plugin - ) - -set_target_properties ( - kactivitymanagerd_plugin_gtk_eventspy - PROPERTIES PREFIX "" - ) diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/gtk-eventspy/GtkEventSpy.cpp kactivitymanagerd-5.12.8/src/service/plugins/gtk-eventspy/GtkEventSpy.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/gtk-eventspy/GtkEventSpy.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/gtk-eventspy/GtkEventSpy.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,216 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2019 Méven Car (meven.car@kdemail.net) - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#include "GtkEventSpy.h" - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "DebugPluginGtkEventSpy.h" - -KAMD_EXPORT_PLUGIN(GtkEventSpyPlugin, GtkEventSpyPlugin, "kactivitymanagerd-plugin-gtk-eventspy.json") - -GtkEventSpyPlugin::GtkEventSpyPlugin(QObject *parent, const QVariantList &args) - : Plugin(parent) - , m_resources(nullptr) - , m_dirWatcher(new KDirWatch(this)) - , m_lastUpdate(QDateTime::currentDateTime()) -{ - Q_UNUSED(args); - - // gtk xml history file - // usually $HOME/.local/share/recently-used.xbel - QString filename = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QLatin1String("/recently-used.xbel"); - - m_dirWatcher->addFile(filename); - connect(m_dirWatcher.get(), &KDirWatch::dirty, this, &GtkEventSpyPlugin::fileUpdated); - connect(m_dirWatcher.get(), &KDirWatch::created, this, &GtkEventSpyPlugin::fileUpdated); -} - -struct Application { - QString name; - QDateTime modified; -}; - -class Bookmark -{ -public: - QUrl href; - QDateTime added; - QDateTime modified; - QDateTime visited; - QString mimetype; - QList applications; - - QString latestApplication() const; -}; - -QString Bookmark::latestApplication() const -{ - Application current = applications.first(); - for (const Application &app : applications) { - if (app.modified > current.modified) { - current = app; - } - } - return current.name; -} - -class BookmarkHandler : public QXmlDefaultHandler -{ -public: - bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &attributes) override; - bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName) override; - - QList bookmarks() const; - -private: - QList marks; - Bookmark current; -}; - -QList BookmarkHandler::bookmarks() const -{ - return marks; -} - -bool BookmarkHandler::startElement(const QString & /*namespaceURI*/, const QString & /*localName*/, const QString &qName, const QXmlAttributes &attributes) -{ - // new bookmark - if (qName == QStringLiteral("bookmark")) { - current = Bookmark(); - current.href = QUrl(attributes.value("href")); - QString added = attributes.value("added"); - QString modified = attributes.value("modified"); - QString visited = attributes.value("visited"); - current.added = QDateTime::fromString(added, Qt::ISODate); - current.modified = QDateTime::fromString(modified, Qt::ISODate); - current.visited = QDateTime::fromString(visited, Qt::ISODate); - - // application for the current bookmark - } else if (qName == QStringLiteral("bookmark:application")) { - Application app; - - QString exec = attributes.value("exec"); - - if (exec.startsWith(QLatin1Char('\'')) && exec.endsWith(QLatin1Char('\''))) { - // remove "'" characters wrapping the command - exec = exec.mid(1, exec.size() - 2); - } - - // Search for applications which are executable and case-insensitively match the search term - // See https://techbase.kde.org/Development/Tutorials/Services/Traders#The_KTrader_Query_Language - const auto query = QString("exist Exec and Exec ~~ '%1'").arg(exec); - const KService::List services = KServiceTypeTrader::self()->query(QStringLiteral("Application"), query); - - if (!services.isEmpty()) { - // use the first item matching - const auto &service = services.first(); - app.name = service->desktopEntryName(); - } else { - // when no services are found, sanitize a little the exec - // remove space and any character after - const int spaceIndex = exec.indexOf(" "); - if (spaceIndex != -1) { - exec = exec.mid(0, spaceIndex); - } - app.name = exec; - } - - app.modified = QDateTime::fromString(attributes.value("modified"), Qt::ISODate); - - current.applications.append(app); - } else if (qName == QStringLiteral("mime:mime-type")) { - current.mimetype = attributes.value("type"); - } - return true; -} - -bool BookmarkHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName) -{ - Q_UNUSED(namespaceURI); - Q_UNUSED(localName); - - if (qName == QStringLiteral("bookmark")) { - // keep track of the finished parsed bookmark - marks << current; - } - - return true; -} - -void GtkEventSpyPlugin::fileUpdated(const QString &filename) -{ - QFile file(filename); - if (!file.open(QFile::ReadOnly | QFile::Text)) { - qCWarning(KAMD_LOG_PLUGIN_GTK_EVENTSPY) << "Could not read" << filename; - return; - } - - // must parse the xbel xml file - BookmarkHandler bookmarkHandler; - - QXmlSimpleReader reader; - reader.setContentHandler(&bookmarkHandler); - reader.setErrorHandler(&bookmarkHandler); - QXmlInputSource source(&file); - - if (!reader.parse(source)) { - qCWarning(KAMD_LOG_PLUGIN_GTK_EVENTSPY) << "could not parse" << file << "error was " << bookmarkHandler.errorString(); - return; - } - - // then find the files that were accessed since last run - const QList bookmarks = bookmarkHandler.bookmarks(); - for (const Bookmark &mark : bookmarks) { - if (mark.added > m_lastUpdate || mark.modified > m_lastUpdate || mark.visited > m_lastUpdate) { - addDocument(mark.href, mark.latestApplication(), mark.mimetype); - } - } - - m_lastUpdate = QDateTime::currentDateTime(); -} - -void GtkEventSpyPlugin::addDocument(const QUrl &url, const QString &application, const QString &mimetype) -{ - const QString name = url.fileName(); - - Plugin::invoke(m_resources, - "RegisterResourceEvent", - Q_ARG(QString, application), // Application - Q_ARG(uint, 0), // Window ID - Q_ARG(QString, url.toString()), // URI - Q_ARG(uint, 0) // Event Activities::Accessed - ); - - Plugin::invoke(m_resources, - "RegisteredResourceMimetype", - Q_ARG(QString, url.toString()), // uri - Q_ARG(QString, mimetype) // mimetype - ); -} - -GtkEventSpyPlugin::~GtkEventSpyPlugin() -{ -} - -bool GtkEventSpyPlugin::init(QHash &modules) -{ - Plugin::init(modules); - - m_resources = modules["resources"]; - - return true; -} - -#include "GtkEventSpy.moc" diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/gtk-eventspy/GtkEventSpy.h kactivitymanagerd-5.12.8/src/service/plugins/gtk-eventspy/GtkEventSpy.h --- kactivitymanagerd-5.22.4/src/service/plugins/gtk-eventspy/GtkEventSpy.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/gtk-eventspy/GtkEventSpy.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2019 Méven Car (meven.car@kdemail.net) - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#ifndef PLUGINS_GTK_EVENT_SPY_PLUGIN_H -#define PLUGINS_GTK_EVENT_SPY_PLUGIN_H - -#include -#include - -#include - -class KDirWatch; - -class GtkEventSpyPlugin : public Plugin -{ - Q_OBJECT - -public: - explicit GtkEventSpyPlugin(QObject *parent = nullptr, const QVariantList &args = QVariantList()); - ~GtkEventSpyPlugin() override; - - bool init(QHash &modules) override; - -private Q_SLOTS: - void fileUpdated(const QString &file); - void addDocument(const QUrl &url, const QString &application, const QString &mimetype); - -private: - QObject *m_resources; - std::unique_ptr m_dirWatcher; - QDateTime m_lastUpdate; -}; - -#endif // PLUGINS_GTK_EVENT_SPY_PLUGIN_H diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/gtk-eventspy/kactivitymanagerd-plugin-gtk-eventspy.json kactivitymanagerd-5.12.8/src/service/plugins/gtk-eventspy/kactivitymanagerd-plugin-gtk-eventspy.json --- kactivitymanagerd-5.22.4/src/service/plugins/gtk-eventspy/kactivitymanagerd-plugin-gtk-eventspy.json 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/gtk-eventspy/kactivitymanagerd-plugin-gtk-eventspy.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,121 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "meven.car(at)kdemail.net", - "Name": "Méven Car", - "Name[az]": "Méven Car", - "Name[ca]": "Méven Car", - "Name[cs]": "Méven Car", - "Name[da]": "Méven Car", - "Name[de]": "Méven Car", - "Name[el]": "Méven Car", - "Name[en_GB]": "Méven Car", - "Name[es]": "Méven Car", - "Name[et]": "Méven Car", - "Name[eu]": "Méven Car", - "Name[fi]": "Méven Car", - "Name[fr]": "Méven Car", - "Name[gl]": "Méven Car", - "Name[hu]": "Méven Car", - "Name[ia]": "Méven Car", - "Name[id]": "Méven Car", - "Name[it]": "Méven Car", - "Name[ko]": "Méven Car", - "Name[lt]": "Méven Car", - "Name[nl]": "Méven Car", - "Name[nn]": "Méven Car", - "Name[pl]": "Méven Car", - "Name[pt]": "Méven Car", - "Name[pt_BR]": "Méven Car", - "Name[ro]": "Méven Car", - "Name[ru]": "Méven Car", - "Name[sk]": "Méven Car", - "Name[sl]": "Méven Car", - "Name[sv]": "Méven Car", - "Name[uk]": "Méven Car", - "Name[x-test]": "xxMéven Carxx", - "Name[zh_CN]": "Méven Car", - "Name[zh_TW]": "Méven Car" - } - ], - "Category": "", - "Dependencies": [], - "Description": "Collects events from applications that use GtkFileChooser and GtkRecentManager as specified by https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[az]": "GtkFileChooser və GtkRecentManager istifadə edən tətbiqlərdən hadisələri https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/ tərəfindən xüsusiyyətlərinə görə toplayır", - "Description[ca]": "Recull els esdeveniments de les aplicacions que usen «GtkFileChooser» i «GtkRecentManager» segons l'especificat pel https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[da]": "Indsamler hændelser fra programmer der bruger GtkFileChooser og GtkRecentManager som specificeret på https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[de]": "Sammelt Ereignisse von Anwendungen, die GtkFileChooser and GtkRecentManager nach der Spezifikation von https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/ verwenden.", - "Description[el]": "Συλλέγει γεγονότα από εφαρμογές που χρησιμοποιούν GtkFileChooser και GtkRecentManager όπως ορίζεται από το https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[en_GB]": "Collects events from applications that use GtkFileChooser and GtkRecentManager as specified by https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[es]": "Recolecta eventos de aplicaciones que usan GtkFileChooser y GtkRecentManager como se indica en https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[et]": "Sündmuste kogumine rakendustelt, mis kasutavad GtkFileChooser'it ja GtkRecentManager'i, nagu see on määratud spetsifikatsioonis https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[eu]": "GtkFileChooser eta GtkRecentManager erabiltzen duten aplikazioen gertaerak biltzen ditu https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec zehaztu bezala", - "Description[fi]": "Kerää tapahtumat GtkFileChooseria ja GtkRecentManageriä käyttävistä sovelluksista siten kuin https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/ määrittää", - "Description[fr]": "Collecte les évènements d'applications utilisant GtkFileChooser et GtkRecentManager tel que spécifié par https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[gl]": "Recolle eventos de aplicacións que usan GtkFileChooser e GtkRecentManager como se indica en https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[hu]": "Eseményeket gyűjt olyan alkalmazásoktól, amik a GtkFileChooser és GtkRecentManager API-t használják, ahogy itt specifikálták: https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[ia]": "Collige eventos ab applicationes que usa GtkFileChooser e GtkRecentManager como specificate per https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[id]": "Memungut peristiwa dari aplikasi yang menggunakan GtkFileChooser dan GtkRecentManager sebagaimana ditentukan oleh https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[it]": "Raccoglie gli eventi da applicazioni che usano GtkFileChooser e GtkRecentManager come indicato da https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[ko]": "GtkFileChooser와 GtkRecentManager를 사용하는 프로그램의 이벤트를 수집합니다. 참조: https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[lt]": "Surenka įvykius iš programų, kurios naudoja GtkFileChooser ir GtkRecentManager, kaip tai nurodyta https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[nl]": "Verzamelt gebeurtenissen uit toepassingen die GtkFileChooser en GtkRecentManager gebruiken zoals gespecificeerd door https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[nn]": "Samla hendingar frå program som brukar GtkFileChooser og GtkRecentManager som definert i https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[pl]": "Gromadzi wydarzenia z aplikacji, które używają GtkFileChooser oraz GtkRecentManager wg https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[pt]": "Recolhe eventos das aplicações que usam o GtkFileChooser e o GtkRecentManager, de acordo com o definido em https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[pt_BR]": "Coleta eventos dos aplicativos que usam o GtkFileChooser e o GtkRecentManager, de acordo com o definido em https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[ro]": "Colectează evenimente de la aplicații ce folosesc GtkFileChooser și GtkRecentManager după cum e specificat la https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[ru]": "Собирает события от приложений, использующих интерфейсы GtkFileChooser и GtkRecentManager в соответствии со спецификациями, опубликованными по адресу https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[sk]": "Zbiera udalosti z aplikácií, ktoré používajú GtkFileChooser a GtkRecentManager ako je uvedené v https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[sl]": "Zbira dogodke od programov, ki uporabljajo GtkFileChooser in GtkRecentManager kot je določeno v https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[sv]": "Samlar in händelser från program som använder GtkFileChooser och GtkRecentManager som anges av https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[uk]": "Збирає повідомлення про події від програм, у яких використовується GtkFileChooser та GtkRecentManager, відповідно до https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[x-test]": "xxCollects events from applications that use GtkFileChooser and GtkRecentManager as specified by https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/xx", - "Description[zh_CN]": "从使用 GtkFileChooser 和 GtkRecentManager 的应用程序收集事件,遵循 FreeDesktop 相关规范 https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/", - "Description[zh_TW]": "收集如 https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/ 定義之使用 GtkFileChooser 及 GtkRecentManager 應用程式的事件", - "EnabledByDefault": true, - "Icon": "preferences-system", - "Id": "org.kde.ActivityManager.GtkEventSpy", - "License": "GPL", - "Name": "Gtk Event Spy", - "Name[az]": "GTK hadisələrinin izlənməsi", - "Name[ca]": "Espia els esdeveniments Gtk", - "Name[cs]": "Špeh událostí Gtk", - "Name[da]": "Gtk-hændelsesspion", - "Name[de]": "GTK-Ereignisspion", - "Name[el]": "Gtk Event Spy", - "Name[en_GB]": "Gtk Event Spy", - "Name[es]": "Espía de eventos de Gtk", - "Name[et]": "Gtk sündmusevalvur", - "Name[eu]": "Gtk gertaeren espioia", - "Name[fi]": "Gtk-tapahtumavakooja", - "Name[fr]": "Espion d'évènements Gtk", - "Name[gl]": "Espía de eventos de GTK", - "Name[hu]": "GTK eseményfigyelő", - "Name[ia]": "Gtk Event Spy (Spia de evento de GTK)", - "Name[id]": "Event Spy Gtk", - "Name[it]": "Spia degli eventi Gtk", - "Name[ko]": "Gtk 이벤트 스파이", - "Name[lt]": "Gtk įvykių šnipas", - "Name[nl]": "Gtk gebeurtenisspion", - "Name[nn]": "Gtk-hendingsovervaking", - "Name[pl]": "Szpieg wydarzeń Gtk", - "Name[pt]": "Espião de Eventos do Gtk", - "Name[pt_BR]": "Espião de eventos do Gtk", - "Name[ro]": "Spion de evenimente GTK", - "Name[ru]": "Монитор событий GTK", - "Name[sk]": "Špión udalostí Gtk", - "Name[sl]": "Gtk nadzornik dogodkov", - "Name[sv]": "GTK-händelseövervakare", - "Name[uk]": "Журнал подій Gtk", - "Name[x-test]": "xxGtk Event Spyxx", - "Name[zh_CN]": "Gtk 事件监视", - "Name[zh_TW]": "Gtk 事件探測", - "ServiceTypes": [ - "ActivityManager/Plugin" - ], - "Version": "1.0", - "Website": "https://kde.org/plasma-desktop" - } -} diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/krunner/ActivityRunner.cpp kactivitymanagerd-5.12.8/src/service/plugins/krunner/ActivityRunner.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/krunner/ActivityRunner.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/krunner/ActivityRunner.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021 Alexander Lohnau - * SPDX-FileCopyrightText: 2011 Aaron Seigo - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#include "ActivityRunner.h" - -#include -#include -#include - -KAMD_EXPORT_PLUGIN(activityrunner, ActivityRunner, "kactivitymanagerd-plugin-activityrunner.json") - -ActivityRunner::ActivityRunner(QObject *parent, const QVariantList &args) - : Plugin(parent) - , m_activitiesService(nullptr) - , m_keywordi18n(i18nc("KRunner keyword", "activity")) - , m_keyword(QStringLiteral("activity")) -{ - Q_UNUSED(args) - setName(QStringLiteral("org.kde.ActivityManager.ActivityRunner")); - new Krunner1Adaptor(this); - qDBusRegisterMetaType(); - qDBusRegisterMetaType(); - qDBusRegisterMetaType(); - qDBusRegisterMetaType(); - QDBusConnection::sessionBus().registerObject(QStringLiteral("/runner"), this); - QDBusConnection::sessionBus().registerService(QStringLiteral("org.kde.runners.activities")); -} - -ActivityRunner::~ActivityRunner() = default; - -bool ActivityRunner::init(QHash &modules) -{ - Plugin::init(modules); - - m_activitiesService = modules[QStringLiteral("activities")]; - return true; -} - -RemoteMatches ActivityRunner::Match(const QString &query) -{ - Q_ASSERT(m_activitiesService); - const auto currentActivity = Plugin::retrieve(m_activitiesService, "CurrentActivity", "QString"); - auto activities = Plugin::retrieve(m_activitiesService, "ListActivitiesWithInformation", "ActivityInfoList"); - - const QString term = query.trimmed(); - bool list = false; - QString name; - - if (term == m_keyword || term == m_keywordi18n) { - list = true; - } else if (term.startsWith(m_keyword, Qt::CaseInsensitive)) { - name = term.right(term.size() - m_keyword.size()).trimmed(); - } else if (term.startsWith(m_keywordi18n, Qt::CaseInsensitive)) { - name = term.right(term.size() - m_keywordi18n.size()).trimmed(); - } else { - return {}; - } - - QList matches; - for (const ActivityInfo &activityInfo : qAsConst(activities)) { - if (currentActivity != activityInfo.id) { - auto info = Plugin::retrieve(m_activitiesService, "ActivityInformation", "ActivityInfo", Q_ARG(QString, activityInfo.id)); - if (list || info.name.startsWith(name, Qt::CaseInsensitive)) { - RemoteMatch m; - m.id = activityInfo.id; - m.text = i18n("Switch to \"%1\"", info.name); - m.iconName = info.icon; - m.type = Type::ExactMatch; - m.relevance = 0.7 + ((activityInfo.state == Activities::State::Running || activityInfo.state == Activities::State::Starting) ? 0.1 : 0); - matches.append(m); - } - } - } - - return matches; -} - -RemoteActions ActivityRunner::Actions() -{ - return {}; -} - -void ActivityRunner::Run(const QString &matchId, const QString &actionId) -{ - Q_UNUSED(actionId) - QMetaObject::invokeMethod(m_activitiesService, "SetCurrentActivity", Q_ARG(QString, matchId)); -} - -#include "ActivityRunner.moc" diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/krunner/ActivityRunner.h kactivitymanagerd-5.12.8/src/service/plugins/krunner/ActivityRunner.h --- kactivitymanagerd-5.22.4/src/service/plugins/krunner/ActivityRunner.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/krunner/ActivityRunner.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021 Alexander Lohnau - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#ifndef PLUGINS_RUN_APPLICATION_PLUGIN_H -#define PLUGINS_RUN_APPLICATION_PLUGIN_H - -#include "dbusutils.h" -#include - -class ActivityRunner : public Plugin -{ - Q_OBJECT - -public: - explicit ActivityRunner(QObject *parent = nullptr, const QVariantList &args = QVariantList()); - ~ActivityRunner() override; - bool init(QHash &modules) override; - - void Run(const QString &matchId, const QString &actionId); - RemoteMatches Match(const QString &query); - RemoteActions Actions(); - -private: - QObject *m_activitiesService; - const QString m_keywordi18n; - const QString m_keyword; -}; - -#endif // PLUGINS_RUN_APPLICATION_PLUGIN_H diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/krunner/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/plugins/krunner/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/plugins/krunner/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/krunner/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,38 +0,0 @@ -# vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: - -project (kactivitymanagerd-activityrunner) - -set ( - activityrunner_SRCS - ActivityRunner.cpp - ${debug_SRCS} - ${plugin_implementation_SRCS} - ) -qt5_add_dbus_adaptor(activityrunner_SRCS "org.kde.krunner1.xml" ActivityRunner.h ActivityRunner) - -kcoreaddons_add_plugin ( - kactivitymanagerd_plugin_activityrunner - JSON kactivitymanagerd-plugin-activityrunner.json - SOURCES ${activityrunner_SRCS} - INSTALL_NAMESPACE ${KAMD_PLUGIN_DIR} - ) - -target_link_libraries ( - kactivitymanagerd_plugin_activityrunner - Qt::Core - Qt::DBus - KF5::CoreAddons - KF5::I18n - kactivitymanagerd_plugin - ) - -set_target_properties ( - kactivitymanagerd_plugin_activityrunner - PROPERTIES PREFIX "" - ) -install( - FILES plasma-runnners-activities.desktop - DESTINATION "${KDE_INSTALL_DATAROOTDIR}/krunner/dbusplugins" -) - - diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/krunner/dbusutils.h kactivitymanagerd-5.12.8/src/service/plugins/krunner/dbusutils.h --- kactivitymanagerd-5.22.4/src/service/plugins/krunner/dbusutils.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/krunner/dbusutils.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021 Alexander Lohnau - * - * SPDX-License-Identifier: GPL-2.0-or-later - */ - -#pragma once - -#include -#include -#include -#include - -enum Type { - NoMatch = 0, - CompletionMatch = 10, - PossibleMatch = 30, - InformationalMatch = 50, - HelperMatch = 70, - ExactMatch = 100, -}; - -struct RemoteMatch { - // sssuda{sv} - QString id; - QString text; - QString iconName; - Type type = NoMatch; - qreal relevance = 0; - QVariantMap properties; -}; - -typedef QList RemoteMatches; - -struct RemoteAction { - QString id; - QString text; - QString iconName; -}; - -typedef QList RemoteActions; - -inline QDBusArgument &operator<<(QDBusArgument &argument, const RemoteMatch &match) -{ - argument.beginStructure(); - argument << match.id; - argument << match.text; - argument << match.iconName; - argument << match.type; - argument << match.relevance; - argument << match.properties; - argument.endStructure(); - return argument; -} - -inline const QDBusArgument &operator>>(const QDBusArgument &argument, RemoteMatch &match) -{ - argument.beginStructure(); - argument >> match.id; - argument >> match.text; - argument >> match.iconName; - uint type; - argument >> type; - match.type = (Type)type; - argument >> match.relevance; - argument >> match.properties; - argument.endStructure(); - - return argument; -} - -inline QDBusArgument &operator<<(QDBusArgument &argument, const RemoteAction &action) -{ - argument.beginStructure(); - argument << action.id; - argument << action.text; - argument << action.iconName; - argument.endStructure(); - return argument; -} - -inline const QDBusArgument &operator>>(const QDBusArgument &argument, RemoteAction &action) -{ - argument.beginStructure(); - argument >> action.id; - argument >> action.text; - argument >> action.iconName; - argument.endStructure(); - return argument; -} - -Q_DECLARE_METATYPE(RemoteMatch) -Q_DECLARE_METATYPE(RemoteMatches) -Q_DECLARE_METATYPE(RemoteAction) -Q_DECLARE_METATYPE(RemoteActions) diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/krunner/kactivitymanagerd-plugin-activityrunner.json kactivitymanagerd-5.12.8/src/service/plugins/krunner/kactivitymanagerd-plugin-activityrunner.json --- kactivitymanagerd-5.22.4/src/service/plugins/krunner/kactivitymanagerd-plugin-activityrunner.json 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/krunner/kactivitymanagerd-plugin-activityrunner.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "alexander.lohnau@gmx.de", - "Name": "Alexander Lohnau", - "Name[az]": "Alexander Lohnau", - "Name[ca]": "Alexander Lohnau", - "Name[cs]": "Alexander Lohnau", - "Name[de]": "Alexander Lohnau", - "Name[el]": "Alexander Lohnau", - "Name[en_GB]": "Alexander Lohnau", - "Name[es]": "Alexander Lohnau", - "Name[eu]": "Alexander Lohnau", - "Name[fi]": "Alexander Lohnau", - "Name[fr]": "Alexander Lohnau", - "Name[ia]": "Alexander Lohnau", - "Name[it]": "Alexander Lohnau", - "Name[ko]": "Alexander Lohnau", - "Name[nl]": "Alexander Lohnau", - "Name[nn]": "Alexander Lohnau", - "Name[pl]": "Alexander Lohnau", - "Name[pt]": "Alexander Lohnau", - "Name[pt_BR]": "Alexander Lohnau", - "Name[ro]": "Alexander Lohnau", - "Name[sl]": "Alexander Lohnau", - "Name[sv]": "Alexander Lohnau", - "Name[uk]": "Alexander Lohnau", - "Name[x-test]": "xxAlexander Lohnauxx", - "Name[zh_CN]": "Alexander Lohnau" - } - ], - "Category": "", - "Dependencies": [], - "Description": "KRunner plugin to list and switch activities", - "Description[az]": "İş otaqlarının siyahısını göstərmək və onları dəyişmək üçün KRunner qoşması", - "Description[ca]": "Connector del KRunner per a llistar i canviar les activitats", - "Description[cs]": "Modul KRunneru pro vypsání a přepínání aktivit", - "Description[de]": "KRunner-Modul zum Anzeigen und Wechseln von Aktivitäten", - "Description[el]": "KRunner πρόσθετο για λίστα και εναλλαγή δραστηριοτήτων", - "Description[en_GB]": "KRunner plugin to list and switch activities", - "Description[es]": "Complemento de KRunner para listar y cambiar actividades", - "Description[eu]": "Jarduerak zerrendatu eta aldatzeko «KRunner» jarduera", - "Description[fi]": "KRunner-liitännäinen aktiviteettien luettelemiseksi ja niiden välillä vaihtamiseksi", - "Description[fr]": "Module externe pour « KRunner » pour lister les activités et naviguer parmi elles", - "Description[ia]": "Plugin de KRunner per listar e commutar activitates", - "Description[it]": "Estensione di KRunner per elencare e passare tra le attività", - "Description[ko]": "활동을 보고 전환하는 KRunner 플러그인", - "Description[nl]": "Plug-in voor KRunner om een lijst van activiteiten te maken en naar om te schakelen", - "Description[nn]": "KRunner-tillegg for å visa oversikt over og byta mellom aktivitetar", - "Description[pl]": "Wtyczka KRunnera do wypisywania i przełączania aktywności", - "Description[pt]": "'Plugin' do KRunner para listar e mudar de actividades", - "Description[pt_BR]": "Plugin do KRunner para listar e alternar atividades", - "Description[ro]": "Extensie KRunner pentru enumerarea și comutarea activităților", - "Description[sl]": "Vtičnik za KRunner za prikaz in preklop dejavnosti", - "Description[sv]": "Insticksprogram för Kör program för att lista och byta aktiviteter", - "Description[uk]": "Додаток KRunner для показу списку просторів дій та перемикання між ними", - "Description[x-test]": "xxKRunner plugin to list and switch activitiesxx", - "Description[zh_CN]": "用于列出和切换活动的 KRunner 插件", - "EnabledByDefault": true, - "Icon": "preferences-system-windows", - "Id": "org.kde.ActivityManager.ActivityRunner", - "License": "GPL", - "Name": "Activity Runner", - "Name[az]": "İş otağı başladıcısı", - "Name[ca]": "Executor d'activitats", - "Name[cs]": "Runner aktivit", - "Name[de]": "Aktivitätenmodul", - "Name[el]": "Εκτελεστής δραστηριοτήτων", - "Name[en_GB]": "Activity Runner", - "Name[es]": "Lanzador de actividades", - "Name[eu]": "Jarduera exekutatzailea", - "Name[fi]": "Aktiviteetti-KRunner", - "Name[fr]": "Lanceur d'activité", - "Name[ia]": "Activity Runner (Executor de activitate)", - "Name[it]": "Esecutore delle attività", - "Name[ko]": "활동 실행기", - "Name[nl]": "Starter van activiteit", - "Name[nn]": "Aktivitetskøyrar", - "Name[pl]": "Uruchamiacz aktywności", - "Name[pt]": "Execução de Actividades", - "Name[pt_BR]": "Executor de atividades", - "Name[ro]": "Executor de activitate", - "Name[sl]": "Poganjalec dejavnosti", - "Name[sv]": "Aktivitetskörning", - "Name[uk]": "Засіб запуску просторів дій", - "Name[x-test]": "xxActivity Runnerxx", - "Name[zh_CN]": "活动 Runner 程序", - "ServiceTypes": [ - "ActivityManager/Plugin" - ], - "Version": "1.0", - "Website": "https://invent.kde.org/plasma/kactivitymanagerd" - } -} diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/krunner/org.kde.krunner1.xml kactivitymanagerd-5.12.8/src/service/plugins/krunner/org.kde.krunner1.xml --- kactivitymanagerd-5.22.4/src/service/plugins/krunner/org.kde.krunner1.xml 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/krunner/org.kde.krunner1.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/krunner/plasma-runnners-activities.desktop kactivitymanagerd-5.12.8/src/service/plugins/krunner/plasma-runnners-activities.desktop --- kactivitymanagerd-5.22.4/src/service/plugins/krunner/plasma-runnners-activities.desktop 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/krunner/plasma-runnners-activities.desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,83 +0,0 @@ -[Desktop Entry] -Name=Activities -Name[ar]=الأنشطة -Name[az]=İş Otaqları -Name[bs]=Aktivnosti -Name[ca]=Activitats -Name[cs]=Aktivity -Name[de]=Aktivitäten -Name[el]=Δραστηριότητες -Name[en_GB]=Activities -Name[es]=Actividades -Name[et]=Tegevused -Name[eu]=Jarduerak -Name[fi]=Aktiviteetit -Name[fr]=Activités -Name[ga]=Gníomhaíochtaí -Name[gd]=Gnìomhachdan -Name[gl]=Actividades -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[nds]=Aktiviteten -Name[nl]=Activiteiten -Name[nn]=Aktivitetar -Name[pl]=Aktywności -Name[pt]=Actividades -Name[pt_BR]=Atividades -Name[ro]=Activități -Name[ru]=Комнаты -Name[sl]=Dejavnosti -Name[sv]=Aktiviteter -Name[tg]=Фаъолият -Name[tr]=Etkinlikler -Name[ug]=پائالىيەتلەر -Name[uk]=Простори дій -Name[x-test]=xxActivitiesxx -Name[zh_CN]=活动 -Comment=List and switch between desktop activities -Comment[az]=İş Masasına aid İş Otaqlarının siyahısı və onlar arasında keçid -Comment[ca]=Llista i commuta entre les activitats d'escriptori -Comment[cs]=Zobrazení a přepínač aktivit pracovní plochy -Comment[de]=Aktivitäten anzeigen und zwischen ihnen umschalten -Comment[el]=Λίστα και εναλλαγή ανάμεσα σε δραστηριότητες της επιφάνειας εργασίας -Comment[en_GB]=List and switch between desktop activities -Comment[es]=Listar y cambiar entre actividades del escritorio -Comment[eu]=Mahaigaineko jarduerak zerrendatu eta haien artean aldatu -Comment[fi]=Luettele aktiviteetit ja vaihda niiden välillä -Comment[fr]=Lister et naviguer parmi les activités de bureau -Comment[ia]=Lista e commuta inter activitates de scriptorio -Comment[it]=Elenca e passa tra le attività del desktop -Comment[ko]=데스크톱 활동을 보거나 바꾸기 -Comment[nl]=Bureaubladactiviteiten laten zien en er tussen schakelen -Comment[nn]=Vis og byt mellom skrivebordsaktiviteter -Comment[pl]=Wypisuje aktywności pulpitu oraz przełącza pomiędzy nimi -Comment[pt]=Listar e mudar de actividades no ambiente de trabalho -Comment[pt_BR]=Lista e alterna entre as atividades da área de trabalho -Comment[ro]=Enumeră și schimbă între activitățile biroului -Comment[sl]=Prikaži in preklopi med namiznimi dejavnostmi -Comment[sv]=Lista och byt mellan skrivbordsaktiviteter -Comment[uk]=Перегляд і перемикання між просторами дій стільниці -Comment[x-test]=xxList and switch between desktop activitiesxx -Comment[zh_CN]=显示和切换桌面活动 -X-KDE-ServiceTypes=Plasma/Runner -Type=Service -Icon=preferences-desktop-activities -X-KDE-PluginInfo-Author=Plasma Team -X-KDE-PluginInfo-Email=plasma-devel@kde.org -X-KDE-PluginInfo-Name=org.kde.activities2 -X-KDE-PluginInfo-Version=1.0 -X-KDE-PluginInfo-License=LGPL -X-KDE-PluginInfo-EnabledByDefault=true -X-Plasma-AdvertiseSingleRunnerQueryMode=true -X-Plasma-API=DBus -X-Plasma-DBusRunner-Service=org.kde.runners.activities -X-Plasma-DBusRunner-Path=/runner -X-Plasma-Request-Actions-Once=true -X-Plasma-Runner-Min-Letter-Count=3 diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/runapplication/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/plugins/runapplication/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/plugins/runapplication/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/runapplication/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -2,10 +2,18 @@ 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 - ${debug_SRCS} ${plugin_implementation_SRCS} ) @@ -18,9 +26,9 @@ target_link_libraries ( kactivitymanagerd_plugin_runapplication - Qt::Core - Qt::DBus - Qt::Gui + Qt5::Core + Qt5::DBus + Qt5::Gui KF5::CoreAddons KF5::ConfigCore KF5::Service diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json kactivitymanagerd-5.12.8/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json --- kactivitymanagerd-5.22.4/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/runapplication/kactivitymanagerd-plugin-runapplication.json 2019-03-05 12:13:01.000000000 +0000 @@ -4,7 +4,7 @@ { "Email": "ivan.cukic@kde.org", "Name": "Ivan Cukic", - "Name[az]": "Ivan Cukic", + "Name[ast]": "Ivan Cukic", "Name[ca@valencia]": "Ivan Cukic", "Name[ca]": "Ivan Cukic", "Name[cs]": "Ivan Cukic", @@ -19,17 +19,14 @@ "Name[fr]": "Ivan Cukic", "Name[gl]": "Ivan Cukic", "Name[hu]": "Ivan Cukic", - "Name[ia]": "Ivan Cukic", "Name[id]": "Ivan Cukic", "Name[it]": "Ivan Cukic", "Name[ko]": "Ivan Cukic", - "Name[lt]": "Ivan Cukic", "Name[nl]": "Ivan Cukic", "Name[nn]": "Ivan Čukić", "Name[pl]": "Ivan Cukic", "Name[pt]": "Ivan Cukic", "Name[pt_BR]": "Ivan Cukic", - "Name[ro]": "Ivan Cukic", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Cukic", "Name[sl]": "Ivan Cukic", @@ -48,8 +45,7 @@ "Category": "", "Dependencies": [], "Description": "When switching activities, or when starting and stopping them, execute specified applications", - "Description[az]": "Bir fəaliyyətdən başqasına keçərkən və ya onları dayandırarkən göstərilən proqramın başladılması", - "Description[ca@valencia]": "En commutar d'activitat, o en iniciar o aturar-les, executa les aplicacions especificades", + "Description[ca@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[da]": "Køb bestemte programmer ved skift mellem aktiviteter eller når de startes eller stoppes", "Description[de]": "Beim Wechseln, Starten oder Beenden von Aktivitäten, angegebene Anwendungen ausführen", @@ -60,19 +56,16 @@ "Description[eu]": "Jarduerak aldatzean, edo haiek abiatu gelditzean, exekutatu adierazitako aplikazioak", "Description[fi]": "Suorita annetut sovellukset vaihdettaessa aktiviteetteja tai käynnistettäessä tai pysäytettäessä niitä", "Description[fr]": "Lors du changement d'activités, ou lorsqu'on les démarre ou les arrête, exécute les applications spécifiées", - "Description[gl]": "Executar aplicacións concretas ao cambiar de actividade ou ao iniciar ou deter unha actividade", + "Description[gl]": "Executar aplicativos concretos ao cambiar de actividade ou ao iniciar ou deter unha actividade.", "Description[hu]": "Elindítja a megadott alkalmazásokat aktivitások közti váltáskor, vagy azok elindításakor és leállításakor", - "Description[ia]": "Quando on commuta activitates, o quando los initia o stoppa, executa applicationes specificate", "Description[id]": "Ketika mengalihkan aktifitas, atau ketika menjalankan dan menghentikannya, eksekusi aplikasi yang ditentukan", "Description[it]": "Quando si passa da un'attività all'altra, o quando vengono aperte o chiuse delle attività, esegue le applicazioni specificate", "Description[ko]": "활동을 전환하거나 시작 및 정지할 때 지정한 프로그램 실행", - "Description[lt]": "Perjungiant veiklas ar jas paleidžiant bei sustabdant, vykdyti nurodytas programas", "Description[nl]": "Bij omschakelen van activiteiten of bij starten en stoppen ervan, voer de gespecificeerde toepassingen uit", "Description[nn]": "Ved byte, start eller stopp av aktivitetar, køyr valde program", "Description[pl]": "Przy przełączaniu działań. lub przy ich rozpoczynaniu i kończeniu, uruchamiaj podane aplikacje", "Description[pt]": "Ao mudar de actividades, ou quando as iniciar e parar, executa as aplicações indicadas", "Description[pt_BR]": "Ao mudar, iniciar e parar atividades, executa os aplicativos indicados", - "Description[ro]": "La comutarea activităților sau la pornirea și oprirea acestora, execută aplicațiile specificate", "Description[ru]": "Запуск указанных приложений при переходе в комнату, при её запуске или остановке", "Description[sk]": "Pri prepínaní aktivít alebo pri ich spúšťaní a zastavovaní spustiť určené aplikácie", "Description[sl]": "Ob preklopu dejavnosti ali ob njihovem zagonu/zaustavitvi se izvedejo navedeni programi", @@ -84,14 +77,13 @@ "Description[tr]": "Etkinlikleri değiştirirken veya başlatırken ve durdururken, belirtilen uygulamaları çalıştır", "Description[uk]": "Запускати вказані програми під час перемикання просторів дій або їхнього запуску чи завершення роботи", "Description[x-test]": "xxWhen switching activities, or when starting and stopping them, execute specified applicationsxx", - "Description[zh_CN]": "切换/启动/停止活动时,执行指定程序", + "Description[zh_CN]": "切换活动或者启动停止他们时,执行指定程序", "Description[zh_TW]": "切換活動時,或是啟動、停止活動時,執行特定應用程式", "EnabledByDefault": true, "Icon": "preferences-system-windows", "Id": "org.kde.ActivityManager.RunApplication", "License": "GPL", "Name": "Run applications on activity state change", - "Name[az]": "Fəaliyyət vəziyyətinin dəyişməsi zamanı tətbiqin başladılması", "Name[ca@valencia]": "Executa aplicacions en canviar l'estat de l'activitat", "Name[ca]": "Executa aplicacions en canviar l'estat de l'activitat", "Name[da]": "Kør programmer ved ændring af aktivitetstilstand", @@ -103,19 +95,16 @@ "Name[eu]": "Exekutatu aplikazioak jardueren egoera aldatzen denean", "Name[fi]": "Suorita sovelluksia aktiviteetin tilan muuttuessa", "Name[fr]": "Exécuter des applications lors du changement d'état de l'activité", - "Name[gl]": "Executar aplicacións ao cambiar o estado da actividade", + "Name[gl]": "Executar aplicativos ao cambiar o estado da actividade", "Name[hu]": "Alkalmazásindítás aktivitás állapotváltásakor", - "Name[ia]": "Exeque applicationes sur cambio de stato de activitate", "Name[id]": "Jalankan aplikasi pada keadaan aktivitas yang berubah", "Name[it]": "Esegue applicazioni al cambio di stato dell'attività", "Name[ko]": "활동 상태를 변경할 때 프로그램 실행", - "Name[lt]": "Paleisti programas esant veiklos būsenos pakeitimams", "Name[nl]": "Toepassingen uitvoeren bij wijziging van de status van activiteit", "Name[nn]": "Køyr program ved endring av aktivitetsstatus", "Name[pl]": "Uruchamiaj aplikacje przy zmianie stanu działania", "Name[pt]": "Executar as aplicações na mudança do estado da actividade", "Name[pt_BR]": "Executar aplicativos na alteração do estado da atividade", - "Name[ro]": "Rulează aplicații la schimbarea stării activității", "Name[ru]": "Запуск приложения при изменении состояния комнаты", "Name[sk]": "Spustiť aplikácie pri zmene stavu aktivity", "Name[sl]": "Zaženi programe ob spremembi stanja dejavnosti", @@ -133,6 +122,6 @@ "ActivityManager/Plugin" ], "Version": "1.0", - "Website": "https://kde.org/plasma-desktop" + "Website": "http://plasma.kde.org/" } } diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/runapplication/RunApplicationPlugin.cpp kactivitymanagerd-5.12.8/src/service/plugins/runapplication/RunApplicationPlugin.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/runapplication/RunApplicationPlugin.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/runapplication/RunApplicationPlugin.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,39 +1,49 @@ /* - * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 +#include +#include -#include "DebugApplication.h" +#include #include -namespace -{ -enum ActivityState { - Running = 2, - Stopped = 4, -}; +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(nullptr) + , m_activitiesService(Q_NULLPTR) { Q_UNUSED(args); - setName(QStringLiteral("org.kde.ActivityManager.RunApplication")); + setName("org.kde.ActivityManager.RunApplication"); } RunApplicationPlugin::~RunApplicationPlugin() @@ -44,12 +54,15 @@ { Plugin::init(modules); - m_activitiesService = modules[QStringLiteral("activities")]; + 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))); + 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"); + const auto currentActivity = Plugin::retrieve( + m_activitiesService, "CurrentActivity", "QString"); currentActivityChanged(currentActivity); @@ -58,8 +71,8 @@ QString RunApplicationPlugin::activityDirectory(const QString &activity) const { - return QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/kactivitymanagerd/activities/") + activity - + QLatin1Char('/'); + return QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + + QStringLiteral("/kactivitymanagerd/activities/") + activity + '/'; } void RunApplicationPlugin::currentActivityChanged(const QString &activity) @@ -69,12 +82,12 @@ } if (!m_currentActivity.isEmpty()) { - executeIn(activityDirectory(m_currentActivity) + QStringLiteral("deactivated")); + executeIn(activityDirectory(activity) + "deactivated"); } m_currentActivity = activity; - executeIn(activityDirectory(activity) + QStringLiteral("activated")); + executeIn(activityDirectory(activity) + "activated"); if (!m_previousActivities.contains(activity)) { // This is the first time we have switched @@ -88,9 +101,11 @@ void RunApplicationPlugin::activityStateChanged(const QString &activity, int state) { - auto directory = (state == Running) ? QStringLiteral("started") : (state == Stopped) ? QStringLiteral("stopped") : QString(); + auto directory = (state == Running) ? QStringLiteral("started") + : (state == Stopped) ? QStringLiteral("stopped") + : QString(); - if (directory.isEmpty()) { + if (directory == "") { return; } @@ -100,18 +115,14 @@ void RunApplicationPlugin::executeIn(const QString &path) const { QDir directory(path); - for (const auto &item : directory.entryList(QDir::Files)) { + for (const auto& item: directory.entryList(QDir::Files)) { QString filePath = directory.filePath(item); - if (QFileInfo fileInfo(filePath); fileInfo.suffix() == "sh" && fileInfo.isExecutable()) { - qCDebug(KAMD_LOG_APPLICATION) << "Starting a shell script: " << filePath; - QProcess::startDetached(filePath, QStringList()); - - } else if (KService service(filePath); service.isValid() && service.isApplication()) { - qCDebug(KAMD_LOG_APPLICATION) << "Starting application: " << service.exec(); - QProcess::startDetached(service.exec(), QStringList()); - + KService service(filePath); + if (service.isValid() && service.isApplication()) { + qDebug() << "Starting: " << service.exec(); + QProcess::startDetached(service.exec()); } else { - qCDebug(KAMD_LOG_APPLICATION) << "Opening file: " << QUrl::fromLocalFile(filePath); + qDebug() << "Openning file: " << QUrl::fromLocalFile(filePath); QDesktopServices::openUrl(QUrl::fromLocalFile(filePath)); } } @@ -123,3 +134,4 @@ // } #include "RunApplicationPlugin.moc" + diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/runapplication/RunApplicationPlugin.h kactivitymanagerd-5.12.8/src/service/plugins/runapplication/RunApplicationPlugin.h --- kactivitymanagerd-5.22.4/src/service/plugins/runapplication/RunApplicationPlugin.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/runapplication/RunApplicationPlugin.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,24 +1,34 @@ /* - * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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_PLUGIN_H -#define PLUGINS_RUN_APPLICATION_PLUGIN_H +#ifndef PLUGINS_RUN_APPLICATION_H +#define PLUGINS_RUN_APPLICATION_H #include -class RunApplicationPlugin : public Plugin -{ +class RunApplicationPlugin : public Plugin { Q_OBJECT // Q_PLUGIN_METADATA(IID "org.kde.ActivityManager.plugins.virtualdesktopswitch") public: - explicit RunApplicationPlugin(QObject *parent = nullptr, const QVariantList &args = QVariantList()); - ~RunApplicationPlugin() override; + RunApplicationPlugin(QObject *parent = Q_NULLPTR, const QVariantList &args = QVariantList()); + virtual ~RunApplicationPlugin(); - bool init(QHash &modules) override; + bool init(QHash &modules) Q_DECL_OVERRIDE; private Q_SLOTS: void currentActivityChanged(const QString &activity); @@ -33,4 +43,4 @@ QObject *m_activitiesService; }; -#endif // PLUGINS_RUN_APPLICATION_PLUGIN_H +#endif // PLUGINS_RUN_APPLICATION_H diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/slc/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/plugins/slc/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/plugins/slc/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/slc/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -4,6 +4,15 @@ # 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 @@ -23,8 +32,8 @@ target_link_libraries ( kactivitymanagerd_plugin_slc - Qt::Core - Qt::DBus + Qt5::Core + Qt5::DBus KF5::ConfigCore KF5::DBusAddons KF5::CoreAddons diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json kactivitymanagerd-5.12.8/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json --- kactivitymanagerd-5.22.4/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/slc/kactivitymanagerd-plugin-slc.json 2019-03-05 12:13:01.000000000 +0000 @@ -4,7 +4,7 @@ { "Email": "ivan.cukic@kde.org", "Name": "Ivan Cukic", - "Name[az]": "Ivan Cukic", + "Name[ast]": "Ivan Cukic", "Name[ca@valencia]": "Ivan Cukic", "Name[ca]": "Ivan Cukic", "Name[cs]": "Ivan Cukic", @@ -19,17 +19,14 @@ "Name[fr]": "Ivan Cukic", "Name[gl]": "Ivan Cukic", "Name[hu]": "Ivan Cukic", - "Name[ia]": "Ivan Cukic", "Name[id]": "Ivan Cukic", "Name[it]": "Ivan Cukic", "Name[ko]": "Ivan Cukic", - "Name[lt]": "Ivan Cukic", "Name[nl]": "Ivan Cukic", "Name[nn]": "Ivan Čukić", "Name[pl]": "Ivan Cukic", "Name[pt]": "Ivan Cukic", "Name[pt_BR]": "Ivan Cukic", - "Name[ro]": "Ivan Cukic", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Cukic", "Name[sl]": "Ivan Cukic", @@ -48,7 +45,6 @@ "Category": "", "Dependencies": [], "Description": "Provides data to Share-Like-Connect applet", - "Description[az]": "Share-Like-Connect əlavəsinin məlumatlarını təqdim edir", "Description[ca@valencia]": "Proporciona dades a la miniaplicació «Share-Like-Connect»", "Description[ca]": "Proporciona dades a la miniaplicació «Share-Like-Connect»", "Description[da]": "Leverer data til Share-Like-Connect-applet", @@ -60,19 +56,16 @@ "Description[eu]": "«Share-Like-Connect» appletari dautak hornitzen dizkio", "Description[fi]": "Tarjoaa tietoa Share-Like-Connect-sovelmalle", "Description[fr]": "Fournit les données à l'application Partager-Aimer-Connecter", - "Description[gl]": "Fornece datos ao trebello Compartir-Gustar-Conectar", + "Description[gl]": "Fornece datos ao miniaplicativo compartir-gustar-conectar", "Description[hu]": "Adatok biztosítása a Share-Like-Connect appletnek", - "Description[ia]": "Provide datos pro applet Share-Like-Connect", "Description[id]": "Menyediakan data untuk applet Share-Like-Connect", "Description[it]": "Fornisce dati al programma Share-Like-Connect", "Description[ko]": "공유-좋아요-연결 애플릿에 데이터 제공", - "Description[lt]": "Pateikia duomenis į Share-Like-Connect įskiepį", "Description[nl]": "Levert gegevens aan het applet Share-Like-Connect", "Description[nn]": "Gjev data til del–lik–kopla-app", "Description[pl]": "Dostarcza danych do apletu Share-Like-Connect", "Description[pt]": "Fornece dados para a 'applet' Share-Like-Connect", "Description[pt_BR]": "Fornece dados para o miniaplicativo Share-Like-Connect", - "Description[ro]": "Furnizează date miniaplicației Partajează-Apreciază-Conectează", "Description[ru]": "Предоставляет данные виджету Share-Like-Connect", "Description[sk]": "Poskytuje dáta pre applet Share-Like-Connect", "Description[sl]": "Ponuja podatke apletu Share-Like-Connect", @@ -84,14 +77,13 @@ "Description[tr]": "Paylaş-Beğen-Bağlan uygulamasına veri sağlar", "Description[uk]": "Надає дані аплетові Оприлюднити-Уподобати-З’єднати", "Description[x-test]": "xxProvides data to Share-Like-Connect appletxx", - "Description[zh_CN]": "提供数据给分享-喜爱-连接小部件", + "Description[zh_CN]": "向分享-喜爱-连接部件提供数据", "Description[zh_TW]": "將資料提供給 Share-Like-Connect 小程式", "EnabledByDefault": true, "Icon": "mail-forward", "Id": "org.kde.ActivityManager.SLC", "License": "GPL", "Name": "Share-Like-Connect", - "Name[az]": "Share-Like-Connect", "Name[ca@valencia]": "«Share-Like-Connect»", "Name[ca]": "«Share-Like-Connect»", "Name[da]": "Share·Like·Connect", @@ -105,17 +97,14 @@ "Name[fr]": "Partager-Aimer-Connecter", "Name[gl]": "Compartir-gustar-conectar", "Name[hu]": "Share-Like-Connect", - "Name[ia]": "Connexion como compartir (Share-Like-Connect)", "Name[id]": "Share-Like-Connect", "Name[it]": "Share-Like-Connect", "Name[ko]": "공유-좋아요-연결", - "Name[lt]": "Share-Like-Connect", "Name[nl]": "'Share-Like-Connect'", "Name[nn]": "Del–lik–kopla", "Name[pl]": "Share-Like-Connect", "Name[pt]": "Share-Like-Connect", "Name[pt_BR]": "Share-Like-Connect", - "Name[ro]": "Partajează-Apreciază-Conectează", "Name[ru]": "Share-Like-Connect", "Name[sk]": "Share-Like-Connect", "Name[sl]": "Share-Like-Connect", @@ -127,12 +116,12 @@ "Name[tr]": "Paylaş-Beğen-Bağlan", "Name[uk]": "Оприлюднити-Уподобати-З’єднати", "Name[x-test]": "xxShare-Like-Connectxx", - "Name[zh_CN]": "分享-点赞-连接", + "Name[zh_CN]": "分享-喜爱-连接", "Name[zh_TW]": "Share-Like-Connect", "ServiceTypes": [ "ActivityManager/Plugin" ], "Version": "1.0", - "Website": "https://kde.org/plasma-desktop" + "Website": "http://plasma.kde.org/" } } diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/slc/SlcPlugin.cpp kactivitymanagerd-5.12.8/src/service/plugins/slc/SlcPlugin.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/slc/SlcPlugin.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/slc/SlcPlugin.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,18 @@ /* - * SPDX-FileCopyrightText: 2011, 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2011, 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 @@ -10,6 +21,9 @@ // Qt #include +// KDE +#include + // Local #include "slcadaptor.h" @@ -21,7 +35,7 @@ Q_UNUSED(args); new SLCAdaptor(this); - QDBusConnection::sessionBus().registerObject(QStringLiteral("/SLC"), this); + KDBusConnectionPool::threadConnection().registerObject(QStringLiteral("/SLC"), this); } SlcPlugin::~SlcPlugin() @@ -46,37 +60,37 @@ void SlcPlugin::registeredResourceEvent(const Event &event) { switch (event.type) { - case Event::FocussedIn: + 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); + 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()); } - } else { - m_focussedResource.clear(); - emit focusChanged(QString(), QString(), QString()); - } - break; + break; - case Event::FocussedOut: + case Event::FocussedOut: - if (m_focussedResource == event.uri) { - m_focussedResource.clear(); - emit focusChanged(QString(), QString(), QString()); - } + if (m_focussedResource == event.uri) { + m_focussedResource.clear(); + emit focusChanged(QString(), QString(), QString()); + } - break; + break; - case Event::Closed: - m_resources.remove(event.uri); + case Event::Closed: + m_resources.remove(event.uri); - break; + break; - default: - break; + default: + break; } } @@ -94,19 +108,18 @@ { 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)), + 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)), + connect(modules[QStringLiteral("resources")], SIGNAL(RegisteredResourceTitle(QString, QString)), + this, SLOT(registeredResourceTitle(QString, QString)), Qt::QueuedConnection); return true; } #include "SlcPlugin.moc" + diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/slc/SlcPlugin.h kactivitymanagerd-5.12.8/src/service/plugins/slc/SlcPlugin.h --- kactivitymanagerd-5.22.4/src/service/plugins/slc/SlcPlugin.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/slc/SlcPlugin.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,18 @@ /* - * SPDX-FileCopyrightText: 2011, 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2011, 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 @@ -9,17 +20,16 @@ #include -class SlcPlugin : public Plugin -{ +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 = nullptr, const QVariantList &args = QVariantList()); - ~SlcPlugin() override; + explicit SlcPlugin(QObject *parent = Q_NULLPTR, const QVariantList &args = QVariantList()); + ~SlcPlugin(); - bool init(QHash &modules) override; + bool init(QHash &modules) Q_DECL_OVERRIDE; private Q_SLOTS: void registeredResourceEvent(const Event &event); diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/plugins/sqlite/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -10,7 +10,6 @@ ResourceScoreMaintainer.cpp ResourceLinking.cpp - ${debug_SRCS} ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/Database.cpp ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/schema/ResourcesDatabaseSchema.cpp @@ -31,6 +30,16 @@ 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 @@ -40,13 +49,12 @@ target_link_libraries ( kactivitymanagerd_plugin_sqlite - Qt::Core - Qt::Sql + Qt5::Core + Qt5::Sql KF5::ConfigCore KF5::KIOCore KF5::DBusAddons KF5::CoreAddons - KF5::Crash kactivitymanagerd_plugin ) diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/Database.cpp kactivitymanagerd-5.12.8/src/service/plugins/sqlite/Database.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/Database.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/Database.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,16 +1,31 @@ /* - * SPDX-FileCopyrightText: 2011, 2012 Ivan Cukic + * Copyright (C) 2011, 2012 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 "Database.h" #include +#include "Database.h" // Qt #include #include +#include +#include #include #include @@ -22,176 +37,78 @@ #include // System -#include #include #include // Local -#include "DebugResources.h" +#include "Debug.h" #include "Utils.h" +#include #include -class ResourcesDatabaseInitializer::Private -{ +class ResourcesDatabaseMigrator::Private { public: Common::Database::Ptr database; + }; -Common::Database::Ptr resourcesDatabase() +Common::Database &resourcesDatabase() { - static ResourcesDatabaseInitializer instance; - return instance.d->database; + static ResourcesDatabaseMigrator instance; + return *(instance.d->database); } -void ResourcesDatabaseInitializer::initDatabase(bool retryOnFail) +void ResourcesDatabaseMigrator::migrateDatabase(const QString &newDatabaseFile) const { - // - // There are three situations we want to handle: - // 1. The database can not be opened at all. - // This means that the current database files have - // been corrupted and that we need to replace them - // with the last working backup. - // 2. The database was opened, but an error appeared - // somewhere at runtime. - // 3. The database was successfully opened and no errors - // appeared during runtime. - // - // To achieve this, we will have three locations for - // database files: - // - // 1. `resources` - the current database files - // 2. `resources-test-backup` - at each KAMD start, - // we copy the current database files here. - // If an error appears during execution, the files - // will be removed and the error will be added to - // the log file `resources/errors.log` - // 3. `resources-working-backup` - on each KAMD start, - // if there are files in `resources-test-backup` - // (meaning no error appeared at runtime), they - // will be copied to `resources-working-backup`. - // - // This means that the `working` backup will be a bit - // older, but it will be the last database that produced - // no errors at runtime. - // - - const QString databaseDirectoryPath = - QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/kactivitymanagerd/resources/"); - - const QString databaseTestBackupDirectoryPath = - QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/kactivitymanagerd/resources/test-backup/"); - - const QString databaseWorkingBackupDirectoryPath = - QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/kactivitymanagerd/resources/working-backup/"); - - static const std::array databaseFiles{"database", "database-wal", "database-shm"}; - - { - QDir dir; - dir.mkpath(databaseDirectoryPath); - dir.mkpath(databaseTestBackupDirectoryPath); - dir.mkpath(databaseWorkingBackupDirectoryPath); - - if (!dir.exists(databaseDirectoryPath) || !dir.exists(databaseTestBackupDirectoryPath) || !dir.exists(databaseWorkingBackupDirectoryPath)) { - qCWarning(KAMD_LOG_RESOURCES) << "Database directory can not be created!"; - return; - } + // Checking whether we need to transfer the KActivities/KDE4 + // sqlite database file to the new location. + if (QFile(newDatabaseFile).exists()) { + return; } - const QDir databaseDirectory(databaseDirectoryPath); - const QDir databaseTestBackupDirectory(databaseTestBackupDirectoryPath); - const QDir databaseWorkingBackupDirectory(databaseWorkingBackupDirectoryPath); - - auto removeDatabaseFiles = [](const QDir &dir) { - return std::all_of(databaseFiles.begin(), databaseFiles.cend(), [&dir](const QString &fileName) { - const auto filePath = dir.filePath(fileName); - return !QFile::exists(filePath) || QFile::remove(filePath); - }); - }; - - auto copyDatabaseFiles = [removeDatabaseFiles](const QDir &fromDir, const QDir &toDir) { - return removeDatabaseFiles(toDir) && std::all_of(databaseFiles.begin(), databaseFiles.cend(), [&fromDir, &toDir](const QString &fileName) { - const auto fromFilePath = fromDir.filePath(fileName); - const auto toFilePath = toDir.filePath(fileName); - return QFile::copy(fromFilePath, toFilePath); - }); - }; - - auto databaseFilesExistIn = [](const QDir &dir) { - return dir.exists() && std::all_of(databaseFiles.begin(), databaseFiles.cend(), [&dir](const QString &fileName) { - const auto filePath = dir.filePath(fileName); - return QFile::exists(filePath); - }); - }; - - // First, let's move the files from `resources-test-backup` to - // `resources-working-backup` (if they exist) - if (databaseFilesExistIn(databaseTestBackupDirectory)) { - qCDebug(KAMD_LOG_RESOURCES) << "Marking the test backup as working..."; - if (copyDatabaseFiles(databaseTestBackupDirectory, databaseWorkingBackupDirectory)) { - removeDatabaseFiles(databaseTestBackupDirectory); - } else { - qCWarning(KAMD_LOG_RESOURCES) << "Marking the test backup as working failed!"; - removeDatabaseFiles(databaseWorkingBackupDirectory); - } + // Testing for kdehome + Kdelibs4Migration migration; + if (!migration.kdeHomeFound()) { + return; } - // Next, copy the current database files to `resources-test-backup` - if (databaseFilesExistIn(databaseDirectory)) { - qCDebug(KAMD_LOG_RESOURCES) << "Creating the backup of the current database..."; - if (!copyDatabaseFiles(databaseDirectory, databaseTestBackupDirectory)) { - qCWarning(KAMD_LOG_RESOURCES) << "Creating the backup of the current database failed!"; - removeDatabaseFiles(databaseTestBackupDirectory); - } + 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/"); - // Now we can try to open the database - d->database = Common::Database::instance(Common::Database::ResourcesDatabase, Common::Database::ReadWrite); + qDebug() << "Creating directory: " << databaseDir; + auto created = QDir().mkpath(databaseDir); - if (d->database) { - qCDebug(KAMD_LOG_RESOURCES) << "Database opened successfully"; - QObject::connect(d->database.get(), &Common::Database::error, [databaseTestBackupDirectory, removeDatabaseFiles](const QSqlError &error) { - const QString errorLog = - QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/kactivitymanagerd/resources/errors.log"); - QFile file(errorLog); - if (file.open(QIODevice::Append)) { - QTextStream out(&file); - out << QDateTime::currentDateTime().toString(Qt::ISODate) << " error: " << error.text() << "\n"; - } else { - qCWarning(KAMD_LOG_RESOURCES) << QDateTime::currentDateTime().toString(Qt::ISODate) << " error: " << error.text(); - } - - removeDatabaseFiles(databaseTestBackupDirectory); - }); - Common::ResourcesDatabaseSchema::initSchema(*d->database); - - } else { - // The current database can not be opened, delete the - // backup we just created - removeDatabaseFiles(databaseTestBackupDirectory); - - if (databaseFilesExistIn(databaseWorkingBackupDirectoryPath)) { - qCWarning(KAMD_LOG_RESOURCES) << "The database seems to be corrupted, trying to load the latest working version"; - - const auto success = copyDatabaseFiles(databaseWorkingBackupDirectory, databaseDirectory); - - if (success && retryOnFail) { - // Avoid infinite recursion - initDatabase(false); - } - - } else { - qCWarning(KAMD_LOG_RESOURCES) << "The database might be corrupted and there is no working backup"; - } + if (!created || !QDir(databaseDir).exists()) { + qWarning() << "Database folder can not be created!"; } -} -ResourcesDatabaseInitializer::ResourcesDatabaseInitializer() -{ - initDatabase(true); + 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); } -ResourcesDatabaseInitializer::~ResourcesDatabaseInitializer() +ResourcesDatabaseMigrator::~ResourcesDatabaseMigrator() { } + diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/Database.h kactivitymanagerd-5.12.8/src/service/plugins/sqlite/Database.h --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/Database.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/Database.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,17 +1,30 @@ /* - * SPDX-FileCopyrightText: 2011, 2012 Ivan Cukic + * Copyright (C) 2011, 2012 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 #include #include @@ -19,32 +32,33 @@ #include // Local -#include +#include class QDateTime; +class QSqlDatabase; class QSqlError; -namespace Common -{ -class Database; +namespace Common { + class Database; } // namespace Common -class ResourcesDatabaseInitializer -{ +class ResourcesDatabaseMigrator : public QObject { + Q_OBJECT + public: // static Database *self(); private: - ResourcesDatabaseInitializer(); - ~ResourcesDatabaseInitializer(); + ResourcesDatabaseMigrator(); + ~ResourcesDatabaseMigrator(); - void initDatabase(bool retryOnFail = true); + void migrateDatabase(const QString &newDatabaseFile) const; D_PTR; - friend Common::Database::Ptr resourcesDatabase(); + friend Common::Database &resourcesDatabase(); }; -Common::Database::Ptr resourcesDatabase(); +Common::Database &resourcesDatabase(); #endif // PLUGINS_SQLITE_RESOURCESDATABASE_H diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json kactivitymanagerd-5.12.8/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/kactivitymanagerd-plugin-sqlite.json 2019-03-05 12:13:01.000000000 +0000 @@ -4,7 +4,7 @@ { "Email": "ivan.cukic@kde.org", "Name": "Ivan Cukic", - "Name[az]": "Ivan Cukic", + "Name[ast]": "Ivan Cukic", "Name[ca@valencia]": "Ivan Cukic", "Name[ca]": "Ivan Cukic", "Name[cs]": "Ivan Cukic", @@ -19,17 +19,14 @@ "Name[fr]": "Ivan Cukic", "Name[gl]": "Ivan Cukic", "Name[hu]": "Ivan Cukic", - "Name[ia]": "Ivan Cukic", "Name[id]": "Ivan Cukic", "Name[it]": "Ivan Cukic", "Name[ko]": "Ivan Cukic", - "Name[lt]": "Ivan Cukic", "Name[nl]": "Ivan Cukic", "Name[nn]": "Ivan Čukić", "Name[pl]": "Ivan Cukic", "Name[pt]": "Ivan Cukic", "Name[pt_BR]": "Ivan Cukic", - "Name[ro]": "Ivan Cukic", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Cukic", "Name[sl]": "Ivan Cukic", @@ -48,9 +45,8 @@ "Category": "", "Dependencies": [], "Description": "Plugin to store and score events in SQLite", - "Description[az]": "SQLite-da hadisələri qiymətləndirmək və saxlamaq üçün modul", - "Description[ca@valencia]": "Connector per a emmagatzemar i classificar esdeveniments en el SQLite", - "Description[ca]": "Connector per a emmagatzemar i classificar esdeveniments en el SQLite", + "Description[ca@valencia]": "Connector per emmagatzemar i classificar esdeveniments en el SQLite", + "Description[ca]": "Connector per emmagatzemar i classificar esdeveniments en el SQLite", "Description[da]": "Plugin til at gemme og score hændelser i SQLite", "Description[de]": "Modul zum Speichern und Bewerten von Ereignissen in SQLite", "Description[el]": "Πρόσθετο αποθήκευσης και υπολογισμού γεγονότων στο Sqlite", @@ -62,17 +58,14 @@ "Description[fr]": "Module pour enregistrer et marquer les évènements dans SQLite", "Description[gl]": "Un complemento para gardar e cualificar eventos en SQLite.", "Description[hu]": "Bővítmény események tárolásához és pontozásához SQLite-ban", - "Description[ia]": "Plugin pro immagazinar e dar punctos a eventos in Sqlite", "Description[id]": "Plugin untuk menyimpan dan menilai peristiwa dalam SQLite", "Description[it]": "Estensione per memorizzare e valutare gli eventi in SQLite", "Description[ko]": "SQLite에 이벤트를 저장하는 플러그인", - "Description[lt]": "Priedas, skirtas laikyti ir vertinti įvykius esančius SQLite", "Description[nl]": "Plug-in om gebeurtenissen in SQLite op te slaan en van een score te voorzien", "Description[nn]": "Programtillegg for å lagra og skåra hendingar i 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[ro]": "Extensie pentru stocarea și evaluarea evenimentelor în SQLite", "Description[ru]": "Модуль для сохранения и оценки событий в SQLite", "Description[sk]": "Plugin na uloženie a bodovanie udalosti v SQLite", "Description[sl]": "Vstavek za shranjevanje in označevanje dogodkov v SQLite", @@ -84,16 +77,15 @@ "Description[tr]": "SQLite'da olayları saklamak ve puanlamak için eklenti", "Description[uk]": "Додаток для зберігання і оцінки подій у SQLite", "Description[x-test]": "xxPlugin to store and score events in SQLitexx", - "Description[zh_CN]": "使用 SQLite 存储事件和为事件打分的插件", + "Description[zh_CN]": "使用 SQLITE 存储和打分事件的插件", "Description[zh_TW]": "在 SQLite 中儲存並評分事件", "EnabledByDefault": true, "Icon": "server-database", "Id": "org.kde.ActivityManager.ResourceScoring", "License": "GPL", "Name": "SQLite Feeder", - "Name[az]": "SQLite üçün məlumat təhcizatçısı", "Name[ca@valencia]": "Alimentador del Sqlite", - "Name[ca]": "Alimentador del SQLite", + "Name[ca]": "Alimentador del Sqlite", "Name[da]": "SQLite-feeder", "Name[de]": "Sqlite-Modul", "Name[el]": "Τροφοδότης Sqlite", @@ -105,17 +97,14 @@ "Name[fr]": "Alimenter SQLite", "Name[gl]": "Alimentador de SQLite", "Name[hu]": "SQLite Feeder", - "Name[ia]": "Syndacation de Sqlite", "Name[id]": "SQLite Feeder", "Name[it]": "Fornitore per SQLite", "Name[ko]": "SQLite 공급자", - "Name[lt]": "SQLite padaviklis", "Name[nl]": "SQLite-feeder", "Name[nn]": "SQLite-matar", "Name[pl]": "Podajnik SQLite", "Name[pt]": "Fonte de SQLite", "Name[pt_BR]": "Fonte de notícias do SQLite", - "Name[ro]": "Furnizor SQLite", "Name[ru]": "Поставщик данных для SQLite", "Name[sk]": "Podávač SQLite", "Name[sl]": "Podajalnik SQLite", @@ -127,13 +116,13 @@ "Name[tr]": "SQLite Besleyici", "Name[uk]": "Передавання даних SQLite", "Name[x-test]": "xxSQLite Feederxx", - "Name[zh_CN]": "SQLite 送料机", + "Name[zh_CN]": "SQLITE 存储", "Name[zh_TW]": "SQLite Feeder", "ServiceTypes": [ "ActivityManager/Plugin" ], "Version": "1.0", - "Website": "https://kde.org/plasma-desktop" + "Website": "http://plasma.kde.org/" }, "X-KActivityManager-PluginOverrides": "kactivitymanagerd_plugin_dummy" } diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceLinking.cpp kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceLinking.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceLinking.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceLinking.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,20 +1,33 @@ /* - * SPDX-FileCopyrightText: 2011, 2012, 2013, 2014, 2015 Ivan Cukic + * Copyright (C) 2011, 2012, 2013, 2014, 2015 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 "ResourceLinking.h" #include +#include "ResourceLinking.h" // Qt -#include #include #include // KDE #include +#include #include // Boost @@ -22,34 +35,41 @@ #include // Local +#include "Debug.h" #include "Database.h" -#include "DebugResources.h" -#include "StatsPlugin.h" #include "Utils.h" +#include "StatsPlugin.h" #include "resourcelinkingadaptor.h" ResourceLinking::ResourceLinking(QObject *parent) : QObject(parent) { new ResourcesLinkingAdaptor(this); - QDBusConnection::sessionBus().registerObject(QStringLiteral("/ActivityManager/Resources/Linking"), 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))); + 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) +void ResourceLinking::LinkResourceToActivity(QString initiatingAgent, + QString targettedResource, + QString usedActivity) { - qCDebug(KAMD_LOG_RESOURCES) << "Linking " << targettedResource << " to " << usedActivity << " from " << initiatingAgent; + qDebug() << "Linking " << targettedResource << " to " << usedActivity << " from " << initiatingAgent; if (!validateArguments(initiatingAgent, targettedResource, usedActivity)) { - qCWarning(KAMD_LOG_RESOURCES) << "Invalid arguments" << initiatingAgent << targettedResource << usedActivity; + qWarning() << "Invalid arguments" << initiatingAgent + << targettedResource << usedActivity; return; } @@ -57,152 +77,167 @@ usedActivity = ":global"; } - Q_ASSERT_X(!initiatingAgent.isEmpty(), "ResourceLinking::LinkResourceToActivity", "Agent should not be empty"); - Q_ASSERT_X(!usedActivity.isEmpty(), "ResourceLinking::LinkResourceToActivity", "Activity should not be empty"); - Q_ASSERT_X(!targettedResource.isEmpty(), "ResourceLinking::LinkResourceToActivity", "Resource should 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(*resourcesDatabase(), - Utils::FailOnError, - *linkResourceToActivityQuery, - ":usedActivity", - usedActivity, - ":initiatingAgent", - initiatingAgent, - ":targettedResource", - targettedResource); + 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()) { - // qCDebug(KAMD_LOG_RESOURCES) << "Sending link event added: activities:/" << usedActivity; - org::kde::KDirNotify::emitFilesAdded(QUrl(QStringLiteral("activities:/") + usedActivity)); + // qDebug() << "Sending link event added: activities:/" << usedActivity; + org::kde::KDirNotify::emitFilesAdded(QUrl(QStringLiteral("activities:/") + + usedActivity)); if (usedActivity == StatsPlugin::self()->currentActivity()) { - // qCDebug(KAMD_LOG_RESOURCES) << "Sending link event added: activities:/current"; - org::kde::KDirNotify::emitFilesAdded(QUrl(QStringLiteral("activities:/current"))); + // qDebug() << "Sending link event added: activities:/current"; + org::kde::KDirNotify::emitFilesAdded( + QUrl(QStringLiteral("activities:/current"))); } } - emit ResourceLinkedToActivity(initiatingAgent, targettedResource, usedActivity); + emit ResourceLinkedToActivity(initiatingAgent, targettedResource, + usedActivity); } -void ResourceLinking::UnlinkResourceFromActivity(QString initiatingAgent, QString targettedResource, QString usedActivity) +void ResourceLinking::UnlinkResourceFromActivity(QString initiatingAgent, + QString targettedResource, + QString usedActivity) { - // qCDebug(KAMD_LOG_RESOURCES) << "Unlinking " << targettedResource << " from " << usedActivity << " from " << initiatingAgent; + // qDebug() << "Unlinking " << targettedResource << " from " << usedActivity << " from " << initiatingAgent; if (!validateArguments(initiatingAgent, targettedResource, usedActivity)) { - qCWarning(KAMD_LOG_RESOURCES) << "Invalid arguments" << initiatingAgent << targettedResource << usedActivity; + qWarning() << "Invalid arguments" << initiatingAgent + << targettedResource << usedActivity; return; } - Q_ASSERT_X(!initiatingAgent.isEmpty(), "ResourceLinking::UnlinkResourceFromActivity", "Agent should not be empty"); - Q_ASSERT_X(!usedActivity.isEmpty(), "ResourceLinking::UnlinkResourceFromActivity", "Activity should not be empty"); - Q_ASSERT_X(!targettedResource.isEmpty(), "ResourceLinking::UnlinkResourceFromActivity", "Resource should not be empty"); + 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"); QSqlQuery *query = nullptr; if (usedActivity == ":any") { - Utils::prepare(*resourcesDatabase(), - unlinkResourceFromAllActivitiesQuery, - QStringLiteral("DELETE FROM ResourceLink " - "WHERE " - "initiatingAgent = COALESCE(:initiatingAgent , '') AND " - "(targettedResource = COALESCE(:targettedResource, '') OR " - "(initiatingAgent = 'org.kde.plasma.favorites.applications' " - "AND targettedResource = 'applications:' || COALESCE(:targettedResource, '')))")); + Utils::prepare(resourcesDatabase(), unlinkResourceFromAllActivitiesQuery, + QStringLiteral( + "DELETE FROM ResourceLink " + "WHERE " + "initiatingAgent = COALESCE(:initiatingAgent , '') AND " + "targettedResource = COALESCE(:targettedResource, '') " + )); query = unlinkResourceFromAllActivitiesQuery.get(); } else { - Utils::prepare(*resourcesDatabase(), - unlinkResourceFromActivityQuery, - QStringLiteral("DELETE FROM ResourceLink " - "WHERE " - "usedActivity = COALESCE(:usedActivity , '') AND " - "initiatingAgent = COALESCE(:initiatingAgent , '') AND " - "(targettedResource = COALESCE(:targettedResource, '') OR " - "(initiatingAgent = 'org.kde.plasma.favorites.applications'" - "AND targettedResource = 'applications:' || COALESCE(:targettedResource, '')))")); + Utils::prepare(resourcesDatabase(), unlinkResourceFromActivityQuery, + QStringLiteral( + "DELETE FROM ResourceLink " + "WHERE " + "usedActivity = COALESCE(:usedActivity , '') AND " + "initiatingAgent = COALESCE(:initiatingAgent , '') AND " + "targettedResource = COALESCE(:targettedResource, '') " + )); query = unlinkResourceFromActivityQuery.get(); } - DATABASE_TRANSACTION(*resourcesDatabase()); - // BUG 385814, some existings entries don't have the applications: - // prefix, so we remove it and check in the sql if they match - // TODO Remove when we can expect all users to have a fresher install than 5.18 - if (initiatingAgent == QLatin1String("org.kde.plasma.favorites.applications")) { - targettedResource = targettedResource.remove(QLatin1String("applications:")); - } - Utils::exec(*resourcesDatabase(), - Utils::FailOnError, - *query, - ":usedActivity", - usedActivity, - ":initiatingAgent", - initiatingAgent, - ":targettedResource", - targettedResource); + DATABASE_TRANSACTION(resourcesDatabase()); + + Utils::exec(Utils::FailOnError, *query, + ":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)); + auto mangled = QString::fromLatin1(targettedResource.toUtf8().toBase64( + QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals)); - // qCDebug(KAMD_LOG_RESOURCES) << "Sending link event removed: activities:/" << usedActivity << '/' << mangled; - org::kde::KDirNotify::emitFilesRemoved({QUrl(QStringLiteral("activities:/") + usedActivity + '/' + mangled)}); + // qDebug() << "Sending link event removed: activities:/" << usedActivity << '/' << mangled; + org::kde::KDirNotify::emitFilesRemoved( + { QUrl(QStringLiteral("activities:/") + usedActivity + '/' + mangled) }); if (usedActivity == StatsPlugin::self()->currentActivity()) { - // qCDebug(KAMD_LOG_RESOURCES) << "Sending link event removed: activities:/current/" << mangled; - org::kde::KDirNotify::emitFilesRemoved({QUrl(QStringLiteral("activities:/current/") + mangled)}); + // qDebug() << "Sending link event removed: activities:/current/" << mangled; + org::kde::KDirNotify::emitFilesRemoved({ + QUrl(QStringLiteral("activities:/current/") + mangled) }); } } - emit ResourceUnlinkedFromActivity(initiatingAgent, targettedResource, usedActivity); + emit ResourceUnlinkedFromActivity(initiatingAgent, targettedResource, + usedActivity); } -bool ResourceLinking::IsResourceLinkedToActivity(QString initiatingAgent, QString targettedResource, QString 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 should not be empty"); - Q_ASSERT_X(!usedActivity.isEmpty(), "ResourceLinking::IsResourceLinkedToActivity", "Activity should not be empty"); - Q_ASSERT_X(!targettedResource.isEmpty(), "ResourceLinking::IsResourceLinkedToActivity", "Resource should 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(*resourcesDatabase(), - Utils::FailOnError, - *isResourceLinkedToActivityQuery, - ":usedActivity", - usedActivity, - ":initiatingAgent", - initiatingAgent, - ":targettedResource", - targettedResource); + 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) +bool ResourceLinking::validateArguments(QString &initiatingAgent, + QString &targettedResource, + QString &usedActivity) { // Validating targetted resource if (targettedResource.isEmpty()) { - qCDebug(KAMD_LOG_RESOURCES) << "Resource is invalid -- empty"; + qDebug() << "Resource is invalid -- empty"; return false; } @@ -214,7 +249,7 @@ QFileInfo file(targettedResource); if (!file.exists()) { - qCDebug(KAMD_LOG_RESOURCES) << "Resource is invalid -- the file does not exist"; + qDebug() << "Resource is invalid -- the file does not exist"; return false; } @@ -236,14 +271,17 @@ // If the activity is not empty and the passed activity // does not exist, cancel the request - if (!usedActivity.isEmpty() && usedActivity != ":global" && usedActivity != ":any" && !StatsPlugin::self()->listActivities().contains(usedActivity)) { - qCDebug(KAMD_LOG_RESOURCES) << "Activity is invalid, it does not exist"; + if (!usedActivity.isEmpty() + && usedActivity != ":global" + && usedActivity != ":any" + && !StatsPlugin::self()->listActivities().contains(usedActivity)) { + qDebug() << "Activity is invalid, it does not exist"; return false; } - // qCDebug(KAMD_LOG_RESOURCES) << "agent" << initiatingAgent - // << "resource" << targettedResource - // << "activity" << usedActivity; + // qDebug() << "agent" << initiatingAgent + // << "resource" << targettedResource + // << "activity" << usedActivity; return true; } @@ -253,15 +291,16 @@ Q_UNUSED(activity); // Notify KIO - // qCDebug(KAMD_LOG_RESOURCES) << "Added: activities:/ (" << activity << ")"; + // qDebug() << "Added: activities:/ (" << activity << ")"; org::kde::KDirNotify::emitFilesAdded(QUrl(QStringLiteral("activities:/"))); } void ResourceLinking::onActivityRemoved(const QString &activity) { // Notify KIO - // qCDebug(KAMD_LOG_RESOURCES) << "Removed: activities:/" << activity; - org::kde::KDirNotify::emitFilesRemoved({QUrl(QStringLiteral("activities:/") + activity)}); + // qDebug() << "Removed: activities:/" << activity; + org::kde::KDirNotify::emitFilesRemoved( + { QUrl(QStringLiteral("activities:/") + activity) }); // Remove statistics for the activity } @@ -271,6 +310,7 @@ Q_UNUSED(activity); // Notify KIO - // qCDebug(KAMD_LOG_RESOURCES) << "Changed: activities:/current -> " << activity; - org::kde::KDirNotify::emitFilesAdded({QUrl(QStringLiteral("activities:/current"))}); + // qDebug() << "Changed: activities:/current -> " << activity; + org::kde::KDirNotify::emitFilesAdded( + { QUrl(QStringLiteral("activities:/current")) }); } diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceLinking.h kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceLinking.h --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceLinking.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceLinking.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,18 @@ /* - * SPDX-FileCopyrightText: 2011, 2012, 2013, 2014, 2015 Ivan Cukic + * Copyright (C) 2011, 2012, 2013, 2014, 2015 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 @@ -11,13 +22,14 @@ #include // Boost and STL -#include #include +#include // Local #include class QSqlQuery; +class QFileSystemWatcher; /** * Communication with the outer world. @@ -25,13 +37,12 @@ * - Handles configuration * - Filters the events based on the user's configuration. */ -class ResourceLinking : public QObject -{ +class ResourceLinking : public QObject { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Resources.Linking") public: - explicit ResourceLinking(QObject *parent); + ResourceLinking(QObject *parent); void init(); @@ -47,13 +58,24 @@ * @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()); + 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); + 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); @@ -61,7 +83,8 @@ void onCurrentActivityChanged(const QString &activity); private: - bool validateArguments(QString &initiatingAgent, QString &targettedResource, QString &usedActivity); + bool validateArguments(QString &initiatingAgent, QString &targettedResource, + QString &usedActivity); QString currentActivity() const; diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceScoreCache.cpp kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceScoreCache.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceScoreCache.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceScoreCache.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,12 +1,25 @@ /* - * SPDX-FileCopyrightText: 2011, 2012 Ivan Cukic + * Copyright (C) 2011, 2012 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 "ResourceScoreCache.h" #include +#include "ResourceScoreCache.h" // STD #include @@ -16,57 +29,62 @@ #include // Local -#include "Database.h" -#include "DebugResources.h" +#include "Debug.h" #include "StatsPlugin.h" +#include "Database.h" #include "Utils.h" -class ResourceScoreCache::Queries -{ + +class ResourceScoreCache::Queries { private: Queries() - : createResourceScoreCacheQuery(resourcesDatabase()->createQuery()) - , getResourceScoreCacheQuery(resourcesDatabase()->createQuery()) - , updateResourceScoreCacheQuery(resourcesDatabase()->createQuery()) - , getScoreAdditionQuery(resourcesDatabase()->createQuery()) + : 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")); + + 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: @@ -76,6 +94,7 @@ QSqlQuery getScoreAdditionQuery; static Queries &self(); + }; ResourceScoreCache::Queries &ResourceScoreCache::Queries::self() @@ -84,8 +103,8 @@ return queries; } -class ResourceScoreCache::Private -{ + +class ResourceScoreCache::Private { public: QString activity; QString application; @@ -97,21 +116,30 @@ return std::exp(-days / 32.0); } - inline qreal timeFactor(const QDateTime &fromTime, const QDateTime &toTime) const + inline qreal timeFactor(QDateTime fromTime, QDateTime toTime) const { return timeFactor(fromTime.daysTo(toTime)); } }; -ResourceScoreCache::ResourceScoreCache(const QString &activity, const QString &application, const QString &resource) +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 should not be empty"); - Q_ASSERT_X(!d->activity.isEmpty(), "ResourceScoreCache::constructor", "Activity should not be empty"); - Q_ASSERT_X(!d->resource.isEmpty(), "ResourceScoreCache::constructor", "Resource should not be empty"); + 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() @@ -125,42 +153,36 @@ QDateTime currentTime = QDateTime::currentDateTime(); qreal score = 0; - DATABASE_TRANSACTION(*resourcesDatabase()); + DATABASE_TRANSACTION(resourcesDatabase()); - qCDebug(KAMD_LOG_RESOURCES) << "Creating the cache for: " << d->resource; + qDebug() << "Creating the cache for: " << d->resource; // This can fail if we have the cache already made - auto isCacheNew = Utils::exec(*resourcesDatabase(), - Utils::IgnoreError, - Queries::self().createResourceScoreCacheQuery, - ":usedActivity", - d->activity, - ":initiatingAgent", - d->application, - ":targettedResource", - d->resource, - ":firstUpdate", - currentTime.toSecsSinceEpoch()); + 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(*resourcesDatabase(), - Utils::FailOnError, - Queries::self().getResourceScoreCacheQuery, - ":usedActivity", - d->activity, - ":initiatingAgent", - d->application, - ":targettedResource", - d->resource); + 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.setSecsSinceEpoch(result["lastUpdate"].toUInt()); - firstUpdate.setSecsSinceEpoch(result["firstUpdate"].toUInt()); - - qCDebug(KAMD_LOG_RESOURCES) << "Already in database? " << (!isCacheNew); - qCDebug(KAMD_LOG_RESOURCES) << " First update : " << firstUpdate; - qCDebug(KAMD_LOG_RESOURCES) << " Last update : " << lastUpdate; + 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 @@ -178,62 +200,56 @@ // Calculating the updated score // We are processing all events since the last cache update - qCDebug(KAMD_LOG_RESOURCES) << "After the adjustment"; - qCDebug(KAMD_LOG_RESOURCES) << " Current score : " << score; - qCDebug(KAMD_LOG_RESOURCES) << " First update : " << firstUpdate; - qCDebug(KAMD_LOG_RESOURCES) << " Last update : " << lastUpdate; - - Utils::exec(*resourcesDatabase(), - Utils::FailOnError, - Queries::self().getScoreAdditionQuery, - ":usedActivity", - d->activity, - ":initiatingAgent", - d->application, - ":targettedResource", - d->resource, - ":start", - lastUpdate.toSecsSinceEpoch()); + 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.toSecsSinceEpoch(); + uint lastEventStart = currentTime.toTime_t(); - for (const auto &result : Queries::self().getScoreAdditionQuery) { + for (const auto &result: Queries::self().getScoreAdditionQuery) { lastEventStart = result["start"].toUInt(); const auto end = result["end"].toUInt(); const auto intervalLength = end - lastEventStart; - qCDebug(KAMD_LOG_RESOURCES) << "Interval length is " << intervalLength; + qDebug() << "Interval length is " << intervalLength; if (intervalLength == 0) { // We have an Accessed event - otherwise, this wouldn't be 0 - score += d->timeFactor(QDateTime::fromSecsSinceEpoch(end), currentTime); // like it is open for 1 minute + score += d->timeFactor(QDateTime::fromTime_t(end), currentTime); // like it is open for 1 minute } else { - score += d->timeFactor(QDateTime::fromSecsSinceEpoch(end), currentTime) * intervalLength / 60.0; + score += d->timeFactor(QDateTime::fromTime_t(end), currentTime) * intervalLength / 60.0; + } } - qCDebug(KAMD_LOG_RESOURCES) << " New score : " << score; + qDebug() << " New score : " << score; // Updating the score - Utils::exec(*resourcesDatabase(), - Utils::FailOnError, - Queries::self().updateResourceScoreCacheQuery, - ":usedActivity", - d->activity, - ":initiatingAgent", - d->application, - ":targettedResource", - d->resource, - ":cachedScore", - score, - ":lastUpdate", - lastEventStart); + Utils::exec(Utils::FailOnError, Queries::self().updateResourceScoreCacheQuery, + ":usedActivity", d->activity, + ":initiatingAgent", d->application, + ":targettedResource", d->resource, + ":cachedScore", score, + ":lastUpdate", lastEventStart + ); // Notifying the world - qCDebug(KAMD_LOG_RESOURCES) << "ResourceScoreUpdated:" << d->activity << d->application << d->resource; + qDebug() << "ResourceScoreUpdated:" + << d->activity + << d->application + << d->resource + ; emit QMetaObject::invokeMethod(StatsPlugin::self(), "ResourceScoreUpdated", Qt::QueuedConnection, @@ -242,5 +258,6 @@ Q_ARG(QString, d->resource), Q_ARG(double, score), Q_ARG(uint, lastEventStart), - Q_ARG(uint, firstUpdate.toSecsSinceEpoch())); + Q_ARG(uint, firstUpdate.toTime_t()) + ); } diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceScoreCache.h kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceScoreCache.h --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceScoreCache.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceScoreCache.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,20 @@ /* - * SPDX-FileCopyrightText: 2011, 2012 Ivan Cukic + * Copyright (C) 2011, 2012 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 @@ -19,10 +32,10 @@ * * It contains the logic to update the score of a single resource. */ -class ResourceScoreCache -{ +class ResourceScoreCache { public: - ResourceScoreCache(const QString &activity, const QString &application, const QString &resource); + ResourceScoreCache(const QString &activity, const QString &application, + const QString &resource); virtual ~ResourceScoreCache(); void update(); diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceScoreMaintainer.cpp kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceScoreMaintainer.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceScoreMaintainer.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceScoreMaintainer.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,20 @@ /* - * SPDX-FileCopyrightText: 2011, 2012 Ivan Cukic + * Copyright (C) 2011, 2012 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 @@ -10,27 +23,24 @@ // Qt #include #include +#include + // System #include // Utils -#include #include +#include // Local -#include "ResourceScoreCache.h" #include "StatsPlugin.h" +#include "ResourceScoreCache.h" -class ResourceScoreMaintainer::Private -{ -public: - Private() - { - } +class ResourceScoreMaintainer::Private : public QThread { +public: ~Private(); - typedef QString ApplicationName; typedef QString ActivityID; typedef QList ResourceList; @@ -39,53 +49,66 @@ typedef QHash ResourceTree; ResourceTree scheduledResources; + QMutex scheduledResources_mutex; - void processActivity(const ActivityID &activity, const Applications &applications); - - void processResources(); - - QTimer processResourcesTimer; + void run() Q_DECL_OVERRIDE; + void processActivity(const ActivityID &activity, + const Applications &applications); }; ResourceScoreMaintainer::Private::~Private() { + requestInterruption(); + wait(1500); // Enough time for the sleep(1) + processing in run() } -void ResourceScoreMaintainer::Private::processResources() +void ResourceScoreMaintainer::Private::run() { using namespace kamd::utils; - // initial delay before processing the resources - sleep(1); - - ResourceTree resources; + while (!isInterruptionRequested()) { + // initial delay before processing the resources + sleep(1); + + ResourceTree resources; + + { + QMutexLocker lock(&scheduledResources_mutex); + std::swap(resources, scheduledResources); + } - std::swap(resources, scheduledResources); + const auto activity = StatsPlugin::self()->currentActivity(); - const auto activity = StatsPlugin::self()->currentActivity(); + // Let us first process the events related to the current + // activity so that the stats are available quicker - // 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); + } - 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); + } + ); } - - for_each_assoc(resources, [this](const ActivityID &activity, const Applications &applications) { - processActivity(activity, applications); - }); } -void ResourceScoreMaintainer::Private::processActivity(const ActivityID &activity, const Applications &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(); + for_each_assoc(applications, + [&](const ApplicationName &application, const ResourceList &resources) { + for (const auto &resource : resources) { + ResourceScoreCache(activity, application, resource).update(); + } } - }); + ); } ResourceScoreMaintainer *ResourceScoreMaintainer::self() @@ -95,35 +118,40 @@ } ResourceScoreMaintainer::ResourceScoreMaintainer() + : d() { - d->processResourcesTimer.setInterval(1000); - d->processResourcesTimer.setSingleShot(true); - connect(&d->processResourcesTimer, &QTimer::timeout, this, [=] { - d->processResources(); - }); } ResourceScoreMaintainer::~ResourceScoreMaintainer() { } -void ResourceScoreMaintainer::processResource(const QString &resource, const QString &application) +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 should not be empty"); - Q_ASSERT_X(!resource.isEmpty(), "ResourceScoreMaintainer::processResource", "Resource should not be empty"); + 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) + if (d->scheduledResources.contains(activity) + && d->scheduledResources[activity].contains(application) && d->scheduledResources[activity][application].contains(resource)) { + // Nothing } else { d->scheduledResources[activity][application] << resource; } - d->processResourcesTimer.start(); + d->start(); } diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceScoreMaintainer.h kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceScoreMaintainer.h --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/ResourceScoreMaintainer.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/ResourceScoreMaintainer.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,14 +1,25 @@ /* - * SPDX-FileCopyrightText: 2011, 2012 Ivan Cukic + * Copyright (C) 2011, 2012 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 -#include - // Utils #include @@ -18,12 +29,11 @@ /** * ResourceScoreMaintainer represents a queue of resource processing requests. */ -class ResourceScoreMaintainer : public QObject -{ +class ResourceScoreMaintainer { public: static ResourceScoreMaintainer *self(); - ~ResourceScoreMaintainer() override; + virtual ~ResourceScoreMaintainer(); void processResource(const QString &resource, const QString &application); diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/StatsPlugin.cpp kactivitymanagerd-5.12.8/src/service/plugins/sqlite/StatsPlugin.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/StatsPlugin.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/StatsPlugin.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,20 +1,34 @@ /* - * SPDX-FileCopyrightText: 2011, 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2011, 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 "StatsPlugin.h" #include +#include "StatsPlugin.h" // Qt -#include #include +#include #include // KDE #include +#include #include // Boost @@ -22,29 +36,31 @@ #include // Local -#include "../../Event.h" +#include "Debug.h" #include "Database.h" -#include "ResourceLinking.h" #include "ResourceScoreMaintainer.h" +#include "ResourceLinking.h" #include "Utils.h" -#include "common/specialvalues.h" +#include "../../Event.h" #include "resourcescoringadaptor.h" +#include "common/specialvalues.h" KAMD_EXPORT_PLUGIN(sqliteplugin, StatsPlugin, "kactivitymanagerd-plugin-sqlite.json") -StatsPlugin *StatsPlugin::s_instance = nullptr; +StatsPlugin *StatsPlugin::s_instance = Q_NULLPTR; StatsPlugin::StatsPlugin(QObject *parent, const QVariantList &args) : Plugin(parent) - , m_activities(nullptr) - , m_resources(nullptr) + , m_activities(Q_NULLPTR) + , m_resources(Q_NULLPTR) , m_resourceLinking(new ResourceLinking(this)) { Q_UNUSED(args); s_instance = this; new ResourcesScoringAdaptor(this); - QDBusConnection::sessionBus().registerObject(QStringLiteral("/ActivityManager/Resources/Scoring"), this); + KDBusConnectionPool::threadConnection().registerObject( + QStringLiteral("/ActivityManager/Resources/Scoring"), this); setName(QStringLiteral("org.kde.ActivityManager.Resources.Scoring")); } @@ -53,20 +69,23 @@ { Plugin::init(modules); - if (!resourcesDatabase()) { - return false; - } - m_activities = modules[QStringLiteral("activities")]; m_resources = modules[QStringLiteral("resources")]; m_resourceLinking->init(); - 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))); + // 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())); + connect(modules[QStringLiteral("config")], SIGNAL(pluginConfigChanged()), + this, SLOT(loadConfiguration())); loadConfiguration(); @@ -78,16 +97,21 @@ auto conf = config(); conf.config()->reparseConfiguration(); - const QString configFile = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + QStringLiteral("kactivitymanagerd-pluginsrc"); + 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_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()); + auto apps = conf.readEntry( + m_blockedByDefault ? "allowed-applications" : "blocked-applications", + QStringList()); m_apps.insert(apps.cbegin(), apps.cend()); } @@ -97,19 +121,20 @@ // 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); + 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 - ); + QStringList() << "about:*" // Ignore about: stuff + << "*/.*" // Ignore hidden files + << "/" // Ignore root + << "/tmp/*" // Ignore everything in /tmp + ); - for (const auto &filter : filters) { + for (const auto& filter: filters) { m_urlFilters << Common::starPatternToRegex(filter); } @@ -128,73 +153,75 @@ const QDateTime &start, const QDateTime &end) { - Q_ASSERT_X(!initiatingAgent.isEmpty(), "StatsPlugin::openResourceEvent", "Agent should not be empty"); - Q_ASSERT_X(!usedActivity.isEmpty(), "StatsPlugin::openResourceEvent", "Activity should not be empty"); - Q_ASSERT_X(!targettedResource.isEmpty(), "StatsPlugin::openResourceEvent", "Resource should not be empty"); + 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(*resourcesDatabase(), - Utils::FailOnError, - *openResourceEventQuery, - ":usedActivity", - usedActivity, - ":initiatingAgent", - initiatingAgent, - ":targettedResource", - targettedResource, - ":start", - start.toSecsSinceEpoch(), - ":end", - (end.isNull()) ? QVariant() : end.toSecsSinceEpoch()); -} - -void StatsPlugin::closeResourceEvent(const QString &usedActivity, const QString &initiatingAgent, const QString &targettedResource, const QDateTime &end) -{ - Q_ASSERT_X(!initiatingAgent.isEmpty(), "StatsPlugin::closeResourceEvent", "Agent should not be empty"); - Q_ASSERT_X(!usedActivity.isEmpty(), "StatsPlugin::closeResourceEvent", "Activity should not be empty"); - Q_ASSERT_X(!targettedResource.isEmpty(), "StatsPlugin::closeResourceEvent", "Resource should 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(*resourcesDatabase(), - Utils::FailOnError, - *closeResourceEventQuery, - ":usedActivity", - usedActivity, - ":initiatingAgent", - initiatingAgent, - ":targettedResource", - targettedResource, - ":end", - end.toSecsSinceEpoch()); + 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) { const QUrl uri = QUrl::fromUserInput(_uri); - if (!uri.isLocalFile()) - return; + if (!uri.isLocalFile()) return; const QString file = uri.toLocalFile(); - if (!QFile::exists(file)) - return; + if (!QFile::exists(file)) return; KFileItem item(uri); @@ -208,89 +235,88 @@ bool StatsPlugin::insertResourceInfo(const QString &uri) { - Utils::prepare(*resourcesDatabase(), - getResourceInfoQuery, - QStringLiteral("SELECT targettedResource FROM ResourceInfo WHERE " - " targettedResource = :targettedResource ")); + + Utils::prepare(resourcesDatabase(), getResourceInfoQuery, QStringLiteral( + "SELECT targettedResource FROM ResourceInfo WHERE " + " targettedResource = :targettedResource " + )); getResourceInfoQuery->bindValue(":targettedResource", uri); - Utils::exec(*resourcesDatabase(), Utils::FailOnError, *getResourceInfoQuery); + 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::prepare(resourcesDatabase(), insertResourceInfoQuery, QStringLiteral( + "INSERT INTO ResourceInfo( " + " targettedResource" + ", title" + ", autoTitle" + ", mimetype" + ", autoMimetype" + ") VALUES (" + " :targettedResource" + ", '' " + ", 1 " + ", '' " + ", 1 " + ")" + )); - Utils::exec(*resourcesDatabase(), Utils::FailOnError, *insertResourceInfoQuery, ":targettedResource", uri); + Utils::exec(Utils::FailOnError, *insertResourceInfoQuery, + ":targettedResource", uri + ); return true; } -void StatsPlugin::saveResourceTitle(const QString &uri, const QString &title, bool autoTitle) +void StatsPlugin::saveResourceTitle(const QString &uri, const QString &title, + bool autoTitle) { insertResourceInfo(uri); - DATABASE_TRANSACTION(*resourcesDatabase()); + DATABASE_TRANSACTION(resourcesDatabase()); + + Utils::prepare(resourcesDatabase(), saveResourceTitleQuery, QStringLiteral( + "UPDATE ResourceInfo SET " + " title = :title" + ", autoTitle = :autoTitle " + "WHERE " + "targettedResource = :targettedResource " + )); - Utils::prepare(*resourcesDatabase(), - saveResourceTitleQuery, - QStringLiteral("UPDATE ResourceInfo SET " - " title = :title" - ", autoTitle = :autoTitle " - "WHERE " - "targettedResource = :targettedResource ")); - - Utils::exec(*resourcesDatabase(), - Utils::FailOnError, - *saveResourceTitleQuery, - ":targettedResource", - uri, - ":title", - title, - ":autoTitle", - (autoTitle ? "1" : "0")); + Utils::exec(Utils::FailOnError, *saveResourceTitleQuery, + ":targettedResource" , uri , + ":title" , title , + ":autoTitle" , (autoTitle ? "1" : "0") + ); } -void StatsPlugin::saveResourceMimetype(const QString &uri, const QString &mimetype, bool autoMimetype) +void StatsPlugin::saveResourceMimetype(const QString &uri, + const QString &mimetype, + bool autoMimetype) { insertResourceInfo(uri); - DATABASE_TRANSACTION(*resourcesDatabase()); + DATABASE_TRANSACTION(resourcesDatabase()); - Utils::prepare(*resourcesDatabase(), - saveResourceMimetypeQuery, - QStringLiteral("UPDATE ResourceInfo SET " - " mimetype = :mimetype" - ", autoMimetype = :autoMimetype " - "WHERE " - "targettedResource = :targettedResource ")); - - Utils::exec(*resourcesDatabase(), - Utils::FailOnError, - *saveResourceMimetypeQuery, - ":targettedResource", - uri, - ":mimetype", - mimetype, - ":autoMimetype", - (autoMimetype ? "1" : "0")); + 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; @@ -298,8 +324,8 @@ bool StatsPlugin::acceptedEvent(const Event &event) { - using std::any_of; using std::bind; + using std::any_of; using namespace std::placeholders; return !( @@ -310,13 +336,17 @@ 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)) || + 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))); + (m_whatToRemember == SpecificApplications + && m_blockedByDefault + != boost::binary_search(m_apps, event.application)) + ); } Event StatsPlugin::validateEvent(Event event) @@ -336,14 +366,18 @@ QStringList StatsPlugin::listActivities() const { - return Plugin::retrieve(m_activities, "ListActivities", "QStringList"); + return Plugin::retrieve( + m_activities, "ListActivities", "QStringList"); } QString StatsPlugin::currentActivity() const { - return Plugin::retrieve(m_activities, "CurrentActivity", "QString"); + return Plugin::retrieve( + m_activities, "CurrentActivity", "QString"); } + + void StatsPlugin::addEvents(const EventList &events) { using namespace kamd::utils; @@ -352,100 +386,122 @@ return; } - const auto &eventsToProcess = events | transformed(&StatsPlugin::validateEvent, this) | filtered(&StatsPlugin::acceptedEvent, this); + const auto &eventsToProcess = + events | transformed(&StatsPlugin::validateEvent, this) + | filtered(&StatsPlugin::acceptedEvent, this); - if (eventsToProcess.begin() == eventsToProcess.end()) - return; + if (eventsToProcess.begin() == eventsToProcess.end()) return; - DATABASE_TRANSACTION(*resourcesDatabase()); + 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; + 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) +void StatsPlugin::DeleteRecentStats(const QString &activity, int count, + const QString &what) { - const auto usedActivity = activity.isEmpty() ? QVariant() : QVariant(activity); + 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()); + 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(); + auto removeEventsQuery = resourcesDatabase().createQuery(); removeEventsQuery.prepare( - "DELETE FROM ResourceEvent " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity)"); + "DELETE FROM ResourceEvent " + "WHERE usedActivity = COALESCE(:usedActivity, usedActivity)" + ); - auto removeScoreCachesQuery = resourcesDatabase()->createQuery(); + auto removeScoreCachesQuery = resourcesDatabase().createQuery(); removeScoreCachesQuery.prepare( - "DELETE FROM ResourceScoreCache " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity)"); + "DELETE FROM ResourceScoreCache " + "WHERE usedActivity = COALESCE(:usedActivity, usedActivity)"); - Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeEventsQuery, ":usedActivity", usedActivity); - Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeScoreCachesQuery, ":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; + : (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(); + auto removeEventsQuery = resourcesDatabase().createQuery(); removeEventsQuery.prepare( - "DELETE FROM ResourceEvent " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " - "AND end > :since"); + "DELETE FROM ResourceEvent " + "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " + "AND end > :since" + ); - auto removeScoreCachesQuery = resourcesDatabase()->createQuery(); + auto removeScoreCachesQuery = resourcesDatabase().createQuery(); removeScoreCachesQuery.prepare( - "DELETE FROM ResourceScoreCache " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " - "AND firstUpdate > :since"); - - Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeEventsQuery, ":usedActivity", usedActivity, ":since", since.toSecsSinceEpoch()); - - Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeScoreCachesQuery, ":usedActivity", usedActivity, ":since", since.toSecsSinceEpoch()); + "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); @@ -459,65 +515,96 @@ // Deleting a specified length of time - DATABASE_TRANSACTION(*resourcesDatabase()); + DATABASE_TRANSACTION(resourcesDatabase()); const auto time = QDateTime::currentDateTime().addMonths(-months); - const auto usedActivity = activity.isEmpty() ? QVariant() : QVariant(activity); + const auto usedActivity = activity.isEmpty() ? QVariant() + : QVariant(activity); - auto removeEventsQuery = resourcesDatabase()->createQuery(); + auto removeEventsQuery = resourcesDatabase().createQuery(); removeEventsQuery.prepare( - "DELETE FROM ResourceEvent " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " - "AND start < :time"); + "DELETE FROM ResourceEvent " + "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " + "AND start < :time" + ); - auto removeScoreCachesQuery = resourcesDatabase()->createQuery(); + auto removeScoreCachesQuery = resourcesDatabase().createQuery(); removeScoreCachesQuery.prepare( - "DELETE FROM ResourceScoreCache " - "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " - "AND lastUpdate < :time"); - - Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeEventsQuery, ":usedActivity", usedActivity, ":time", time.toSecsSinceEpoch()); + "DELETE FROM ResourceScoreCache " + "WHERE usedActivity = COALESCE(:usedActivity, usedActivity) " + "AND lastUpdate < :time"); - Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeScoreCachesQuery, ":usedActivity", usedActivity, ":time", time.toSecsSinceEpoch()); + 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 should not be empty"); - Q_ASSERT_X(!activity.isEmpty(), "StatsPlugin::DeleteStatsForResource", "Activity should not be empty"); - Q_ASSERT_X(!resource.isEmpty(), "StatsPlugin::DeleteStatsForResource", "Resource should not be empty"); - Q_ASSERT_X(client != CURRENT_AGENT_TAG, "StatsPlugin::DeleteStatsForResource", "We can not handle CURRENT_AGENT_TAG here"); +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()); + DATABASE_TRANSACTION(resourcesDatabase()); // Check against sql injection - if (activity.contains('\'') || client.contains('\'')) - return; + 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); + 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(); + auto removeEventsQuery = resourcesDatabase().createQuery(); removeEventsQuery.prepare( - "DELETE FROM ResourceEvent " - "WHERE " - + activityFilter + " AND " + clientFilter + " AND " + "targettedResource LIKE :targettedResource ESCAPE '\\'"); + "DELETE FROM ResourceEvent " + "WHERE " + + activityFilter + " AND " + + clientFilter + " AND " + + "targettedResource LIKE :targettedResource ESCAPE '\\'" + ); - auto removeScoreCachesQuery = resourcesDatabase()->createQuery(); + auto removeScoreCachesQuery = resourcesDatabase().createQuery(); removeScoreCachesQuery.prepare( - "DELETE FROM ResourceScoreCache " - "WHERE " - + activityFilter + " AND " + clientFilter + " AND " + "targettedResource LIKE :targettedResource ESCAPE '\\'"); + "DELETE FROM ResourceScoreCache " + "WHERE " + + activityFilter + " AND " + + clientFilter + " AND " + + "targettedResource LIKE :targettedResource ESCAPE '\\'" + ); const auto pattern = Common::starPatternToLike(resource); - Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeEventsQuery, ":targettedResource", pattern); + Utils::exec(Utils::FailOnError, removeEventsQuery, + ":targettedResource", pattern); - Utils::exec(*resourcesDatabase(), Utils::FailOnError, removeScoreCachesQuery, ":targettedResource", pattern); + Utils::exec(Utils::FailOnError, removeScoreCachesQuery, + ":targettedResource", pattern); emit ResourceScoreDeleted(activity, client, resource); } @@ -525,13 +612,12 @@ bool StatsPlugin::isFeatureOperational(const QStringList &feature) const { if (feature[0] == "isOTR") { - if (feature.size() != 2) - return true; + if (feature.size() != 2) return true; const auto activity = feature[1]; - return activity == "activity" // - || activity == "current" // + return activity == "activity" + || activity == "current" || listActivities().contains(activity); return true; @@ -579,8 +665,7 @@ QDBusVariant StatsPlugin::featureValue(const QStringList &feature) const { if (feature[0] == "isOTR") { - if (feature.size() != 2) - return QDBusVariant(false); + if (feature.size() != 2) return QDBusVariant(false); auto activity = feature[1]; @@ -592,13 +677,13 @@ } return QDBusVariant(false); + } void StatsPlugin::setFeatureValue(const QStringList &feature, const QDBusVariant &value) { if (feature[0] == "isOTR") { - if (feature.size() != 2) - return; + if (feature.size() != 2) return; auto activity = feature[1]; @@ -613,6 +698,7 @@ } else if (!isOTR && m_otrActivities.contains(activity)) { m_otrActivities.removeAll(activity); + } config().writeEntry("off-the-record-activities", m_otrActivities); @@ -620,10 +706,11 @@ } } + QStringList StatsPlugin::listFeatures(const QStringList &feature) const { if (feature.isEmpty() || feature[0].isEmpty()) { - return {"isOTR/"}; + return { "isOTR/" }; } else if (feature[0] == "isOTR") { return listActivities(); @@ -633,3 +720,4 @@ } #include "StatsPlugin.moc" + diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/StatsPlugin.h kactivitymanagerd-5.12.8/src/service/plugins/sqlite/StatsPlugin.h --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/StatsPlugin.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/StatsPlugin.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,18 @@ /* - * SPDX-FileCopyrightText: 2011, 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2011, 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 @@ -9,16 +20,17 @@ // Qt #include -#include #include // Boost and STL -#include #include +#include // Local #include +class QSqlQuery; +class QFileSystemWatcher; class ResourceLinking; /** @@ -27,55 +39,61 @@ * - Handles configuration * - Filters the events based on the user's configuration. */ -class StatsPlugin : public Plugin -{ +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 = nullptr, const QVariantList &args = QVariantList()); + explicit StatsPlugin(QObject *parent = Q_NULLPTR, + const QVariantList &args = QVariantList()); static StatsPlugin *self(); - bool init(QHash &modules) override; + 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 override; - QStringList listFeatures(const QStringList &feature) const override; - - QDBusVariant featureValue(const QStringList &property) const override; - void setFeatureValue(const QStringList &property, const QDBusVariant &value) override; - - // - // D-BUS Interface methods - // + 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 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); + 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 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 RecentStatsDeleted(const QString &activity, int count, + const QString &what); void EarlierStatsDeleted(const QString &activity, int months); - // - // End D-BUS Interface methods - // +// +// End D-BUS Interface methods +// + private Q_SLOTS: void addEvents(const EventList &events); @@ -87,10 +105,15 @@ 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); + 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); @@ -100,10 +123,11 @@ inline bool acceptedEvent(const Event &event); inline Event validateEvent(Event event); + enum WhatToRemember { AllApplications = 0, SpecificApplications = 1, - NoApplications = 2, + NoApplications = 2 }; QObject *m_activities; diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/sqlite/Utils.h kactivitymanagerd-5.12.8/src/service/plugins/sqlite/Utils.h --- kactivitymanagerd-5.22.4/src/service/plugins/sqlite/Utils.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/sqlite/Utils.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,75 +1,85 @@ /* - * SPDX-FileCopyrightText: 2014 Ivan Cukic + * Copyright (C) 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 #include #include -#include "DebugResources.h" +namespace Utils { -namespace Utils -{ -static unsigned int errorCount = 0; - -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; - } + static unsigned int errorCount = 0; - query.reset(new QSqlQuery(database.createQuery())); + inline bool prepare(Common::Database &database, + QSqlQuery &query, + const QString &queryString) + { + Q_UNUSED(database); - return prepare(database, *query, queryString); -} + return query.prepare(queryString); + } -enum ErrorHandling { - IgnoreError, - FailOnError, -}; - -inline bool exec(Common::Database &database, ErrorHandling eh, QSqlQuery &query) -{ - bool success = query.exec(); - - if (eh == FailOnError) { - if ((!success) && (errorCount++ < 2)) { - qCWarning(KAMD_LOG_RESOURCES) << query.lastQuery(); - qCWarning(KAMD_LOG_RESOURCES) << query.lastError(); - KCrash::setErrorMessage(query.lastError().text()); + inline bool prepare(Common::Database &database, + std::unique_ptr &query, + const QString &queryString) + { + if (query) { + return true; } - Q_ASSERT_X(success, "Uils::exec", qPrintable(QStringLiteral("Query failed:") + query.lastError().text())); - if (!success) { - database.reportError(query.lastError()); - } + query.reset(new QSqlQuery(database.createQuery())); + + return prepare(database, *query, queryString); } - return success; -} + enum ErrorHandling { + IgnoreError, + FailOnError + }; + + inline bool exec(ErrorHandling eh, QSqlQuery &query) + { + bool success = query.exec(); + + if (eh == FailOnError) { + if ((!success) && (errorCount++ < 2)) { + qDebug() << query.lastQuery(); + qDebug() << query.lastError(); + } + Q_ASSERT_X(success, "Uils::exec", "Query failed"); + } -template -inline bool exec(Common::Database &database, ErrorHandling eh, QSqlQuery &query, const T1 &variable, const T2 &value, Ts... ts) -{ - query.bindValue(variable, value); + return success; + } - return exec(database, eh, query, ts...); -} + 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 kactivitymanagerd-5.22.4/src/service/plugins/virtualdesktopswitch/CMakeLists.txt kactivitymanagerd-5.12.8/src/service/plugins/virtualdesktopswitch/CMakeLists.txt --- kactivitymanagerd-5.22.4/src/service/plugins/virtualdesktopswitch/CMakeLists.txt 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/virtualdesktopswitch/CMakeLists.txt 2019-03-05 12:13:01.000000000 +0000 @@ -2,6 +2,15 @@ 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 @@ -17,8 +26,8 @@ target_link_libraries ( kactivitymanagerd_plugin_virtualdesktopswitch - Qt::Core - Qt::DBus + Qt5::Core + Qt5::DBus KF5::ConfigCore KF5::WindowSystem KF5::CoreAddons diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json kactivitymanagerd-5.12.8/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json --- kactivitymanagerd-5.22.4/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/virtualdesktopswitch/kactivitymanagerd-plugin-virtualdesktopswitch.json 2019-03-05 12:13:01.000000000 +0000 @@ -4,7 +4,7 @@ { "Email": "ivan.cukic@kde.org", "Name": "Ivan Cukic", - "Name[az]": "Ivan Cukic", + "Name[ast]": "Ivan Cukic", "Name[ca@valencia]": "Ivan Cukic", "Name[ca]": "Ivan Cukic", "Name[cs]": "Ivan Cukic", @@ -19,17 +19,14 @@ "Name[fr]": "Ivan Cukic", "Name[gl]": "Ivan Cukic", "Name[hu]": "Ivan Cukic", - "Name[ia]": "Ivan Cukic", "Name[id]": "Ivan Cukic", "Name[it]": "Ivan Cukic", "Name[ko]": "Ivan Cukic", - "Name[lt]": "Ivan Cukic", "Name[nl]": "Ivan Cukic", "Name[nn]": "Ivan Čukić", "Name[pl]": "Ivan Cukic", "Name[pt]": "Ivan Cukic", "Name[pt_BR]": "Ivan Cukic", - "Name[ro]": "Ivan Cukic", "Name[ru]": "Ivan Čukić", "Name[sk]": "Ivan Cukic", "Name[sl]": "Ivan Cukic", @@ -48,7 +45,6 @@ "Category": "", "Dependencies": [], "Description": "When switching to an activity, opens the virtual desktop last used with that activity", - "Description[az]": "Bu fəaliyyətə keçid zamanı onda ən son aktiv olan iş masasını açır", "Description[ca@valencia]": "En canviar a una activitat, obri el darrer escriptori virtual utilitzat amb aquesta activitat", "Description[ca]": "En canviar a una activitat, obre el darrer escriptori virtual utilitzat amb aquesta activitat", "Description[da]": "Åbner det senest brugte virtuelle skrivebord for aktiviteten ved skift til en aktivitet", @@ -62,17 +58,14 @@ "Description[fr]": "Lors du changement vers une activité, ouvre le bureau virtuel utilisé en dernier avec cette activité", "Description[gl]": "Cando se cambia de actividade abre o último escritorio virtual usado con esa actividade.", "Description[hu]": "Aktivitásra váltáskor megnyitja az aktivitással utoljára használt virtuális asztalt", - "Description[ia]": "Quando on commuta a un activitate, il aperi le ultime scriptorio virtual usate con celle activitate", "Description[id]": "Ketika mengalihkan ke sebuah aktivitas, membukakan desktop virtual yang terakhir digunakan dengan aktivitasnya", "Description[it]": "Quando si passa ad un'attività, apre l'ultimo desktop virtuale usato con quella attività", - "Description[ko]": "활동으로 전환할 때 해당 활동에서 마지막으로 사용한 가상 바탕 화면 열기", - "Description[lt]": "Perjungiant į veiklą, atveria su ta veikla paskiausiai naudotą virtualų darbalaukį", + "Description[ko]": "활동으로 전환할 때 해당 활동에서 마지막으로 사용한 가상 데스크톱 열기", "Description[nl]": "Bij het omschakelen naar een activiteit, opent het virtuele bureaublad dat het laatst werd gebruikt met die activiteit", "Description[nn]": "Ved byte av aktivitet vert det siste brukte virtuelle skrivebordet opna", "Description[pl]": "Po przełączeniu do działania, otwiera wirtualny pulpit ostatnio używany do tego działania", "Description[pt]": "Ao mudar para uma actividade, abre o último ecrã virtual usado por essa actividade", "Description[pt_BR]": "Ao alternar para uma atividade, abre a última área de trabalho virtual usada com esta atividade", - "Description[ro]": "La comutarea la o activitate, deschide biroul virtual folosit ultima dată cu acea activitate", "Description[ru]": "При переключении на комнату открывает виртуальный рабочий стол, бывший активным в ней в последний раз", "Description[sk]": "Pri prepnutí na aktivitu, otvorí virtuálnu plochu naposledy použitú s danou aktivitou.", "Description[sl]": "Ob preklopu na dejavnost odpre navidezno namizje, ki je bilo nazadnje uporabljeno s to dejavnostjo", @@ -91,8 +84,7 @@ "Id": "org.kde.ActivityManager.VirtualDesktopSwitch", "License": "GPL", "Name": "Virtual desktop switcher", - "Name[az]": "Virtual İş Masası çeviricisi", - "Name[ca@valencia]": "Commutador per als escriptoris virtuals", + "Name[ca@valencia]": "Commutador pels escriptoris virtuals", "Name[ca]": "Commutador pels escriptoris virtuals", "Name[cs]": "Přepínač virtuálních ploch", "Name[da]": "Skift mellem virtuelle skriveborde", @@ -109,14 +101,12 @@ "Name[ia]": "Commutator de scriptorio virtual", "Name[id]": "Pengalih desktop virtual", "Name[it]": "Cambiadesktop virtuale", - "Name[ko]": "가상 바탕 화면 전환기", - "Name[lt]": "Virtualių darbalaukių perjungiklis", + "Name[ko]": "가상 데스크톱 전환기", "Name[nl]": "Virtueel bureaublad omschakelaar", "Name[nn]": "Byte mellom virtuelle skrivebord", "Name[pl]": "Przełącznik wirtualnych pulpitów", "Name[pt]": "Mudança de ecrã virtual", "Name[pt_BR]": "Alternador de áreas de trabalho virtuais", - "Name[ro]": "Comutator de birouri virtuale", "Name[ru]": "Переключатель виртуальных рабочих столов", "Name[sk]": "Prepínač virtuálnych plôch", "Name[sl]": "Preklapljanje navideznih namizij", @@ -134,6 +124,6 @@ "ActivityManager/Plugin" ], "Version": "1.0", - "Website": "https://kde.org/plasma-desktop" + "Website": "http://plasma.kde.org/" } } diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.cpp kactivitymanagerd-5.12.8/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.cpp --- kactivitymanagerd-5.22.4/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,12 +1,24 @@ /* - * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 @@ -16,7 +28,7 @@ VirtualDesktopSwitchPlugin::VirtualDesktopSwitchPlugin(QObject *parent, const QVariantList &args) : Plugin(parent) - , m_activitiesService(nullptr) + , m_activitiesService(Q_NULLPTR) { Q_UNUSED(args); @@ -33,10 +45,13 @@ m_activitiesService = modules["activities"]; - m_currentActivity = Plugin::retrieve(m_activitiesService, "CurrentActivity", "QString"); + 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))); + connect(m_activitiesService, SIGNAL(CurrentActivityChanged(QString)), + this, SLOT(currentActivityChanged(QString))); + connect(m_activitiesService, SIGNAL(ActivityRemoved(QString)), + this, SLOT(activityRemoved(QString))); return true; } @@ -47,7 +62,9 @@ return; } - config().writeEntry(configPattern.arg(m_currentActivity), QString::number(KWindowSystem::currentDesktop())); + config().writeEntry( + configPattern.arg(m_currentActivity), + QString::number(KWindowSystem::currentDesktop())); m_currentActivity = activity; @@ -65,3 +82,4 @@ } #include "VirtualDesktopSwitchPlugin.moc" + diff -Nru kactivitymanagerd-5.22.4/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.h kactivitymanagerd-5.12.8/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.h --- kactivitymanagerd-5.22.4/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/plugins/virtualdesktopswitch/VirtualDesktopSwitchPlugin.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,18 @@ /* - * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic + * Copyright (C) 2012, 2013, 2014 Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-or-later + * 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 @@ -9,16 +20,15 @@ #include -class VirtualDesktopSwitchPlugin : public Plugin -{ +class VirtualDesktopSwitchPlugin : public Plugin { Q_OBJECT // Q_PLUGIN_METADATA(IID "org.kde.ActivityManager.plugins.virtualdesktopswitch") public: - explicit VirtualDesktopSwitchPlugin(QObject *parent = nullptr, const QVariantList &args = QVariantList()); - ~VirtualDesktopSwitchPlugin() override; + VirtualDesktopSwitchPlugin(QObject *parent = Q_NULLPTR, const QVariantList &args = QVariantList()); + virtual ~VirtualDesktopSwitchPlugin(); - bool init(QHash &modules) override; + bool init(QHash &modules) Q_DECL_OVERRIDE; private Q_SLOTS: void currentActivityChanged(const QString &activity); diff -Nru kactivitymanagerd-5.22.4/src/service/Resources.cpp kactivitymanagerd-5.12.8/src/service/Resources.cpp --- kactivitymanagerd-5.22.4/src/service/Resources.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Resources.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 . */ // Self @@ -10,12 +24,13 @@ // Qt #include +#include #include #include -#include // KDE #include +#include // Utils #include @@ -25,10 +40,12 @@ #include // Local -#include "Activities.h" +#include "Debug.h" #include "Application.h" -#include "common/dbus/common.h" +#include "Activities.h" #include "resourcesadaptor.h" +#include "common/dbus/common.h" + Resources::Private::Private(Resources *parent) : QThread(parent) @@ -43,8 +60,7 @@ wait(1500); // Enough time for the sleep(1) + processing in run() } -namespace -{ +namespace { EventList events; QMutex events_mutex; } @@ -87,7 +103,8 @@ emit q->RegisteredResourceEvent(newEvent); } -void Resources::Private::addEvent(const QString &application, WId wid, const QString &uri, int type) +void Resources::Private::addEvent(const QString &application, WId wid, + const QString &uri, int type) { Event newEvent(application, wid, uri, type); addEvent(newEvent); @@ -102,8 +119,11 @@ // 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; + kamd::utils::remove_if(events, [&newEvent](const Event &event)->bool { + return + event.application == newEvent.application && + event.uri == newEvent.uri + ; }); } } @@ -122,66 +142,67 @@ window.application = newEvent.application; switch (newEvent.type) { - case Event::Opened: - insertEvent(newEvent); + case Event::Opened: + insertEvent(newEvent); - if (window.focussedResource.isEmpty()) { - // This window haven't had anything focused, - // assuming the new document is focused + 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)); - } + window.focussedResource = newEvent.uri; + insertEvent(newEvent.deriveWithType(Event::FocussedIn)); + } - break; + break; - case Event::FocussedIn: + case Event::FocussedIn: - if (!window.resources.contains(uri)) { - // This window did not contain this resource before, - // sending Opened event + if (!window.resources.contains(uri)) { + // This window did not contain this resource before, + // sending Opened event - insertEvent(newEvent.deriveWithType(Event::Opened)); - } + insertEvent(newEvent.deriveWithType(Event::Opened)); + } - window.focussedResource = newEvent.uri; - insertEvent(newEvent); + window.focussedResource = newEvent.uri; + insertEvent(newEvent); - break; + break; - case Event::Closed: + case Event::Closed: - if (window.focussedResource == uri) { - // If we are closing a document that is in focus, - // release focus first + 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.deriveWithType(Event::FocussedOut)); + window.focussedResource.clear(); + } - insertEvent(newEvent); + insertEvent(newEvent); - break; + break; - case Event::FocussedOut: + case Event::FocussedOut: - if (window.focussedResource == uri) { - window.focussedResource.clear(); - } + if (window.focussedResource == uri) { + window.focussedResource.clear(); + } - insertEvent(newEvent); + insertEvent(newEvent); - break; + break; - default: - 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) { + if (newEvent.type != Event::FocussedIn + && newEvent.type != Event::FocussedOut) { insertEvent(newEvent); } } @@ -203,8 +224,9 @@ // Closing all the resources that the window registered - for (const QString &uri : windows[windowId].resources) { - q->RegisterResourceEvent(windows[windowId].application, windowId, uri, Event::Closed); + for (const QString &uri: windows[windowId].resources) { + q->RegisterResourceEvent(windows[windowId].application, + windowId, uri, Event::Closed); } windows.remove(windowId); @@ -250,19 +272,25 @@ qRegisterMetaType("WId"); new ResourcesAdaptor(this); - QDBusConnection::sessionBus().registerObject(KAMD_DBUS_OBJECT_PATH("Resources"), 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); + 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(const QString &application, uint _windowId, const QString &uri, uint event) +void Resources::RegisterResourceEvent(QString application, uint _windowId, + const QString &uri, uint event) { - if (event > Event::LastEventType || uri.isEmpty() || application.isEmpty()) { + if (event > Event::LastEventType + || uri.isEmpty() + || application.isEmpty()) { return; } @@ -282,10 +310,11 @@ void Resources::RegisterResourceTitle(const QString &uri, const QString &title) { - // A dirty sanity check for the title + // A dirty saninty check for the title if (title.length() < 3) { return; } emit RegisteredResourceTitle(uri, title); } + diff -Nru kactivitymanagerd-5.22.4/src/service/Resources.h kactivitymanagerd-5.12.8/src/service/Resources.h --- kactivitymanagerd-5.22.4/src/service/Resources.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Resources.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 RESOURCES_H @@ -15,20 +29,20 @@ #include // Local -#include "Event.h" #include "Module.h" +#include "Event.h" + /** * Resources */ -class Resources : public Module -{ +class Resources : public Module { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Resources") public: - explicit Resources(QObject *parent = nullptr); - ~Resources() override; + Resources(QObject *parent = Q_NULLPTR); + virtual ~Resources(); public Q_SLOTS: /** @@ -40,7 +54,8 @@ * @param uri URI of the resource on which the event happened * @param event type of the event */ - void RegisterResourceEvent(const QString &application, uint windowId, const QString &uri, uint event); + void RegisterResourceEvent(QString application, uint windowId, + const QString &uri, uint event); /** * Registers resource's mimetype. diff -Nru kactivitymanagerd-5.22.4/src/service/Resources_p.h kactivitymanagerd-5.12.8/src/service/Resources_p.h --- kactivitymanagerd-5.22.4/src/service/Resources_p.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Resources_p.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic + * Copyright (C) 2010 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 RESOURCES_P_H @@ -11,28 +25,29 @@ #include "Resources.h" // Qt -#include #include +#include #include // for WId // Local #include "resourcesadaptor.h" -class Resources::Private : public QThread -{ + +class Resources::Private : public QThread { Q_OBJECT public: Private(Resources *parent); - ~Private() override; + ~Private(); - void run() override; + 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); + 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); diff -Nru kactivitymanagerd-5.22.4/src/service/Version.h kactivitymanagerd-5.12.8/src/service/Version.h --- kactivitymanagerd-5.22.4/src/service/Version.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/service/Version.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2016 Ivan Cukic + * Copyright (C) 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 VERSION_H @@ -13,3 +27,4 @@ #define KACTIVITIES_VERSION_STRING QStringLiteral("7.0.0") #endif // VERSION_H + diff -Nru kactivitymanagerd-5.22.4/src/utils/continue_with.h kactivitymanagerd-5.12.8/src/utils/continue_with.h --- kactivitymanagerd-5.22.4/src/utils/continue_with.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/continue_with.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,15 +1,29 @@ /* - * SPDX-FileCopyrightText: 2014-2016 Ivan Cukic + * Copyright (C) 2014 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 UTILS_CONTINUE_WITH_H #define UTILS_CONTINUE_WITH_H -#include #include #include +#include #include "utils/optional_view.h" // #include @@ -18,62 +32,65 @@ #include #endif -namespace kamd -{ -namespace utils -{ -namespace detail -{ //_ +namespace kamd { +namespace utils { + +namespace detail { //_ #ifdef ENABLE_QJSVALUE_CONTINUATION -inline void test_continuation(const QJSValue &continuation) -{ - if (!continuation.isCallable()) { - qCWarning(KAMD_LOG_RESOURCES) << "Passed handler is not callable: " << continuation.toString(); + inline void test_continuation(const QJSValue &continuation) + { + if (!continuation.isCallable()) { + qWarning() << "Passed handler is not callable: " << continuation.toString(); + } } -} -template -inline void pass_value(const QFuture<_ReturnType> &future, QJSValue continuation) -{ - auto result = continuation.call({future.result()}); - if (result.isError()) { - qCWarning(KAMD_LOG_RESOURCES) << "Handler returned this error: " << result.toString(); + template + inline void pass_value(const QFuture<_ReturnType> &future, + QJSValue continuation) + { + auto result = continuation.call({ future.result() }); + if (result.isError()) { + qWarning() << "Handler returned this error: " << result.toString(); + } } -} -inline void pass_value(const QFuture &future, QJSValue continuation) -{ - Q_UNUSED(future); - auto result = continuation.call({}); - if (result.isError()) { - qCWarning(KAMD_LOG_RESOURCES) << "Handler returned this error: " << result.toString(); + inline void pass_value(const QFuture &future, QJSValue continuation) + { + Q_UNUSED(future); + auto result = continuation.call({}); + if (result.isError()) { + qWarning() << "Handler returned this error: " << result.toString(); + } } -} #endif -template -inline void test_continuation(_Continuation &&continuation) -{ - Q_UNUSED(continuation); -} + template + inline void test_continuation(_Continuation &&continuation) + { + Q_UNUSED(continuation); + } -template -inline void pass_value(const QFuture<_ReturnType> &future, _Continuation &&continuation) -{ - using namespace kamd::utils; - continuation(future.resultCount() > 0 ? make_optional_view(future.result()) : none()); -} + template + inline void pass_value(const QFuture<_ReturnType> &future, + _Continuation &&continuation) + { + using namespace kamd::utils; + continuation(future.resultCount() > 0 + ? make_optional_view(future.result()) + : none()); + } -template -inline void pass_value(_Continuation &&continuation) -{ - continuation(); -} + template + inline void pass_value(_Continuation &&continuation) + { + continuation(); + } } //^ namespace detail -template -inline void continue_with(const QFuture<_ReturnType> &future, _Continuation &&continuation) +template +inline void continue_with(const QFuture<_ReturnType> &future, + _Continuation &&continuation) { detail::test_continuation(continuation); @@ -89,3 +106,5 @@ } // namespace kamd #endif /* !UTILS_CONTINUE_WITH_H */ + + diff -Nru kactivitymanagerd-5.22.4/src/utils/dbusfuture_p.cpp kactivitymanagerd-5.12.8/src/utils/dbusfuture_p.cpp --- kactivitymanagerd-5.22.4/src/utils/dbusfuture_p.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/dbusfuture_p.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,22 +1,35 @@ /* - * SPDX-FileCopyrightText: 2013-2016 Ivan Cukic + * Copyright (C) 2013 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 "dbusfuture_p.h" -namespace DBusFuture -{ -namespace detail -{ //_ +namespace DBusFuture { -template<> +namespace detail { //_ + +template <> void DBusCallFutureInterface::callFinished() { deleteLater(); - // qCDebug(KAMD_LOG_RESOURCES) << "This is call end"; + // qDebug() << "This is call end"; this->reportFinished(); } @@ -48,3 +61,4 @@ } } // namespace DBusFuture + diff -Nru kactivitymanagerd-5.22.4/src/utils/dbusfuture_p.h kactivitymanagerd-5.12.8/src/utils/dbusfuture_p.h --- kactivitymanagerd-5.22.4/src/utils/dbusfuture_p.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/dbusfuture_p.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,32 +1,45 @@ /* - * SPDX-FileCopyrightText: 2013-2016 Ivan Cukic + * Copyright (C) 2013 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 ACTIVITIES_DBUSFUTURE_P_H #define ACTIVITIES_DBUSFUTURE_P_H -#include -#include #include #include -#include +#include +#include #include +#include #include -namespace DBusFuture -{ -namespace detail -{ //_ +namespace DBusFuture { -template -class DBusCallFutureInterface : public QObject, public QFutureInterface<_Result> -{ +namespace detail { //_ + +template +class DBusCallFutureInterface : public QObject, + public QFutureInterface<_Result> { public: DBusCallFutureInterface(QDBusPendingReply<_Result> reply) - : reply(reply) - , replyWatcher(nullptr) + : reply(reply), + replyWatcher(Q_NULLPTR) { } @@ -41,9 +54,9 @@ { replyWatcher = new QDBusPendingCallWatcher(reply); - QObject::connect(replyWatcher, &QDBusPendingCallWatcher::finished, [this]() { - callFinished(); - }); + QObject::connect(replyWatcher, + &QDBusPendingCallWatcher::finished, + [this] () { callFinished(); }); this->reportStarted(); @@ -56,10 +69,10 @@ private: QDBusPendingReply<_Result> reply; - QDBusPendingCallWatcher *replyWatcher; + QDBusPendingCallWatcher * replyWatcher; }; -template +template void DBusCallFutureInterface<_Result>::callFinished() { deleteLater(); @@ -71,14 +84,13 @@ this->reportFinished(); } -template<> +template <> void DBusCallFutureInterface::callFinished(); -template -class ValueFutureInterface : public QObject, QFutureInterface<_Result> -{ +template +class ValueFutureInterface : public QObject, QFutureInterface<_Result> { public: - ValueFutureInterface(const _Result &value) + ValueFutureInterface(const _Result & value) : value(value) { } @@ -97,11 +109,11 @@ private: _Result value; + }; -template<> -class ValueFutureInterface : public QObject, QFutureInterface -{ +template <> +class ValueFutureInterface : public QObject, QFutureInterface { public: ValueFutureInterface(); @@ -116,27 +128,26 @@ } //^ namespace detail -template -QFuture<_Result> asyncCall(QDBusAbstractInterface *interface, - const QString &method, - const QVariant &arg1 = QVariant(), - const QVariant &arg2 = QVariant(), - const QVariant &arg3 = QVariant(), - const QVariant &arg4 = QVariant(), - const QVariant &arg5 = QVariant(), - const QVariant &arg6 = QVariant(), - const QVariant &arg7 = QVariant(), - const QVariant &arg8 = QVariant()) +template +QFuture<_Result> +asyncCall(QDBusAbstractInterface *interface, const QString &method, + const QVariant &arg1 = QVariant(), const QVariant &arg2 = QVariant(), + const QVariant &arg3 = QVariant(), const QVariant &arg4 = QVariant(), + const QVariant &arg5 = QVariant(), const QVariant &arg6 = QVariant(), + const QVariant &arg7 = QVariant(), const QVariant &arg8 = QVariant()) { using namespace detail; - auto callFutureInterface = new DBusCallFutureInterface<_Result>(interface->asyncCall(method, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8)); + auto callFutureInterface = new DBusCallFutureInterface + <_Result>(interface->asyncCall(method, arg1, arg2, arg3, arg4, arg5, + arg6, arg7, arg8)); return callFutureInterface->start(); } -template -QFuture<_Result> fromValue(const _Result &value) +template +QFuture<_Result> +fromValue(const _Result & value) { using namespace detail; @@ -145,8 +156,9 @@ return valueFutureInterface->start(); } -template -QFuture<_Result> fromReply(const QDBusPendingReply<_Result> &reply) +template +QFuture<_Result> +fromReply(const QDBusPendingReply<_Result> &reply) { using namespace detail; @@ -160,3 +172,4 @@ } // namespace DBusFuture #endif /* DBUSFUTURE_P_H */ + diff -Nru kactivitymanagerd-5.22.4/src/utils/debug_and_return.h kactivitymanagerd-5.12.8/src/utils/debug_and_return.h --- kactivitymanagerd-5.22.4/src/utils/debug_and_return.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/debug_and_return.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 DEBUG_AND_RETURN_H @@ -11,28 +25,25 @@ #include #endif -namespace kamd -{ -namespace utils -{ +namespace kamd { +namespace utils { + template -T debug_and_return(const char *message, T &&value) -{ -#ifdef QT_DEBUG - qCDebug(KAMD_LOG_RESOURCES) << message << " " << value; -#endif +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 +T debug_and_return(bool debug, const char * message, T && value) { + #ifdef QT_DEBUG if (debug) { - qCDebug(KAMD_LOG_RESOURCES) << message << " " << value; + qDebug() << message << " " << value; } -#endif + #endif return std::forward(value); } @@ -41,3 +52,4 @@ } // namespace kamd #endif // DEBUG_AND_RETURN_H + diff -Nru kactivitymanagerd-5.22.4/src/utils/d_ptr.h kactivitymanagerd-5.12.8/src/utils/d_ptr.h --- kactivitymanagerd-5.22.4/src/utils/d_ptr.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/d_ptr.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 D_PTR_H @@ -9,20 +23,18 @@ #include -namespace kamd -{ -namespace utils -{ -template -class d_ptr -{ +namespace kamd { +namespace utils { + +template +class d_ptr { private: std::unique_ptr d; public: d_ptr(); - template + template d_ptr(Args &&...); ~d_ptr(); @@ -30,9 +42,9 @@ T *operator->() const; }; -#define D_PTR \ - class Private; \ - friend class Private; \ +#define D_PTR \ + class Private; \ + friend class Private; \ const ::kamd::utils::d_ptr d } // namespace utils diff -Nru kactivitymanagerd-5.22.4/src/utils/d_ptr_implementation.h kactivitymanagerd-5.12.8/src/utils/d_ptr_implementation.h --- kactivitymanagerd-5.22.4/src/utils/d_ptr_implementation.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/d_ptr_implementation.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 D_PTR_IMPLEMENTATION_H @@ -9,29 +23,28 @@ #include -namespace kamd -{ -namespace utils -{ -template +namespace kamd { +namespace utils { + +template d_ptr::d_ptr() : d(new T()) { } -template -template -d_ptr::d_ptr(Args &&...args) +template +template +d_ptr::d_ptr(Args &&... args) : d(new T(std::forward(args)...)) { } -template +template d_ptr::~d_ptr() { } -template +template T *d_ptr::operator->() const { return d.get(); diff -Nru kactivitymanagerd-5.22.4/src/utils/for_each_assoc.h kactivitymanagerd-5.12.8/src/utils/for_each_assoc.h --- kactivitymanagerd-5.22.4/src/utils/for_each_assoc.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/for_each_assoc.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 UTILS_FOR_EACH_ASSOC_H @@ -13,16 +27,14 @@ * Associative container's for_each (for hash, map, and similar ) * ********************************************************************/ -namespace kamd -{ -namespace utils -{ -namespace details -{ //_ +namespace kamd { +namespace utils { + +namespace details { //_ // Iterator Functions -template +template Function qt_for_each_assoc(Iterator start, Iterator end, Function f) { for (; start != end; ++start) @@ -31,7 +43,7 @@ return f; } -template +template Function stl_for_each_assoc(Iterator start, Iterator end, Function f) { for (; start != end; ++start) @@ -42,25 +54,28 @@ // Container functions -template -Function _for_each_assoc_helper_container(const Container &c, Function f, decltype(&Container::constBegin) *) +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 *) +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 +template Function for_each_assoc(const Container &c, Function f) { - return details::_for_each_assoc_helper_container(c, f, nullptr); + return details::_for_each_assoc_helper_container + (c, f, Q_NULLPTR); } } // namespace utils diff -Nru kactivitymanagerd-5.22.4/src/utils/lazy_val.h kactivitymanagerd-5.12.8/src/utils/lazy_val.h --- kactivitymanagerd-5.22.4/src/utils/lazy_val.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/lazy_val.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,19 +1,31 @@ /* - * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 UTILS_LAZY_VAL_H #define UTILS_LAZY_VAL_H -namespace kamd -{ -namespace utils -{ -template -class lazy_val -{ +namespace kamd { +namespace utils { + +template +class lazy_val { public: lazy_val(F f) : _f(std::forward(f)) @@ -27,7 +39,7 @@ mutable bool valueRetrieved; public: - operator decltype(_f())() const + operator decltype(_f()) () const { if (!valueRetrieved) { valueRetrieved = true; @@ -38,8 +50,8 @@ } }; -template -inline lazy_val make_lazy_val(F &&f) +template +inline lazy_val make_lazy_val(F && f) { return lazy_val(std::forward(f)); } @@ -48,3 +60,4 @@ } // namespace kamd #endif // UTILS_LAZY_VAL_H + diff -Nru kactivitymanagerd-5.22.4/src/utils/member_matcher.h kactivitymanagerd-5.12.8/src/utils/member_matcher.h --- kactivitymanagerd-5.22.4/src/utils/member_matcher.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/member_matcher.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,168 +1,186 @@ /* - * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 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 arguments need to be checked - // for the specified member - return compare((collItem.*m_member)(), value); - } +namespace kamd { +namespace utils { -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) - { - } +namespace member_matcher { + struct placeholder {} _; - // Implement if needed... - // template - // inline bool operator()(const T &item) const - // { - // return first(item) || second(item); - // } + 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; + }; //^ - template - inline bool operator()(const T &item, const V &value) const - { - return first(item, value) || (!first(value, item) && second(item, value)); - } + } //^ namespace detail - 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) + template + detail::member_matcher member(Member m) { + return detail::member_matcher(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 diff -Nru kactivitymanagerd-5.22.4/src/utils/merge_into.h kactivitymanagerd-5.12.8/src/utils/merge_into.h --- kactivitymanagerd-5.22.4/src/utils/merge_into.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/merge_into.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,17 +1,30 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 UTILS_MERGE_INTO_H #define UTILS_MERGE_INTO_H -namespace kamd -{ -namespace utils -{ -template +namespace kamd { +namespace utils { + +template inline void merge_into(Container &into, const Container &from) { typename Container::iterator into_begin = into.begin(); diff -Nru kactivitymanagerd-5.22.4/src/utils/optional_view.h kactivitymanagerd-5.12.8/src/utils/optional_view.h --- kactivitymanagerd-5.22.4/src/utils/optional_view.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/optional_view.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,22 +1,31 @@ /* - * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 UTILS_OPTIONAL_VIEW_H -#define UTILS_OPTIONAL_VIEW_H +#ifndef UTILS_OPTIONAL_H +#define UTILS_OPTIONAL_H -namespace kamd -{ -namespace utils -{ -struct none_t { -}; -inline const none_t none() -{ - return none_t(); -} +namespace kamd { +namespace utils { + +struct none_t {}; +inline const none_t none() { return none_t(); } // A simple implementation of the optional class // until we can rely on std::optional. @@ -24,9 +33,8 @@ // features to the std one. // (we need it in the core library, so we don't // want to use boost.optional) -template -class optional_view -{ +template +class optional_view { public: explicit optional_view(const T &value) : m_value(&value) @@ -34,13 +42,13 @@ } optional_view(const none_t &) - : m_value(nullptr) + : m_value(Q_NULLPTR) { } bool is_initialized() const { - return m_value != nullptr; + return m_value != Q_NULLPTR; } const T &get() const @@ -57,7 +65,7 @@ const T *const m_value; }; -template +template optional_view make_optional_view(const T &value) { return optional_view(value); @@ -66,4 +74,6 @@ } // namespace utils } // namespace kamd -#endif // UTILS_OPTIONAL_VIEW_H + +#endif // UTILS_OPTIONAL_H + diff -Nru kactivitymanagerd-5.22.4/src/utils/ptr_to.h kactivitymanagerd-5.12.8/src/utils/ptr_to.h --- kactivitymanagerd-5.22.4/src/utils/ptr_to.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/ptr_to.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,31 +1,46 @@ /* - * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 PTR_TO_H #define PTR_TO_H -namespace kamd -{ -namespace utils -{ +namespace kamd { +namespace utils { + enum { Const = 0, - Mutable = 1, + Mutable = 1 }; -template +template struct ptr_to { - typedef const T *const type; + typedef const T * const type; }; -template +template struct ptr_to { - typedef T *const type; + typedef T * const type; }; + + } // namespace utils } // namespace kamd diff -Nru kactivitymanagerd-5.22.4/src/utils/qsqlquery_iterator.cpp kactivitymanagerd-5.12.8/src/utils/qsqlquery_iterator.cpp --- kactivitymanagerd-5.22.4/src/utils/qsqlquery_iterator.cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/qsqlquery_iterator.cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2013-2016 Ivan Cukic + * Copyright (C) 2013 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 "qsqlquery_iterator.h" @@ -13,5 +27,9 @@ NextValueIterator end(QSqlQuery &query) { - return NextValueIterator(query, NextValueIterator::EndIterator); + return NextValueIterator + (query, NextValueIterator::EndIterator); } + + + diff -Nru kactivitymanagerd-5.22.4/src/utils/qsqlquery_iterator.h kactivitymanagerd-5.12.8/src/utils/qsqlquery_iterator.h --- kactivitymanagerd-5.22.4/src/utils/qsqlquery_iterator.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/qsqlquery_iterator.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2013-2016 Ivan Cukic + * Copyright (C) 2013 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 UTILS_QSQLQUERYITERATOR_H @@ -10,13 +24,12 @@ #include #include -template -class NextValueIterator -{ +template +class NextValueIterator { public: enum Type { NormalIterator, - EndIterator, + EndIterator }; NextValueIterator(ResultSet &query, Type type = NormalIterator) @@ -28,7 +41,7 @@ } } - inline bool operator!=(const NextValueIterator &other) const + inline bool operator!= (const NextValueIterator &other) const { Q_UNUSED(other); return m_query.isValid(); @@ -39,17 +52,17 @@ return *this; } - inline QVariant operator[](int index) const + inline QVariant operator[] (int index) const { return m_query.value(index); } - inline QVariant operator[](const QString &name) const + inline QVariant operator[] (const QString &name) const { return m_query.value(name); } - inline NextValueIterator &operator++() + inline NextValueIterator &operator ++() { m_query.next(); return *this; @@ -58,9 +71,12 @@ private: ResultSet &m_query; Type m_type; + }; NextValueIterator begin(QSqlQuery &query); NextValueIterator end(QSqlQuery &query); + #endif /* UTILS_QSQLQUERYITERATOR_H */ + diff -Nru kactivitymanagerd-5.22.4/src/utils/range.h kactivitymanagerd-5.12.8/src/utils/range.h --- kactivitymanagerd-5.22.4/src/utils/range.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/range.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,25 +1,38 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 UTILS_RANGE_H #define UTILS_RANGE_H -#include -#include #include +#include +#include /******************************************************************** * Syntactic sugar for converting ranges to collections * ********************************************************************/ -namespace kamd -{ -namespace utils -{ -template +namespace kamd { +namespace utils { + +template __inline Collection as_collection(Range range) { Collection result; @@ -29,24 +42,40 @@ return result; } -template -__inline auto transformed(Member member, Args... args) -> decltype(boost::adaptors::transformed(std::bind(member, args..., std::placeholders::_1))) -{ - return boost::adaptors::transformed(std::bind(member, args..., std::placeholders::_1)); +template +__inline auto transformed(Member member, Args... args) + -> decltype(boost::adaptors::transformed( + std::bind(member, args..., std::placeholders::_1))) +{ + return boost::adaptors::transformed( + std::bind(member, args..., std::placeholders::_1) + ); + } -template -__inline auto filtered(Member member, Args... args) -> decltype(boost::adaptors::filtered(std::bind(member, args..., std::placeholders::_1))) -{ - return boost::adaptors::filtered(std::bind(member, args..., std::placeholders::_1)); +template +__inline auto filtered(Member member, Args... args) + -> decltype(boost::adaptors::filtered( + std::bind(member, args..., std::placeholders::_1))) +{ + return boost::adaptors::filtered( + std::bind(member, args..., std::placeholders::_1) + ); + } -template -__inline auto filtered(Class *const self, Member member) -> decltype(boost::adaptors::filtered(std::bind(member, self, std::placeholders::_1))) -{ - return boost::adaptors::filtered(std::bind(member, self, std::placeholders::_1)); +template +__inline auto filtered(Class *const self, Member member) + -> decltype(boost::adaptors::filtered( + std::bind(member, self, std::placeholders::_1))) +{ + return boost::adaptors::filtered( + std::bind(member, self, std::placeholders::_1) + ); + } + } // namespace utils } // namespace kamd diff -Nru kactivitymanagerd-5.22.4/src/utils/remove_if.h kactivitymanagerd-5.12.8/src/utils/remove_if.h --- kactivitymanagerd-5.22.4/src/utils/remove_if.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/remove_if.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,27 +1,43 @@ /* - * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic + * Copyright (C) 2012 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 UTILS_REMOVE_IF_H #define UTILS_REMOVE_IF_H -#include #include +#include /******************************************************************** * Syntactic sugar for the erase-remove idiom * ********************************************************************/ -namespace kamd -{ -namespace utils -{ -template +namespace kamd { +namespace utils { + +template __inline void remove_if(Collection &collection, Filter filter) { - collection.erase(std::remove_if(collection.begin(), collection.end(), filter), collection.end()); + collection.erase( + std::remove_if( + collection.begin(), collection.end(), filter), + collection.end()); } } // namespace utils diff -Nru kactivitymanagerd-5.22.4/src/utils/slide.h kactivitymanagerd-5.12.8/src/utils/slide.h --- kactivitymanagerd-5.22.4/src/utils/slide.h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/src/utils/slide.h 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,21 @@ /* - * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic + * Copyright (C) 2015 - 2016 by Ivan Cukic * - * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + * 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 UTILS_SLIDE_H @@ -11,11 +25,10 @@ // Inspired by C++ Seasoning talk by Sean Parent -namespace kamd -{ -namespace utils -{ -template +namespace kamd { +namespace utils { + +template void slide(Iterator f, Iterator l, Iterator p) { if (p < f) { @@ -25,7 +38,7 @@ } } -template +template void slide_one(Iterator f, Iterator p) { slide(f, f + 1, p); @@ -34,4 +47,6 @@ } // namespace utils } // namespace kamd + #endif // UTILS_SLIDE_H + diff -Nru kactivitymanagerd-5.22.4/.vim-template:cpp kactivitymanagerd-5.12.8/.vim-template:cpp --- kactivitymanagerd-5.22.4/.vim-template:cpp 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/.vim-template:cpp 2019-03-05 12:13:01.000000000 +0000 @@ -1,7 +1,22 @@ /* - * SPDX-FileCopyrightText: %YEAR% %USER% <%MAIL%> + * Copyright (C) %YEAR% %USER% <%MAIL%> * - * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL + * 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" diff -Nru kactivitymanagerd-5.22.4/.vim-template:h kactivitymanagerd-5.12.8/.vim-template:h --- kactivitymanagerd-5.22.4/.vim-template:h 2021-07-27 10:18:25.000000000 +0000 +++ kactivitymanagerd-5.12.8/.vim-template:h 2019-03-05 12:13:01.000000000 +0000 @@ -1,8 +1,22 @@ /* - * SPDX-FileCopyrightText: %YEAR% %USER% <%MAIL%> + * Copyright (C) %YEAR% %USER% <%MAIL%> * - * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL - */ + * 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%