├── .videproject ├── vimrc └── project.conf ├── logo.png ├── docs └── Doxyfile.local ├── .git-blame-ignore-revs ├── MAINTAINER ├── src ├── kactivities-features.h.cmake ├── plasma-kactivitymanagerd.service.in ├── service │ ├── plugins │ │ ├── runapplication │ │ │ ├── CMakeLists.txt │ │ │ ├── RunApplicationPlugin.h │ │ │ └── RunApplicationPlugin.cpp │ │ ├── globalshortcuts │ │ │ ├── CMakeLists.txt │ │ │ ├── GlobalShortcutsPlugin.h │ │ │ └── GlobalShortcutsPlugin.cpp │ │ ├── activitytemplates │ │ │ ├── org.kde.ActivityManager.Templates.xml │ │ │ ├── CMakeLists.txt │ │ │ ├── TemplatesPlugin.h │ │ │ └── TemplatesPlugin.cpp │ │ ├── CMakeLists.txt │ │ ├── krunner │ │ │ ├── CMakeLists.txt │ │ │ ├── ActivityRunner.h │ │ │ ├── dbusutils.h │ │ │ ├── org.kde.krunner1.xml │ │ │ ├── ActivityRunner.cpp │ │ │ └── plasma-runnners-activities.desktop │ │ ├── libreoffice-spy │ │ │ ├── CMakeLists.txt │ │ │ └── LibreOfficeEventSpy.h │ │ ├── recentlyused-eventspy │ │ │ ├── CMakeLists.txt │ │ │ └── RecentlyUsedEventSpy.h │ │ └── sqlite │ │ │ ├── ResourceScoreCache.h │ │ │ ├── ResourceScoreMaintainer.h │ │ │ ├── Database.h │ │ │ ├── CMakeLists.txt │ │ │ ├── Utils.h │ │ │ ├── ResourceLinking.h │ │ │ ├── ResourceScoreMaintainer.cpp │ │ │ └── StatsPlugin.h │ ├── Version.h │ ├── Resources_p.h │ ├── Features.h │ ├── Module.h │ ├── Application.h │ ├── Event.h │ ├── Event.cpp │ ├── Plugin.cpp │ ├── Resources.h │ ├── Module.cpp │ ├── CMakeLists.txt │ ├── Activities_p.h │ ├── Features.cpp │ ├── Plugin.h │ └── Resources.cpp ├── Messages.sh ├── utils │ ├── qsqlquery_iterator.cpp │ ├── d_ptr_implementation.h │ ├── remove_if.h │ ├── d_ptr.h │ ├── qsqlquery_iterator.h │ └── range.h ├── common │ ├── dbus │ │ ├── org.kde.ActivityManager.Application.xml │ │ ├── common.h │ │ ├── org.kde.ActivityManager.Features.xml │ │ ├── org.kde.ActivityManager.Resources.xml │ │ ├── org.kde.ActivityManager.Activities.h │ │ ├── org.kde.ActivityManager.Activities.cpp │ │ ├── org.kde.ActivityManager.ResourcesLinking.xml │ │ ├── org.kde.ActivityManager.ResourcesScoring.xml │ │ └── org.kde.ActivityManager.Activities.xml │ ├── specialvalues.h │ └── database │ │ ├── schema │ │ └── ResourcesDatabaseSchema.h │ │ └── Database.h └── CMakeLists.txt ├── vim-extrarc ├── .vim-template:cpp ├── .gitlab-ci.yml ├── .gitignore ├── .vim-template:h ├── LICENSES ├── LicenseRef-KDE-Accepted-GPL.txt └── LicenseRef-KDE-Accepted-LGPL.txt ├── .kde-ci.yml ├── TODO ├── README.developers ├── po ├── ja │ └── kactivities6.po ├── pt │ └── kactivities6.po ├── ast │ └── kactivities6.po ├── zh_CN │ └── kactivities6.po ├── se │ └── kactivities6.po ├── ml │ └── kactivities6.po ├── az │ └── kactivities6.po ├── vi │ └── kactivities6.po ├── nb │ └── kactivities6.po ├── ms │ └── kactivities6.po ├── nl │ └── kactivities6.po ├── sv │ └── kactivities6.po ├── ta │ └── kactivities6.po ├── cs │ └── kactivities6.po ├── eo │ └── kactivities6.po ├── nn │ └── kactivities6.po ├── sa │ └── kactivities6.po ├── ro │ └── kactivities6.po ├── ka │ └── kactivities6.po ├── zh_TW │ └── kactivities6.po ├── tr │ └── kactivities6.po ├── tg │ └── kactivities6.po ├── sr │ └── kactivities6.po ├── bg │ └── kactivities6.po ├── es │ └── kactivities6.po ├── sr@latin │ └── kactivities6.po ├── id │ └── kactivities6.po ├── sr@ijekavian │ └── kactivities6.po ├── sr@ijekavianlatin │ └── kactivities6.po ├── pt_BR │ └── kactivities6.po ├── de │ └── kactivities6.po ├── he │ └── kactivities6.po ├── uk │ └── kactivities6.po ├── wa │ └── kactivities6.po ├── th │ └── kactivities6.po ├── gu │ └── kactivities6.po ├── ca │ └── kactivities6.po ├── kn │ └── kactivities6.po ├── hi │ └── kactivities6.po ├── ca@valencia │ └── kactivities6.po ├── hr │ └── kactivities6.po ├── lv │ └── kactivities6.po ├── is │ └── kactivities6.po ├── ga │ └── kactivities6.po └── ar │ └── kactivities6.po ├── README.md └── CMakeLists.txt /.videproject/vimrc: -------------------------------------------------------------------------------- 1 | 2 | set tags+=/opt/kde4trunk/ctags/libQt.tags 3 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDE/kactivitymanagerd/HEAD/logo.png -------------------------------------------------------------------------------- /docs/Doxyfile.local: -------------------------------------------------------------------------------- 1 | EXCLUDE_PATTERNS += */service/* */scripts/* */workspace/* 2 | -------------------------------------------------------------------------------- /.git-blame-ignore-revs: -------------------------------------------------------------------------------- 1 | # clang-format 2 | 3845e5af39cc8fff4bdfc9ae7ce9c4302e5a8ced 3 | -------------------------------------------------------------------------------- /MAINTAINER: -------------------------------------------------------------------------------- 1 | 2 | Current kactivities maintainer is: Ivan Čukić 3 | 4 | -------------------------------------------------------------------------------- /src/kactivities-features.h.cmake: -------------------------------------------------------------------------------- 1 | #ifndef CONFIG_FEATURES_H_ 2 | #define CONFIG_FEATURES_H_ 3 | 4 | #cmakedefine KAMD_PLUGIN_DIR "@KAMD_PLUGIN_DIR@" 5 | #cmakedefine KAMD_FULL_PLUGIN_DIR "@KAMD_FULL_PLUGIN_DIR@" 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /vim-extrarc: -------------------------------------------------------------------------------- 1 | 2 | set makeprg=OBJ_REPLACEMENT='s=src=build-clang='\ makeobj 3 | 4 | let g:ctrlpswitcher_project_sources = expand(':p:h')."/src" 5 | let g:ctrlpswitcher_mode = 1 6 | 7 | set foldmethod=marker 8 | set foldmarker=//_,//^ 9 | 10 | -------------------------------------------------------------------------------- /.vim-template:cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: %YEAR% %USER% <%MAIL%> 3 | * 4 | * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 5 | */ 6 | 7 | #include "%FILE%.h" 8 | 9 | namespace KActivities { 10 | 11 | %HERE% 12 | 13 | } // namespace KActivities 14 | 15 | -------------------------------------------------------------------------------- /src/plasma-kactivitymanagerd.service.in: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=KActivityManager Activity manager Service 3 | PartOf=graphical-session.target 4 | Before=graphical-session.target 5 | 6 | [Service] 7 | ExecStart=@KDE_INSTALL_FULL_LIBEXECDIR@/kactivitymanagerd 8 | BusName=org.kde.ActivityManager 9 | Slice=background.slice 10 | -------------------------------------------------------------------------------- /src/service/plugins/runapplication/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | 3 | kamd_add_plugin(org.kde.ActivityManager.RunApplication SOURCES RunApplicationPlugin.cpp) 4 | 5 | target_link_libraries(org.kde.ActivityManager.RunApplication 6 | Qt::Gui 7 | KF6::Service 8 | debug_STATIC 9 | ) 10 | 11 | -------------------------------------------------------------------------------- /src/service/plugins/globalshortcuts/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | kamd_add_plugin(org.kde.ActivityManager.GlobalShortcuts SOURCES GlobalShortcutsPlugin.cpp) 3 | 4 | target_link_libraries (org.kde.ActivityManager.GlobalShortcuts 5 | Qt::Widgets 6 | KF6::GlobalAccel 7 | KF6::I18n 8 | KF6::XmlGui 9 | ) 10 | 11 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | include: 5 | - project: sysadmin/ci-utilities 6 | file: 7 | - /gitlab-templates/linux-qt6.yml 8 | - /gitlab-templates/freebsd-qt6.yml 9 | - /gitlab-templates/xml-lint.yml 10 | - /gitlab-templates/yaml-lint.yml 11 | - /gitlab-templates/linux-qt6-next.yml 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .debug 2 | tags 3 | _tests 4 | .videproject/ctags 5 | *swp 6 | *~ 7 | .kdev4 8 | .cmake-params 9 | .ycm_extra_conf.py 10 | .ycm_extra_conf.pyc 11 | .clang_complete 12 | kactivities.kdev4 13 | compile_commands.json 14 | /apidocs 15 | GPATH 16 | GRTAGS 17 | GSYMS 18 | GTAGS 19 | .clang-format 20 | CMakeLists.txt.user* 21 | /build*/ 22 | .clangd 23 | .idea 24 | /cmake-build* 25 | .cache 26 | -------------------------------------------------------------------------------- /src/service/Version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | // Shallow version history: 10 | // 6.2.0 - pre repository split 11 | // 7.0.0 - post repository split 12 | #define KACTIVITIES_VERSION_STRING QStringLiteral("7.0.0") 13 | -------------------------------------------------------------------------------- /.vim-template:h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: %YEAR% %USER% <%MAIL%> 3 | * 4 | * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 5 | */ 6 | */ 7 | 8 | #ifndef KACTIVITIES_STATS_%GUARD% 9 | #define KACTIVITIES_STATS_%GUARD% 10 | 11 | namespace KActivities { 12 | 13 | %HERE% 14 | 15 | } // namespace KActivities 16 | 17 | #endif // KACTIVITIES_STATS_%GUARD% 18 | 19 | -------------------------------------------------------------------------------- /src/service/plugins/activitytemplates/org.kde.ActivityManager.Templates.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Messages.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Invoke the extractrc script on all .ui, .rc, and .kcfg files in the sources. 4 | # The results are stored in a pseudo .cpp file to be picked up by xgettext. 5 | lst=`find . -name \*.rc -o -name \*.ui -o -name \*.kcfg` 6 | if [ -n "$lst" ] ; then 7 | $EXTRACTRC $lst >> rc.cpp 8 | fi 9 | 10 | # Run xgettext to extract strings from all source files. 11 | $XGETTEXT `find . -name \*.cpp -o -name \*.h -o -name \*.qml` -o $podir/kactivities6.pot 12 | -------------------------------------------------------------------------------- /src/service/plugins/activitytemplates/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | 3 | qt_add_dbus_adaptor(activitytemplates_DBUS_SRCS 4 | org.kde.ActivityManager.Templates.xml 5 | TemplatesPlugin.h TemplatesPlugin 6 | ) 7 | 8 | kamd_add_plugin(org.kde.ActivityManager.ActivityTemplates SOURCES TemplatesPlugin.cpp ${activitytemplates_DBUS_SRCS}) 9 | 10 | target_link_libraries(org.kde.ActivityManager.ActivityTemplates 11 | KF6::DBusAddons 12 | ) 13 | 14 | -------------------------------------------------------------------------------- /src/utils/qsqlquery_iterator.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2013-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #include "qsqlquery_iterator.h" 8 | 9 | NextValueIterator begin(QSqlQuery &query) 10 | { 11 | return NextValueIterator(query); 12 | } 13 | 14 | NextValueIterator end(QSqlQuery &query) 15 | { 16 | return NextValueIterator(query, NextValueIterator::EndIterator); 17 | } 18 | -------------------------------------------------------------------------------- /src/service/plugins/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | 3 | function(kamd_add_plugin plugin_name) 4 | kcoreaddons_add_plugin(${plugin_name} ${ARGN} INSTALL_NAMESPACE ${KAMD_PLUGIN_DIR}) 5 | target_link_libraries(${plugin_name} kactivitymanagerd_plugin) 6 | endfunction() 7 | add_subdirectory (sqlite) 8 | add_subdirectory (activitytemplates) 9 | add_subdirectory (globalshortcuts) 10 | add_subdirectory (recentlyused-eventspy) 11 | add_subdirectory (runapplication) 12 | add_subdirectory (krunner) 13 | add_subdirectory (libreoffice-spy) 14 | -------------------------------------------------------------------------------- /src/service/plugins/krunner/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | qt_add_dbus_adaptor(activityrunner_DBUS_SRCS "org.kde.krunner1.xml" ActivityRunner.h ActivityRunner) 3 | 4 | kamd_add_plugin(org.kde.ActivityManager.ActivityRunner SOURCES ActivityRunner.cpp ${activityrunner_DBUS_SRCS}) 5 | 6 | target_link_libraries(org.kde.ActivityManager.ActivityRunner 7 | KF6::I18n 8 | debug_STATIC 9 | ) 10 | 11 | install( 12 | FILES plasma-runnners-activities.desktop 13 | DESTINATION "${KDE_INSTALL_DATAROOTDIR}/krunner/dbusplugins" 14 | ) 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/common/dbus/org.kde.ActivityManager.Application.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.videproject/project.conf: -------------------------------------------------------------------------------- 1 | [Project] 2 | Name=KDE Activities 3 | Location=/opt/kde/src/libs/kactivities 4 | 5 | MakeCommand='OBJ_REPLACEMENT="s:/opt/kde/src/core/libs/kactivities:/opt/kde/build-clang/core/libs/kactivities:" makeobj' 6 | 7 | RunLocation=./ 8 | RunCommand=./ 9 | 10 | [General] 11 | OverrideVimCommands=1 12 | AutoInsertModeOnOpen=0 13 | Tags= 14 | SourcePaths=. 15 | 16 | [KeyBindings] 17 | SidePanelOpen='' 18 | MakeProject='' 19 | RunProject='' 20 | 21 | [Grep] 22 | Root=. 23 | 24 | [Find] 25 | Root=. 26 | 27 | [QuickBrowser] 28 | iNotifyEnabled=0 29 | Root=. 30 | TagsSystem=ctags 31 | -------------------------------------------------------------------------------- /src/common/specialvalues.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #define GLOBAL_ACTIVITY_TAG QStringLiteral(":global") 10 | #define ANY_ACTIVITY_TAG QStringLiteral(":any") 11 | #define CURRENT_ACTIVITY_TAG QStringLiteral(":current") 12 | 13 | #define GLOBAL_AGENT_TAG QStringLiteral(":global") 14 | #define ANY_AGENT_TAG QStringLiteral(":any") 15 | #define CURRENT_AGENT_TAG QStringLiteral(":current") 16 | 17 | #define ANY_TYPE_TAG QStringLiteral(":any") 18 | -------------------------------------------------------------------------------- /src/common/database/schema/ResourcesDatabaseSchema.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "../Database.h" 10 | #include 11 | 12 | namespace Common 13 | { 14 | namespace ResourcesDatabaseSchema 15 | { 16 | QString version(); 17 | 18 | QStringList schema(); 19 | 20 | QString path(); 21 | void overridePath(const QString &path); 22 | 23 | void initSchema(Database &database); 24 | 25 | } // namespace ResourcesDatabase 26 | } // namespace Common 27 | -------------------------------------------------------------------------------- /src/service/plugins/libreoffice-spy/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | kamd_add_plugin(org.kde.ActivityManager.LibreOfficeEventSpy SOURCES LibreOfficeEventSpy.cpp) 3 | 4 | ecm_qt_declare_logging_category(org.kde.ActivityManager.LibreOfficeEventSpy 5 | HEADER DebugLibreOfficeEventSpy.h 6 | IDENTIFIER KAMD_LOG_PLUGIN_LIBREOFFICE_EVENTSPY 7 | CATEGORY_NAME org.kde.kactivities.plugin.libreoffice-eventspy 8 | DEFAULT_SEVERITY Warning 9 | DESCRIPTION "KActivities LibreOffice Event Spy Resources" EXPORT KACTIVITYMANAGERD) 10 | 11 | target_link_libraries(org.kde.ActivityManager.LibreOfficeEventSpy 12 | Qt::Xml 13 | KF6::Service 14 | ) 15 | 16 | -------------------------------------------------------------------------------- /src/service/plugins/recentlyused-eventspy/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | kamd_add_plugin(org.kde.ActivityManager.RecentlyUsedEventSpy SOURCES RecentlyUsedEventSpy.cpp) 3 | 4 | ecm_qt_declare_logging_category(org.kde.ActivityManager.RecentlyUsedEventSpy 5 | HEADER DebugPluginRecentlyUsedEventSpy.h 6 | IDENTIFIER KAMD_LOG_PLUGIN_RECENTLYUSED_EVENTSPY 7 | CATEGORY_NAME org.kde.kactivities.plugin.recentlyused-eventspy 8 | DEFAULT_SEVERITY Warning 9 | DESCRIPTION "KActivities RecentlyUsed Event Spy Resources" EXPORT KACTIVITYMANAGERD) 10 | 11 | target_link_libraries(org.kde.ActivityManager.RecentlyUsedEventSpy 12 | Qt::Xml 13 | KF6::Service 14 | ) 15 | 16 | -------------------------------------------------------------------------------- /LICENSES/LicenseRef-KDE-Accepted-GPL.txt: -------------------------------------------------------------------------------- 1 | This library is free software; you can redistribute it and/or 2 | modify it under the terms of the GNU General Public License as 3 | published by the Free Software Foundation; either version 3 of 4 | the license or (at your option) at any later version that is 5 | accepted by the membership of KDE e.V. (or its successor 6 | approved by the membership of KDE e.V.), which shall act as a 7 | proxy as defined in Section 14 of version 3 of the license. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | -------------------------------------------------------------------------------- /LICENSES/LicenseRef-KDE-Accepted-LGPL.txt: -------------------------------------------------------------------------------- 1 | This library is free software; you can redistribute it and/or 2 | modify it under the terms of the GNU Lesser General Public 3 | License as published by the Free Software Foundation; either 4 | version 3 of the license or (at your option) any later version 5 | that is accepted by the membership of KDE e.V. (or its successor 6 | approved by the membership of KDE e.V.), which shall act as a 7 | proxy as defined in Section 6 of version 3 of the license. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | -------------------------------------------------------------------------------- /src/utils/d_ptr_implementation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | namespace kamd 10 | { 11 | namespace utils 12 | { 13 | template 14 | d_ptr::d_ptr() 15 | : d(new T()) 16 | { 17 | } 18 | 19 | template 20 | template 21 | d_ptr::d_ptr(Args &&...args) 22 | : d(new T(std::forward(args)...)) 23 | { 24 | } 25 | 26 | template 27 | d_ptr::~d_ptr() 28 | { 29 | } 30 | 31 | template 32 | T *d_ptr::operator->() const 33 | { 34 | return d.get(); 35 | } 36 | 37 | } // namespace utils 38 | } // namespace kamd 39 | -------------------------------------------------------------------------------- /src/service/plugins/sqlite/ResourceScoreCache.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011, 2012 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | // Qt 10 | #include 11 | 12 | // Utils 13 | #include 14 | 15 | /** 16 | * ResourceScoreCache handles the persistence of the usage ratings for 17 | * the resources. 18 | * 19 | * It contains the logic to update the score of a single resource. 20 | */ 21 | class ResourceScoreCache 22 | { 23 | public: 24 | ResourceScoreCache(const QString &activity, const QString &application, const QString &resource); 25 | virtual ~ResourceScoreCache(); 26 | 27 | void update(); 28 | 29 | private: 30 | D_PTR; 31 | class Queries; 32 | }; 33 | -------------------------------------------------------------------------------- /src/service/Resources_p.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | // Self 10 | #include "Resources.h" 11 | 12 | // Local 13 | #include "resourcesadaptor.h" 14 | 15 | class Resources::Private : public QThread 16 | { 17 | Q_OBJECT 18 | 19 | public: 20 | Private(Resources *parent); 21 | ~Private() override; 22 | 23 | void run() override; 24 | 25 | // Inserts the event directly into the queue 26 | void insertEvent(const Event &newEvent); 27 | 28 | // Processes the event and inserts it into the queue 29 | void addEvent(const Event &newEvent); 30 | 31 | private: 32 | Resources *const q; 33 | }; 34 | -------------------------------------------------------------------------------- /src/service/plugins/sqlite/ResourceScoreMaintainer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011, 2012 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | // Utils 12 | #include 13 | 14 | class ResourceScoreMaintainerPrivate; 15 | class QString; 16 | 17 | /** 18 | * ResourceScoreMaintainer represents a queue of resource processing requests. 19 | */ 20 | class ResourceScoreMaintainer : public QObject 21 | { 22 | public: 23 | static ResourceScoreMaintainer *self(); 24 | 25 | ~ResourceScoreMaintainer() override; 26 | 27 | void processResource(const QString &resource, const QString &application); 28 | 29 | private: 30 | ResourceScoreMaintainer(); 31 | 32 | D_PTR; 33 | }; 34 | -------------------------------------------------------------------------------- /src/service/plugins/krunner/ActivityRunner.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2021 Alexander Lohnau 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "dbusutils.h" 10 | #include 11 | 12 | class ActivityRunner : public Plugin 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | explicit ActivityRunner(QObject *parent); 18 | ~ActivityRunner() override; 19 | bool init(QHash &modules) override; 20 | 21 | void Run(const QString &matchId, const QString &actionId); 22 | RemoteMatches Match(const QString &query); 23 | RemoteActions Actions(); 24 | QVariantMap Config(); 25 | 26 | private: 27 | QObject *m_activitiesService; 28 | const QString m_keywordi18n; 29 | const QString m_keyword; 30 | }; 31 | -------------------------------------------------------------------------------- /src/utils/remove_if.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | /******************************************************************** 12 | * Syntactic sugar for the erase-remove idiom * 13 | ********************************************************************/ 14 | 15 | namespace kamd 16 | { 17 | namespace utils 18 | { 19 | template 20 | __inline void remove_if(Collection &collection, Filter filter) 21 | { 22 | collection.erase(std::remove_if(collection.begin(), collection.end(), filter), collection.end()); 23 | } 24 | 25 | } // namespace utils 26 | } // namespace kamd 27 | -------------------------------------------------------------------------------- /.kde-ci.yml: -------------------------------------------------------------------------------- 1 | # SPDX-FileCopyrightText: None 2 | # SPDX-License-Identifier: CC0-1.0 3 | 4 | Dependencies: 5 | - 'on': ['@all'] 6 | 'require': 7 | 'frameworks/extra-cmake-modules': '@latest-kf6' 8 | 'frameworks/kauth': '@latest-kf6' 9 | 'frameworks/kcodecs': '@latest-kf6' 10 | 'frameworks/kconfig': '@latest-kf6' 11 | 'frameworks/kconfigwidgets': '@latest-kf6' 12 | 'frameworks/kcoreaddons': '@latest-kf6' 13 | 'frameworks/kcrash': '@latest-kf6' 14 | 'frameworks/kdbusaddons': '@latest-kf6' 15 | 'frameworks/kglobalaccel': '@latest-kf6' 16 | 'frameworks/ki18n': '@latest-kf6' 17 | 'frameworks/kio': '@latest-kf6' 18 | 'frameworks/kservice': '@latest-kf6' 19 | 'frameworks/kwidgetsaddons': '@latest-kf6' 20 | 'frameworks/kxmlgui': '@latest-kf6' 21 | Options: 22 | require-passing-tests-on: ['Linux', 'FreeBSD'] 23 | -------------------------------------------------------------------------------- /src/common/dbus/common.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | // clang-format off 13 | 14 | #define KAMD_DBUS_SERVICE \ 15 | QStringLiteral("org.kde.ActivityManager") 16 | 17 | #define KAMD_DBUS_OBJECT_PATH(A) \ 18 | (sizeof(A) > 2 ? QLatin1String("/ActivityManager/" A) \ 19 | : QLatin1String("/ActivityManager")) 20 | 21 | #define KAMD_DBUS_OBJECT(A) \ 22 | QLatin1String("org.kde.ActivityManager." A) 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/service/plugins/sqlite/Database.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011, 2012 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | // Qt 10 | #include 11 | #include 12 | 13 | // Utils 14 | #include 15 | 16 | // Local 17 | #include 18 | 19 | namespace Common 20 | { 21 | class Database; 22 | } // namespace Common 23 | 24 | class ResourcesDatabaseInitializer 25 | { 26 | public: 27 | // static Database *self(); 28 | 29 | private: 30 | ResourcesDatabaseInitializer(); 31 | ~ResourcesDatabaseInitializer(); 32 | 33 | void initDatabase(bool retryOnFail = true); 34 | 35 | D_PTR; 36 | 37 | friend Common::Database::Ptr resourcesDatabase(); 38 | }; 39 | 40 | Common::Database::Ptr resourcesDatabase(); 41 | -------------------------------------------------------------------------------- /src/service/plugins/runapplication/RunApplicationPlugin.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | class RunApplicationPlugin : public Plugin 12 | { 13 | Q_OBJECT 14 | 15 | public: 16 | explicit RunApplicationPlugin(QObject *parent); 17 | ~RunApplicationPlugin() override; 18 | 19 | bool init(QHash &modules) override; 20 | 21 | private Q_SLOTS: 22 | void currentActivityChanged(const QString &activity); 23 | 24 | private: 25 | QString activityDirectory(const QString &activity) const; 26 | void executeIn(const QString &directory) const; 27 | 28 | QString m_currentActivity; 29 | QStringList m_previousActivities; 30 | QObject *m_activitiesService; 31 | }; 32 | -------------------------------------------------------------------------------- /src/service/plugins/recentlyused-eventspy/RecentlyUsedEventSpy.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2019 Méven Car (meven.car@kdemail.net) 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | class KDirWatch; 13 | 14 | class RecentlyUsedEventSpyPlugin : public Plugin 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | explicit RecentlyUsedEventSpyPlugin(QObject *parent); 20 | ~RecentlyUsedEventSpyPlugin() override; 21 | 22 | bool init(QHash &modules) override; 23 | 24 | private Q_SLOTS: 25 | void fileUpdated(const QString &file); 26 | void addDocument(const QUrl &url, const QString &application, const QString &mimetype); 27 | 28 | private: 29 | QObject *m_resources; 30 | std::unique_ptr m_dirWatcher; 31 | QDateTime m_lastUpdate; 32 | }; 33 | -------------------------------------------------------------------------------- /src/service/plugins/libreoffice-spy/LibreOfficeEventSpy.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2023 Méven Car (meven@kde.org) 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | class KDirWatch; 13 | 14 | class LibreOfficeEventSpyPlugin : public Plugin 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | explicit LibreOfficeEventSpyPlugin(QObject *parent); 20 | ~LibreOfficeEventSpyPlugin() override; 21 | 22 | bool init(QHash &modules) override; 23 | 24 | private Q_SLOTS: 25 | void fileUpdated(const QString &file); 26 | void addDocument(const QUrl &url, const QString &application, const QString &mimetype); 27 | 28 | private: 29 | QObject *m_resources; 30 | std::unique_ptr m_dirWatcher; 31 | QUrl m_lastUrl; 32 | bool m_init = false; 33 | }; 34 | -------------------------------------------------------------------------------- /src/service/plugins/activitytemplates/TemplatesPlugin.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | class TemplatesPlugin : public Plugin 12 | { 13 | Q_OBJECT 14 | Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Templates") 15 | 16 | public: 17 | explicit TemplatesPlugin(QObject *parent); 18 | ~TemplatesPlugin() override; 19 | 20 | bool init(QHash &modules) override; 21 | 22 | QDBusVariant featureValue(const QStringList &property) const override; 23 | 24 | void setFeatureValue(const QStringList &property, const QDBusVariant &value) override; 25 | 26 | public Q_SLOTS: 27 | void createActivity(const QDBusVariant &values); 28 | 29 | private: 30 | QObject *m_activities; 31 | }; 32 | -------------------------------------------------------------------------------- /src/common/dbus/org.kde.ActivityManager.Features.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/common/dbus/org.kde.ActivityManager.Resources.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/common/dbus/org.kde.ActivityManager.Activities.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | struct ActivityInfo { 14 | QString id; 15 | QString name; 16 | QString description; 17 | QString icon; 18 | 19 | ActivityInfo(const QString &id = QString(), const QString &name = QString(), const QString &description = QString(), const QString &icon = QString()) 20 | : id(id) 21 | , name(name) 22 | , description(description) 23 | , icon(icon) 24 | { 25 | } 26 | }; 27 | 28 | typedef QList ActivityInfoList; 29 | 30 | Q_DECLARE_METATYPE(ActivityInfo) 31 | Q_DECLARE_METATYPE(ActivityInfoList) 32 | 33 | QDBusArgument &operator<<(QDBusArgument &arg, const ActivityInfo &); 34 | const QDBusArgument &operator>>(const QDBusArgument &arg, ActivityInfo &rec); 35 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | src/common/database/schema/ResourcesDatabaseSchema.cpp:110: 2 | TODO: This will require some refactoring after we introduce more databases 3 | 4 | src/utils/member_matcher.h:89: 5 | TODO: Make this work if the arguments are reversed, 6 | or even if both arhuments need to be checked 7 | for the specified member 8 | 9 | src/service/ksmserver/KSMServer.cpp:73: 10 | TODO: in multi-head environment there are multiple kwin instances 11 | running and they will export different dbus name on different 12 | root window. We have no support for that currently. 13 | In future, the session management for Wayland may also need to be 14 | reimplemented in some way. 15 | 16 | src/service/Application.cpp:150: 17 | TODO: Restart on crash 18 | KCrash::setFlags(KCrash::AutoRestart); 19 | src/service/Application.cpp:198: 20 | TODO: Show a notification for a plugin that failed to load 21 | 22 | src/service/plugins/activitytemplates/TemplatesPlugin.cpp:88: 23 | TODO: Remove. For testing purposes only 24 | 25 | src/service/plugins/sqlite/StatsPlugin.cpp:436: 26 | TODO: Add focus and modification 27 | 28 | -------------------------------------------------------------------------------- /src/service/Features.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | // Qt 10 | #include 11 | #include 12 | 13 | // Utils 14 | #include 15 | 16 | // Local 17 | #include "Module.h" 18 | 19 | /** 20 | * Features object provides one interface for clients 21 | * to access other objects' features 22 | */ 23 | class Features : public Module 24 | { 25 | Q_OBJECT 26 | Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Features") 27 | 28 | public: 29 | explicit Features(QObject *parent = nullptr); 30 | ~Features() override; 31 | 32 | QStringList ListFeatures(const QString &module) const; 33 | 34 | QDBusVariant GetValue(const QString &property) const; 35 | 36 | /** 37 | * Is the feature backend available? 38 | */ 39 | bool IsFeatureOperational(const QString &feature) const; 40 | 41 | public Q_SLOTS: 42 | 43 | void SetValue(const QString &property, const QDBusVariant &value); 44 | 45 | private: 46 | D_PTR; 47 | }; 48 | -------------------------------------------------------------------------------- /src/utils/d_ptr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | 11 | namespace kamd 12 | { 13 | namespace utils 14 | { 15 | template 16 | class d_ptr 17 | { 18 | private: 19 | std::unique_ptr d; 20 | 21 | public: 22 | d_ptr(); 23 | 24 | template 25 | d_ptr(Args &&...); 26 | 27 | ~d_ptr(); 28 | 29 | T *operator->() const; 30 | }; 31 | 32 | #define D_PTR \ 33 | class Private; \ 34 | friend class Private; \ 35 | const ::kamd::utils::d_ptr d 36 | 37 | } // namespace utils 38 | } // namespace kamd 39 | -------------------------------------------------------------------------------- /src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012 Makis Marimpis 3 | * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic 4 | * 5 | * SPDX-License-Identifier: GPL-2.0-or-later 6 | */ 7 | 8 | #pragma once 9 | 10 | #include 11 | class KActionCollection; 12 | class QAction; 13 | 14 | class GlobalShortcutsPlugin : public Plugin 15 | { 16 | Q_OBJECT 17 | 18 | public: 19 | explicit GlobalShortcutsPlugin(QObject *parent); 20 | ~GlobalShortcutsPlugin() override; 21 | 22 | bool init(QHash &modules) override; 23 | 24 | private Q_SLOTS: 25 | void activityAdded(const QString &activity); 26 | void activityRemoved(const QString &activity); 27 | void activityChanged(const QString &activity); 28 | 29 | Q_SIGNALS: 30 | void currentActivityChanged(const QString &activity); 31 | 32 | private: 33 | inline QString activityName(const QString &activity) const; 34 | inline QString activityForAction(QAction *action) const; 35 | 36 | QObject *m_activitiesService; 37 | QStringList m_activitiesList; 38 | KActionCollection *m_actionCollection; 39 | }; 40 | -------------------------------------------------------------------------------- /src/service/plugins/sqlite/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | set ( 3 | sqliteplugin_SRCS 4 | Database.cpp 5 | StatsPlugin.cpp 6 | ResourceScoreCache.cpp 7 | ResourceScoreMaintainer.cpp 8 | ResourceLinking.cpp 9 | 10 | ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/Database.cpp 11 | ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/database/schema/ResourcesDatabaseSchema.cpp 12 | 13 | ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/utils/qsqlquery_iterator.cpp 14 | ) 15 | 16 | qt_add_dbus_adaptor ( 17 | sqliteplugin_SRCS 18 | ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.ResourcesLinking.xml 19 | ResourceLinking.h ResourceLinking 20 | resourcelinkingadaptor 21 | ) 22 | 23 | qt_add_dbus_adaptor ( 24 | sqliteplugin_SRCS 25 | ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.ResourcesScoring.xml 26 | StatsPlugin.h StatsPlugin 27 | resourcescoringadaptor 28 | ) 29 | 30 | kamd_add_plugin(org.kde.ActivityManager.ResourceScoring SOURCES ${sqliteplugin_SRCS}) 31 | 32 | target_link_libraries(org.kde.ActivityManager.ResourceScoring 33 | Qt::Sql 34 | KF6::KIOCore 35 | KF6::DBusAddons 36 | KF6::Crash 37 | debug_STATIC 38 | ) 39 | -------------------------------------------------------------------------------- /src/service/Module.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2014-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "kactivitymanagerd_plugin_export.h" 10 | 11 | // Qt 12 | #include 13 | #include 14 | #include 15 | 16 | // Utils 17 | #include 18 | 19 | /** 20 | * Module 21 | */ 22 | class KACTIVITYMANAGERD_PLUGIN_EXPORT Module : public QObject 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | explicit Module(const QString &name, QObject *parent = nullptr); 28 | ~Module() override; 29 | 30 | static QObject *get(const QString &name); 31 | static QHash &get(); 32 | 33 | virtual bool isFeatureOperational(const QStringList &feature) const; 34 | virtual bool isFeatureEnabled(const QStringList &feature) const; 35 | virtual void setFeatureEnabled(const QStringList &feature, bool value); 36 | virtual QStringList listFeatures(const QStringList &feature) const; 37 | 38 | virtual QDBusVariant featureValue(const QStringList &property) const; 39 | virtual void setFeatureValue(const QStringList &property, const QDBusVariant &value); 40 | 41 | private: 42 | D_PTR; 43 | }; 44 | -------------------------------------------------------------------------------- /src/service/Application.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | // Qt 10 | #include 11 | 12 | // Utils 13 | #include 14 | 15 | class Resources; 16 | class Activities; 17 | class Features; 18 | 19 | /** 20 | * Main application object 21 | * This can *not* be a QGuiApplication because 22 | * we need KWindowSystem widgets. 23 | */ 24 | class Application : public QGuiApplication 25 | { 26 | Q_OBJECT 27 | Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Application") 28 | 29 | public: 30 | Application(int &argc, char **argv); 31 | ~Application() override; 32 | 33 | virtual int newInstance(); 34 | 35 | // static Application * self(); 36 | // static void quit(); 37 | 38 | Resources &resources() const; 39 | Activities &activities() const; 40 | Features &features() const; 41 | 42 | QStringList loadedPlugins() const; 43 | 44 | public Q_SLOTS: 45 | void quit(); 46 | bool loadPlugin(const QString &plugin); 47 | QString serviceVersion() const; 48 | 49 | private Q_SLOTS: 50 | void init(); 51 | void loadPlugins(); 52 | 53 | private: 54 | D_PTR; 55 | 56 | friend int main(int, char **); 57 | }; 58 | -------------------------------------------------------------------------------- /README.developers: -------------------------------------------------------------------------------- 1 | 2 | Compiler compatibility 3 | ====================== 4 | 5 | You can (and should) use more modern C++ coding practices. Including 6 | auto, lambdas, smart pointers etc. You can use anything that GCC 4.7 7 | can compile. 8 | 9 | These are the compilers you need to test your patches against: 10 | - GCC 4.7 11 | - LLVM/Clang 3.1 12 | 13 | When you set up different builds alongside the main one, you can use 14 | scripts/commit.sh to build them all before committing. The script 15 | calls git commit if all builds finished successfully. See the script 16 | for more info. 17 | 18 | 19 | File naming 20 | =========== 21 | 22 | The service, and the rest of the repository should be in camel-case 23 | (with the exception of source files that don't have corresponding 24 | headers, or vice-versa). 25 | 26 | 27 | CONVENIENCE MACROS AND METHODS 28 | ============================== 29 | 30 | There are some convenience macros and methods defined in the headers placed 31 | in the service/utils/ directory. 32 | 33 | D_PTR 34 | ----- 35 | 36 | d_ptr.h and d_ptr_implementation.h define a smart pointer way of doing 37 | the d-ptr (aka pimpl) idiom. 38 | 39 | remove_if 40 | --------- 41 | 42 | remove_if.h is a generic implementation of the erase-remove idiom 43 | 44 | for_each_assoc, find_if_assoc 45 | ----------------------------- 46 | 47 | for_each_assoc.h and find_if_assoc.h define the for_each and find_if 48 | algorithms for associative containers. Works with both Qt and STL containers. 49 | 50 | -------------------------------------------------------------------------------- /po/ja/kactivities6.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: kcm_activities\n" 4 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 5 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 6 | "PO-Revision-Date: 2012-11-15 03:25-0800\n" 7 | "Last-Translator: Japanese KDE translation team \n" 8 | "Language-Team: Japanese \n" 9 | "Language: ja\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: nplurals=1; plural=0;\n" 14 | "X-Accelerator-Marker: &\n" 15 | "X-Text-Markup: kde4\n" 16 | 17 | #, kde-format 18 | msgctxt "NAME OF TRANSLATORS" 19 | msgid "Your names" 20 | msgstr "" 21 | 22 | #, kde-format 23 | msgctxt "EMAIL OF TRANSLATORS" 24 | msgid "Your emails" 25 | msgstr "" 26 | 27 | #: service/Activities.cpp:62 28 | #, kde-format 29 | msgid "Default" 30 | msgstr "" 31 | 32 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 33 | #, kde-format 34 | msgid "Activity Manager" 35 | msgstr "" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 38 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 39 | #, kde-format 40 | msgctxt "@action" 41 | msgid "Switch to activity \"%1\"" 42 | msgstr "" 43 | 44 | #: service/plugins/krunner/ActivityRunner.cpp:19 45 | #, kde-format 46 | msgctxt "KRunner keyword" 47 | msgid "activity" 48 | msgstr "" 49 | 50 | #: service/plugins/krunner/ActivityRunner.cpp:67 51 | #, kde-format 52 | msgid "Switch to \"%1\"" 53 | msgstr "" 54 | -------------------------------------------------------------------------------- /src/common/dbus/org.kde.ActivityManager.Activities.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #include "org.kde.ActivityManager.Activities.h" 8 | 9 | #include 10 | 11 | namespace details 12 | { 13 | class ActivityInfoStaticInit 14 | { 15 | public: 16 | ActivityInfoStaticInit() 17 | { 18 | qDBusRegisterMetaType(); 19 | qDBusRegisterMetaType(); 20 | } 21 | 22 | static ActivityInfoStaticInit _instance; 23 | }; 24 | 25 | ActivityInfoStaticInit ActivityInfoStaticInit::_instance; 26 | 27 | } // namespace details 28 | 29 | QDBusArgument &operator<<(QDBusArgument &arg, const ActivityInfo &r) 30 | { 31 | arg.beginStructure(); 32 | 33 | arg << r.id; 34 | arg << r.name; 35 | arg << r.description; 36 | arg << r.icon; 37 | arg << 2; // unused 38 | 39 | arg.endStructure(); 40 | 41 | return arg; 42 | } 43 | 44 | const QDBusArgument &operator>>(const QDBusArgument &arg, ActivityInfo &r) 45 | { 46 | arg.beginStructure(); 47 | 48 | int unused; 49 | 50 | arg >> r.id; 51 | arg >> r.name; 52 | arg >> r.description; 53 | arg >> r.icon; 54 | arg >> unused; 55 | 56 | arg.endStructure(); 57 | 58 | return arg; 59 | } 60 | 61 | QDebug operator<<(QDebug dbg, const ActivityInfo &r) 62 | { 63 | dbg << "ActivityInfo(" << r.id << r.name << ")"; 64 | return dbg.space(); 65 | } 66 | -------------------------------------------------------------------------------- /src/utils/qsqlquery_iterator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2013-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | 12 | template 13 | class NextValueIterator 14 | { 15 | public: 16 | enum Type { 17 | NormalIterator, 18 | EndIterator, 19 | }; 20 | 21 | NextValueIterator(ResultSet &query, Type type = NormalIterator) 22 | : m_query(query) 23 | , m_type(type) 24 | { 25 | if (type != EndIterator) { 26 | m_query.next(); 27 | } 28 | } 29 | 30 | inline bool operator!=(const NextValueIterator &other) const 31 | { 32 | Q_UNUSED(other); 33 | return m_query.isValid(); 34 | } 35 | 36 | inline NextValueIterator &operator*() 37 | { 38 | return *this; 39 | } 40 | 41 | inline QVariant operator[](int index) const 42 | { 43 | return m_query.value(index); 44 | } 45 | 46 | inline QVariant operator[](const QString &name) const 47 | { 48 | return m_query.value(name); 49 | } 50 | 51 | inline NextValueIterator &operator++() 52 | { 53 | m_query.next(); 54 | return *this; 55 | } 56 | 57 | private: 58 | ResultSet &m_query; 59 | Type m_type; 60 | }; 61 | 62 | NextValueIterator begin(QSqlQuery &query); 63 | NextValueIterator end(QSqlQuery &query); 64 | -------------------------------------------------------------------------------- /po/pt/kactivities6.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: kactivities5\n" 4 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 5 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 6 | "PO-Revision-Date: 2021-03-02 12:57+0000\n" 7 | "Last-Translator: José Nuno Coelho Pires \n" 8 | "Language-Team: Portuguese \n" 9 | "Language: pt\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 14 | "X-POFile-SpellExtra: Cukic QML\n" 15 | 16 | #, kde-format 17 | msgctxt "NAME OF TRANSLATORS" 18 | msgid "Your names" 19 | msgstr "" 20 | 21 | #, kde-format 22 | msgctxt "EMAIL OF TRANSLATORS" 23 | msgid "Your emails" 24 | msgstr "" 25 | 26 | #: service/Activities.cpp:62 27 | #, kde-format 28 | msgid "Default" 29 | msgstr "Predefinição" 30 | 31 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 32 | #, kde-format 33 | msgid "Activity Manager" 34 | msgstr "Gestor de Actividades" 35 | 36 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 38 | #, kde-format 39 | msgctxt "@action" 40 | msgid "Switch to activity \"%1\"" 41 | msgstr "Mudar para a actividade \"%1\"" 42 | 43 | #: service/plugins/krunner/ActivityRunner.cpp:19 44 | #, kde-format 45 | msgctxt "KRunner keyword" 46 | msgid "activity" 47 | msgstr "actividade" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:67 50 | #, kde-format 51 | msgid "Switch to \"%1\"" 52 | msgstr "Mudar para a \"%1\"" 53 | -------------------------------------------------------------------------------- /src/service/Event.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "kactivitymanagerd_plugin_export.h" 10 | 11 | // Qt 12 | #include 13 | 14 | /** 15 | * 16 | */ 17 | class KACTIVITYMANAGERD_PLUGIN_EXPORT Event 18 | { 19 | public: 20 | enum Type { 21 | Accessed = 0, ///< resource was accessed, but we don't know for how long it will be open/used 22 | 23 | Opened = 1, ///< resource was opened 24 | Modified = 2, ///< previously opened resource was modified 25 | Closed = 3, ///< previously opened resource was closed 26 | 27 | LastEventType = 3, 28 | UserEventType = 32, 29 | }; 30 | 31 | // These events can't come outside of the activity manager daemon, 32 | // they are intended to provide some additional functionality 33 | // to the daemon plugins 34 | enum UserType { 35 | UpdateScore = UserEventType + 1, 36 | }; 37 | 38 | Event(); 39 | 40 | explicit Event(const QString &application, const QString &uri, int type = Accessed); 41 | 42 | Event deriveWithType(Type type) const; 43 | 44 | bool operator==(const Event &other) const; 45 | 46 | public: 47 | QString application; 48 | QString uri; 49 | int type; 50 | QDateTime timestamp; 51 | 52 | QString typeName() const; 53 | }; 54 | 55 | typedef QList EventList; 56 | 57 | Q_DECLARE_METATYPE(Event) 58 | Q_DECLARE_METATYPE(EventList) 59 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # KActivities 2 | 3 | Core components for the KDE Activity concept 4 | 5 | ## Introduction 6 | 7 | When a user is interacting with a computer, there are three main areas of 8 | contextual information that may affect the behaviour of the system: who the user 9 | is, where they are, and what they are doing. 10 | 11 | *Activities* deal with the last one. An activity might be "developing a KDE 12 | application", "studying 19th century art", "composing music" or "watching funny 13 | videos". Each of these activites may involve multiple applications, and a single 14 | application may be used in multiple activities (for example, most activities are 15 | likely to involve using a web browser, but different activities will probably 16 | involve different websites). 17 | 18 | KActivities provides the infrastructure needed to manage a user's activites, 19 | allowing them to switch between tasks, and for applications to update their 20 | state to match the user's current activity. This includes a daemon, a library 21 | for interacting with that daemon, and plugins for integration with other 22 | frameworks. 23 | 24 | ## Usage 25 | 26 | Most applications that wish to be activity-aware will want to use 27 | KActivities::Consumer to keep track of the user's current activity, and 28 | KActivities::ResourceInstance to notify the activity manager of resources the 29 | user has accessed (this is not necessary for resources accessed via KIO, as a 30 | plugin is provided to do that automatically). 31 | 32 | The other classes available in the API are primarily intended for use by the 33 | workspace to allow the user to view and manage available activities. 34 | -------------------------------------------------------------------------------- /po/ast/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This file is copyright: 2 | # This file is distributed under the same license as the kactivitymanagerd package. 3 | # 4 | # Enol P. , 2023. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: kactivitymanagerd\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2023-05-03 23:35+0200\n" 11 | "Last-Translator: Enol P. \n" 12 | "Language-Team: \n" 13 | "Language: ast\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 18 | "X-Generator: Lokalize 23.04.0\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, kde-format 37 | msgid "Activity Manager" 38 | msgstr "" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 42 | #, kde-format 43 | msgctxt "@action" 44 | msgid "Switch to activity \"%1\"" 45 | msgstr "" 46 | 47 | #: service/plugins/krunner/ActivityRunner.cpp:19 48 | #, kde-format 49 | msgctxt "KRunner keyword" 50 | msgid "activity" 51 | msgstr "" 52 | 53 | #: service/plugins/krunner/ActivityRunner.cpp:67 54 | #, kde-format 55 | msgid "Switch to \"%1\"" 56 | msgstr "" 57 | -------------------------------------------------------------------------------- /po/zh_CN/kactivities6.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: kdeorg\n" 4 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 5 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 6 | "PO-Revision-Date: 2024-04-22 15:58\n" 7 | "Last-Translator: \n" 8 | "Language-Team: Chinese Simplified\n" 9 | "Language: zh_CN\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: nplurals=1; plural=0;\n" 14 | "X-Crowdin-Project: kdeorg\n" 15 | "X-Crowdin-Project-ID: 269464\n" 16 | "X-Crowdin-Language: zh-CN\n" 17 | "X-Crowdin-File: /kf6-trunk/messages/kactivitymanagerd/kactivities6.pot\n" 18 | "X-Crowdin-File-ID: 44493\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "Guo Yunhe, Tyson Tan" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "i@guoyunhe.me, tds00@qq.com" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "默认" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, kde-format 37 | msgid "Activity Manager" 38 | msgstr "活动管理器" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 42 | #, kde-format 43 | msgctxt "@action" 44 | msgid "Switch to activity \"%1\"" 45 | msgstr "切换到活动“%1”" 46 | 47 | #: service/plugins/krunner/ActivityRunner.cpp:19 48 | #, kde-format 49 | msgctxt "KRunner keyword" 50 | msgid "activity" 51 | msgstr "活动" 52 | 53 | #: service/plugins/krunner/ActivityRunner.cpp:67 54 | #, kde-format 55 | msgid "Switch to \"%1\"" 56 | msgstr "切换到“%1”" 57 | -------------------------------------------------------------------------------- /po/se/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities6 to Northern Sami 2 | # 3 | # Børre Gaup , 2011. 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: \n" 7 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 8 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 9 | "PO-Revision-Date: 2011-10-26 01:37+0200\n" 10 | "Last-Translator: Børre Gaup \n" 11 | "Language-Team: Northern Sami \n" 12 | "Language: se\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Generator: Lokalize 1.2\n" 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 18 | "X-Environment: kde\n" 19 | "X-Accelerator-Marker: &\n" 20 | "X-Text-Markup: kde4\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "Børre Gaup" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "boerre@skolelinux.no" 31 | 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "Standárda" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "" 59 | -------------------------------------------------------------------------------- /po/ml/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Malayalam translations for kactivitymanagerd package. 2 | # Copyright (C) 2019 This file is copyright: 3 | # This file is distributed under the same license as the kactivitymanagerd package. 4 | # Automatically generated, 2019. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: kactivitymanagerd\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 11 | "PO-Revision-Date: 2018-11-24 03:20+0100\n" 12 | "Last-Translator: Automatically generated\n" 13 | "Language-Team: Swathanthra|സ്വതന്ത്ര Malayalam|മലയാളം Computing|കമ്പ്യൂട്ടിങ്ങ് \n" 15 | "Language: ml\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "" 30 | 31 | #: service/Activities.cpp:62 32 | #, kde-format 33 | msgid "Default" 34 | msgstr "" 35 | 36 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 37 | #, kde-format 38 | msgid "Activity Manager" 39 | msgstr "" 40 | 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 43 | #, kde-format 44 | msgctxt "@action" 45 | msgid "Switch to activity \"%1\"" 46 | msgstr "" 47 | 48 | #: service/plugins/krunner/ActivityRunner.cpp:19 49 | #, kde-format 50 | msgctxt "KRunner keyword" 51 | msgid "activity" 52 | msgstr "" 53 | 54 | #: service/plugins/krunner/ActivityRunner.cpp:67 55 | #, kde-format 56 | msgid "Switch to \"%1\"" 57 | msgstr "" 58 | -------------------------------------------------------------------------------- /src/service/Event.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | // Self 8 | #include "Event.h" 9 | 10 | // Local 11 | #include 12 | 13 | Event::Event() 14 | : type(Accessed) 15 | , timestamp(QDateTime::currentDateTime()) 16 | { 17 | } 18 | 19 | Event::Event(const QString &vApplication, const QString &vUri, int vType) 20 | : application(vApplication) 21 | , uri(vUri) 22 | , type(vType) 23 | , timestamp(QDateTime::currentDateTime()) 24 | { 25 | Q_ASSERT(!vApplication.isEmpty()); 26 | Q_ASSERT(!vUri.isEmpty()); 27 | } 28 | 29 | Event Event::deriveWithType(Type type) const 30 | { 31 | Event result(*this); 32 | result.type = type; 33 | return result; 34 | } 35 | 36 | bool Event::operator==(const Event &other) const 37 | { 38 | return application == other.application && uri == other.uri && type == other.type && timestamp == other.timestamp; 39 | } 40 | 41 | QString Event::typeName() const 42 | { 43 | switch (type) { 44 | case Accessed: 45 | return QStringLiteral("Accessed"); 46 | case Opened: 47 | return QStringLiteral("Opened"); 48 | case Modified: 49 | return QStringLiteral("Modified"); 50 | case Closed: 51 | return QStringLiteral("Closed"); 52 | default: 53 | return QStringLiteral("Other"); 54 | } 55 | } 56 | 57 | QDebug operator<<(QDebug dbg, const Event &e) 58 | { 59 | #ifndef QT_NO_DEBUG_OUTPUT 60 | dbg << "Event(" << e.application << e.typeName() << e.uri << ":" << e.timestamp << ")"; 61 | #else 62 | Q_UNUSED(e); 63 | #endif 64 | return dbg.space(); 65 | } 66 | -------------------------------------------------------------------------------- /po/az/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This file is copyright: 2 | # This file is distributed under the same license as the kactivitymanagerd package. 3 | # 4 | # Xəyyam Qocayev , 2020, 2021, 2022. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: kactivitymanagerd\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2022-07-03 14:25+0400\n" 11 | "Last-Translator: Kheyyam \n" 12 | "Language-Team: Azerbaijani \n" 13 | "Language: az\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 18 | "X-Generator: Lokalize 22.04.2\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "Standart" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, kde-format 37 | msgid "Activity Manager" 38 | msgstr "İş otağı meneceri" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 42 | #, kde-format 43 | msgctxt "@action" 44 | msgid "Switch to activity \"%1\"" 45 | msgstr "\"%1\" otağına keçin" 46 | 47 | #: service/plugins/krunner/ActivityRunner.cpp:19 48 | #, kde-format 49 | msgctxt "KRunner keyword" 50 | msgid "activity" 51 | msgstr "iş otağı" 52 | 53 | #: service/plugins/krunner/ActivityRunner.cpp:67 54 | #, kde-format 55 | msgid "Switch to \"%1\"" 56 | msgstr "\"%1\" otağına keçin" 57 | -------------------------------------------------------------------------------- /po/vi/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This file is copyright: 2 | # This file is distributed under the same license as the kactivitymanagerd package. 3 | # 4 | # Phu Hung Nguyen , 2022. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: kactivitymanagerd\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2022-05-16 07:58+0200\n" 11 | "Last-Translator: Phu Hung Nguyen \n" 12 | "Language-Team: Vietnamese \n" 13 | "Language: vi\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=1; plural=0;\n" 18 | "X-Generator: Lokalize 21.12.2\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "Mặc định" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, kde-format 37 | msgid "Activity Manager" 38 | msgstr "Trình quản lí Hoạt động" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 42 | #, kde-format 43 | msgctxt "@action" 44 | msgid "Switch to activity \"%1\"" 45 | msgstr "Chuyển sang Hoạt động \"%1\"" 46 | 47 | #: service/plugins/krunner/ActivityRunner.cpp:19 48 | #, kde-format 49 | msgctxt "KRunner keyword" 50 | msgid "activity" 51 | msgstr "Hoạt động" 52 | 53 | #: service/plugins/krunner/ActivityRunner.cpp:67 54 | #, kde-format 55 | msgid "Switch to \"%1\"" 56 | msgstr "Chuyển sang \"%1\"" 57 | -------------------------------------------------------------------------------- /po/nb/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities6 to Norwegian Bokmål 2 | # 3 | # Bjørn Steensrud , 2012, 2014. 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: \n" 7 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 8 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 9 | "PO-Revision-Date: 2014-09-09 12:52+0200\n" 10 | "Last-Translator: Bjørn Steensrud \n" 11 | "Language-Team: Norwegian Bokmål \n" 12 | "Language: nb\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 17 | "X-Generator: Lokalize 1.5\n" 18 | "X-Environment: kde\n" 19 | "X-Accelerator-Marker: &\n" 20 | "X-Text-Markup: kde4\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "Bjørn Steensrud" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "bjornst@skogkatt.homelinux.org" 31 | 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "Standard" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "Bytt til aktivitet «%1»" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "" 59 | -------------------------------------------------------------------------------- /po/ms/kactivities6.po: -------------------------------------------------------------------------------- 1 | # kactivitymanagerd Bahasa Melayu (Malay) (ms) 2 | # Copyright (C) YEAR This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # Sharuzzaman Ahmat Raslan , 2010. 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: kactivitymanagerd\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 11 | "PO-Revision-Date: 2010-11-14 23:28+0800\n" 12 | "Last-Translator: Sharuzzaman Ahmat Raslan \n" 13 | "Language-Team: Malay \n" 14 | "Language: ms\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: KBabel 1.11.4\n" 19 | "Plural-Forms: nplurals=2; plural=1;\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "Sharuzzaman Ahmat Raslan" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "sharuzzaman@gmail.com" 30 | 31 | #: service/Activities.cpp:62 32 | #, kde-format 33 | msgid "Default" 34 | msgstr "" 35 | 36 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 37 | #, kde-format 38 | msgid "Activity Manager" 39 | msgstr "" 40 | 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 43 | #, kde-format 44 | msgctxt "@action" 45 | msgid "Switch to activity \"%1\"" 46 | msgstr "" 47 | 48 | #: service/plugins/krunner/ActivityRunner.cpp:19 49 | #, kde-format 50 | msgctxt "KRunner keyword" 51 | msgid "activity" 52 | msgstr "" 53 | 54 | #: service/plugins/krunner/ActivityRunner.cpp:67 55 | #, kde-format 56 | msgid "Switch to \"%1\"" 57 | msgstr "" 58 | -------------------------------------------------------------------------------- /po/nl/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Freek de Kruijf , 2016, 2018, 2021. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: \n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2021-02-28 12:17+0100\n" 11 | "Last-Translator: Freek de Kruijf \n" 12 | "Language-Team: Dutch \n" 13 | "Language: nl\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 18 | "X-Generator: Lokalize 20.12.2\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "Freek de Kruijf" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "freekdekruijf@kde.nl" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "Standaard" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, kde-format 37 | msgid "Activity Manager" 38 | msgstr "Activiteitenbeheerder" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 42 | #, kde-format 43 | msgctxt "@action" 44 | msgid "Switch to activity \"%1\"" 45 | msgstr "Omschakelen naar activiteit \"%1\"" 46 | 47 | #: service/plugins/krunner/ActivityRunner.cpp:19 48 | #, kde-format 49 | msgctxt "KRunner keyword" 50 | msgid "activity" 51 | msgstr "activiteit" 52 | 53 | #: service/plugins/krunner/ActivityRunner.cpp:67 54 | #, kde-format 55 | msgid "Switch to \"%1\"" 56 | msgstr "Omschakelen naar \"%1\"" 57 | -------------------------------------------------------------------------------- /po/sv/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Stefan Asserhäll , 2016, 2018, 2021. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: \n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2021-02-28 08:59+0100\n" 11 | "Last-Translator: Stefan Asserhäll \n" 12 | "Language-Team: Swedish \n" 13 | "Language: sv\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 18 | "X-Generator: Lokalize 20.08.1\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "Stefan Asserhäll" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "stefan.asserhall@gmail.com" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "Förval" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, kde-format 37 | msgid "Activity Manager" 38 | msgstr "Aktivitetshanterare" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 42 | #, kde-format 43 | msgctxt "@action" 44 | msgid "Switch to activity \"%1\"" 45 | msgstr "Byt till aktivitet \"%1\"" 46 | 47 | #: service/plugins/krunner/ActivityRunner.cpp:19 48 | #, kde-format 49 | msgctxt "KRunner keyword" 50 | msgid "activity" 51 | msgstr "aktivitet" 52 | 53 | #: service/plugins/krunner/ActivityRunner.cpp:67 54 | #, kde-format 55 | msgid "Switch to \"%1\"" 56 | msgstr "Byt till \"%1\"" 57 | -------------------------------------------------------------------------------- /po/ta/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 This file is copyright: 2 | # This file is distributed under the same license as the kactivitymanagerd package. 3 | # 4 | # SPDX-FileCopyrightText: 2023, 2024 Kishore G 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: kactivitymanagerd\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2024-09-08 13:06+0200\n" 11 | "Last-Translator: Kishore G \n" 12 | "Language-Team: Tamil \n" 13 | "Language: ta\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 18 | "X-Generator: Lokalize 24.08.0\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "கோ. கிஷோர்" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "Kde-l10n-ta@kde.org" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "இயல்பிருப்பு" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, kde-format 37 | msgid "Activity Manager" 38 | msgstr "செயல்பாடு மேலாளி" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 42 | #, kde-format 43 | msgctxt "@action" 44 | msgid "Switch to activity \"%1\"" 45 | msgstr "\"%1\" என்ற செயல்பாட்டிற்கு தாவு" 46 | 47 | #: service/plugins/krunner/ActivityRunner.cpp:19 48 | #, kde-format 49 | msgctxt "KRunner keyword" 50 | msgid "activity" 51 | msgstr "" 52 | 53 | #: service/plugins/krunner/ActivityRunner.cpp:67 54 | #, kde-format 55 | msgid "Switch to \"%1\"" 56 | msgstr "\"%1\" என்பதற்கு தாவு" 57 | -------------------------------------------------------------------------------- /po/cs/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # SPDX-FileCopyrightText: 2012, 2013, 2014, 2015, 2016, 2024 Vit Pelcak 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: \n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2024-08-06 11:20+0200\n" 11 | "Last-Translator: Vit Pelcak \n" 12 | "Language-Team: Czech \n" 13 | "Language: cs\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" 18 | "X-Generator: Lokalize 24.05.2\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "Vít Pelčák" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "vit@pelcak.org" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "Výchozí" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, kde-format 37 | msgid "Activity Manager" 38 | msgstr "Správce aktivit" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 42 | #, kde-format 43 | msgctxt "@action" 44 | msgid "Switch to activity \"%1\"" 45 | msgstr "Přepnout na aktivitu \"%1\"" 46 | 47 | #: service/plugins/krunner/ActivityRunner.cpp:19 48 | #, kde-format 49 | msgctxt "KRunner keyword" 50 | msgid "activity" 51 | msgstr "aktivita" 52 | 53 | #: service/plugins/krunner/ActivityRunner.cpp:67 54 | #, kde-format 55 | msgid "Switch to \"%1\"" 56 | msgstr "Přepnout na \"%1\"" 57 | -------------------------------------------------------------------------------- /po/eo/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities to esperanto. 2 | # Copyright (C) 2017 Free Software Foundation, Inc. 3 | # This file is distributed under the same license as the kactivitymanagerd package. 4 | # Oliver Kellogg , 2023. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: kactivitymanagerd\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 11 | "PO-Revision-Date: 2024-12-28 17:41+0100\n" 12 | "Last-Translator: Oliver Kellogg \n" 13 | "Language-Team: Esperanto \n" 14 | "Language: eo\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "Oliver Kellogg" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "olivermkellogg@gmail.com" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "Defaŭlta" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, kde-format 37 | msgid "Activity Manager" 38 | msgstr "Aktivecadministrilo" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 42 | #, kde-format 43 | msgctxt "@action" 44 | msgid "Switch to activity \"%1\"" 45 | msgstr "Ŝanĝi al aktiveco \"%1\"" 46 | 47 | #: service/plugins/krunner/ActivityRunner.cpp:19 48 | #, kde-format 49 | msgctxt "KRunner keyword" 50 | msgid "activity" 51 | msgstr "aktiveco" 52 | 53 | #: service/plugins/krunner/ActivityRunner.cpp:67 54 | #, kde-format 55 | msgid "Switch to \"%1\"" 56 | msgstr "Ŝanĝi al \"%1\"" 57 | -------------------------------------------------------------------------------- /po/nn/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities6 to Norwegian Nynorsk 2 | # 3 | # Karl Ove Hufthammer , 2014, 2015, 2018, 2019, 2021. 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: \n" 7 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 8 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 9 | "PO-Revision-Date: 2021-03-21 17:40+0100\n" 10 | "Last-Translator: Karl Ove Hufthammer \n" 11 | "Language-Team: Norwegian Nynorsk \n" 12 | "Language: nn\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 17 | "X-Generator: Lokalize 20.12.3\n" 18 | "X-Environment: kde\n" 19 | "X-Accelerator-Marker: &\n" 20 | "X-Text-Markup: kde4\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "Karl Ove Hufthammer" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "karl@huftis.org" 31 | 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "Standard" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "Aktivitetshandsamar" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "Byt til aktiviteten «%1»" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "aktivitet" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "Byt til «%1»" 59 | -------------------------------------------------------------------------------- /po/sa/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2024 This file is copyright: 2 | # This file is distributed under the same license as the kactivitymanagerd package. 3 | # 4 | # SPDX-FileCopyrightText: 2024 kali 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: kactivitymanagerd\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2024-12-24 20:39+0530\n" 11 | "Last-Translator: kali \n" 12 | "Language-Team: Sanskrit \n" 13 | "Language: sa\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Generator: Lokalize 24.08.2\n" 18 | "Plural-Forms: nplurals=2; plural=(n>2);\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "श्रीकान्त् कलवार्" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "skkalwar999@gmail.com" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "पूर्वनिर्धारितम्" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, kde-format 37 | msgid "Activity Manager" 38 | msgstr "गतिविधि प्रबन्धक" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 42 | #, kde-format 43 | msgctxt "@action" 44 | msgid "Switch to activity \"%1\"" 45 | msgstr "\"%1\" इति क्रियाकलापं प्रति गच्छन्तु ।" 46 | 47 | #: service/plugins/krunner/ActivityRunner.cpp:19 48 | #, kde-format 49 | msgctxt "KRunner keyword" 50 | msgid "activity" 51 | msgstr "गतिविधि" 52 | 53 | #: service/plugins/krunner/ActivityRunner.cpp:67 54 | #, kde-format 55 | msgid "Switch to \"%1\"" 56 | msgstr "\"%1\" इति परिवर्तनं कुर्वन्तु ।" 57 | -------------------------------------------------------------------------------- /po/ro/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2025 This file is copyright: 2 | # This file is distributed under the same license as the kactivitymanagerd package. 3 | # SPDX-FileCopyrightText: 2024, 2025 Sergiu Bivol 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: kactivitymanagerd\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2025-10-19 02:25+0100\n" 11 | "Last-Translator: Sergiu Bivol \n" 12 | "Language-Team: Romanian \n" 13 | "Language: ro\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " 18 | "20)) ? 1 : 2;\n" 19 | "X-Generator: Lokalize 25.08.1\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "Sergiu Bivol" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "sergiu@cip.md" 30 | 31 | #: service/Activities.cpp:62 32 | #, kde-format 33 | msgid "Default" 34 | msgstr "Implicită" 35 | 36 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 37 | #, kde-format 38 | msgid "Activity Manager" 39 | msgstr "Gestionar de activități" 40 | 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 43 | #, kde-format 44 | msgctxt "@action" 45 | msgid "Switch to activity \"%1\"" 46 | msgstr "Schimbă la activitatea „%1”" 47 | 48 | #: service/plugins/krunner/ActivityRunner.cpp:19 49 | #, kde-format 50 | msgctxt "KRunner keyword" 51 | msgid "activity" 52 | msgstr "activitate" 53 | 54 | #: service/plugins/krunner/ActivityRunner.cpp:67 55 | #, kde-format 56 | msgid "Switch to \"%1\"" 57 | msgstr "Schimbă la „%1”" 58 | -------------------------------------------------------------------------------- /src/utils/range.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | /******************************************************************** 14 | * Syntactic sugar for converting ranges to collections * 15 | ********************************************************************/ 16 | 17 | namespace kamd 18 | { 19 | namespace utils 20 | { 21 | template 22 | __inline Collection as_collection(Range range) 23 | { 24 | Collection result; 25 | 26 | boost::copy(range, std::back_inserter(result)); 27 | 28 | return result; 29 | } 30 | 31 | template 32 | __inline auto transformed(Member member, Args... args) -> decltype(boost::adaptors::transformed(std::bind(member, args..., std::placeholders::_1))) 33 | { 34 | return boost::adaptors::transformed(std::bind(member, args..., std::placeholders::_1)); 35 | } 36 | 37 | template 38 | __inline auto filtered(Member member, Args... args) -> decltype(boost::adaptors::filtered(std::bind(member, args..., std::placeholders::_1))) 39 | { 40 | return boost::adaptors::filtered(std::bind(member, args..., std::placeholders::_1)); 41 | } 42 | 43 | template 44 | __inline auto filtered(Class *const self, Member member) -> decltype(boost::adaptors::filtered(std::bind(member, self, std::placeholders::_1))) 45 | { 46 | return boost::adaptors::filtered(std::bind(member, self, std::placeholders::_1)); 47 | } 48 | 49 | } // namespace utils 50 | } // namespace kamd 51 | -------------------------------------------------------------------------------- /po/ka/kactivities6.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR This file is copyright: 3 | # This file is distributed under the same license as the kactivitymanagerd package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: kactivitymanagerd\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 11 | "PO-Revision-Date: 2024-08-05 03:24+0200\n" 12 | "Last-Translator: Temuri Doghonadze \n" 13 | "Language-Team: Georgian \n" 14 | "Language: ka\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | "X-Generator: Poedit 3.3.2\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "Temuri Doghonadze" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "Temuri.doghonadze@gmail.com" 30 | 31 | #: service/Activities.cpp:62 32 | #, kde-format 33 | msgid "Default" 34 | msgstr "აქტივობების მმართველის ჩვენება" 35 | 36 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 37 | #, kde-format 38 | msgid "Activity Manager" 39 | msgstr "აქტივობების მმართველის ჩვენება" 40 | 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 43 | #, kde-format 44 | msgctxt "@action" 45 | msgid "Switch to activity \"%1\"" 46 | msgstr "აქტივობაზე გადართვა: %1" 47 | 48 | #: service/plugins/krunner/ActivityRunner.cpp:19 49 | #, kde-format 50 | msgctxt "KRunner keyword" 51 | msgid "activity" 52 | msgstr "აქტივობა" 53 | 54 | #: service/plugins/krunner/ActivityRunner.cpp:67 55 | #, kde-format 56 | msgid "Switch to \"%1\"" 57 | msgstr "\"%1\"-ზე გადართვა" 58 | -------------------------------------------------------------------------------- /src/service/Plugin.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | // Self 8 | #include "Plugin.h" 9 | 10 | // KDE 11 | #include 12 | 13 | // Utils 14 | #include 15 | 16 | // Local 17 | #include "DebugApplication.h" 18 | 19 | class Plugin::Private 20 | { 21 | public: 22 | Private() 23 | : config(nullptr) 24 | { 25 | } 26 | 27 | QString name; 28 | KSharedConfig::Ptr config; 29 | }; 30 | 31 | Plugin::Plugin(QObject *parent) 32 | : Module(QString(), parent) 33 | , d() 34 | { 35 | } 36 | 37 | Plugin::~Plugin() 38 | { 39 | } 40 | 41 | KConfigGroup Plugin::config() const 42 | { 43 | if (d->name.isEmpty()) { 44 | qCWarning(KAMD_LOG_APPLICATION) << "The plugin needs a name in order to have a config section"; 45 | return KConfigGroup(); 46 | } 47 | 48 | if (!d->config) { 49 | d->config = KSharedConfig::openConfig(QStringLiteral("kactivitymanagerd-pluginsrc")); 50 | } 51 | 52 | return d->config->group(QStringLiteral("Plugin-") + d->name); 53 | } 54 | 55 | void Plugin::setName(const QString &name) 56 | { 57 | Q_ASSERT_X(d->name.isEmpty(), "Plugin::setName", "The name can not be set twice"); 58 | Q_ASSERT_X(!name.isEmpty(), "Plugin::setName", "The name can not be empty"); 59 | 60 | qCDebug(KAMD_LOG_APPLICATION) << "Setting the name of " << (void *)this << " to " << name; 61 | d->name = name; 62 | } 63 | 64 | QString Plugin::name() const 65 | { 66 | return d->name; 67 | } 68 | 69 | bool Plugin::init(QHash &modules) 70 | { 71 | if (!name().isEmpty()) { 72 | modules[name()] = this; 73 | } 74 | 75 | return true; 76 | } 77 | 78 | #include "moc_Plugin.cpp" 79 | -------------------------------------------------------------------------------- /po/zh_TW/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Franklin Weng , 2012, 2013, 2014, 2015. 5 | # pan93412 , 2018. 6 | # SPDX-FileCopyrightText: 2023, 2024 Kisaragi Hiu 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: \n" 10 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 11 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 12 | "PO-Revision-Date: 2024-08-06 05:34+0900\n" 13 | "Last-Translator: Kisaragi Hiu \n" 14 | "Language-Team: Traditional Chinese \n" 15 | "Language: zh_TW\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=1; plural=0;\n" 20 | "X-Generator: Lokalize 24.04.70\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "Kisaragi Hiu" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "mail@kisaragi-hiu.com" 31 | 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "預設" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "活動管理器" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "切換到活動「%1」" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "活動" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "切換到「%1」" 59 | -------------------------------------------------------------------------------- /po/tr/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Volkan Gezer , 2013, 2014. 5 | # Kaan Ozdincer , 2014, 2015. 6 | # SPDX-FileCopyrightText: 2022, 2024 Emir SARI 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: \n" 10 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 11 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 12 | "PO-Revision-Date: 2024-08-05 13:48+0300\n" 13 | "Last-Translator: Emir SARI \n" 14 | "Language-Team: Turkish \n" 15 | "Language: tr\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 20 | "X-Generator: Lokalize 24.11.70\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "Emir SARI" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "emir_sari@icloud.com" 31 | 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "Öntanımlı" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "Etkinlik Yöneticisi" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "“%1” etkinliğine geç" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "etkinlik" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "Şuna geç: “%1”" 59 | -------------------------------------------------------------------------------- /po/tg/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Victor Ibragimov , 2013, 2019. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Tajik KDE Localization\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2019-09-16 19:46+0500\n" 11 | "Last-Translator: Victor Ibragimov \n" 12 | "Language-Team: Tajik \n" 13 | "Language: tg\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Generator: Lokalize 19.04.3\n" 18 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 19 | "X-Poedit-SourceCharset: UTF-8\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "" 30 | 31 | #: service/Activities.cpp:62 32 | #, kde-format 33 | msgid "Default" 34 | msgstr "Стандартӣ" 35 | 36 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 37 | #, kde-format 38 | msgid "Activity Manager" 39 | msgstr "Мудири фаъолиятҳо" 40 | 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 43 | #, kde-format 44 | msgctxt "@action" 45 | msgid "Switch to activity \"%1\"" 46 | msgstr "Гузариш ба фаъолияти \"%1\"" 47 | 48 | #: service/plugins/krunner/ActivityRunner.cpp:19 49 | #, kde-format 50 | msgctxt "KRunner keyword" 51 | msgid "activity" 52 | msgstr "" 53 | 54 | #: service/plugins/krunner/ActivityRunner.cpp:67 55 | #, fuzzy, kde-format 56 | #| msgctxt "@action" 57 | #| msgid "Switch to activity \"%1\"" 58 | msgid "Switch to \"%1\"" 59 | msgstr "Гузариш ба фаъолияти \"%1\"" 60 | -------------------------------------------------------------------------------- /po/sr/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities5.po into Serbian. 2 | # Chusslove Illich , 2012, 2014, 2015, 2016. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: kactivities5\n" 6 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 7 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 8 | "PO-Revision-Date: 2016-01-01 15:42+0100\n" 9 | "Last-Translator: Chusslove Illich \n" 10 | "Language-Team: Serbian \n" 11 | "Language: sr\n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: 8bit\n" 15 | "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" 16 | "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 17 | "X-Accelerator-Marker: &\n" 18 | "X-Text-Markup: kde4\n" 19 | "X-Environment: kde\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "" 30 | 31 | # >> @item activity name 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "Подразумевана" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "Пребаци на активност „%1“" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, fuzzy, kde-format 57 | #| msgctxt "@action" 58 | #| msgid "Switch to activity \"%1\"" 59 | msgid "Switch to \"%1\"" 60 | msgstr "Пребаци на активност „%1“" 61 | -------------------------------------------------------------------------------- /po/bg/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2011 This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Dimitar Popov , 2011. 5 | # Yasen Pramatarov , 2021. 6 | # SPDX-FileCopyrightText: 2022, 2024 Mincho Kondarev 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: \n" 10 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 11 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 12 | "PO-Revision-Date: 2024-11-09 20:04+0100\n" 13 | "Last-Translator: Mincho Kondarev \n" 14 | "Language-Team: Bulgarian \n" 15 | "Language: bg\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "X-Generator: Lokalize 24.08.2\n" 20 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "Минчо Кондарев" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "mkondarev@yahoo.de" 31 | 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "По подразбиране" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "Управление на дейностите" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "Превключване към дейност „%1“" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "дейност" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "Превключване към „%1“" 59 | -------------------------------------------------------------------------------- /po/es/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Spanish translations for kactivities6.po package. 2 | # Copyright (C) 2016-2025 This file is copyright: 3 | # This file is distributed under the same license as the kactivitymanagerd package. 4 | # Automatically generated, 2016. 5 | # 6 | # SPDX-FileCopyrightText: 2016, 2018, 2021, 2025 Eloy Cuadra 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: kactivities6\n" 10 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 11 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 12 | "PO-Revision-Date: 2025-05-10 00:46+0100\n" 13 | "Last-Translator: Eloy Cuadra \n" 14 | "Language-Team: Spanish \n" 15 | "Language: es\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | "X-Generator: Lokalize 20.12.2\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "Eloy Cuadra" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "ecuadra@eloihr.net" 31 | 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "Por omisión" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "Gestor de actividades" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "Cambiar a la actividad «%1»" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "actividad" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "Cambiar a «%1»" 59 | -------------------------------------------------------------------------------- /po/sr@latin/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities5.po into Serbian. 2 | # Chusslove Illich , 2012, 2014, 2015, 2016. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: kactivities5\n" 6 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 7 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 8 | "PO-Revision-Date: 2016-01-01 15:42+0100\n" 9 | "Last-Translator: Chusslove Illich \n" 10 | "Language-Team: Serbian \n" 11 | "Language: sr@latin\n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: 8bit\n" 15 | "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" 16 | "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 17 | "X-Accelerator-Marker: &\n" 18 | "X-Text-Markup: kde4\n" 19 | "X-Environment: kde\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "" 30 | 31 | # >> @item activity name 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "Podrazumevana" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "Prebaci na aktivnost „%1“" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, fuzzy, kde-format 57 | #| msgctxt "@action" 58 | #| msgid "Switch to activity \"%1\"" 59 | msgid "Switch to \"%1\"" 60 | msgstr "Prebaci na aktivnost „%1“" 61 | -------------------------------------------------------------------------------- /po/id/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # Wantoyo , 2018, 2019. 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: \n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2019-01-19 08:55+0700\n" 11 | "Last-Translator: Wantoyo \n" 12 | "Language-Team: Indonesian \n" 13 | "Language: id\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 18 | 19 | #, fuzzy, kde-format 20 | #| msgctxt "NAME OF TRANSLATORS" 21 | #| msgid "Your names" 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "Wantoyo" 25 | 26 | #, fuzzy, kde-format 27 | #| msgctxt "EMAIL OF TRANSLATORS" 28 | #| msgid "Your emails" 29 | msgctxt "EMAIL OF TRANSLATORS" 30 | msgid "Your emails" 31 | msgstr "wantoyek@gmail.com" 32 | 33 | #: service/Activities.cpp:62 34 | #, kde-format 35 | msgid "Default" 36 | msgstr "Baku" 37 | 38 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 39 | #, kde-format 40 | msgid "Activity Manager" 41 | msgstr "Pengelola Aktivitas" 42 | 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 44 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 45 | #, kde-format 46 | msgctxt "@action" 47 | msgid "Switch to activity \"%1\"" 48 | msgstr "Alihkan ke aktivitas \"%1\"" 49 | 50 | #: service/plugins/krunner/ActivityRunner.cpp:19 51 | #, kde-format 52 | msgctxt "KRunner keyword" 53 | msgid "activity" 54 | msgstr "" 55 | 56 | #: service/plugins/krunner/ActivityRunner.cpp:67 57 | #, fuzzy, kde-format 58 | #| msgctxt "@action" 59 | #| msgid "Switch to activity \"%1\"" 60 | msgid "Switch to \"%1\"" 61 | msgstr "Alihkan ke aktivitas \"%1\"" 62 | -------------------------------------------------------------------------------- /po/sr@ijekavian/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities5.po into Serbian. 2 | # Chusslove Illich , 2012, 2014, 2015, 2016. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: kactivities5\n" 6 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 7 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 8 | "PO-Revision-Date: 2016-01-01 15:42+0100\n" 9 | "Last-Translator: Chusslove Illich \n" 10 | "Language-Team: Serbian \n" 11 | "Language: sr@ijekavian\n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: 8bit\n" 15 | "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" 16 | "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 17 | "X-Accelerator-Marker: &\n" 18 | "X-Text-Markup: kde4\n" 19 | "X-Environment: kde\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "" 30 | 31 | # >> @item activity name 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "Подразумевана" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "Пребаци на активност „%1“" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, fuzzy, kde-format 57 | #| msgctxt "@action" 58 | #| msgid "Switch to activity \"%1\"" 59 | msgid "Switch to \"%1\"" 60 | msgstr "Пребаци на активност „%1“" 61 | -------------------------------------------------------------------------------- /po/sr@ijekavianlatin/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities5.po into Serbian. 2 | # Chusslove Illich , 2012, 2014, 2015, 2016. 3 | msgid "" 4 | msgstr "" 5 | "Project-Id-Version: kactivities5\n" 6 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 7 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 8 | "PO-Revision-Date: 2016-01-01 15:42+0100\n" 9 | "Last-Translator: Chusslove Illich \n" 10 | "Language-Team: Serbian \n" 11 | "Language: sr@ijekavianlatin\n" 12 | "MIME-Version: 1.0\n" 13 | "Content-Type: text/plain; charset=UTF-8\n" 14 | "Content-Transfer-Encoding: 8bit\n" 15 | "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" 16 | "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 17 | "X-Accelerator-Marker: &\n" 18 | "X-Text-Markup: kde4\n" 19 | "X-Environment: kde\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "" 30 | 31 | # >> @item activity name 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "Podrazumevana" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "Prebaci na aktivnost „%1“" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, fuzzy, kde-format 57 | #| msgctxt "@action" 58 | #| msgid "Switch to activity \"%1\"" 59 | msgid "Switch to \"%1\"" 60 | msgstr "Prebaci na aktivnost „%1“" 61 | -------------------------------------------------------------------------------- /po/pt_BR/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities5.po to Brazilian Portuguese 2 | # Copyright (C) 2016 This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # André Marcelo Alvarenga , 2016. 6 | # Luiz Fernando Ranghetti , 2018, 2021. 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: kactivities5\n" 10 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 11 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 12 | "PO-Revision-Date: 2021-03-19 10:46-0300\n" 13 | "Last-Translator: Luiz Fernando Ranghetti \n" 14 | "Language-Team: Brazilian Portuguese \n" 15 | "Language: pt_BR\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=2; plural=(n > 1);\n" 20 | "X-Generator: Lokalize 20.04.2\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "André Marcelo Alvarenga" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "alvarenga@kde.org" 31 | 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "Padrão" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "Gerenciador de atividades" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "Alternar para a atividade \"%1\"" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "atividade" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "Mudar para \"%1\"" 59 | -------------------------------------------------------------------------------- /po/de/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2025 This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the kactivitymanagerd package. 3 | # SPDX-FileCopyrightText: 2016 Frederik Schwarzer 4 | # SPDX-FileCopyrightText: 2018, 2021 Burkhard Lück 5 | # SPDX-FileCopyrightText: 2024 Johannes Obermayr 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: kactivities6\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 11 | "PO-Revision-Date: 2024-08-21 21:32+0200\n" 12 | "Last-Translator: Johannes Obermayr \n" 13 | "Language-Team: German \n" 14 | "Language: de\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | "X-Generator: Lokalize 24.05.2\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "Deutsches KDE-Übersetzungsteam" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "kde-i18n-de@kde.org" 30 | 31 | #: service/Activities.cpp:62 32 | #, kde-format 33 | msgid "Default" 34 | msgstr "Standard" 35 | 36 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 37 | #, kde-format 38 | msgid "Activity Manager" 39 | msgstr "Aktivitätenverwaltung" 40 | 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 43 | #, kde-format 44 | msgctxt "@action" 45 | msgid "Switch to activity \"%1\"" 46 | msgstr "Zu Aktivität „%1“ wechseln" 47 | 48 | #: service/plugins/krunner/ActivityRunner.cpp:19 49 | #, kde-format 50 | msgctxt "KRunner keyword" 51 | msgid "activity" 52 | msgstr "Aktivität" 53 | 54 | #: service/plugins/krunner/ActivityRunner.cpp:67 55 | #, kde-format 56 | msgid "Switch to \"%1\"" 57 | msgstr "Zu „%1“ wechseln" 58 | -------------------------------------------------------------------------------- /po/he/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Diego Iastrubni , 2012. 5 | # elkana bardugo , 2016. 6 | # Elkana Bardugo , 2017. #zanata 7 | # SPDX-FileCopyrightText: 2023 Yaron Shahrabani 8 | msgid "" 9 | msgstr "" 10 | "Project-Id-Version: kactivities5\n" 11 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 12 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 13 | "PO-Revision-Date: 2023-10-01 22:17+0300\n" 14 | "Last-Translator: Yaron Shahrabani \n" 15 | "Language-Team: צוות התרגום של KDE ישראל\n" 16 | "Language: he\n" 17 | "MIME-Version: 1.0\n" 18 | "Content-Type: text/plain; charset=UTF-8\n" 19 | "Content-Transfer-Encoding: 8bit\n" 20 | "Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " 21 | "n % 10 == 0) ? 2 : 3));\n" 22 | "X-Generator: Lokalize 23.08.1\n" 23 | 24 | #, kde-format 25 | msgctxt "NAME OF TRANSLATORS" 26 | msgid "Your names" 27 | msgstr "צוות התרגום של KDE ישראל" 28 | 29 | #, kde-format 30 | msgctxt "EMAIL OF TRANSLATORS" 31 | msgid "Your emails" 32 | msgstr "kde-i18n-he@kde.org" 33 | 34 | #: service/Activities.cpp:62 35 | #, kde-format 36 | msgid "Default" 37 | msgstr "ברירת מחדל" 38 | 39 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 40 | #, kde-format 41 | msgid "Activity Manager" 42 | msgstr "מנהל פעילויות" 43 | 44 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 45 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 46 | #, kde-format 47 | msgctxt "@action" 48 | msgid "Switch to activity \"%1\"" 49 | msgstr "מעבר לפעילות „%1”" 50 | 51 | #: service/plugins/krunner/ActivityRunner.cpp:19 52 | #, kde-format 53 | msgctxt "KRunner keyword" 54 | msgid "activity" 55 | msgstr "פעילות" 56 | 57 | #: service/plugins/krunner/ActivityRunner.cpp:67 58 | #, kde-format 59 | msgid "Switch to \"%1\"" 60 | msgstr "מעבר ל־„%1”" 61 | -------------------------------------------------------------------------------- /po/uk/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities5.po to Ukrainian 2 | # Copyright (C) 2018-2021 This_file_is_part_of_KDE 3 | # This file is distributed under the license LGPL version 2.1 or 4 | # version 3 or later versions approved by the membership of KDE e.V. 5 | # 6 | # Yuri Chornoivan , 2016, 2018, 2021. 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: kactivities5\n" 10 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 11 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 12 | "PO-Revision-Date: 2021-02-28 08:37+0200\n" 13 | "Last-Translator: Yuri Chornoivan \n" 14 | "Language-Team: Ukrainian \n" 15 | "Language: uk\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" 20 | "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 21 | "X-Generator: Lokalize 20.11.70\n" 22 | 23 | #, kde-format 24 | msgctxt "NAME OF TRANSLATORS" 25 | msgid "Your names" 26 | msgstr "Юрій Чорноіван" 27 | 28 | #, kde-format 29 | msgctxt "EMAIL OF TRANSLATORS" 30 | msgid "Your emails" 31 | msgstr "yurchor@ukr.net" 32 | 33 | #: service/Activities.cpp:62 34 | #, kde-format 35 | msgid "Default" 36 | msgstr "Типовий" 37 | 38 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 39 | #, kde-format 40 | msgid "Activity Manager" 41 | msgstr "Керування просторами дій" 42 | 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 44 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 45 | #, kde-format 46 | msgctxt "@action" 47 | msgid "Switch to activity \"%1\"" 48 | msgstr "Перемкнутися на простір дій «%1»" 49 | 50 | #: service/plugins/krunner/ActivityRunner.cpp:19 51 | #, kde-format 52 | msgctxt "KRunner keyword" 53 | msgid "activity" 54 | msgstr "activity" 55 | 56 | #: service/plugins/krunner/ActivityRunner.cpp:67 57 | #, kde-format 58 | msgid "Switch to \"%1\"" 59 | msgstr "Перемкнутися на простір дій «%1»" 60 | -------------------------------------------------------------------------------- /src/service/plugins/sqlite/Utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2014 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #include "DebugResources.h" 15 | 16 | namespace Utils 17 | { 18 | static unsigned int errorCount = 0; 19 | 20 | inline bool prepare(Common::Database &database, QSqlQuery &query, const QString &queryString) 21 | { 22 | Q_UNUSED(database); 23 | 24 | return query.prepare(queryString); 25 | } 26 | 27 | inline bool prepare(Common::Database &database, std::unique_ptr &query, const QString &queryString) 28 | { 29 | if (query) { 30 | return true; 31 | } 32 | 33 | query.reset(new QSqlQuery(database.createQuery())); 34 | 35 | return prepare(database, *query, queryString); 36 | } 37 | 38 | enum ErrorHandling { 39 | IgnoreError, 40 | FailOnError, 41 | }; 42 | 43 | inline bool exec(Common::Database &database, ErrorHandling eh, QSqlQuery &query) 44 | { 45 | bool success = query.exec(); 46 | 47 | if (eh == FailOnError) { 48 | if ((!success) && (errorCount++ < 2)) { 49 | qCWarning(KAMD_LOG_RESOURCES) << query.lastQuery(); 50 | qCWarning(KAMD_LOG_RESOURCES) << query.lastError(); 51 | KCrash::setErrorMessage(query.lastError().text()); 52 | } 53 | Q_ASSERT_X(success, "Uils::exec", qPrintable(QStringLiteral("Query failed:") + query.lastError().text())); 54 | 55 | if (!success) { 56 | database.reportError(query.lastError()); 57 | } 58 | } 59 | 60 | return success; 61 | } 62 | 63 | template 64 | inline bool exec(Common::Database &database, ErrorHandling eh, QSqlQuery &query, const T1 &variable, const T2 &value, Ts... ts) 65 | { 66 | query.bindValue(variable, value); 67 | 68 | return exec(database, eh, query, ts...); 69 | } 70 | 71 | } // namespace Utils 72 | -------------------------------------------------------------------------------- /po/wa/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Jean Cayron , 2010. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: \n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2010-12-17 16:59+0100\n" 11 | "Last-Translator: Jean Cayron \n" 12 | "Language-Team: Walloon \n" 13 | "Language: wa\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Generator: Lokalize 1.0\n" 18 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "Djan Cayron" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "jean.cayron@gmail.com" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, fuzzy, kde-format 37 | #| msgid "KDE Activity Manager" 38 | msgid "Activity Manager" 39 | msgstr "Manaedjeu di l' activité da KDE" 40 | 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 43 | #, kde-format 44 | msgctxt "@action" 45 | msgid "Switch to activity \"%1\"" 46 | msgstr "" 47 | 48 | #: service/plugins/krunner/ActivityRunner.cpp:19 49 | #, kde-format 50 | msgctxt "KRunner keyword" 51 | msgid "activity" 52 | msgstr "" 53 | 54 | #: service/plugins/krunner/ActivityRunner.cpp:67 55 | #, kde-format 56 | msgid "Switch to \"%1\"" 57 | msgstr "" 58 | 59 | #, fuzzy 60 | #~| msgid "KDE Activity Management Service" 61 | #~ msgid "Enable activities management" 62 | #~ msgstr "Siervice di manaedjmint di l' activité da KDE" 63 | 64 | #, fuzzy 65 | #~| msgid "(c) 2010 Ivan Cukic, Sebastian Trueg" 66 | #~ msgid "(c) 2012 Ivan Cukic" 67 | #~ msgstr "© 2010 Ivan Cukic, Sebastian Trueg" 68 | -------------------------------------------------------------------------------- /po/th/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Phuwanat Sakornsakolpat , 2010. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: \n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2010-11-27 11:28+0700\n" 11 | "Last-Translator: Phuwanat Sakornsakolpat \n" 12 | "Language-Team: Thai \n" 13 | "Language: th\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Generator: Lokalize 1.0\n" 18 | "Plural-Forms: nplurals=1; plural=0;\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "ภูวณัฏฐ์ สาครสกลพัฒน์" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "narachai@gmail.com" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, fuzzy, kde-format 37 | #| msgid "KDE Activity Manager" 38 | msgid "Activity Manager" 39 | msgstr "ตัวจัดการกิจกรรมของ KDE" 40 | 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 43 | #, kde-format 44 | msgctxt "@action" 45 | msgid "Switch to activity \"%1\"" 46 | msgstr "" 47 | 48 | #: service/plugins/krunner/ActivityRunner.cpp:19 49 | #, kde-format 50 | msgctxt "KRunner keyword" 51 | msgid "activity" 52 | msgstr "" 53 | 54 | #: service/plugins/krunner/ActivityRunner.cpp:67 55 | #, kde-format 56 | msgid "Switch to \"%1\"" 57 | msgstr "" 58 | 59 | #, fuzzy 60 | #~| msgid "KDE Activity Management Service" 61 | #~ msgid "Enable activities management" 62 | #~ msgstr "บริการจัดการกิจกรรมของ KDE" 63 | 64 | #, fuzzy 65 | #~| msgid "(c) 2010 Ivan Cukic, Sebastian Trueg" 66 | #~ msgid "(c) 2012 Ivan Cukic" 67 | #~ msgstr "สงวนลิขสิทธิ์ 2553 โดย Ivan Cukic และ Sebastian Trueg" 68 | -------------------------------------------------------------------------------- /src/service/Resources.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | // Utils 10 | #include 11 | 12 | // Local 13 | #include "Event.h" 14 | #include "Module.h" 15 | 16 | /** 17 | * Resources 18 | */ 19 | class Resources : public Module 20 | { 21 | Q_OBJECT 22 | Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Resources") 23 | 24 | public: 25 | explicit Resources(QObject *parent = nullptr); 26 | ~Resources() override; 27 | 28 | public Q_SLOTS: 29 | /** 30 | * Registers a new event 31 | * @param application the name of application that sent the event. Ignored 32 | * if the event is not of type Opened 33 | * @param windowId unused 34 | * @param uri URI of the resource on which the event happened 35 | * @param event type of the event 36 | */ 37 | void RegisterResourceEvent(const QString &application, uint windowId, const QString &uri, uint event); 38 | 39 | /** 40 | * Registers resource's mimetype. 41 | * Note that this will be forgotten when the resource in question is closed. 42 | * @param uri URI of the resource 43 | */ 44 | void RegisterResourceMimetype(const QString &uri, const QString &mimetype); 45 | 46 | /** 47 | * Registers resource's title. If not manually specified, it will be a 48 | * shortened version of the uri 49 | * 50 | * Note that this will be forgotten when the resource in question is closed. 51 | * @param uri URI of the resource 52 | */ 53 | void RegisterResourceTitle(const QString &uri, const QString &title); 54 | 55 | Q_SIGNALS: 56 | void RegisteredResourceEvent(const Event &event); 57 | void ProcessedResourceEvents(const EventList &events); 58 | void RegisteredResourceMimetype(const QString &uri, const QString &mimetype); 59 | void RegisteredResourceTitle(const QString &uri, const QString &title); 60 | 61 | private: 62 | D_PTR; 63 | }; 64 | -------------------------------------------------------------------------------- /po/gu/kactivities6.po: -------------------------------------------------------------------------------- 1 | # translation of kactivitymanagerd.po to Gujarati 2 | # Copyright (C) YEAR This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # Sweta Kothari , 2010. 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: kactivitymanagerd\n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 11 | "PO-Revision-Date: 2010-11-26 18:05+0530\n" 12 | "Last-Translator: Sweta Kothari \n" 13 | "Language-Team: Gujarati\n" 14 | "Language: gu\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: KBabel 1.11.4\n" 19 | "Plural-Forms: nplurals=2; plural=(n!=1);\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "ઉમંગ ભટ્ટ" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "bhatt.umang7@gmail.com" 30 | 31 | #: service/Activities.cpp:62 32 | #, kde-format 33 | msgid "Default" 34 | msgstr "" 35 | 36 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 37 | #, fuzzy, kde-format 38 | #| msgid "KDE Activity Manager" 39 | msgid "Activity Manager" 40 | msgstr "KDE પ્રવૃત્તિ સંચાલક" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "" 59 | 60 | #, fuzzy 61 | #~| msgid "KDE Activity Management Service" 62 | #~ msgid "Enable activities management" 63 | #~ msgstr "KDE પ્રવૃત્તિ સંચાલન સેવા" 64 | 65 | #, fuzzy 66 | #~| msgid "(c) 2010 Ivan Cukic, Sebastian Trueg" 67 | #~ msgid "(c) 2012 Ivan Cukic" 68 | #~ msgstr "(c) 2010 Ivan Cukic, Sebastian Trueg" 69 | -------------------------------------------------------------------------------- /po/ca/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities6.po to Catalan 2 | # Copyright (C) 2014-2024 This_file_is_part_of_KDE 3 | # This file is distributed under the license LGPL version 2.1 or 4 | # version 3 or later versions approved by the membership of KDE e.V. 5 | # 6 | # SPDX-FileCopyrightText: 2014, 2015, 2024 Josep M. Ferrer 7 | # SPDX-FileCopyrightText: 2014, 2015, 2018, 2021 Antoni Bella Pérez 8 | # SPDX-FileCopyrightText: 2019 Empar Montoro Martín 9 | msgid "" 10 | msgstr "" 11 | "Project-Id-Version: kactivitymanagerd\n" 12 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 13 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 14 | "PO-Revision-Date: 2024-08-05 12:18+0200\n" 15 | "Last-Translator: Josep M. Ferrer \n" 16 | "Language-Team: Catalan \n" 17 | "Language: ca\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 22 | "X-Accelerator-Marker: &\n" 23 | "X-Generator: Lokalize 24.05.2\n" 24 | 25 | #, kde-format 26 | msgctxt "NAME OF TRANSLATORS" 27 | msgid "Your names" 28 | msgstr "Josep M. Ferrer" 29 | 30 | #, kde-format 31 | msgctxt "EMAIL OF TRANSLATORS" 32 | msgid "Your emails" 33 | msgstr "txemaq@gmail.com" 34 | 35 | #: service/Activities.cpp:62 36 | #, kde-format 37 | msgid "Default" 38 | msgstr "Predeterminada" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 41 | #, kde-format 42 | msgid "Activity Manager" 43 | msgstr "Gestor d'activitats" 44 | 45 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 46 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 47 | #, kde-format 48 | msgctxt "@action" 49 | msgid "Switch to activity \"%1\"" 50 | msgstr "Canvia a l'activitat «%1»" 51 | 52 | #: service/plugins/krunner/ActivityRunner.cpp:19 53 | #, kde-format 54 | msgctxt "KRunner keyword" 55 | msgid "activity" 56 | msgstr "activitat" 57 | 58 | #: service/plugins/krunner/ActivityRunner.cpp:67 59 | #, kde-format 60 | msgid "Switch to \"%1\"" 61 | msgstr "Canvia a «%1»" 62 | -------------------------------------------------------------------------------- /src/common/dbus/org.kde.ActivityManager.ResourcesLinking.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /po/kn/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # ashok , 2010. 5 | # Shankar Prasad , 2010. 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: \n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 11 | "PO-Revision-Date: 2010-12-22 12:59+0530\n" 12 | "Last-Translator: Shankar Prasad \n" 13 | "Language-Team: kn-l10n \n" 14 | "Language: kn\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Lokalize 1.1\n" 19 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "ಅಶೋಕ್ ಕುಮಾರ್, ಶಂಕರ್ ಪ್ರಸಾದ್" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "ashok567@gmail.com, svenkate@redhat.com" 30 | 31 | #: service/Activities.cpp:62 32 | #, kde-format 33 | msgid "Default" 34 | msgstr "" 35 | 36 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 37 | #, fuzzy, kde-format 38 | #| msgid "KDE Activity Manager" 39 | msgid "Activity Manager" 40 | msgstr "KDE ಚಟುವಟಿಕೆ ನಿರ್ವಾಹಕ" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "" 59 | 60 | #, fuzzy 61 | #~| msgid "KDE Activity Management Service" 62 | #~ msgid "Enable activities management" 63 | #~ msgstr "KDE ಚಟುವಟಿಕೆ ನಿರ್ವಹಣಾ ಸೇವೆ" 64 | 65 | #, fuzzy 66 | #~| msgid "(c) 2010 Ivan Cukic, Sebastian Trueg" 67 | #~ msgid "(c) 2012 Ivan Cukic" 68 | #~ msgstr "(c) 2010 Ivan Cukic, Sebastian Trueg" 69 | -------------------------------------------------------------------------------- /po/hi/kactivities6.po: -------------------------------------------------------------------------------- 1 | # translation of kactivitymanagerd.po to Hindi 2 | # Copyright (C) YEAR This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # 5 | # G Karunakar , 2020. 6 | # Raghavendra Kamath , 2021. 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: kactivitymanagerd\n" 10 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 11 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 12 | "PO-Revision-Date: 2021-07-27 19:29+0530\n" 13 | "Last-Translator: Raghavendra Kamath \n" 14 | "Language-Team: kde-hindi\n" 15 | "Language: hi\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "X-Generator: Lokalize 21.04.3\n" 20 | "Plural-Forms: nplurals=2; plural=(n!=1);\n" 21 | 22 | #, kde-format 23 | msgctxt "NAME OF TRANSLATORS" 24 | msgid "Your names" 25 | msgstr "जी करूणाकर" 26 | 27 | #, kde-format 28 | msgctxt "EMAIL OF TRANSLATORS" 29 | msgid "Your emails" 30 | msgstr "karunakar@indlinux.org" 31 | 32 | #: service/Activities.cpp:62 33 | #, kde-format 34 | msgid "Default" 35 | msgstr "पूर्वन्यस्त" 36 | 37 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 38 | #, kde-format 39 | msgid "Activity Manager" 40 | msgstr "गतिविधि प्रबंधक" 41 | 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 44 | #, kde-format 45 | msgctxt "@action" 46 | msgid "Switch to activity \"%1\"" 47 | msgstr "\"%1\" गतिविधि पर बदलें" 48 | 49 | #: service/plugins/krunner/ActivityRunner.cpp:19 50 | #, kde-format 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "गतिविधि" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, kde-format 57 | msgid "Switch to \"%1\"" 58 | msgstr "\"%1\" पर बदलें" 59 | 60 | #, fuzzy 61 | #~| msgid "KDE Activity Management Service" 62 | #~ msgid "Enable activities management" 63 | #~ msgstr "केडीई क्रियाएँ प्रबंधन सेवा" 64 | 65 | #, fuzzy 66 | #~| msgid "(c) 2010 Ivan Cukic, Sebastian Trueg" 67 | #~ msgid "(c) 2012 Ivan Cukic" 68 | #~ msgstr "(c) 2010 Ivan Cukic, Sebastian Trueg" 69 | -------------------------------------------------------------------------------- /src/common/dbus/org.kde.ActivityManager.ResourcesScoring.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /po/ca@valencia/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivities6.po to Catalan (Valencian) 2 | # Copyright (C) 2014-2024 This_file_is_part_of_KDE 3 | # This file is distributed under the license LGPL version 2.1 or 4 | # version 3 or later versions approved by the membership of KDE e.V. 5 | # 6 | # SPDX-FileCopyrightText: 2014, 2015, 2024 Josep M. Ferrer 7 | # SPDX-FileCopyrightText: 2014, 2015, 2018, 2021 Antoni Bella Pérez 8 | # SPDX-FileCopyrightText: 2019 Empar Montoro Martín 9 | msgid "" 10 | msgstr "" 11 | "Project-Id-Version: kactivitymanagerd\n" 12 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 13 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 14 | "PO-Revision-Date: 2024-08-05 12:18+0200\n" 15 | "Last-Translator: Josep M. Ferrer \n" 16 | "Language-Team: Catalan \n" 17 | "Language: ca@valencia\n" 18 | "MIME-Version: 1.0\n" 19 | "Content-Type: text/plain; charset=UTF-8\n" 20 | "Content-Transfer-Encoding: 8bit\n" 21 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 22 | "X-Accelerator-Marker: &\n" 23 | "X-Generator: Lokalize 24.05.2\n" 24 | 25 | #, kde-format 26 | msgctxt "NAME OF TRANSLATORS" 27 | msgid "Your names" 28 | msgstr "Empar Montoro Martín,Josep M. Ferrer" 29 | 30 | #, kde-format 31 | msgctxt "EMAIL OF TRANSLATORS" 32 | msgid "Your emails" 33 | msgstr "montoro_mde@gva.es,txemaq@gmail.com" 34 | 35 | #: service/Activities.cpp:62 36 | #, kde-format 37 | msgid "Default" 38 | msgstr "Predeterminada" 39 | 40 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 41 | #, kde-format 42 | msgid "Activity Manager" 43 | msgstr "Gestor d'activitats" 44 | 45 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 46 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 47 | #, kde-format 48 | msgctxt "@action" 49 | msgid "Switch to activity \"%1\"" 50 | msgstr "Canvia a l'activitat «%1»" 51 | 52 | #: service/plugins/krunner/ActivityRunner.cpp:19 53 | #, kde-format 54 | msgctxt "KRunner keyword" 55 | msgid "activity" 56 | msgstr "activitat" 57 | 58 | #: service/plugins/krunner/ActivityRunner.cpp:67 59 | #, kde-format 60 | msgid "Switch to \"%1\"" 61 | msgstr "Canvia a «%1»" 62 | -------------------------------------------------------------------------------- /po/hr/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Translation of kactivitymanagerd to Croatian 2 | # 3 | # Marko Dimjasevic , 2011. 4 | msgid "" 5 | msgstr "" 6 | "Project-Id-Version: \n" 7 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 8 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 9 | "PO-Revision-Date: 2011-03-04 18:03+0100\n" 10 | "Last-Translator: Marko Dimjasevic \n" 11 | "Language-Team: Croatian \n" 12 | "Language: hr\n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "X-Generator: Lokalize 1.2\n" 17 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" 18 | "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" 19 | "X-Environment: kde\n" 20 | "X-Accelerator-Marker: &\n" 21 | "X-Text-Markup: kde4\n" 22 | 23 | #, kde-format 24 | msgctxt "NAME OF TRANSLATORS" 25 | msgid "Your names" 26 | msgstr "Marko Dimjasevic" 27 | 28 | #, kde-format 29 | msgctxt "EMAIL OF TRANSLATORS" 30 | msgid "Your emails" 31 | msgstr "marko@dimjasevic.net" 32 | 33 | #: service/Activities.cpp:62 34 | #, kde-format 35 | msgid "Default" 36 | msgstr "" 37 | 38 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 39 | #, fuzzy, kde-format 40 | #| msgid "KDE Activity Manager" 41 | msgid "Activity Manager" 42 | msgstr "KDE-ov upravitelj aktivnosti" 43 | 44 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 45 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 46 | #, kde-format 47 | msgctxt "@action" 48 | msgid "Switch to activity \"%1\"" 49 | msgstr "" 50 | 51 | #: service/plugins/krunner/ActivityRunner.cpp:19 52 | #, kde-format 53 | msgctxt "KRunner keyword" 54 | msgid "activity" 55 | msgstr "" 56 | 57 | #: service/plugins/krunner/ActivityRunner.cpp:67 58 | #, kde-format 59 | msgid "Switch to \"%1\"" 60 | msgstr "" 61 | 62 | #, fuzzy 63 | #~| msgid "KDE Activity Management Service" 64 | #~ msgid "Enable activities management" 65 | #~ msgstr "KDE-ova usluga upravljanja aktivnostima" 66 | 67 | #, fuzzy 68 | #~| msgid "(c) 2010 Ivan Cukic, Sebastian Trueg" 69 | #~ msgid "(c) 2012 Ivan Cukic" 70 | #~ msgstr "© 2010 Ivan Cukic, Sebastian Trueg" 71 | -------------------------------------------------------------------------------- /po/lv/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Einars Sprugis , 2011. 5 | # Maris Nartiss , 2019. 6 | # SPDX-FileCopyrightText: 2024 Toms Trasuns 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: \n" 10 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 11 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 12 | "PO-Revision-Date: 2024-02-23 18:48+0200\n" 13 | "Last-Translator: Toms Trasuns \n" 14 | "Language-Team: Latvian \n" 15 | "Language: lv\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "X-Generator: Lokalize 23.08.5\n" 20 | "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " 21 | "2);\n" 22 | 23 | #, kde-format 24 | msgctxt "NAME OF TRANSLATORS" 25 | msgid "Your names" 26 | msgstr "Einārs Sprūģis" 27 | 28 | #, kde-format 29 | msgctxt "EMAIL OF TRANSLATORS" 30 | msgid "Your emails" 31 | msgstr "einars8@gmail.com" 32 | 33 | #: service/Activities.cpp:62 34 | #, kde-format 35 | msgid "Default" 36 | msgstr "Noklusējuma" 37 | 38 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 39 | #, kde-format 40 | msgid "Activity Manager" 41 | msgstr "Aktivitāšu pārvaldnieks" 42 | 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 44 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 45 | #, kde-format 46 | msgctxt "@action" 47 | msgid "Switch to activity \"%1\"" 48 | msgstr "Pārslēgties uz aktivitāti „%1“" 49 | 50 | #: service/plugins/krunner/ActivityRunner.cpp:19 51 | #, kde-format 52 | msgctxt "KRunner keyword" 53 | msgid "activity" 54 | msgstr "aktivitāte" 55 | 56 | #: service/plugins/krunner/ActivityRunner.cpp:67 57 | #, kde-format 58 | msgid "Switch to \"%1\"" 59 | msgstr "Pārslēgties uz „%1“" 60 | 61 | #, fuzzy 62 | #~| msgid "KDE Activity Management Service" 63 | #~ msgid "Enable activities management" 64 | #~ msgstr "KDE aktivitāšu pārvaldības serviss" 65 | 66 | #, fuzzy 67 | #~| msgid "(c) 2010 Ivan Cukic, Sebastian Trueg" 68 | #~ msgid "(c) 2012 Ivan Cukic" 69 | #~ msgstr "(c) 2010 Ivan Cukic, Sebastian Trueg" 70 | -------------------------------------------------------------------------------- /src/service/Module.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | // Self 8 | #include "Module.h" 9 | 10 | // Qt 11 | #include 12 | 13 | // Utils 14 | #include 15 | 16 | // Local 17 | #include "DebugApplication.h" 18 | 19 | class Module::Private 20 | { 21 | public: 22 | static QHash s_modules; 23 | }; 24 | 25 | QHash Module::Private::s_modules; 26 | 27 | Module::Module(const QString &name, QObject *parent) 28 | : QObject(parent) 29 | , d() 30 | { 31 | if (!name.isEmpty()) { 32 | Private::s_modules[name] = this; 33 | } 34 | } 35 | 36 | Module::~Module() 37 | { 38 | } 39 | 40 | QObject *Module::get(const QString &name) 41 | { 42 | Q_ASSERT(!name.isEmpty()); 43 | 44 | if (Private::s_modules.contains(name)) { 45 | qCDebug(KAMD_LOG_APPLICATION) << "Returning a valid module object for:" << name; 46 | return Private::s_modules[name]; 47 | } 48 | 49 | qCWarning(KAMD_LOG_APPLICATION) << "The requested module doesn't exist:" << name; 50 | return nullptr; 51 | } 52 | 53 | QHash &Module::get() 54 | { 55 | return Private::s_modules; 56 | } 57 | 58 | bool Module::isFeatureEnabled(const QStringList &feature) const 59 | { 60 | Q_UNUSED(feature); 61 | return false; 62 | } 63 | 64 | bool Module::isFeatureOperational(const QStringList &feature) const 65 | { 66 | Q_UNUSED(feature); 67 | return false; 68 | } 69 | 70 | void Module::setFeatureEnabled(const QStringList &feature, bool value) 71 | { 72 | Q_UNUSED(feature); 73 | Q_UNUSED(value); 74 | } 75 | 76 | QStringList Module::listFeatures(const QStringList &feature) const 77 | { 78 | Q_UNUSED(feature); 79 | return QStringList(); 80 | } 81 | 82 | QDBusVariant Module::featureValue(const QStringList &property) const 83 | { 84 | Q_UNUSED(property); 85 | 86 | return QDBusVariant(); 87 | } 88 | 89 | void Module::setFeatureValue(const QStringList &property, const QDBusVariant &value) 90 | { 91 | Q_UNUSED(property); 92 | Q_UNUSED(value); 93 | } 94 | 95 | #include "moc_Module.cpp" 96 | -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | 3 | # Boosting us a bit 4 | 5 | find_package(Boost ${Boost_MINIMUM_VERSION} MODULE REQUIRED) 6 | set_package_properties(Boost PROPERTIES 7 | DESCRIPTION "Boost C++ Libraries" 8 | URL "https://www.boost.org" 9 | TYPE REQUIRED 10 | ) 11 | include_directories (${Boost_INCLUDE_DIRS}) 12 | 13 | # ======================================================= 14 | # Starting the actual project definition 15 | 16 | # Config file 17 | set (KAMD_PLUGIN_VERSION 1) 18 | set (KAMD_PLUGIN_DIR "kactivitymanagerd${KAMD_PLUGIN_VERSION}") 19 | set (KAMD_FULL_PLUGIN_DIR "${KDE_INSTALL_FULL_PLUGINDIR}/${KAMD_PLUGIN_DIR}/") 20 | configure_file (kactivities-features.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kactivities-features.h) 21 | 22 | include_directories ( 23 | ${CMAKE_CURRENT_BINARY_DIR} 24 | ${CMAKE_CURRENT_SOURCE_DIR} 25 | ) 26 | 27 | # D-Bus activation service file, and associated systemd service 28 | ecm_generate_dbus_service_file( 29 | NAME org.kde.ActivityManager 30 | EXECUTABLE "${KDE_INSTALL_FULL_LIBEXECDIR}/kactivitymanagerd" 31 | SYSTEMD_SERVICE plasma-kactivitymanagerd.service 32 | DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR} 33 | ) 34 | ecm_install_configured_files( 35 | INPUT plasma-kactivitymanagerd.service.in 36 | DESTINATION ${KDE_INSTALL_SYSTEMDUSERUNITDIR} 37 | ) 38 | 39 | add_library(debug_STATIC STATIC) 40 | set_target_properties(debug_STATIC PROPERTIES POSITION_INDEPENDENT_CODE ON) 41 | target_link_libraries(debug_STATIC Qt::Core) 42 | ecm_qt_declare_logging_category(debug_STATIC 43 | HEADER DebugActivities.h 44 | IDENTIFIER KAMD_LOG_ACTIVITIES 45 | CATEGORY_NAME org.kde.kactivities.activities 46 | DEFAULT_SEVERITY Warning 47 | DESCRIPTION "KActivities Activities" EXPORT KACTIVITYMANAGERD) 48 | ecm_qt_declare_logging_category(debug_STATIC 49 | HEADER DebugResources.h 50 | IDENTIFIER KAMD_LOG_RESOURCES 51 | CATEGORY_NAME org.kde.kactivities.resources 52 | DEFAULT_SEVERITY Warning 53 | DESCRIPTION "KActivities Resources" EXPORT KACTIVITYMANAGERD) 54 | ecm_qt_declare_logging_category(debug_STATIC 55 | HEADER DebugApplication.h 56 | IDENTIFIER KAMD_LOG_APPLICATION 57 | CATEGORY_NAME org.kde.kactivities.application 58 | DEFAULT_SEVERITY Warning 59 | DESCRIPTION "KActivities Application" EXPORT KACTIVITYMANAGERD) 60 | 61 | add_subdirectory (service) 62 | -------------------------------------------------------------------------------- /src/service/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | 3 | project (ActivityManager) 4 | 5 | # General 6 | find_package (ECM 0.0.8 REQUIRED NO_MODULE) 7 | set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) 8 | 9 | find_package (Qt6 REQUIRED NO_MODULE COMPONENTS Sql Gui Widgets) 10 | 11 | find_package (KF6Config ${KF6_MIN_VERSION} CONFIG REQUIRED) 12 | find_package (KF6CoreAddons ${KF6_MIN_VERSION} CONFIG REQUIRED) 13 | find_package (KF6I18n ${KF6_MIN_VERSION} CONFIG REQUIRED) 14 | find_package (KF6GlobalAccel ${KF6_MIN_VERSION} CONFIG REQUIRED) 15 | find_package (KF6XmlGui ${KF6_MIN_VERSION} CONFIG REQUIRED) 16 | find_package (KF6KIO ${KF6_MIN_VERSION} CONFIG REQUIRED) 17 | find_package (KF6Crash ${KF6_MIN_VERSION} CONFIG REQUIRED) 18 | 19 | 20 | # Standard stuff 21 | 22 | add_library(kactivitymanagerd_plugin SHARED Plugin.cpp Module.cpp Event.cpp) 23 | generate_export_header(kactivitymanagerd_plugin) 24 | target_link_libraries(kactivitymanagerd_plugin 25 | PUBLIC Qt::Core Qt::DBus KF6::CoreAddons KF6::ConfigCore 26 | PRIVATE debug_STATIC 27 | ) 28 | 29 | add_subdirectory (plugins) 30 | 31 | set (kactivitymanager_SRCS 32 | Application.cpp 33 | ${KACTIVITIES_CURRENT_ROOT_SOURCE_DIR}/src/common/dbus/org.kde.ActivityManager.Activities.cpp 34 | 35 | Activities.cpp 36 | Resources.cpp 37 | Features.cpp 38 | 39 | ) 40 | 41 | qt_add_dbus_adaptor ( 42 | kactivitymanager_SRCS 43 | ../common/dbus/org.kde.ActivityManager.Activities.xml 44 | Activities.h Activities 45 | ) 46 | 47 | qt_add_dbus_adaptor ( 48 | kactivitymanager_SRCS 49 | ../common/dbus/org.kde.ActivityManager.Resources.xml 50 | Resources.h Resources 51 | ) 52 | 53 | qt_add_dbus_adaptor ( 54 | kactivitymanager_SRCS 55 | ../common/dbus/org.kde.ActivityManager.Features.xml 56 | Features.h Features 57 | ) 58 | 59 | add_executable (kactivitymanagerd ${kactivitymanager_SRCS}) 60 | 61 | target_include_directories(kactivitymanagerd PRIVATE ${CMAKE_BINARY_DIR}) 62 | 63 | target_link_libraries (kactivitymanagerd 64 | Qt::Core 65 | Qt::DBus 66 | Qt::Gui 67 | KF6::DBusAddons 68 | KF6::CoreAddons 69 | KF6::ConfigCore 70 | KF6::I18n 71 | KF6::Crash 72 | kactivitymanagerd_plugin 73 | debug_STATIC 74 | ) 75 | 76 | ########### install application ############### 77 | 78 | install (TARGETS 79 | kactivitymanagerd 80 | DESTINATION ${KDE_INSTALL_LIBEXECDIR} 81 | ) 82 | 83 | install (TARGETS 84 | kactivitymanagerd_plugin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} 85 | ) 86 | -------------------------------------------------------------------------------- /src/service/plugins/krunner/dbusutils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2021 Alexander Lohnau 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | enum Type { 14 | NoMatch = 0, 15 | CompletionMatch = 10, 16 | PossibleMatch = 30, 17 | InformationalMatch = 50, 18 | HelperMatch = 70, 19 | ExactMatch = 100, 20 | }; 21 | 22 | struct RemoteMatch { 23 | // sssuda{sv} 24 | QString id; 25 | QString text; 26 | QString iconName; 27 | Type type = NoMatch; 28 | qreal relevance = 0; 29 | QVariantMap properties; 30 | }; 31 | 32 | typedef QList RemoteMatches; 33 | 34 | struct RemoteAction { 35 | QString id; 36 | QString text; 37 | QString iconName; 38 | }; 39 | 40 | typedef QList RemoteActions; 41 | 42 | inline QDBusArgument &operator<<(QDBusArgument &argument, const RemoteMatch &match) 43 | { 44 | argument.beginStructure(); 45 | argument << match.id; 46 | argument << match.text; 47 | argument << match.iconName; 48 | argument << match.type; 49 | argument << match.relevance; 50 | argument << match.properties; 51 | argument.endStructure(); 52 | return argument; 53 | } 54 | 55 | inline const QDBusArgument &operator>>(const QDBusArgument &argument, RemoteMatch &match) 56 | { 57 | argument.beginStructure(); 58 | argument >> match.id; 59 | argument >> match.text; 60 | argument >> match.iconName; 61 | uint type; 62 | argument >> type; 63 | match.type = (Type)type; 64 | argument >> match.relevance; 65 | argument >> match.properties; 66 | argument.endStructure(); 67 | 68 | return argument; 69 | } 70 | 71 | inline QDBusArgument &operator<<(QDBusArgument &argument, const RemoteAction &action) 72 | { 73 | argument.beginStructure(); 74 | argument << action.id; 75 | argument << action.text; 76 | argument << action.iconName; 77 | argument.endStructure(); 78 | return argument; 79 | } 80 | 81 | inline const QDBusArgument &operator>>(const QDBusArgument &argument, RemoteAction &action) 82 | { 83 | argument.beginStructure(); 84 | argument >> action.id; 85 | argument >> action.text; 86 | argument >> action.iconName; 87 | argument.endStructure(); 88 | return argument; 89 | } 90 | 91 | Q_DECLARE_METATYPE(RemoteMatch) 92 | Q_DECLARE_METATYPE(RemoteMatches) 93 | Q_DECLARE_METATYPE(RemoteAction) 94 | Q_DECLARE_METATYPE(RemoteActions) 95 | -------------------------------------------------------------------------------- /src/service/plugins/sqlite/ResourceLinking.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011, 2012, 2013, 2014, 2015 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | // Qt 10 | #include 11 | 12 | // STL 13 | #include 14 | 15 | // Local 16 | #include 17 | 18 | class QSqlQuery; 19 | 20 | /** 21 | * Communication with the outer world. 22 | * 23 | * - Handles configuration 24 | * - Filters the events based on the user's configuration. 25 | */ 26 | class ResourceLinking : public QObject 27 | { 28 | Q_OBJECT 29 | Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Resources.Linking") 30 | 31 | public: 32 | explicit ResourceLinking(QObject *parent); 33 | 34 | void init(); 35 | 36 | public Q_SLOTS: 37 | /** 38 | * Links the resource to the activity 39 | * @param initiatingAgent application that requests the linking. Leave 40 | * empty if the resource should be linked to the activity regardless 41 | * of which application asks for it. 42 | * @param targettedResource resource to link to the activity. Can be a file 43 | * or any other kind of URI. If it is not a globally recognizable URI, 44 | * you should set the initiatingAgent to a specific application. 45 | * @param usedActivity Activity to link to. Leave empty to link to all 46 | * activities. 47 | */ 48 | void LinkResourceToActivity(QString initiatingAgent, QString targettedResource, QString usedActivity = QString()); 49 | void UnlinkResourceFromActivity(QString initiatingAgent, QString targettedResource, QString usedActivity = QString()); 50 | bool IsResourceLinkedToActivity(QString initiatingAgent, QString targettedResource, QString usedActivity = QString()); 51 | 52 | Q_SIGNALS: 53 | void ResourceLinkedToActivity(const QString &initiatingAgent, const QString &targettedResource, const QString &usedActivity); 54 | void ResourceUnlinkedFromActivity(const QString &initiatingAgent, const QString &targettedResource, const QString &usedActivity); 55 | 56 | private Q_SLOTS: 57 | void onActivityAdded(const QString &activity); 58 | void onActivityRemoved(const QString &activity); 59 | void onCurrentActivityChanged(const QString &activity); 60 | 61 | private: 62 | bool validateArguments(QString &initiatingAgent, QString &targettedResource, QString &usedActivity, bool checkFilesExist = true); 63 | 64 | QString currentActivity() const; 65 | 66 | std::unique_ptr linkResourceToActivityQuery; 67 | std::unique_ptr unlinkResourceFromAllActivitiesQuery; 68 | std::unique_ptr unlinkResourceFromActivityQuery; 69 | std::unique_ptr isResourceLinkedToActivityQuery; 70 | }; 71 | -------------------------------------------------------------------------------- /src/service/Activities_p.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | // Self 10 | #include "Activities.h" 11 | 12 | // Qt 13 | #include 14 | #include 15 | 16 | // KDE 17 | #include 18 | #include 19 | 20 | class KSMServer; 21 | 22 | class Activities::Private : public QObject 23 | { 24 | Q_OBJECT 25 | 26 | public: 27 | Private(Activities *parent); 28 | ~Private() override; 29 | 30 | // Loads the last activity 31 | // the user has used 32 | void loadLastActivity(); 33 | 34 | public Q_SLOTS: 35 | bool setCurrentActivity(const QString &activity); 36 | bool previousActivity(); 37 | bool nextActivity(); 38 | void updateSortedActivityList(); 39 | 40 | public: 41 | QTimer configSyncTimer; 42 | KConfig config; 43 | KConfig stateConfig; 44 | 45 | // Interface to the session management 46 | KSMServer *ksmserver; 47 | 48 | QSet activities; 49 | QList sortedActivities; 50 | QReadWriteLock activitiesLock; 51 | QString currentActivity; 52 | 53 | public: 54 | inline KConfigGroup activityNameConfig() 55 | { 56 | return KConfigGroup(&config, QStringLiteral("activities")); 57 | } 58 | 59 | inline KConfigGroup activityDescriptionConfig() 60 | { 61 | return KConfigGroup(&config, QStringLiteral("activities-descriptions")); 62 | } 63 | 64 | inline KConfigGroup activityIconConfig() 65 | { 66 | return KConfigGroup(&config, QStringLiteral("activities-icons")); 67 | } 68 | 69 | inline KConfigGroup mainConfig() 70 | { 71 | return KConfigGroup(&config, QStringLiteral("main")); 72 | } 73 | 74 | inline QString activityName(const QString &activity) 75 | { 76 | return activityNameConfig().readEntry(activity, QString()); 77 | } 78 | 79 | inline QString activityDescription(const QString &activity) 80 | { 81 | return activityDescriptionConfig().readEntry(activity, QString()); 82 | } 83 | 84 | inline QString activityIcon(const QString &activity) 85 | { 86 | return activityIconConfig().readEntry(activity, QString()); 87 | } 88 | 89 | public Q_SLOTS: 90 | // Schedules config syncing to be done after 91 | // a predefined time interval 92 | void scheduleConfigSync(); 93 | 94 | // Immediately syncs the configuration file 95 | void configSync(); 96 | 97 | QString addActivity(const QString &name); 98 | void removeActivity(const QString &activity); 99 | 100 | private: 101 | Activities *const q; 102 | }; 103 | -------------------------------------------------------------------------------- /src/service/Features.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | // Self 8 | #include "Features.h" 9 | 10 | // Qt 11 | #include 12 | 13 | // Utils 14 | #include 15 | 16 | // Local 17 | #include "common/dbus/common.h" 18 | #include "featuresadaptor.h" 19 | 20 | class Features::Private 21 | { 22 | }; 23 | 24 | Features::Features(QObject *parent) 25 | : Module(QStringLiteral("features"), parent) 26 | , d() 27 | { 28 | new FeaturesAdaptor(this); 29 | QDBusConnection::sessionBus().registerObject(KAMD_DBUS_OBJECT_PATH("Features"), this); 30 | } 31 | 32 | Features::~Features() 33 | { 34 | } 35 | 36 | // Features object is just a gateway to the other KAMD modules. 37 | // This is a convenience method to pass the request down to the module 38 | 39 | template 40 | static RetType passToModule(const QString &key, RetType defaultResult, Function f) 41 | { 42 | if (key.isEmpty()) { 43 | return defaultResult; 44 | } 45 | 46 | const auto params = key.split(QLatin1Char('/')); 47 | const auto module = Module::get(params.first()); 48 | 49 | if (!module) { 50 | return defaultResult; 51 | } 52 | 53 | return f(static_cast(module), params.mid(1)); 54 | } 55 | 56 | #define FEATURES_PASS_TO_MODULE(RetType, DefaultResult, What) \ 57 | passToModule(key, DefaultResult, [=](Module *module, const QStringList ¶ms) -> RetType { \ 58 | What \ 59 | }); 60 | 61 | bool Features::IsFeatureOperational(const QString &key) const 62 | { 63 | return FEATURES_PASS_TO_MODULE(bool, false, return module->isFeatureOperational(params);); 64 | } 65 | 66 | QStringList Features::ListFeatures(const QString &key) const 67 | { 68 | if (key.isEmpty()) { 69 | return Module::get().keys(); 70 | } 71 | 72 | return FEATURES_PASS_TO_MODULE(QStringList, QStringList(), return module->listFeatures(params);); 73 | } 74 | 75 | QDBusVariant Features::GetValue(const QString &key) const 76 | { 77 | return FEATURES_PASS_TO_MODULE(QDBusVariant, QDBusVariant(), return module->featureValue(params);); 78 | } 79 | 80 | void Features::SetValue(const QString &key, const QDBusVariant &value) 81 | { 82 | FEATURES_PASS_TO_MODULE(bool, true, module->setFeatureValue(params, value); return true;); 83 | } 84 | 85 | #undef FEATURES_PASS_TO_MODULE 86 | 87 | #include "moc_Features.cpp" 88 | -------------------------------------------------------------------------------- /src/service/Plugin.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include "kactivitymanagerd_plugin_export.h" 10 | 11 | // Qt 12 | #include 13 | #include 14 | 15 | // KDE 16 | #include 17 | #include 18 | 19 | // Utils 20 | #include 21 | 22 | // Local 23 | #include "Event.h" 24 | #include "Module.h" 25 | 26 | /** 27 | * 28 | */ 29 | class KACTIVITYMANAGERD_PLUGIN_EXPORT Plugin : public Module 30 | { 31 | Q_OBJECT 32 | 33 | public: 34 | explicit Plugin(QObject *parent); 35 | ~Plugin() override; 36 | 37 | /** 38 | * Initializes the plugin. 39 | * @arg modules Activities, Resources and Features manager objects 40 | * @returns the plugin needs to return whether it has 41 | * successfully been initialized 42 | */ 43 | virtual bool init(QHash &modules) = 0; 44 | 45 | /** 46 | * Returns the config group for the plugin. 47 | * In order to use it, you need to set the plugin name. 48 | */ 49 | KConfigGroup config() const; 50 | QString name() const; 51 | 52 | /** 53 | * Convenience meta-method to provide prettier invocation of QMetaObject::invokeMethod 54 | */ 55 | // template 56 | // inline static ReturnType retrieve(QObject *object, const char *method, 57 | // const char *returnTypeName) 58 | // { 59 | // ReturnType result; 60 | // 61 | // QMetaObject::invokeMethod( 62 | // object, method, Qt::DirectConnection, 63 | // QReturnArgument(returnTypeName, result)); 64 | // 65 | // return result; 66 | // } 67 | 68 | template 69 | inline static ReturnType retrieve(QObject *object, const char *method, Args... args) 70 | { 71 | ReturnType result; 72 | 73 | QMetaObject::invokeMethod(object, method, Qt::DirectConnection, Q_RETURN_ARG(ReturnType, result), args...); 74 | 75 | return result; 76 | } 77 | 78 | /** 79 | * Convenience meta-method to provide prettier invocation of QMetaObject::invokeMethod 80 | */ 81 | // template 82 | // inline static void invoke(QObject *object, const char *method, 83 | // const char *returnTypeName) 84 | // { 85 | // Q_UNUSED(returnTypeName); 86 | // QMetaObject::invokeMethod(object, method, connection); 87 | // } 88 | 89 | template 90 | inline static void invoke(QObject *object, const char *method, Args... args) 91 | { 92 | QMetaObject::invokeMethod(object, method, connection, args...); 93 | } 94 | 95 | protected: 96 | void setName(const QString &name); 97 | 98 | private: 99 | D_PTR; 100 | }; 101 | -------------------------------------------------------------------------------- /src/service/plugins/runapplication/RunApplicationPlugin.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #include "RunApplicationPlugin.h" 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "DebugApplication.h" 16 | 17 | #include 18 | 19 | K_PLUGIN_CLASS(RunApplicationPlugin) 20 | 21 | RunApplicationPlugin::RunApplicationPlugin(QObject *parent) 22 | : Plugin(parent) 23 | , m_activitiesService(nullptr) 24 | { 25 | setName(QStringLiteral("org.kde.ActivityManager.RunApplication")); 26 | } 27 | 28 | RunApplicationPlugin::~RunApplicationPlugin() 29 | { 30 | } 31 | 32 | bool RunApplicationPlugin::init(QHash &modules) 33 | { 34 | Plugin::init(modules); 35 | 36 | m_activitiesService = modules[QStringLiteral("activities")]; 37 | 38 | connect(m_activitiesService, SIGNAL(CurrentActivityChanged(QString)), this, SLOT(currentActivityChanged(QString))); 39 | 40 | const auto currentActivity = Plugin::retrieve(m_activitiesService, "CurrentActivity"); 41 | 42 | currentActivityChanged(currentActivity); 43 | 44 | return true; 45 | } 46 | 47 | QString RunApplicationPlugin::activityDirectory(const QString &activity) const 48 | { 49 | return QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/kactivitymanagerd/activities/") + activity 50 | + QLatin1Char('/'); 51 | } 52 | 53 | void RunApplicationPlugin::currentActivityChanged(const QString &activity) 54 | { 55 | if (m_currentActivity == activity) { 56 | return; 57 | } 58 | 59 | if (!m_currentActivity.isEmpty()) { 60 | executeIn(activityDirectory(m_currentActivity) + QStringLiteral("deactivated")); 61 | } 62 | 63 | m_currentActivity = activity; 64 | 65 | executeIn(activityDirectory(activity) + QStringLiteral("activated")); 66 | 67 | if (!m_previousActivities.contains(activity)) { 68 | m_previousActivities << activity; 69 | } 70 | } 71 | 72 | void RunApplicationPlugin::executeIn(const QString &path) const 73 | { 74 | QDir directory(path); 75 | const auto fileInfos = directory.entryInfoList(QDir::Files); 76 | for (const auto &fileInfo : fileInfos) { 77 | QString filePath = fileInfo.filePath(); 78 | if (fileInfo.suffix() == "sh" && fileInfo.isExecutable()) { 79 | qCDebug(KAMD_LOG_APPLICATION) << "Starting a shell script: " << filePath; 80 | QProcess::startDetached(filePath, QStringList()); 81 | 82 | } else if (KService service(filePath); service.isValid() && service.isApplication()) { 83 | qCDebug(KAMD_LOG_APPLICATION) << "Starting application: " << service.exec(); 84 | QProcess::startDetached(service.exec(), QStringList()); 85 | 86 | } else { 87 | qCDebug(KAMD_LOG_APPLICATION) << "Opening file: " << QUrl::fromLocalFile(filePath); 88 | QDesktopServices::openUrl(QUrl::fromLocalFile(filePath)); 89 | } 90 | } 91 | } 92 | 93 | // void RunApplicationPlugin::activityRemoved(const QString &activity) 94 | // { 95 | // // TODO: Clean up the directory 96 | // } 97 | 98 | #include "RunApplicationPlugin.moc" 99 | 100 | #include "moc_RunApplicationPlugin.cpp" 101 | -------------------------------------------------------------------------------- /src/service/plugins/krunner/org.kde.krunner1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 41 | 42 | 45 | 46 | 49 | 50 | 51 | 57 | 58 | 59 | 79 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab: 2 | 3 | cmake_minimum_required(VERSION 3.16) 4 | 5 | set(PROJECT_VERSION "6.5.80") 6 | set(PROJECT_DEP_VERSION "6.4.90") 7 | 8 | project (KActivityManagerd VERSION ${PROJECT_VERSION}) 9 | 10 | set (QT_MIN_VERSION "6.9.0") 11 | set (KF6_MIN_VERSION "6.18.0") 12 | set (KDE_COMPILERSETTINGS_LEVEL "5.82") 13 | set (Boost_MINIMUM_VERSION "1.58") 14 | 15 | # We don't build in-source 16 | if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") 17 | message ( 18 | FATAL_ERROR 19 | "kactivities require an out of source build. Please create a separate build directory and run 'cmake path_to_plasma [options]' there." 20 | ) 21 | endif () 22 | 23 | set (KACTIVITIES_CURRENT_ROOT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) 24 | 25 | # Extra CMake stuff 26 | include (FeatureSummary) 27 | find_package(ECM ${KF6_MIN_VERSION} NO_MODULE) 28 | set_package_properties(ECM PROPERTIES 29 | DESCRIPTION "Extra CMake Modules." 30 | URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules" 31 | TYPE REQUIRED 32 | ) 33 | feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) 34 | 35 | set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) 36 | 37 | include (KDEInstallDirs) 38 | include (KDECMakeSettings) 39 | include (KDECompilerSettings NO_POLICY_SCOPE) 40 | include (GenerateExportHeader) 41 | include (ECMConfiguredInstall) 42 | include (ECMGenerateDBusServiceFile) 43 | include (ECMGenerateHeaders) 44 | include (ECMQtDeclareLoggingCategory) 45 | include (KDEClangFormat) 46 | include (KDEGitCommitHooks) 47 | include (ECMDeprecationSettings) 48 | include (ECMSetupVersion) 49 | 50 | set (CMAKE_CXX_STANDARD 20) 51 | set (CMAKE_CXX_STANDARD_REQUIRED ON) 52 | 53 | # Qt 54 | find_package (Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core DBus Widgets) 55 | 56 | # KDE Frameworks 57 | find_package (KF6DBusAddons ${KF6_MIN_VERSION} CONFIG REQUIRED) 58 | find_package (KF6I18n ${KF6_MIN_VERSION} CONFIG REQUIRED) 59 | find_package (KF6Crash ${KF6_MIN_VERSION} CONFIG REQUIRED) 60 | find_package (KF6KIO ${KF6_MIN_VERSION} CONFIG REQUIRED) 61 | 62 | # Adding local CMake modules 63 | set ( 64 | CMAKE_MODULE_PATH 65 | ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules 66 | ${CMAKE_MODULE_PATH} 67 | ) 68 | 69 | add_definitions( 70 | -DQT_NO_URL_CAST_FROM_STRING 71 | -DQT_NO_SIGNALS_SLOTS_KEYWORDS 72 | ) 73 | add_definitions (-DTRANSLATION_DOMAIN=\"kactivities6\") 74 | if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") 75 | ki18n_install (po) 76 | endif () 77 | 78 | if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") 79 | set (CMAKE_CXX_VISIBILITY_PRESET default) 80 | set (CMAKE_VISIBILITY_INLINES_HIDDEN 0) 81 | endif () 82 | 83 | ecm_set_disabled_deprecation_versions(QT 6.9.0 84 | KF 6.16.0 85 | ) 86 | 87 | ecm_setup_version(PROJECT VARIABLE_PREFIX KACTIVITYMANAGERD 88 | VERSION_HEADER ${CMAKE_BINARY_DIR}/version.h 89 | ) 90 | 91 | add_subdirectory (src) 92 | 93 | # add clang-format target for all our real source files 94 | file (GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h) 95 | kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 96 | kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 97 | 98 | ecm_qt_install_logging_categories( 99 | EXPORT KACTIVITYMANAGERD 100 | FILE kactivitymanagerd.categories 101 | DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} 102 | ) 103 | 104 | # Write out the features 105 | feature_summary (WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 106 | -------------------------------------------------------------------------------- /src/service/plugins/krunner/ActivityRunner.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2021 Alexander Lohnau 3 | * SPDX-FileCopyrightText: 2011 Aaron Seigo 4 | * 5 | * SPDX-License-Identifier: GPL-2.0-or-later 6 | */ 7 | 8 | #include "ActivityRunner.h" 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | K_PLUGIN_CLASS(ActivityRunner) 15 | 16 | ActivityRunner::ActivityRunner(QObject *parent) 17 | : Plugin(parent) 18 | , m_activitiesService(nullptr) 19 | , m_keywordi18n(i18nc("KRunner keyword", "activity")) 20 | , m_keyword(QStringLiteral("activity")) 21 | { 22 | setName(QStringLiteral("org.kde.ActivityManager.ActivityRunner")); 23 | new Krunner1Adaptor(this); 24 | qDBusRegisterMetaType(); 25 | qDBusRegisterMetaType(); 26 | qDBusRegisterMetaType(); 27 | qDBusRegisterMetaType(); 28 | QDBusConnection::sessionBus().registerObject(QStringLiteral("/runner"), this); 29 | QDBusConnection::sessionBus().registerService(QStringLiteral("org.kde.runners.activities")); 30 | } 31 | 32 | ActivityRunner::~ActivityRunner() = default; 33 | 34 | bool ActivityRunner::init(QHash &modules) 35 | { 36 | Plugin::init(modules); 37 | 38 | m_activitiesService = modules[QStringLiteral("activities")]; 39 | return true; 40 | } 41 | 42 | RemoteMatches ActivityRunner::Match(const QString &query) 43 | { 44 | Q_ASSERT(m_activitiesService); 45 | const auto currentActivity = Plugin::retrieve(m_activitiesService, "CurrentActivity"); 46 | auto activities = Plugin::retrieve(m_activitiesService, "ListActivitiesWithInformation"); 47 | 48 | const QString term = query.trimmed(); 49 | bool list = false; 50 | QString name; 51 | 52 | if (term.startsWith(m_keyword, Qt::CaseInsensitive)) { 53 | name = term.right(term.size() - m_keyword.size()).trimmed(); 54 | } else if (term.startsWith(m_keywordi18n, Qt::CaseInsensitive)) { 55 | name = term.right(term.size() - m_keywordi18n.size()).trimmed(); 56 | } else { 57 | list = true; 58 | } 59 | 60 | QList matches; 61 | for (const ActivityInfo &activityInfo : std::as_const(activities)) { 62 | if (currentActivity != activityInfo.id) { 63 | auto info = Plugin::retrieve(m_activitiesService, "ActivityInformation", Q_ARG(QString, activityInfo.id)); 64 | if (list || info.name.startsWith(name, Qt::CaseInsensitive)) { 65 | RemoteMatch m; 66 | m.id = activityInfo.id; 67 | m.text = i18n("Switch to \"%1\"", info.name); 68 | m.iconName = info.icon; 69 | m.type = Type::ExactMatch; 70 | m.relevance = 0.7; 71 | matches.append(m); 72 | } 73 | } 74 | } 75 | 76 | return matches; 77 | } 78 | 79 | QVariantMap ActivityRunner::Config() 80 | { 81 | return { 82 | {"MinLetterCount", qMin(m_keyword.length(), m_keywordi18n.length())}, 83 | {"MatchRegex", '^' + m_keyword + '|' + m_keywordi18n}, 84 | }; 85 | } 86 | 87 | RemoteActions ActivityRunner::Actions() 88 | { 89 | return {}; 90 | } 91 | 92 | void ActivityRunner::Run(const QString &matchId, const QString & /*actionId*/) 93 | { 94 | QMetaObject::invokeMethod(m_activitiesService, "SetCurrentActivity", Q_ARG(QString, matchId)); 95 | } 96 | 97 | #include "ActivityRunner.moc" 98 | 99 | #include "moc_ActivityRunner.cpp" 100 | -------------------------------------------------------------------------------- /po/is/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Copyright (C) YEAR This_file_is_part_of_KDE 2 | # This file is distributed under the same license as the PACKAGE package. 3 | # 4 | # Sveinn í Felli , 2013, 2016, 2022. 5 | # gummi , 2022. 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: \n" 9 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 10 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 11 | "PO-Revision-Date: 2022-12-22 12:29+0000\n" 12 | "Last-Translator: gummi \n" 13 | "Language-Team: Icelandic \n" 14 | "Language: is\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "X-Generator: Lokalize 22.08.3\n" 19 | "Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n" 20 | 21 | #, kde-format 22 | msgctxt "NAME OF TRANSLATORS" 23 | msgid "Your names" 24 | msgstr "Sveinn í Felli" 25 | 26 | #, kde-format 27 | msgctxt "EMAIL OF TRANSLATORS" 28 | msgid "Your emails" 29 | msgstr "sv1@fellsnet.is" 30 | 31 | #: service/Activities.cpp:62 32 | #, kde-format 33 | msgid "Default" 34 | msgstr "Sjálfgefið" 35 | 36 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 37 | #, kde-format 38 | msgid "Activity Manager" 39 | msgstr "Athafnastjóri" 40 | 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 43 | #, kde-format 44 | msgctxt "@action" 45 | msgid "Switch to activity \"%1\"" 46 | msgstr "Skipta yfir í athöfnina \"%1\"" 47 | 48 | #: service/plugins/krunner/ActivityRunner.cpp:19 49 | #, kde-format 50 | msgctxt "KRunner keyword" 51 | msgid "activity" 52 | msgstr "athöfn" 53 | 54 | #: service/plugins/krunner/ActivityRunner.cpp:67 55 | #, kde-format 56 | msgid "Switch to \"%1\"" 57 | msgstr "Skipta yfir í \"%1\"" 58 | 59 | #, fuzzy 60 | #~| msgid "Activities" 61 | #~ msgctxt "Header title for activity data model" 62 | #~ msgid "Activity" 63 | #~ msgstr "Virkni" 64 | 65 | #, fuzzy 66 | #~| msgid "Activities" 67 | #~ msgid "Activities" 68 | #~ msgstr "Virkni" 69 | 70 | #, fuzzy 71 | #~| msgid "Activity manager is not running properly." 72 | #~ msgid "The Activity Manager is not running" 73 | #~ msgstr "Virknistjórinn er ekki að keyra eins og skyldi." 74 | 75 | #~ msgid "Link to the current activity" 76 | #~ msgstr "Tengja við núverandi virkni" 77 | 78 | #~ msgid "Unlink from the current activity" 79 | #~ msgstr "Aftengja við núverandi virkni" 80 | 81 | #~ msgid "Link to:" 82 | #~ msgstr "Tengja við:" 83 | 84 | #~ msgid "Unlink from:" 85 | #~ msgstr "Aftengja frá:" 86 | 87 | #, fuzzy 88 | #~| msgid "Link to the current activity" 89 | #~ msgid "Current activity" 90 | #~ msgstr "Tengja við núverandi virkni" 91 | 92 | #, fuzzy 93 | #~| msgid "Link to the current activity" 94 | #~ msgid "Delete activity" 95 | #~ msgstr "Tengja við núverandi virkni" 96 | 97 | #, fuzzy 98 | #~| msgid "Link to the current activity" 99 | #~ msgid "Create a new activity" 100 | #~ msgstr "Tengja við núverandi virkni" 101 | 102 | #, fuzzy 103 | #~| msgid "Activities" 104 | #~ msgid "Activity settings" 105 | #~ msgstr "Virkni" 106 | 107 | #, fuzzy 108 | #~| msgid "Activities" 109 | #~ msgid "Activity information" 110 | #~ msgstr "Virkni" 111 | 112 | #, fuzzy 113 | #~| msgid "Link to the current activity" 114 | #~ msgid "Create activity..." 115 | #~ msgstr "Tengja við núverandi virkni" 116 | 117 | #, fuzzy 118 | #~| msgid "Activities" 119 | #~ msgid "Activity switching" 120 | #~ msgstr "Virkni" 121 | 122 | #~ msgid "Activity manager is not running properly." 123 | #~ msgstr "Virknistjórinn er ekki að keyra eins og skyldi." 124 | 125 | #, fuzzy 126 | #~| msgid "Activities" 127 | #~ msgid "Activities..." 128 | #~ msgstr "Virkni" 129 | -------------------------------------------------------------------------------- /src/service/plugins/activitytemplates/TemplatesPlugin.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | // Self 8 | #include "TemplatesPlugin.h" 9 | 10 | // Qt 11 | #include 12 | #include 13 | 14 | // Local 15 | #include "templatesadaptor.h" 16 | 17 | K_PLUGIN_CLASS(TemplatesPlugin) 18 | 19 | TemplatesPlugin::TemplatesPlugin(QObject *parent) 20 | : Plugin(parent) 21 | { 22 | setName(QStringLiteral("org.kde.ActivityManager.ActivityTemplates")); 23 | 24 | new TemplatesAdaptor(this); 25 | QDBusConnection::sessionBus().registerObject(QStringLiteral("/Templates"), this); 26 | } 27 | 28 | TemplatesPlugin::~TemplatesPlugin() 29 | { 30 | } 31 | 32 | bool TemplatesPlugin::init(QHash &modules) 33 | { 34 | Plugin::init(modules); 35 | 36 | m_activities = modules[QStringLiteral("activities")]; 37 | 38 | return true; 39 | } 40 | 41 | QDBusVariant TemplatesPlugin::featureValue(const QStringList &property) const 42 | { 43 | if (property.size() == 0) { 44 | return QDBusVariant(QString()); 45 | } 46 | 47 | const auto &id = property[0]; 48 | 49 | KConfigGroup pluginConfig(config()); 50 | KConfigGroup activityConfig(&pluginConfig, id); 51 | 52 | if (property.size() == 2) { 53 | const auto &key = property[1]; 54 | return QDBusVariant(activityConfig.readEntry(key, QVariant(QString()))); 55 | 56 | } else { 57 | return QDBusVariant(activityConfig.keyList()); 58 | } 59 | } 60 | 61 | void TemplatesPlugin::setFeatureValue(const QStringList &property, const QDBusVariant &value) 62 | { 63 | Q_UNUSED(property); 64 | Q_UNUSED(value); 65 | 66 | // TODO: Remove. For testing purposes only 67 | if (property.size() == 1 && property[0] == "createActivity") { 68 | QVariantHash info{ 69 | {"activity.name", value.variant().toString()}, 70 | {"activity.description", "Nothing special"}, 71 | {"activity.wallpaper", "stripes.png"}, 72 | {"activity.icon", "kate"}, 73 | {"activity.cloneFrom", "id"}, 74 | {"activity.linkedResources", QStringList{"a", "b", "c"}}, 75 | }; 76 | createActivity(QDBusVariant(info)); 77 | } 78 | } 79 | 80 | void TemplatesPlugin::createActivity(const QDBusVariant &_values) 81 | { 82 | QVariantHash values = _values.variant().toHash(); 83 | 84 | auto takeStringValue = [&values](const QString &key) { 85 | auto result = values[key].toString(); 86 | values.remove(key); 87 | return result; 88 | }; 89 | 90 | const QString name = takeStringValue("activity.name"); 91 | const QString description = takeStringValue("activity.description"); 92 | const QString icon = takeStringValue("activity.icon"); 93 | 94 | // Creating the activity, and getting the id 95 | const QString id = Plugin::retrieve(m_activities, "AddActivity", Q_ARG(QString, name)); 96 | 97 | // Saving the provided data to the configuration file 98 | KConfigGroup pluginConfig(config()); 99 | KConfigGroup activityConfig(&pluginConfig, id); 100 | 101 | for (const auto &[key, value] : values.asKeyValueRange()) { 102 | activityConfig.writeEntry(key, value); 103 | } 104 | 105 | activityConfig.sync(); 106 | 107 | // Changing the icon and description of the activity 108 | Plugin::invoke(m_activities, "SetActivityDescription", Q_ARG(QString, id), Q_ARG(QString, description)); 109 | Plugin::invoke(m_activities, "SetActivityIcon", Q_ARG(QString, id), Q_ARG(QString, icon)); 110 | } 111 | 112 | #include "TemplatesPlugin.moc" 113 | 114 | #include "moc_TemplatesPlugin.cpp" 115 | -------------------------------------------------------------------------------- /src/service/plugins/sqlite/ResourceScoreMaintainer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011, 2012 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | // Self 8 | #include "ResourceScoreMaintainer.h" 9 | 10 | // Qt 11 | #include 12 | 13 | // System 14 | #include 15 | 16 | // Utils 17 | #include 18 | 19 | // Local 20 | #include "ResourceScoreCache.h" 21 | #include "StatsPlugin.h" 22 | 23 | class ResourceScoreMaintainer::Private 24 | { 25 | public: 26 | Private() 27 | { 28 | } 29 | 30 | ~Private(); 31 | 32 | typedef QString ApplicationName; 33 | typedef QString ActivityID; 34 | typedef QList ResourceList; 35 | 36 | typedef QHash Applications; 37 | typedef QHash ResourceTree; 38 | 39 | ResourceTree scheduledResources; 40 | 41 | void processActivity(const ActivityID &activity, const Applications &applications); 42 | 43 | void processResources(); 44 | 45 | QTimer processResourcesTimer; 46 | }; 47 | 48 | ResourceScoreMaintainer::Private::~Private() 49 | { 50 | } 51 | 52 | void ResourceScoreMaintainer::Private::processResources() 53 | { 54 | // initial delay before processing the resources 55 | sleep(1); 56 | 57 | ResourceTree resources; 58 | 59 | std::swap(resources, scheduledResources); 60 | 61 | const auto activity = StatsPlugin::self()->currentActivity(); 62 | 63 | // Let us first process the events related to the current 64 | // activity so that the stats are available quicker 65 | 66 | if (resources.contains(activity)) { 67 | processActivity(activity, resources[activity]); 68 | resources.remove(activity); 69 | } 70 | 71 | for (const auto &[activity, applications] : resources.asKeyValueRange()) { 72 | processActivity(activity, applications); 73 | }; 74 | } 75 | 76 | void ResourceScoreMaintainer::Private::processActivity(const ActivityID &activity, const Applications &applications) 77 | { 78 | using namespace kamd::utils; 79 | 80 | for (const auto &[application, resources] : applications.asKeyValueRange()) { 81 | for (const auto &resource : resources) { 82 | ResourceScoreCache(activity, application, resource).update(); 83 | } 84 | } 85 | } 86 | 87 | ResourceScoreMaintainer *ResourceScoreMaintainer::self() 88 | { 89 | static ResourceScoreMaintainer instance; 90 | return &instance; 91 | } 92 | 93 | ResourceScoreMaintainer::ResourceScoreMaintainer() 94 | { 95 | d->processResourcesTimer.setInterval(1000); 96 | d->processResourcesTimer.setSingleShot(true); 97 | connect(&d->processResourcesTimer, &QTimer::timeout, this, [this] { 98 | d->processResources(); 99 | }); 100 | } 101 | 102 | ResourceScoreMaintainer::~ResourceScoreMaintainer() 103 | { 104 | } 105 | 106 | void ResourceScoreMaintainer::processResource(const QString &resource, const QString &application) 107 | { 108 | // Checking whether the item is already scheduled for 109 | // processing 110 | 111 | const auto activity = StatsPlugin::self()->currentActivity(); 112 | 113 | Q_ASSERT_X(!application.isEmpty(), "ResourceScoreMaintainer::processResource", "Agent should not be empty"); 114 | Q_ASSERT_X(!resource.isEmpty(), "ResourceScoreMaintainer::processResource", "Resource should not be empty"); 115 | 116 | if (d->scheduledResources.contains(activity) && d->scheduledResources[activity].contains(application) 117 | && d->scheduledResources[activity][application].contains(resource)) { 118 | // Nothing 119 | 120 | } else { 121 | d->scheduledResources[activity][application] << resource; 122 | } 123 | 124 | d->processResourcesTimer.start(); 125 | } 126 | -------------------------------------------------------------------------------- /src/common/dbus/org.kde.ActivityManager.Activities.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /src/service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2012, 2013, 2014 Ivan Cukic 3 | * SPDX-FileCopyrightText: 2012 Makis Marimpis 4 | * 5 | * SPDX-License-Identifier: GPL-2.0-or-later 6 | */ 7 | 8 | #include "GlobalShortcutsPlugin.h" 9 | 10 | #include 11 | #include 12 | 13 | #include 14 | #include 15 | #include 16 | 17 | K_PLUGIN_CLASS(GlobalShortcutsPlugin) 18 | 19 | const auto objectNamePattern = QStringLiteral("switch-to-activity-%1"); 20 | const auto objectNamePatternLength = objectNamePattern.length() - 2; 21 | 22 | GlobalShortcutsPlugin::GlobalShortcutsPlugin(QObject *parent) 23 | : Plugin(parent) 24 | , m_activitiesService(nullptr) 25 | , m_actionCollection(new KActionCollection(this)) 26 | { 27 | m_actionCollection->setComponentName("ActivityManager"); 28 | m_actionCollection->setComponentDisplayName(i18n("Activity Manager")); 29 | } 30 | 31 | GlobalShortcutsPlugin::~GlobalShortcutsPlugin() 32 | { 33 | m_actionCollection->clear(); 34 | } 35 | 36 | bool GlobalShortcutsPlugin::init(QHash &modules) 37 | { 38 | Plugin::init(modules); 39 | 40 | m_activitiesService = modules["activities"]; 41 | 42 | m_activitiesList = Plugin::retrieve(m_activitiesService, "ListActivities"); 43 | 44 | for (const auto &activity : m_activitiesList) { 45 | activityAdded(activity); 46 | } 47 | connect(this, SIGNAL(currentActivityChanged(QString)), m_activitiesService, SLOT(SetCurrentActivity(QString)), Qt::QueuedConnection); 48 | 49 | connect(m_activitiesService, SIGNAL(ActivityAdded(QString)), this, SLOT(activityAdded(QString))); 50 | connect(m_activitiesService, SIGNAL(ActivityRemoved(QString)), this, SLOT(activityRemoved(QString))); 51 | 52 | m_actionCollection->readSettings(); 53 | 54 | return true; 55 | } 56 | 57 | void GlobalShortcutsPlugin::activityAdded(const QString &activity) 58 | { 59 | if (activity == "00000000-0000-0000-0000-000000000000") { 60 | return; 61 | } 62 | 63 | if (!m_activitiesList.contains(activity)) { 64 | m_activitiesList << activity; 65 | } 66 | 67 | const auto action = m_actionCollection->addAction(objectNamePattern.arg(activity)); 68 | 69 | action->setText(i18nc("@action", "Switch to activity \"%1\"", activityName(activity))); 70 | KGlobalAccel::setGlobalShortcut(action, QList{}); 71 | 72 | connect(action, &QAction::triggered, this, [this, activity]() { 73 | Q_EMIT currentActivityChanged(activity); 74 | }); 75 | 76 | // m_actionCollection->writeSettings(); 77 | } 78 | 79 | QString GlobalShortcutsPlugin::activityForAction(QAction *action) const 80 | { 81 | return action->objectName().mid(objectNamePatternLength); 82 | } 83 | 84 | void GlobalShortcutsPlugin::activityRemoved(const QString &deletedActivity) 85 | { 86 | m_activitiesList.removeAll(deletedActivity); 87 | 88 | // Removing all shortcuts that refer to an unknown activity 89 | for (const auto &action : m_actionCollection->actions()) { 90 | const auto actionActivity = activityForAction(action); 91 | if ((deletedActivity.isEmpty() && !m_activitiesList.contains(actionActivity)) // 92 | || deletedActivity == actionActivity) { 93 | KGlobalAccel::self()->removeAllShortcuts(action); 94 | m_actionCollection->removeAction(action); 95 | } 96 | } 97 | 98 | m_actionCollection->writeSettings(); 99 | } 100 | 101 | void GlobalShortcutsPlugin::activityChanged(const QString &activity) 102 | { 103 | for (const auto &action : m_actionCollection->actions()) { 104 | if (activity == activityForAction(action)) { 105 | action->setText(i18nc("@action", "Switch to activity \"%1\"", activityName(activity))); 106 | } 107 | } 108 | } 109 | 110 | QString GlobalShortcutsPlugin::activityName(const QString &activity) const 111 | { 112 | return Plugin::retrieve(m_activitiesService, "ActivityName", Q_ARG(QString, activity)); 113 | } 114 | 115 | #include "GlobalShortcutsPlugin.moc" 116 | 117 | #include "moc_GlobalShortcutsPlugin.cpp" 118 | -------------------------------------------------------------------------------- /src/service/Resources.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2010-2016 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | // Self 8 | #include "Resources.h" 9 | #include "Resources_p.h" 10 | 11 | // Qt 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | // Utils 18 | #include 19 | #include 20 | 21 | // Local 22 | #include "common/dbus/common.h" 23 | #include "resourcesadaptor.h" 24 | 25 | Resources::Private::Private(Resources *parent) 26 | : QThread(parent) 27 | , q(parent) 28 | { 29 | } 30 | 31 | Resources::Private::~Private() 32 | { 33 | requestInterruption(); 34 | wait(1500); // Enough time for the sleep(1) + processing in run() 35 | } 36 | 37 | namespace 38 | { 39 | EventList events; 40 | QMutex events_mutex; 41 | } 42 | 43 | void Resources::Private::run() 44 | { 45 | while (!isInterruptionRequested()) { 46 | // initial delay before processing the events 47 | sleep(1); 48 | 49 | EventList currentEvents; 50 | 51 | { 52 | QMutexLocker locker(&events_mutex); 53 | 54 | if (events.count() == 0) { 55 | return; 56 | } 57 | 58 | std::swap(currentEvents, events); 59 | } 60 | 61 | Q_EMIT q->ProcessedResourceEvents(currentEvents); 62 | } 63 | } 64 | 65 | void Resources::Private::insertEvent(const Event &newEvent) 66 | { 67 | { 68 | QMutexLocker locker(&events_mutex); 69 | events << newEvent; 70 | } 71 | 72 | Q_EMIT q->RegisteredResourceEvent(newEvent); 73 | } 74 | 75 | void Resources::Private::addEvent(const Event &newEvent) 76 | { 77 | // And now, for something completely delayed 78 | { 79 | QMutexLocker locker(&events_mutex); 80 | 81 | // Deleting previously registered Accessed events if 82 | // the current one has the same application and uri 83 | if (newEvent.type != Event::Accessed) { 84 | kamd::utils::remove_if(events, [&newEvent](const Event &event) -> bool { 85 | return event.application == newEvent.application && event.uri == newEvent.uri; 86 | }); 87 | } 88 | } 89 | 90 | // Process the windowing 91 | insertEvent(newEvent); 92 | 93 | start(); 94 | } 95 | 96 | Resources::Resources(QObject *parent) 97 | : Module(QStringLiteral("resources"), parent) 98 | , d(this) 99 | { 100 | qRegisterMetaType("Event"); 101 | qRegisterMetaType("EventList"); 102 | 103 | new ResourcesAdaptor(this); 104 | QDBusConnection::sessionBus().registerObject(KAMD_DBUS_OBJECT_PATH("Resources"), this); 105 | } 106 | 107 | Resources::~Resources() 108 | { 109 | } 110 | 111 | namespace 112 | { 113 | QString sanitizeUri(const QString &uri) 114 | { 115 | auto _uri = uri; 116 | if (uri.startsWith("file://")) { 117 | _uri = _uri.mid(QStringLiteral("file:/").length()); 118 | } 119 | if (uri.startsWith("//")) { 120 | _uri = _uri.mid(QStringLiteral("/").length()); 121 | } 122 | return _uri; 123 | } 124 | }; 125 | 126 | void Resources::RegisterResourceEvent(const QString &application, uint _windowId, const QString &uri, uint event) 127 | { 128 | // TODO KF7 remove _windowId 129 | Q_UNUSED(_windowId) 130 | 131 | if (event > Event::LastEventType || uri.isEmpty() || application.isEmpty()) { 132 | return; 133 | } 134 | 135 | d->addEvent(Event{application, sanitizeUri(uri), (Event::Type)event}); 136 | } 137 | 138 | void Resources::RegisterResourceMimetype(const QString &uri, const QString &mimetype) 139 | { 140 | if (!mimetype.isEmpty()) { 141 | return; 142 | } 143 | 144 | Q_EMIT RegisteredResourceMimetype(sanitizeUri(uri), mimetype); 145 | } 146 | 147 | void Resources::RegisterResourceTitle(const QString &uri, const QString &title) 148 | { 149 | // A dirty sanity check for the title 150 | if (title.length() < 3) { 151 | return; 152 | } 153 | 154 | Q_EMIT RegisteredResourceTitle(sanitizeUri(uri), title); 155 | } 156 | 157 | #include "moc_Resources_p.cpp" 158 | 159 | #include "moc_Resources.cpp" 160 | -------------------------------------------------------------------------------- /po/ga/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Irish translation of kactivitymanagerd_fileitem_linking_plugin 2 | # Copyright (C) 2012 This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the kactivitymanagerd_fileitem_linking_plugin package. 4 | # Kevin Scannell , 2012. 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: kactivitymanagerd_fileitem_linking_plugin\n" 8 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 9 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 10 | "PO-Revision-Date: 2012-11-29 14:59-0500\n" 11 | "Last-Translator: Kevin Scannell \n" 12 | "Language-Team: Irish \n" 13 | "Language: ga\n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? " 18 | "3 : 4\n" 19 | 20 | #, kde-format 21 | msgctxt "NAME OF TRANSLATORS" 22 | msgid "Your names" 23 | msgstr "Kevin Scannell" 24 | 25 | #, kde-format 26 | msgctxt "EMAIL OF TRANSLATORS" 27 | msgid "Your emails" 28 | msgstr "kscanne@gmail.com" 29 | 30 | #: service/Activities.cpp:62 31 | #, kde-format 32 | msgid "Default" 33 | msgstr "" 34 | 35 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 36 | #, fuzzy, kde-format 37 | #| msgid "Activities" 38 | msgid "Activity Manager" 39 | msgstr "Gníomhartha" 40 | 41 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 42 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 43 | #, kde-format 44 | msgctxt "@action" 45 | msgid "Switch to activity \"%1\"" 46 | msgstr "Athraigh go gníomhaíocht \"%1\"" 47 | 48 | #: service/plugins/krunner/ActivityRunner.cpp:19 49 | #, fuzzy, kde-format 50 | #| msgid "Activities" 51 | msgctxt "KRunner keyword" 52 | msgid "activity" 53 | msgstr "Gníomhartha" 54 | 55 | #: service/plugins/krunner/ActivityRunner.cpp:67 56 | #, fuzzy, kde-format 57 | #| msgctxt "@action" 58 | #| msgid "Switch to activity \"%1\"" 59 | msgid "Switch to \"%1\"" 60 | msgstr "Athraigh go gníomhaíocht \"%1\"" 61 | 62 | #, fuzzy 63 | #~| msgid "Activities" 64 | #~ msgctxt "Header title for activity data model" 65 | #~ msgid "Activity" 66 | #~ msgstr "Gníomhartha" 67 | 68 | #, fuzzy 69 | #~| msgid "Activities" 70 | #~ msgid "Activities" 71 | #~ msgstr "Gníomhartha" 72 | 73 | #, fuzzy 74 | #~| msgid "Activity manager is not running properly." 75 | #~ msgid "The Activity Manager is not running" 76 | #~ msgstr "Tá ainghléas ar an mbainisteoir gníomhaíochta." 77 | 78 | #~ msgid "Link to the current activity" 79 | #~ msgstr "Nasc leis an ngníomhaíocht reatha" 80 | 81 | #~ msgid "Unlink from the current activity" 82 | #~ msgstr "Dínasc ón ghníomhaíocht reatha" 83 | 84 | #~ msgid "Link to:" 85 | #~ msgstr "Nasc le:" 86 | 87 | #~ msgid "Unlink from:" 88 | #~ msgstr "Dínasc ó:" 89 | 90 | #, fuzzy 91 | #~| msgid "Link to the current activity" 92 | #~ msgid "Current activity" 93 | #~ msgstr "Nasc leis an ngníomhaíocht reatha" 94 | 95 | #, fuzzy 96 | #~| msgid "Link to the current activity" 97 | #~ msgid "Delete activity" 98 | #~ msgstr "Nasc leis an ngníomhaíocht reatha" 99 | 100 | #, fuzzy 101 | #~| msgid "Link to the current activity" 102 | #~ msgid "Create a new activity" 103 | #~ msgstr "Nasc leis an ngníomhaíocht reatha" 104 | 105 | #, fuzzy 106 | #~| msgid "Activities" 107 | #~ msgid "Activity settings" 108 | #~ msgstr "Gníomhartha" 109 | 110 | #, fuzzy 111 | #~| msgid "Activities" 112 | #~ msgid "Activity information" 113 | #~ msgstr "Gníomhartha" 114 | 115 | #~ msgid "Privacy" 116 | #~ msgstr "Príobháideacht" 117 | 118 | #~ msgctxt "unlimited number of months" 119 | #~ msgid "forever" 120 | #~ msgstr "go brách" 121 | 122 | #~ msgctxt "for in 'keep history for 5 months'" 123 | #~ msgid "for " 124 | #~ msgstr "ar feadh " 125 | 126 | #, fuzzy 127 | #~| msgid "Link to the current activity" 128 | #~ msgid "Create activity..." 129 | #~ msgstr "Nasc leis an ngníomhaíocht reatha" 130 | 131 | #, fuzzy 132 | #~| msgid "Activities" 133 | #~ msgid "Activity switching" 134 | #~ msgstr "Gníomhartha" 135 | 136 | #~ msgid "Available Features" 137 | #~ msgstr "Gnéithe Le Fáil" 138 | 139 | #~ msgid "Plugins" 140 | #~ msgstr "Breiseáin" 141 | 142 | #~ msgid "Activity manager is not running properly." 143 | #~ msgstr "Tá ainghléas ar an mbainisteoir gníomhaíochta." 144 | 145 | #, fuzzy 146 | #~| msgid "Activities" 147 | #~ msgid "Activities..." 148 | #~ msgstr "Gníomhartha" 149 | 150 | #~ msgid "(c) 2012 Ivan Cukic" 151 | #~ msgstr "© 2012 Ivan Cukic" 152 | -------------------------------------------------------------------------------- /src/service/plugins/sqlite/StatsPlugin.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2011, 2012, 2013, 2014 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-or-later 5 | */ 6 | 7 | #pragma once 8 | 9 | // Qt 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | // KDE 16 | #include 17 | 18 | // STL 19 | #include 20 | 21 | // Local 22 | #include 23 | 24 | class ResourceLinking; 25 | 26 | /** 27 | * Communication with the outer world. 28 | * 29 | * - Handles configuration 30 | * - Filters the events based on the user's configuration. 31 | */ 32 | class StatsPlugin : public Plugin 33 | { 34 | Q_OBJECT 35 | // Q_CLASSINFO("D-Bus Interface", "org.kde.ActivityManager.Resources.Scoring") 36 | 37 | public: 38 | explicit StatsPlugin(QObject *parent); 39 | 40 | static StatsPlugin *self(); 41 | 42 | bool init(QHash &modules) override; 43 | 44 | QString currentActivity() const; 45 | QStringList listActivities() const; 46 | 47 | inline QObject *activitiesInterface() const 48 | { 49 | return m_activities; 50 | } 51 | 52 | bool isFeatureOperational(const QStringList &feature) const override; 53 | QStringList listFeatures(const QStringList &feature) const override; 54 | 55 | QDBusVariant featureValue(const QStringList &property) const override; 56 | void setFeatureValue(const QStringList &property, const QDBusVariant &value) override; 57 | 58 | // 59 | // D-BUS Interface methods 60 | // 61 | 62 | public Q_SLOTS: 63 | void DeleteRecentStats(const QString &activity, int count, const QString &what); 64 | 65 | void DeleteEarlierStats(const QString &activity, int months); 66 | 67 | void DeleteStatsForResource(const QString &activity, const QString &client, const QString &resource); 68 | 69 | Q_SIGNALS: 70 | void ResourceScoreUpdated(const QString &activity, const QString &client, const QString &resource, double score, uint lastUpdate, uint firstUpdate); 71 | void ResourceScoreDeleted(const QString &activity, const QString &client, const QString &resource); 72 | 73 | void RecentStatsDeleted(const QString &activity, int count, const QString &what); 74 | 75 | void EarlierStatsDeleted(const QString &activity, int months); 76 | 77 | // 78 | // End D-BUS Interface methods 79 | // 80 | 81 | private Q_SLOTS: 82 | void addEvents(const EventList &events); 83 | void loadConfiguration(); 84 | 85 | void openResourceEvent(const QString &usedActivity, 86 | const QString &initiatingAgent, 87 | const QString &targettedResource, 88 | const QDateTime &start, 89 | const QDateTime &end = QDateTime()); 90 | 91 | void closeResourceEvent(const QString &usedActivity, const QString &initiatingAgent, const QString &targettedResource, const QDateTime &end); 92 | 93 | void saveResourceTitle(const QString &uri, const QString &title, bool autoTitle = false); 94 | void saveResourceMimetype(const QString &uri, const QString &mimetype, bool autoMimetype = false); 95 | bool insertResourceInfo(const QString &uri); 96 | void detectResourceInfo(const QString &uri); 97 | 98 | void deleteOldEvents(); 99 | 100 | private: 101 | inline bool acceptedEvent(const Event &event); 102 | inline Event validateEvent(Event event); 103 | 104 | enum WhatToRemember { 105 | AllApplications = 0, 106 | SpecificApplications = 1, 107 | NoApplications = 2, 108 | }; 109 | 110 | QObject *m_activities; 111 | QObject *m_resources; 112 | 113 | QSet m_apps; 114 | QList m_urlFilters; 115 | QStringList m_otrActivities; 116 | 117 | std::unique_ptr openResourceEventQuery; 118 | std::unique_ptr closeResourceEventQuery; 119 | 120 | std::unique_ptr insertResourceInfoQuery; 121 | std::unique_ptr getResourceInfoQuery; 122 | std::unique_ptr saveResourceTitleQuery; 123 | std::unique_ptr saveResourceMimetypeQuery; 124 | 125 | QTimer m_deleteOldEventsTimer; 126 | 127 | bool m_blockedByDefault : 1; 128 | bool m_blockAll : 1; 129 | WhatToRemember m_whatToRemember : 2; 130 | 131 | ResourceLinking *m_resourceLinking; 132 | 133 | static StatsPlugin *s_instance; 134 | 135 | KConfigWatcher::Ptr m_configWatcher; 136 | }; 137 | -------------------------------------------------------------------------------- /src/common/database/Database.h: -------------------------------------------------------------------------------- 1 | /* 2 | * SPDX-FileCopyrightText: 2014 Ivan Cukic 3 | * 4 | * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 | */ 6 | 7 | #pragma once 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | namespace Common 16 | { 17 | class Database : public QObject 18 | { 19 | Q_OBJECT 20 | 21 | public: 22 | typedef std::shared_ptr Ptr; 23 | 24 | enum Source { 25 | ResourcesDatabase, 26 | }; 27 | 28 | enum OpenMode { 29 | ReadWrite, 30 | ReadOnly, 31 | }; 32 | 33 | static Ptr instance(Source source, OpenMode openMode); 34 | 35 | QSqlQuery execQueries(const QStringList &queries) const; 36 | QSqlQuery execQuery(const QString &query, bool ignoreErrors = false) const; 37 | QSqlQuery createQuery() const; 38 | 39 | void setPragma(const QString &pragma); 40 | QVariant pragma(const QString &pragma) const; 41 | QVariant value(const QString &query) const; 42 | 43 | // For debugging purposes only 44 | QString lastQuery() const; 45 | 46 | ~Database() override; 47 | Database(); 48 | 49 | friend class Locker; 50 | class Locker 51 | { 52 | public: 53 | explicit Locker(Database &database); 54 | ~Locker(); 55 | 56 | private: 57 | QSqlDatabase &m_database; 58 | }; 59 | 60 | void reportError(const QSqlError &error); 61 | 62 | #define DATABASE_TRANSACTION(A) \ 63 | /* enable this for debugging only: qCDebug(KAMD_LOG_RESOURCES) << "Location:" << __FILE__ << __LINE__; */ \ 64 | Common::Database::Locker lock(A) 65 | 66 | Q_SIGNALS: 67 | void error(const QSqlError &error) const; 68 | 69 | private: 70 | D_PTR; 71 | }; 72 | 73 | template 74 | QString parseStarPattern(const QString &pattern, const QString &joker, EscapeFunction escape) 75 | { 76 | const auto begin = pattern.constBegin(); 77 | const auto end = pattern.constEnd(); 78 | 79 | auto currentStart = pattern.constBegin(); 80 | auto currentPosition = pattern.constBegin(); 81 | 82 | bool isEscaped = false; 83 | 84 | // This should be available in the QString class... 85 | auto stringFromIterators = [&](const QString::const_iterator ¤tStart, const QString::const_iterator ¤tPosition) { 86 | return pattern.mid(std::distance(begin, currentStart), std::distance(currentStart, currentPosition)); 87 | }; 88 | 89 | // Escaping % and _ for sql like 90 | // auto escape = [] (QString str) { 91 | // return str.replace("%", "\\%").replace("_", "\\_"); 92 | // }; 93 | 94 | QString resultPattern; 95 | resultPattern.reserve(pattern.size() * 1.5); 96 | 97 | for (; currentPosition != end; ++currentPosition) { 98 | if (isEscaped) { 99 | // Just skip the current character 100 | isEscaped = false; 101 | 102 | } else if (*currentPosition == QLatin1Char('\\')) { 103 | // Skip two characters 104 | isEscaped = true; 105 | 106 | } else if (*currentPosition == QLatin1Char('*')) { 107 | // Replacing the star with the sql like joker - % 108 | resultPattern.append(escape(stringFromIterators(currentStart, currentPosition)) + joker); 109 | currentStart = currentPosition + 1; 110 | 111 | } else { 112 | // This one is boring, nothing to do 113 | } 114 | } 115 | 116 | if (currentStart != currentPosition) { 117 | resultPattern.append(escape(stringFromIterators(currentStart, currentPosition))); 118 | } 119 | 120 | return resultPattern; 121 | } 122 | 123 | inline QString escapeSqliteLikePattern(QString pattern) 124 | { 125 | return pattern.replace(QLatin1String("%"), QLatin1String("\\%")).replace(QLatin1String("_"), QLatin1String("\\_")); 126 | } 127 | 128 | inline QString starPatternToLike(const QString &pattern) 129 | { 130 | return parseStarPattern(pattern, QStringLiteral("%"), escapeSqliteLikePattern); 131 | } 132 | 133 | inline QRegularExpression starPatternToRegex(const QString &pattern) 134 | { 135 | return QRegularExpression(parseStarPattern(pattern, QStringLiteral(".*"), [](QString pattern) { return QRegularExpression::escape(QRegularExpression::anchoredPattern(pattern)); })); 136 | } 137 | 138 | } // namespace Common 139 | -------------------------------------------------------------------------------- /po/ar/kactivities6.po: -------------------------------------------------------------------------------- 1 | # Language translations for PACKAGE package. 2 | # Copyright (C) 2013 This_file_is_part_of_KDE 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # Safa Alfulaij , 2013. 5 | # SPDX-FileCopyrightText: 2021, 2024 Zayed Al-Saidi 6 | # Automatically generated, 2013. 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: \n" 10 | "Report-Msgid-Bugs-To: https://bugs.kde.org\n" 11 | "POT-Creation-Date: 2025-11-17 11:53+0000\n" 12 | "PO-Revision-Date: 2024-08-15 12:09+0400\n" 13 | "Last-Translator: Zayed Al-Saidi \n" 14 | "Language-Team: ar\n" 15 | "Language: ar\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " 20 | "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" 21 | "X-Generator: Lokalize 23.08.5\n" 22 | 23 | #, kde-format 24 | msgctxt "NAME OF TRANSLATORS" 25 | msgid "Your names" 26 | msgstr "زايد السعيدي" 27 | 28 | #, kde-format 29 | msgctxt "EMAIL OF TRANSLATORS" 30 | msgid "Your emails" 31 | msgstr "zayed.alsaidi@gmail.com" 32 | 33 | #: service/Activities.cpp:62 34 | #, kde-format 35 | msgid "Default" 36 | msgstr "المبدئيّ" 37 | 38 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:28 39 | #, kde-format 40 | msgid "Activity Manager" 41 | msgstr "مدير الأنشطة" 42 | 43 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:69 44 | #: service/plugins/globalshortcuts/GlobalShortcutsPlugin.cpp:105 45 | #, kde-format 46 | msgctxt "@action" 47 | msgid "Switch to activity \"%1\"" 48 | msgstr "بدِّل إلى النشاط \"%1\"" 49 | 50 | #: service/plugins/krunner/ActivityRunner.cpp:19 51 | #, kde-format 52 | msgctxt "KRunner keyword" 53 | msgid "activity" 54 | msgstr "نشاط" 55 | 56 | #: service/plugins/krunner/ActivityRunner.cpp:67 57 | #, kde-format 58 | msgid "Switch to \"%1\"" 59 | msgstr "بدِّل إلى النشاط \"%1\"" 60 | 61 | #, fuzzy 62 | #~ msgctxt "Header title for activity data model" 63 | #~ msgid "Activity" 64 | #~ msgstr "النشاط" 65 | 66 | #~ msgid "Activities" 67 | #~ msgstr "الأنشطة" 68 | 69 | #, fuzzy 70 | #~ msgid "The Activity Manager is not running" 71 | #~ msgstr "مدير الأنشطة لا يعمل بشكل صحيح." 72 | 73 | #, fuzzy 74 | #~ msgid "Link to the current activity" 75 | #~ msgstr "أوصِل إلى النشاط الحالي" 76 | 77 | #, fuzzy 78 | #~ msgid "Unlink from the current activity" 79 | #~ msgstr "أزل الوصل من النشاط الحالي" 80 | 81 | #, fuzzy 82 | #~ msgid "Link to:" 83 | #~ msgstr "أوصِل إلى:" 84 | 85 | #, fuzzy 86 | #~ msgid "Unlink from:" 87 | #~ msgstr "أزل الوصل من:" 88 | 89 | #, fuzzy 90 | #~ msgid "Current activity" 91 | #~ msgstr "النشاط الحاليّ" 92 | 93 | #, fuzzy 94 | #~ msgid "Delete activity" 95 | #~ msgstr "النشاط الحاليّ" 96 | 97 | #, fuzzy 98 | #~ msgid "Create a new activity" 99 | #~ msgstr "النشاط الحاليّ" 100 | 101 | #, fuzzy 102 | #~ msgid "Activity settings" 103 | #~ msgstr "النشاط" 104 | 105 | #, fuzzy 106 | #~ msgid "Activity information" 107 | #~ msgstr "النشاط" 108 | 109 | #~ msgid "Privacy" 110 | #~ msgstr "الخصوصية" 111 | 112 | #~ msgid "Forget the last hour" 113 | #~ msgstr "أنسَ الساعة الأخيرة" 114 | 115 | #~ msgid "Forget the last two hours" 116 | #~ msgstr "أنسَ الساعتان الأخيرتان" 117 | 118 | #~ msgid "Forget a day" 119 | #~ msgstr "أنسَ يوم" 120 | 121 | #~ msgid "Forget everything" 122 | #~ msgstr "أنسَ كل شيء" 123 | 124 | #, fuzzy 125 | #~ msgid "Create activity..." 126 | #~ msgstr "النشاط الحاليّ" 127 | 128 | #, fuzzy 129 | #~ msgid "Activity switching" 130 | #~ msgstr "النشاط" 131 | 132 | #~ msgid "Remember opened documents:" 133 | #~ msgstr "المستندات المفتوحة لتذكرها:" 134 | 135 | #, fuzzy 136 | #~| msgid "For all applications" 137 | #~ msgid "For a&ll applications" 138 | #~ msgstr "لكل التطبيقات" 139 | 140 | #, fuzzy 141 | #~| msgid "Do not remember" 142 | #~ msgid "&Do not remember" 143 | #~ msgstr "لا تتذكر" 144 | 145 | #, fuzzy 146 | #~| msgid "Only for specific applications" 147 | #~ msgid "O&nly for specific applications" 148 | #~ msgstr "فقط لتطبيقات معيّنة" 149 | 150 | #~ msgid "Keep history" 151 | #~ msgstr "أبقِ التأريخ" 152 | 153 | #~ msgid "Clear recent history" 154 | #~ msgstr "أمح التأريخ الأخير" 155 | 156 | #~ msgid "Available Features" 157 | #~ msgstr "المميزات الموجودة" 158 | 159 | #~ msgid "Plugins" 160 | #~ msgstr "الملحقات" 161 | 162 | #~ msgid "Enable activities management" 163 | #~ msgstr "مكّن إدارة الأنشطة" 164 | 165 | #, fuzzy 166 | #~ msgid "Activity manager is not running properly." 167 | #~ msgstr "مدير الأنشطة لا يعمل بشكل صحيح." 168 | 169 | #, fuzzy 170 | #~ msgid "Activities..." 171 | #~ msgstr "الأنشطة..." 172 | -------------------------------------------------------------------------------- /src/service/plugins/krunner/plasma-runnners-activities.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Activities 3 | Name[ar]=الأنشطة 4 | Name[ast]=Actividaes 5 | Name[az]=İş otaqları 6 | Name[bg]=Дейности 7 | Name[bs]=Aktivnosti 8 | Name[ca]=Activitats 9 | Name[ca@valencia]=Activitats 10 | Name[cs]=Aktivity 11 | Name[da]=Aktiviteter 12 | Name[de]=Aktivitäten 13 | Name[el]=Δραστηριότητες 14 | Name[en_GB]=Activities 15 | Name[eo]=Aktivecoj 16 | Name[es]=Actividades 17 | Name[et]=Tegevused 18 | Name[eu]=Jarduerak 19 | Name[fi]=Aktiviteetit 20 | Name[fr]=Activités 21 | Name[ga]=Gníomhaíochtaí 22 | Name[gd]=Gnìomhachdan 23 | Name[gl]=Actividades 24 | Name[he]=פעילויות 25 | Name[hi]=गतिविधियाँ 26 | Name[hu]=Aktivitások 27 | Name[ia]=Activitates 28 | Name[is]=Athafnir 29 | Name[it]=Attività 30 | Name[ka]=ქმედებები 31 | Name[kk]=Белсенділіктер 32 | Name[km]=​សកម្មភាព 33 | Name[ko]=활동 34 | Name[lt]=Veiklos 35 | Name[lv]=Aktivitātes 36 | Name[mr]=कार्यपध्दती 37 | Name[nds]=Aktiviteten 38 | Name[nl]=Activiteiten 39 | Name[nn]=Aktivitetar 40 | Name[pl]=Aktywności 41 | Name[pt]=Actividades 42 | Name[pt_BR]=Atividades 43 | Name[ro]=Activități 44 | Name[ru]=Комнаты 45 | Name[sa]=क्रियाकलापाः 46 | Name[sk]=Aktivity 47 | Name[sl]=Dejavnosti 48 | Name[sv]=Aktiviteter 49 | Name[ta]=செயல்பாடுகள் 50 | Name[tg]=Фаъолият 51 | Name[tr]=Etkinlikler 52 | Name[ug]=پائالىيەتلەر 53 | Name[uk]=Простори дій 54 | Name[vi]=Hoạt động 55 | Name[zh_CN]=活动 56 | Name[zh_TW]=活動 57 | Comment=List and switch between desktop activities 58 | Comment[ar]=يسرد و يبدل بين أنشطة سطح المكتب 59 | Comment[az]=İş masasına aid İş otaqlarının siyahısı və onlar arasında keçid 60 | Comment[bg]=Показване и превключване между дейностите на работните плотове 61 | Comment[ca]=Llista i commuta entre les activitats d'escriptori 62 | Comment[ca@valencia]=Llista i canvia entre les activitats d'escriptori 63 | Comment[cs]=Zobrazení a přepínač aktivit pracovní plochy 64 | Comment[da]=Vis og skift mellem skrivebordsaktiviteter 65 | Comment[de]=Aktivitäten anzeigen und zwischen ihnen umschalten 66 | Comment[el]=Λίστα και εναλλαγή ανάμεσα σε δραστηριότητες της επιφάνειας εργασίας 67 | Comment[en_GB]=List and switch between desktop activities 68 | Comment[eo]=Listigi kaj ŝanĝi inter labortablaj aktivecoj 69 | Comment[es]=Listar y cambiar entre actividades del escritorio 70 | Comment[eu]=Mahaigaineko jarduerak zerrendatu eta haien artean aldatu 71 | Comment[fi]=Luettele aktiviteetit ja vaihda niiden välillä 72 | Comment[fr]=Lister et naviguer parmi les activités de bureau 73 | Comment[gl]=Lista e cambia entre actividades o escritorio 74 | Comment[he]=הצגה ומעבר בין פעילויות שולחן עבודה 75 | Comment[hi]=डेस्कटॉप गतिविधियों की सूची बनाएं और उन्हें बदलें 76 | Comment[hu]=Asztali aktivitások listázása és váltás közöttük 77 | Comment[ia]=Lista e commuta inter activitates de scriptorio 78 | Comment[is]=Birta skjáborðsathafnir og skipta á milli 79 | Comment[it]=Elenca e passa tra le attività del desktop 80 | Comment[ka]=სამუშაო მაგიდების ქმედებების სია და გადართვა 81 | Comment[ko]=데스크톱 활동을 보거나 바꾸기 82 | Comment[lt]=Išvardyti ir perjungti darbalaukio veiklas 83 | Comment[lv]=Parādīt un pārslēgties starp darbvirsmas aktivitātēm 84 | Comment[nl]=Bureaubladactiviteiten laten zien en er tussen schakelen 85 | Comment[nn]=Vis og byt mellom skrivebordsaktivitetar 86 | Comment[pl]=Wypisuje aktywności pulpitu oraz przełącza pomiędzy nimi 87 | Comment[pt]=Listar e mudar de actividades no ambiente de trabalho 88 | Comment[pt_BR]=Lista e alterna entre as atividades da área de trabalho 89 | Comment[ro]=Enumeră și schimbă între activitățile biroului 90 | Comment[ru]=Перечисление и переключение комнат 91 | Comment[sa]=कार्यमुख क्रियाकलापानाम् मध्ये सूचीं कृत्वा गच्छन्तु 92 | Comment[sk]=Vypísať a prepínať medzi aktivitami pracovnej plochy 93 | Comment[sl]=Prikaži in preklopi med namiznimi dejavnostmi 94 | Comment[sv]=Lista och byt mellan skrivbordsaktiviteter 95 | Comment[ta]=செயல்பாடுகளை பட்டியலிட்டு அவற்றுக்கிடையே தாவ உதவும் 96 | Comment[tr]=Masaüstü etkinliklerini listele ve aralarında geçiş yap 97 | Comment[uk]=Перегляд і перемикання між просторами дій стільниці 98 | Comment[vi]=Liệt kê và chuyển giữa các Hoạt động bàn làm việc 99 | Comment[zh_CN]=显示和切换桌面活动 100 | Comment[zh_TW]=列出並在桌面活動間切換 101 | X-KDE-ServiceTypes=Plasma/Runner 102 | Type=Service 103 | Icon=preferences-desktop-activities 104 | X-KDE-PluginInfo-Author=Plasma Team 105 | X-KDE-PluginInfo-Email=plasma-devel@kde.org 106 | X-KDE-PluginInfo-Name=org.kde.activities2 107 | X-KDE-PluginInfo-Version=1.0 108 | X-KDE-PluginInfo-License=LGPL 109 | X-KDE-PluginInfo-EnabledByDefault=true 110 | X-Plasma-API=DBus2 111 | X-Plasma-DBusRunner-Service=org.kde.runners.activities 112 | X-Plasma-DBusRunner-Path=/runner 113 | X-Plasma-Request-Actions-Once=true 114 | X-Plasma-Runner-Lifecycle-Methods=true 115 | --------------------------------------------------------------------------------