diff --git a/templates/CMakeLists.txt b/templates/CMakeLists.txt --- a/templates/CMakeLists.txt +++ b/templates/CMakeLists.txt @@ -2,6 +2,7 @@ qml-plasmoid qml-plasmoid-with-qml-extension cpp-plasmoid + kcm-qml plasma-wallpaper plasma-wallpaper-with-qml-extension ) diff --git a/templates/kcm-qml/CMakeLists.txt b/templates/kcm-qml/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/templates/kcm-qml/CMakeLists.txt @@ -0,0 +1,23 @@ +add_definitions(-DTRANSLATION_DOMAIN=\"kcm5_%{APPNAMELC}\") + +set(SRCS_%{APPNAMELC} + kcm.cpp +) + +add_library(kcm_%{APPNAMELC} MODULE ${SRCS_%{APPNAMELC}}) + +target_link_libraries(kcm_%{APPNAMELC} + KF5::CoreAddons + KF5::KCMUtils + KF5::I18n + KF5::QuickAddons + Qt5::DBus + Qt5::Widgets +) + +kcoreaddons_desktop_to_json(kcm_%{APPNAMELC} "kcm_%{APPNAMELC}.desktop") + +install(FILES kcm_%{APPNAMELC}.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) +install(TARGETS kcm_%{APPNAMELC} DESTINATION ${KDE_INSTALL_PLUGINDIR}/kcms) + +kpackage_install_package(package kcm_%{APPNAMELC} kcms) diff --git a/templates/kcm-qml/Messages.sh b/templates/kcm-qml/Messages.sh new file mode 100644 --- /dev/null +++ b/templates/kcm-qml/Messages.sh @@ -0,0 +1,4 @@ +#! /usr/bin/env bash +$EXTRACTRC `find . -name "*.ui"` >> rc.cpp || exit 11 +$XGETTEXT `find . -name "*.cpp"` -o $podir/kcm5_%{APPNAMELC}.pot +rm -f rc.cpp diff --git a/templates/kcm-qml/README b/templates/kcm-qml/README new file mode 100644 --- /dev/null +++ b/templates/kcm-qml/README @@ -0,0 +1,48 @@ +Plasma KCM Template +---------------------- + +Create the project folder inside plasma-desktop/kcms and add the name of the folder in the parent CMake + +-- Namespace adaption -- + +Each Plasma plugin has a unique identifier, which is also used to find related +resources (like the translation catalogs). +To avoid naming collisions, Plasma plugins use a reverse domain name notation +for that identifier: + +* org.kde.plasma.* - plugins coming from Plasma modules +* org.kde.* - plugins coming from other software from KDE +* $(my.domain).* - plugins of your 3rd-party + +The generated code uses the "org.kde.plasma" namespace for the plugin identifier. +As this namespace is reserved for use by plugins part of Plasma modules, you will +need to adapt this namespace if you are writing a plugin which is not intended to +end up in the Plasma modules. + + +-- Build instructions -- + +cd /where/your/applet/is/generated +mkdir build +cd build +cmake -DCMAKE_INSTALL_PREFIX=MYPREFIX .. +make +make install + +(MYPREFIX is where you install your Plasma setup, replace it accordingly) + +Restart plasma to load the applet +(in a terminal type: +kquitapp plasmashell +and then +plasmashell) + +or view it with +plasmoidviewer -a YourAppletName + +-- Tutorials and resources -- +The explanation of the template +https://techbase.kde.org/Development/Tutorials/Plasma5/QML2/GettingStarted + +Plasma QML API explained +https://techbase.kde.org/Development/Tutorials/Plasma2/QML2/API diff --git a/templates/kcm-qml/kcm-qml.kdevtemplate b/templates/kcm-qml/kcm-qml.kdevtemplate new file mode 100644 --- /dev/null +++ b/templates/kcm-qml/kcm-qml.kdevtemplate @@ -0,0 +1,7 @@ +# KDE Config File +[General] +Name=KCM Qml Interface + +Comment=Plasma KCM Configuration Template +Category=Plasma/KCM +Icon=qml-plasmoid.png diff --git a/templates/kcm-qml/kcm.h b/templates/kcm-qml/kcm.h new file mode 100644 --- /dev/null +++ b/templates/kcm-qml/kcm.h @@ -0,0 +1,40 @@ +/* This file is part of the KDE Project + * Copyright (C) %{CURRENT_YEAR} by %{AUTHOR} <%{EMAIL}> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef %{APPNAMEUC}_H +#define %{APPNAMEUC}_H + +#include + +class %{APPNAME} : public KQuickAddons::ConfigModule +{ + Q_OBJECT + +public: + %{APPNAME}(QObject* parent, const QVariantList& args); + virtual ~%{APPNAME}() override; + + +public Q_SLOTS: + void load() override; + void save() override; + void defaults() override; + +}; + +#endif diff --git a/templates/kcm-qml/kcm.cpp b/templates/kcm-qml/kcm.cpp new file mode 100644 --- /dev/null +++ b/templates/kcm-qml/kcm.cpp @@ -0,0 +1,59 @@ +/* This file is part of the KDE Project + Copyright (C) %{CURRENT_YEAR} by %{AUTHOR} <%{EMAIL}> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License version 2 as published by the Free Software Foundation. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "kcm.h" + +#include +#include +#include +#include + +K_PLUGIN_FACTORY_WITH_JSON(KCM%{APPNAME}Factory, "kcm_%{APPNAMELC}.json", registerPlugin<%{APPNAME}>();) + +%{APPNAME}::%{APPNAME}(QObject* parent, const QVariantList& args) + : KQuickAddons::ConfigModule(parent, args) +{ + + KAboutData* about = new KAboutData( + QStringLiteral("kcm_%{APPNAMELC}"), i18n("%{APPNAME} Configuration Module"), + QStringLiteral("0.1"), QString(), KAboutLicense::GPL, + i18n("Copyright %{CURRENT_YEAR} %{AUTHOR}")); + + about->addAuthor(i18n("%{AUTHOR}"), QString(), QStringLiteral("%{EMAIL}")); + + setAboutData(about); + setButtons(Help | Apply | Default); +} + +%{APPNAME}::~%{APPNAME}() +{ +} + +void %{APPNAME}::load() +{ +} + +void %{APPNAME}::save() +{ +} + +void %{APPNAME}::defaults() +{ +} + +#include "kcm.moc" diff --git a/templates/kcm-qml/kcm_%{APPNAMELC}.desktop b/templates/kcm-qml/kcm_%{APPNAMELC}.desktop new file mode 100644 --- /dev/null +++ b/templates/kcm-qml/kcm_%{APPNAMELC}.desktop @@ -0,0 +1,15 @@ +[Desktop Entry] +Exec=kcmshell5 kcm_%{APPNAMELC} +Icon=plasma +Type=Service + +X-KDE-ServiceTypes=KCModule +X-KDE-Library=kcm_%{APPNAMELC} +X-KDE-ParentApp=kcontrol + +X-KDE-System-Settings-Parent-Category=Specify Your Category Here +X-KDE-Weight=10 + +Name=%{APPNAME} +Comment=What your kcm is all about? +X-KDE-Keywords=Colors, Mouse, Monitor diff --git a/templates/kcm-qml/package/contents/ui/main.qml b/templates/kcm-qml/package/contents/ui/main.qml new file mode 100644 --- /dev/null +++ b/templates/kcm-qml/package/contents/ui/main.qml @@ -0,0 +1,40 @@ +/*************************************************************************** + * Copyright (C) %{CURRENT_YEAR} by %{AUTHOR} <%{EMAIL}> * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * + ***************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.11 as QQC2 +import QtQuick.Dialogs 1.2 as QtDialogs +import org.kde.kirigami 2.4 as Kirigami +import org.kde.kcm 1.1 as KCM +import Qt.labs.platform 1.1 + +KCM.SimpleKCM { + id: root + + KCM.ConfigModule.quickHelp: i18n("Quick help for the KCM that does nothing..") + ColumnLayout { + anchors.fill: parent + anchors.margins: Kirigami.Units.largeSpacing + + QQC2.Label { + text: i18n("Exemple KCM that does nothing") + } + } +} diff --git a/templates/kcm-qml/package/metadata.desktop b/templates/kcm-qml/package/metadata.desktop new file mode 100644 --- /dev/null +++ b/templates/kcm-qml/package/metadata.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Name=%{APPNAME} +Comment=what your app does in a few words +Icon=Plasma +Type=Service +X-KDE-PluginInfo-Author=%{AUTHOR} +X-KDE-PluginInfo-Email=%{EMAIL} +X-KDE-PluginInfo-License=GPL +X-KDE-PluginInfo-Name=kcm_%{APPNAMELC} +X-KDE-PluginInfo-Version=%{VERSION} +X-KDE-PluginInfo-Website= +X-KDE-ServiceTypes=Plasma/Generic +X-Plasma-API=declarativeappletscript + +X-Plasma-MainScript=ui/main.qml + diff --git a/templates/kcm-qml/qml-plasmoid.png b/templates/kcm-qml/qml-plasmoid.png new file mode 100644 index 0000000000000000000000000000000000000000..26748f6cf7d22ef003badbca80cb69a61e2d46d2 GIT binary patch literal 35613 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