Hello community, here is the log from the commit of package plasma-framework for openSUSE:Factory checked in at 2017-11-16 14:42:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/plasma-framework (Old) and /work/SRC/openSUSE:Factory/.plasma-framework.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plasma-framework" Thu Nov 16 14:42:03 2017 rev:53 rq:541697 version:5.40.0 Changes: -------- --- /work/SRC/openSUSE:Factory/plasma-framework/plasma-framework.changes 2017-10-27 13:59:36.053123338 +0200 +++ /work/SRC/openSUSE:Factory/.plasma-framework.new/plasma-framework.changes 2017-11-16 14:42:15.147975491 +0100 @@ -1,0 +2,13 @@ +Mon Nov 13 07:01:17 CET 2017 - lbeltr...@kde.org + +- Update to 5.40.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/kde-frameworks-5.40.0.php +- Changes since 5.39.0: + * manually draw the circle arc + * [PlasmaComponents Menu] Add ungrabMouseHack + * [FrameSvg] Optimize updateSizes + * Don't position a Dialog if it's of type OSD + +------------------------------------------------------------------- Old: ---- plasma-framework-5.39.0.tar.xz New: ---- plasma-framework-5.40.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ plasma-framework.spec ++++++ --- /var/tmp/diff_new_pack.osPwVF/_old 2017-11-16 14:42:15.803951684 +0100 +++ /var/tmp/diff_new_pack.osPwVF/_new 2017-11-16 14:42:15.803951684 +0100 @@ -17,13 +17,13 @@ %bcond_without lang -%define _tar_path 5.39 +%define _tar_path 5.40 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) %{!?_kf5_bugfix_version: %global _kf5_bugfix_version %(echo %{_kf5_version} | awk -F. '{print $1"."$2}')} Name: plasma-framework -Version: 5.39.0 +Version: 5.40.0 Release: 0 %define kf5_version %{version} Summary: Plasma library and runtime components based upon KF5 and Qt5 ++++++ plasma-framework-5.39.0.tar.xz -> plasma-framework-5.40.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/CMakeLists.txt new/plasma-framework-5.40.0/CMakeLists.txt --- old/plasma-framework-5.39.0/CMakeLists.txt 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/CMakeLists.txt 2017-11-05 09:42:42.000000000 +0100 @@ -1,12 +1,12 @@ cmake_minimum_required(VERSION 3.0) -set(KF5_VERSION "5.39.0") # handled by release scripts -set(KF5_DEP_VERSION "5.39.0") # handled by release scripts +set(KF5_VERSION "5.40.0") # handled by release scripts +set(KF5_DEP_VERSION "5.40.0") # handled by release scripts project(Plasma VERSION ${KF5_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 5.39.0 NO_MODULE) +find_package(ECM 5.40.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/examples/dataengines/simpleEngine/plasma-dataengine-example-simpleEngine.desktop new/plasma-framework-5.40.0/examples/dataengines/simpleEngine/plasma-dataengine-example-simpleEngine.desktop --- old/plasma-framework-5.39.0/examples/dataengines/simpleEngine/plasma-dataengine-example-simpleEngine.desktop 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/examples/dataengines/simpleEngine/plasma-dataengine-example-simpleEngine.desktop 2017-11-05 09:42:42.000000000 +0100 @@ -53,7 +53,7 @@ Comment[fi]=Erittäin yksinkertainen DataEngine-toteutus Comment[fr]=Une implémentation très basique de DataEngine Comment[gd]=Ball-eisimpleir glè bhunasach de DataEngine -Comment[gl]=Unha implementación moi básica de DataEngine +Comment[gl]=Unha realización moi básica de DataEngine Comment[hu]=Egy nagyon egyszerű adatmotor megvalósítás Comment[ia]=Un implementation multo basic de DataEngine (Motor de datos) Comment[it]=Un'implementazione base di un motore di dati diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/po/gl/libplasma5.po new/plasma-framework-5.40.0/po/gl/libplasma5.po --- old/plasma-framework-5.39.0/po/gl/libplasma5.po 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/po/gl/libplasma5.po 2017-11-05 09:42:42.000000000 +0100 @@ -32,7 +32,7 @@ #, kde-format msgctxt "Agenda listview section title" msgid "Events" -msgstr "Acontecementos" +msgstr "Eventos" #: declarativeimports/calendar/eventdatadecorator.cpp:68 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/po/zh_CN/libplasma5.po new/plasma-framework-5.40.0/po/zh_CN/libplasma5.po --- old/plasma-framework-5.39.0/po/zh_CN/libplasma5.po 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/po/zh_CN/libplasma5.po 2017-11-05 09:42:42.000000000 +0100 @@ -9,7 +9,7 @@ "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2017-08-26 03:16+0200\n" -"PO-Revision-Date: 2017-09-30 17:44-0400\n" +"PO-Revision-Date: 2017-10-19 10:40-0400\n" "Last-Translator: guoyunhebrave <guoyunhebr...@gmail.com>\n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/src/declarativeimports/plasmacomponents/qmenu.cpp new/plasma-framework-5.40.0/src/declarativeimports/plasmacomponents/qmenu.cpp --- old/plasma-framework-5.39.0/src/declarativeimports/plasmacomponents/qmenu.cpp 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/src/declarativeimports/plasmacomponents/qmenu.cpp 2017-11-05 09:42:42.000000000 +0100 @@ -24,6 +24,8 @@ #include <QQuickWindow> #include <QQuickItem> #include <QScreen> +#include <QTimer> +#include <QVersionNumber> #include <KAcceleratorManager> @@ -424,18 +426,29 @@ void QMenuProxy::openInternal(QPoint pos) { - QQuickItem *parentItem = nullptr; - - if (m_visualParent) { - parentItem = qobject_cast<QQuickItem *>(m_visualParent.data()); - } else { - parentItem = qobject_cast<QQuickItem *>(parent()); - } + QQuickItem *parentItem = this->parentItem(); if (parentItem && parentItem->window()) { //create the QWindow m_menu->winId(); m_menu->windowHandle()->setTransientParent(parentItem->window()); + + // Workaround for QTBUG-59044 + auto ungrabMouseHack = [this]() { + QQuickItem *parentItem = this->parentItem(); + if (parentItem && parentItem->window() && parentItem->window()->mouseGrabberItem()) { + parentItem->window()->mouseGrabberItem()->ungrabMouse(); + } + }; + + //pre 5.8.0 QQuickWindow code is "item->grabMouse(); sendEvent(item, mouseEvent)" + //post 5.8.0 QQuickWindow code is sendEvent(item, mouseEvent); item->grabMouse() + if (QVersionNumber::fromString(qVersion()) > QVersionNumber(5, 8, 0)) { + QTimer::singleShot(0, this, ungrabMouseHack); + } else { + ungrabMouseHack(); + } + //end workaround } m_menu->popup(pos); @@ -443,6 +456,15 @@ emit statusChanged(); } +QQuickItem *QMenuProxy::parentItem() const +{ + if (m_visualParent) { + return qobject_cast<QQuickItem *>(m_visualParent.data()); + } + + return qobject_cast<QQuickItem *>(parent()); +} + void QMenuProxy::close() { m_menu->hide(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/src/declarativeimports/plasmacomponents/qmenu.h new/plasma-framework-5.40.0/src/declarativeimports/plasmacomponents/qmenu.h --- old/plasma-framework-5.39.0/src/declarativeimports/plasmacomponents/qmenu.h 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/src/declarativeimports/plasmacomponents/qmenu.h 2017-11-05 09:42:42.000000000 +0100 @@ -184,6 +184,7 @@ private: void rebuildMenu(); void openInternal(QPoint pos); + QQuickItem *parentItem() const; QList<QMenuItem *> m_items; QMenu *m_menu; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/src/declarativeimports/plasmacomponents3/Dial.qml new/plasma-framework-5.40.0/src/declarativeimports/plasmacomponents3/Dial.qml --- old/plasma-framework-5.39.0/src/declarativeimports/plasmacomponents3/Dial.qml 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/src/declarativeimports/plasmacomponents3/Dial.qml 2017-11-05 09:42:42.000000000 +0100 @@ -19,7 +19,6 @@ import QtQuick 2.6 import QtQuick.Templates 2.0 as T -import QtQuick.Controls.impl 2.0 import org.kde.plasma.core 2.0 as PlasmaCore import "private" as Private @@ -29,13 +28,33 @@ implicitWidth: units.gridUnit * 5 implicitHeight: implicitWidth hoverEnabled: true + onPositionChanged: canvas.requestPaint() - background: DialRing { + background:Canvas { + id: canvas width: control.availableWidth height: control.availableHeight - color: control.visualFocus ? theme.highlightColor : theme.textColor - progress: control.position - opacity: control.enabled ? 0.5 : 0.3 + onPaint: { + var ctx = getContext("2d"); + ctx.reset(); + + var centreX = width / 2; + var centreY = height / 2; + + ctx.globalAlpha = 0.3; + ctx.beginPath(); + ctx.strokeStyle = theme.textColor; + ctx.lineWidth=5; + ctx.arc(centreX, centreY, width/2.4, 0, 2*Math.PI, false); + ctx.stroke(); + ctx.globalAlpha = 1; + + ctx.beginPath(); + ctx.strokeStyle = theme.highlightColor; + ctx.lineWidth=5; + ctx.arc(centreX, centreY, width/2.4, 0.7*Math.PI, 1.6*Math.PI * control.position - 1.25*Math.PI, false); + ctx.stroke(); + } } PlasmaCore.Svg { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/src/desktoptheme/air/metadata.desktop new/plasma-framework-5.40.0/src/desktoptheme/air/metadata.desktop --- old/plasma-framework-5.39.0/src/desktoptheme/air/metadata.desktop 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/src/desktoptheme/air/metadata.desktop 2017-11-05 09:42:42.000000000 +0100 @@ -73,7 +73,7 @@ Comment[pa]=ਤਾਜ਼ਾ ਹਵਾ ਵਿੱਚ ਸਾਹ ਲਵੋ Comment[pl]=Powiew świeżego powietrza Comment[pt]=Uma brisa de ar fresco -Comment[pt_BR]=Uma brisa de ar fresco +Comment[pt_BR]=Um pouco de ar fresco Comment[ru]=Волшебные пузырьки Comment[sk]=Závan čerstvého vzduchu Comment[sl]=Svež vetrič diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/src/plasma/framesvg.cpp new/plasma-framework-5.40.0/src/plasma/framesvg.cpp --- old/plasma-framework-5.39.0/src/plasma/framesvg.cpp 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/src/plasma/framesvg.cpp 2017-11-05 09:42:42.000000000 +0100 @@ -844,18 +844,20 @@ //This has the same size regardless the border is enabled or not frame->fixedTopHeight = q->elementSize(frame->prefix % QLatin1String("top")).height(); + int hintTopMargin = -1; if (q->hasElement(frame->prefix % QLatin1String("hint-top-margin"))) { - frame->fixedTopMargin = q->elementSize(frame->prefix % QLatin1String("hint-top-margin")).height(); + hintTopMargin = q->elementSize(frame->prefix % QLatin1String("hint-top-margin")).height(); + frame->fixedTopMargin = hintTopMargin; } else { frame->fixedTopMargin = frame->fixedTopHeight; } //The same, but its size depends from the margin being enabled if (frame->enabledBorders & FrameSvg::TopBorder) { - frame->topHeight = q->elementSize(frame->prefix % QLatin1String("top")).height(); + frame->topHeight = frame->fixedTopHeight; - if (q->hasElement(frame->prefix % QLatin1String("hint-top-margin"))) { - frame->topMargin = q->elementSize(frame->prefix % QLatin1String("hint-top-margin")).height(); + if (hintTopMargin > -1) { + frame->topMargin = hintTopMargin; } else { frame->topMargin = frame->topHeight; } @@ -865,17 +867,19 @@ frame->fixedLeftWidth = q->elementSize(frame->prefix % QLatin1String("left")).width(); + int hintLeftMargin = -1; if (q->hasElement(frame->prefix % QLatin1String("hint-left-margin"))) { - frame->fixedLeftMargin = q->elementSize(frame->prefix % QLatin1String("hint-left-margin")).width(); + hintLeftMargin = q->elementSize(frame->prefix % QLatin1String("hint-left-margin")).width(); + frame->fixedLeftMargin = hintLeftMargin; } else { frame->fixedLeftMargin = frame->fixedLeftWidth; } if (frame->enabledBorders & FrameSvg::LeftBorder) { - frame->leftWidth = q->elementSize(frame->prefix % QLatin1String("left")).width(); + frame->leftWidth = frame->fixedLeftWidth; - if (q->hasElement(frame->prefix % QLatin1String("hint-left-margin"))) { - frame->leftMargin = q->elementSize(frame->prefix % QLatin1String("hint-left-margin")).width(); + if (hintLeftMargin > -1) { + frame->leftMargin = hintLeftMargin; } else { frame->leftMargin = frame->leftWidth; } @@ -885,17 +889,19 @@ frame->fixedRightWidth = q->elementSize(frame->prefix % QLatin1String("right")).width(); + int hintRightMargin = -1; if (q->hasElement(frame->prefix % QLatin1String("hint-right-margin"))) { - frame->fixedRightMargin = q->elementSize(frame->prefix % QLatin1String("hint-right-margin")).width(); + hintRightMargin = q->elementSize(frame->prefix % QLatin1String("hint-right-margin")).width(); + frame->fixedRightMargin = hintRightMargin; } else { frame->fixedRightMargin = frame->fixedRightWidth; } if (frame->enabledBorders & FrameSvg::RightBorder) { - frame->rightWidth = q->elementSize(frame->prefix % QLatin1String("right")).width(); + frame->rightWidth = frame->fixedRightWidth; - if (q->hasElement(frame->prefix % QLatin1String("hint-right-margin"))) { - frame->rightMargin = q->elementSize(frame->prefix % QLatin1String("hint-right-margin")).width(); + if (hintRightMargin > -1) { + frame->rightMargin = hintRightMargin; } else { frame->rightMargin = frame->rightWidth; } @@ -905,17 +911,19 @@ frame->fixedBottomHeight = q->elementSize(frame->prefix % QLatin1String("bottom")).height(); + int hintBottomMargin = -1; if (q->hasElement(frame->prefix % QLatin1String("hint-bottom-margin"))) { - frame->fixedBottomMargin = q->elementSize(frame->prefix % QLatin1String("hint-bottom-margin")).height(); + hintBottomMargin = q->elementSize(frame->prefix % QLatin1String("hint-bottom-margin")).height(); + frame->fixedBottomMargin = hintBottomMargin; } else { frame->fixedBottomMargin = frame->fixedBottomHeight; } if (frame->enabledBorders & FrameSvg::BottomBorder) { - frame->bottomHeight = q->elementSize(frame->prefix % QLatin1String("bottom")).height(); + frame->bottomHeight = frame->fixedBottomHeight; - if (q->hasElement(frame->prefix % QLatin1String("hint-bottom-margin"))) { - frame->bottomMargin = q->elementSize(frame->prefix % QLatin1String("hint-bottom-margin")).height(); + if (hintBottomMargin > -1) { + frame->bottomMargin = hintBottomMargin; } else { frame->bottomMargin = frame->bottomHeight; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/src/plasma/packagestructure/containmentactions-packagestructure.json new/plasma-framework-5.40.0/src/plasma/packagestructure/containmentactions-packagestructure.json --- old/plasma-framework-5.39.0/src/plasma/packagestructure/containmentactions-packagestructure.json 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/src/plasma/packagestructure/containmentactions-packagestructure.json 2017-11-05 09:42:42.000000000 +0100 @@ -40,6 +40,7 @@ "Name[sr@latin]": "Radnje sadržaoca", "Name[sr]": "Радње садржаоца", "Name[sv]": "Omgivningsåtgärder", + "Name[tr]": "Sınırlama Eylemleri", "Name[uk]": "Дії з контейнерами", "Name[x-test]": "xxContainment Actionsxx", "Name[zh_CN]": "容器动作", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/src/plasma/packagestructure/dataengine-packagestructure.json new/plasma-framework-5.40.0/src/plasma/packagestructure/dataengine-packagestructure.json --- old/plasma-framework-5.39.0/src/plasma/packagestructure/dataengine-packagestructure.json 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/src/plasma/packagestructure/dataengine-packagestructure.json 2017-11-05 09:42:42.000000000 +0100 @@ -42,6 +42,7 @@ "Name[sr@latin]": "Datomotor", "Name[sr]": "Датомотор", "Name[sv]": "Datagränssnitt", + "Name[tr]": "Veri Motoru", "Name[uk]": "Рушій даних", "Name[x-test]": "xxData Enginexx", "Name[zh_CN]": "数据引擎", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/src/plasma/packagestructure/plasmageneric-packagestructure.json new/plasma-framework-5.40.0/src/plasma/packagestructure/plasmageneric-packagestructure.json --- old/plasma-framework-5.39.0/src/plasma/packagestructure/plasmageneric-packagestructure.json 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/src/plasma/packagestructure/plasmageneric-packagestructure.json 2017-11-05 09:42:42.000000000 +0100 @@ -40,6 +40,7 @@ "Name[sr@latin]": "Generički", "Name[sr]": "Генерички", "Name[sv]": "Generella", + "Name[tr]": "Genel", "Name[uk]": "Загальний", "Name[x-test]": "xxGenericxx", "Name[zh_CN]": "常规", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/src/plasma/packagestructure/plasmatheme-packagestructure.json new/plasma-framework-5.40.0/src/plasma/packagestructure/plasmatheme-packagestructure.json --- old/plasma-framework-5.39.0/src/plasma/packagestructure/plasmatheme-packagestructure.json 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/src/plasma/packagestructure/plasmatheme-packagestructure.json 2017-11-05 09:42:42.000000000 +0100 @@ -42,6 +42,7 @@ "Name[sr@latin]": "Plasma tema", "Name[sr]": "Плазма тема", "Name[sv]": "Plasmatema", + "Name[tr]": "Plasma Teması", "Name[uk]": "Тема Плазми", "Name[x-test]": "xxPlasma Themexx", "Name[zh_CN]": "Plasma 主题", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/src/plasmaquick/dialog.cpp new/plasma-framework-5.40.0/src/plasmaquick/dialog.cpp --- old/plasma-framework-5.39.0/src/plasmaquick/dialog.cpp 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/src/plasmaquick/dialog.cpp 2017-11-05 09:42:42.000000000 +0100 @@ -307,7 +307,7 @@ #if HAVE_KWAYLAND //if is a wayland window that was hidden, we need //to set its position again as there won't be any move event to sync QWindow::position and shellsurface::position - if (shellSurface) { + if (shellSurface && type != Dialog::OnScreenDisplay) { shellSurface->setPosition(q->position()); } #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/plasma-framework-5.39.0/templates/qml-plasmoid-with-qml-extension/qml-plasmoid-with-qml-extension.kdevtemplate new/plasma-framework-5.40.0/templates/qml-plasmoid-with-qml-extension/qml-plasmoid-with-qml-extension.kdevtemplate --- old/plasma-framework-5.39.0/templates/qml-plasmoid-with-qml-extension/qml-plasmoid-with-qml-extension.kdevtemplate 2017-10-07 21:27:46.000000000 +0200 +++ new/plasma-framework-5.40.0/templates/qml-plasmoid-with-qml-extension/qml-plasmoid-with-qml-extension.kdevtemplate 2017-11-05 09:42:42.000000000 +0100 @@ -3,6 +3,7 @@ Name[ca]=Miniaplicació QML del Plasma amb una extensió QML Name[ca@valencia]=Miniaplicació QML del Plasma amb una extensió QML Name[cs]=Aplet QML Plasma s rozšířením QML +Name[da]=Plasma QML-applet med QML-udvidelse Name[de]=Plasma-QML-Miniprogramm mit QML-Erweiterung Name[en_GB]=Plasma QML Applet with QML extension Name[es]=Miniaplicación en QML para Plasma con extensión QML @@ -30,6 +31,7 @@ Comment=A template for a Plasma applet which uses custom API provided by an own QML extension plugin Comment[ca]=Una plantilla per a una miniaplicació Plasma que usa una API personalitzada proporcionada per un connector propi d'una extensió QML Comment[ca@valencia]=Una plantilla per a una miniaplicació Plasma que usa una API personalitzada proporcionada per un connector propi d'una extensió QML +Comment[da]=En skabelon til en Plasma-applet som bruger tilpasset API leveret af ens eget QML-udvidelsesplugin Comment[en_GB]=A template for a Plasma applet which uses custom API provided by an own QML extension plugin Comment[es]=Una plantilla para una miniaplicación de Plasma que usa la API común proporcionada por un complemento de extensión QML propio Comment[eu]=Plasma applet baterako txantiloi bat, QML hedapen plugin propio baten API pertsonalizatu bat erabiltzen duena