commit kservice for openSUSE:Factory
Hello community, here is the log from the commit of package kservice for openSUSE:Factory checked in at 2014-10-07 15:58:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kservice (Old) and /work/SRC/openSUSE:Factory/.kservice.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "kservice" Changes: -------- --- /work/SRC/openSUSE:Factory/kservice/kservice.changes 2014-09-12 17:03:36.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.kservice.new/kservice.changes 2014-10-07 15:59:04.000000000 +0200 @@ -1,0 +2,10 @@ +Sat Oct 4 17:59:14 UTC 2014 - hrvoje.senjan@gmail.com + +- Update to 5.3.0 + * Many many fixes to KPluginInfo + * Add functions to convert between lists KPluginMetaData + and KPluginInfo + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.3.0.php + +------------------------------------------------------------------- Old: ---- kservice-5.2.0.tar.xz New: ---- kservice-5.3.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kservice.spec ++++++ --- /var/tmp/diff_new_pack.soR2tr/_old 2014-10-07 15:59:06.000000000 +0200 +++ /var/tmp/diff_new_pack.soR2tr/_new 2014-10-07 15:59:06.000000000 +0200 @@ -17,11 +17,11 @@ Name: kservice -Version: 5.2.0 +Version: 5.3.0 Release: 0 %define kf5_version %{version} BuildRequires: cmake >= 2.8.12 -BuildRequires: extra-cmake-modules >= 1.2.0 +BuildRequires: extra-cmake-modules >= 1.3.0 BuildRequires: fdupes BuildRequires: kconfig-devel >= %{kf5_version} BuildRequires: kcoreaddons-devel >= %{kf5_version} ++++++ kservice-5.2.0.tar.xz -> kservice-5.3.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/CMakeLists.txt new/kservice-5.3.0/CMakeLists.txt --- old/kservice-5.2.0/CMakeLists.txt 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/CMakeLists.txt 2014-10-04 19:11:46.000000000 +0200 @@ -4,7 +4,7 @@ project(KService) # ECM setup -find_package(ECM 1.2.0 REQUIRED NO_MODULE) +find_package(ECM 1.3.0 REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake ) include(KDEInstallDirs) @@ -15,8 +15,8 @@ include(FeatureSummary) include(GenerateExportHeader) -set(KF5_VERSION "5.2.0") # handled by release scripts -set(KF5_DEP_VERSION "5.2.0") # handled by release scripts +set(KF5_VERSION "5.3.0") # handled by release scripts +set(KF5_DEP_VERSION "5.3.0") # handled by release scripts ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX KSERVICE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/autotests/CMakeLists.txt new/kservice-5.3.0/autotests/CMakeLists.txt --- old/kservice-5.2.0/autotests/CMakeLists.txt 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/autotests/CMakeLists.txt 2014-10-04 19:11:46.000000000 +0200 @@ -8,7 +8,7 @@ macro(KSERVICE_UNIT_TESTS) foreach(_testname ${ARGN}) - ecm_add_test(${_testname}.cpp kwaitforsignal.cpp TEST_NAME ${_testname} + ecm_add_test(${_testname}.cpp TEST_NAME ${_testname} LINK_LIBRARIES KF5::Service Qt5::Test Qt5::Concurrent) endforeach() endmacro(KSERVICE_UNIT_TESTS) @@ -19,6 +19,7 @@ ksycocathreadtest kservicetest pluginlocatortest + kplugininfotest ) add_library(fakeplugin MODULE nsaplugin.cpp) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/autotests/kplugininfotest.cpp new/kservice-5.3.0/autotests/kplugininfotest.cpp --- old/kservice-5.2.0/autotests/kplugininfotest.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/kservice-5.3.0/autotests/kplugininfotest.cpp 2014-10-04 19:11:46.000000000 +0200 @@ -0,0 +1,243 @@ +/* + * Copyright 2014 Alex Richardson <arichardson.kde@gmail.com> + * + * 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 <QtTest/QTest> +#include <QLocale> +#include <QJsonDocument> +#include <QFileInfo> + +#include <KAboutData> +#include <KPluginMetaData> + +#include <kplugininfo.h> +#include <kservice.h> + +Q_DECLARE_METATYPE(KPluginInfo) + +class KPluginInfoTest : public QObject +{ + Q_OBJECT +private: + static KPluginInfo withCustomProperty(const KPluginInfo &info) + { + QVariantMap result; + QVariantMap metaData = info.properties(); + metaData["X-Foo-Bar"] = QStringLiteral("Baz"); + result["MetaData"] = metaData; + return KPluginInfo(QVariantList() << result, info.libraryPath()); + } +private Q_SLOTS: + void testLoadDesktop_data() + { + QTest::addColumn<QString>("desktopFilePath"); + QTest::addColumn<KPluginInfo>("info"); + QTest::addColumn<KPluginInfo>("infoGerman"); + QTest::addColumn<QVariant>("customValue"); + + + QString fakepluginDesktop = QFINDTESTDATA("fakeplugin.desktop"); + QVERIFY2(!fakepluginDesktop.isEmpty(), "Could not find fakeplugin.desktop"); + // translations are performed when the object is constructed, not later + QLocale::setDefault(QLocale::c()); + KPluginInfo info(fakepluginDesktop); + KService::Ptr fakepluginService(new KService(fakepluginDesktop)); + KPluginInfo infoFromService(fakepluginService); + QLocale::setDefault(QLocale(QLocale::German, QLocale::Germany)); + KPluginInfo infoGerman(fakepluginDesktop); + KService::Ptr fakepluginServiceGerman(new KService(fakepluginDesktop)); + KPluginInfo infoFromServiceGerman(fakepluginServiceGerman); + QLocale::setDefault(QLocale::c()); + + QTest::newRow("no custom property") << fakepluginDesktop << info << infoGerman << QVariant(); + // when adding the custom property entryPath() cannot be copied -> expect empty string + QTest::newRow("with custom property") << QString() << withCustomProperty(info) + << withCustomProperty(infoGerman) << QVariant("Baz"); + QTest::newRow("from KService::Ptr") << fakepluginDesktop << infoFromService << infoFromServiceGerman << QVariant(); + } + + void testLoadDesktop() + { + QFETCH(KPluginInfo, info); + QFETCH(KPluginInfo, infoGerman); + QFETCH(QVariant, customValue); + QFETCH(QString, desktopFilePath); + + QVERIFY(info.isValid()); + QVERIFY(infoGerman.isValid()); + QVERIFY(!KPluginInfo("/this/path/does/not/exist.desktop").isValid()); + + // check the translatable keys first + QCOMPARE(info.comment(), QStringLiteral("Test Plugin Spy")); + QCOMPARE(infoGerman.comment(), QStringLiteral("Test-Spionagemodul")); + QCOMPARE(info.name(), QStringLiteral("NSA Plugin")); + QCOMPARE(infoGerman.name(), QStringLiteral("NSA-Modul")); + + QCOMPARE(info.author(), QStringLiteral("Sebastian Kügler")); + QCOMPARE(info.category(), QStringLiteral("Examples")); + QCOMPARE(info.dependencies(), QStringList()); + QCOMPARE(info.email(), QStringLiteral("sebas@kde.org")); + QCOMPARE(info.entryPath(), desktopFilePath); + QCOMPARE(info.icon(), QStringLiteral("preferences-system-time")); + QCOMPARE(info.isHidden(), false); + QCOMPARE(info.isPluginEnabled(), false); + QCOMPARE(info.isPluginEnabledByDefault(), true); + QCOMPARE(info.libraryPath(), QStringLiteral("fakeplugin")); + QCOMPARE(info.license(), QStringLiteral("LGPL")); + QCOMPARE(info.pluginName(), QStringLiteral("fakeplugin")); + QCOMPARE(info.serviceTypes(), QStringList() << "KService/NSA"); + QCOMPARE(info.version(), QStringLiteral("1.0")); + QCOMPARE(info.website(), QStringLiteral("http://kde.org/")); + + QCOMPARE(info.property("X-Foo-Bar"), customValue); + + } + + void testToMetaData() + { + QString fakepluginDesktop = QFINDTESTDATA("fakeplugin.desktop"); + QVERIFY2(!fakepluginDesktop.isEmpty(), "Could not find fakeplugin.desktop"); + // translations are performed when the object is constructed, not later + QLocale::setDefault(QLocale::c()); + KPluginInfo info = withCustomProperty(KPluginInfo(fakepluginDesktop)); + QLocale::setDefault(QLocale(QLocale::German, QLocale::Germany)); + KPluginInfo infoGerman = withCustomProperty(KPluginInfo(fakepluginDesktop)); + QVERIFY(info.isValid()); + KPluginMetaData meta = info.toMetaData(); + // translations will be broken (since not all are read), it will always return the german version even with QLocale::c() + KPluginMetaData metaGerman = infoGerman.toMetaData(); + QLocale::setDefault(QLocale::c()); + + // check the translatable keys first + QCOMPARE(meta.description(), QStringLiteral("Test Plugin Spy")); + QCOMPARE(metaGerman.description(), QStringLiteral("Test-Spionagemodul")); + QCOMPARE(meta.name(), QStringLiteral("NSA Plugin")); + QCOMPARE(metaGerman.name(), QStringLiteral("NSA-Modul")); + + QCOMPARE(meta.authors().size(), 1); + QCOMPARE(meta.authors()[0].name(), QStringLiteral("Sebastian Kügler")); + QCOMPARE(meta.authors()[0].emailAddress(), QStringLiteral("sebas@kde.org")); + QCOMPARE(meta.category(), QStringLiteral("Examples")); + QCOMPARE(meta.dependencies(), QStringList()); + QCOMPARE(meta.fileName(), QFileInfo(QStringLiteral("fakeplugin")).absoluteFilePath()); + QCOMPARE(meta.pluginId(), QStringLiteral("fakeplugin")); + QCOMPARE(meta.iconName(), QStringLiteral("preferences-system-time")); + QCOMPARE(meta.isEnabledByDefault(), true); + QCOMPARE(meta.license(), QStringLiteral("LGPL")); + QCOMPARE(meta.serviceTypes(), QStringList() << "KService/NSA"); + QCOMPARE(meta.version(), QStringLiteral("1.0")); + QCOMPARE(meta.website(), QStringLiteral("http://kde.org/")); + + // also test the static version + QCOMPARE(meta, KPluginInfo::toMetaData(info)); + QCOMPARE(metaGerman, KPluginInfo::toMetaData(infoGerman)); + + // make sure custom values are also retained + QCOMPARE(info.property("X-Foo-Bar"), QVariant("Baz")); + QCOMPARE(meta.rawData().value("X-Foo-Bar").toString(), QStringLiteral("Baz")); + + + KPluginInfo::List srcList = KPluginInfo::List() << info << infoGerman; + QVector<KPluginMetaData> convertedList = KPluginInfo::toMetaData(srcList); + QCOMPARE(convertedList.size(), 2); + QCOMPARE(convertedList[0], meta); + QCOMPARE(convertedList[1], metaGerman); + } + + void testFromMetaData() + { + QJsonParseError e; + QJsonObject jo = QJsonDocument::fromJson("{\n" + " \"KPlugin\": {\n" + " \"Name\": \"NSA Plugin\",\n" + " \"Name[de]\": \"NSA-Modul\",\n" + " \"Description\": \"Test Plugin Spy\",\n" + " \"Description[de]\": \"Test-Spionagemodul\",\n" + " \"Icon\": \"preferences-system-time\",\n" + " \"Authors\": { \"Name\": \"Sebastian Kügler\", \"Email\": \"sebas@kde.org\" },\n" + " \"Category\": \"Examples\",\n" + " \"Dependencies\": [],\n" + " \"EnabledByDefault\": \"true\",\n" + " \"License\": \"LGPL\",\n" + " \"Id\": \"fakeplugin\",\n" // not strictly required + " \"Version\": \"1.0\",\n" + " \"Website\": \"http://kde.org/\",\n" + " \"ServiceTypes\": [\"KService/NSA\"]\n" + " },\n" + " \"X-Foo-Bar\": \"Baz\"\n" + "}", &e).object(); + QCOMPARE(e.error, QJsonParseError::NoError); + KPluginMetaData meta(jo, "fakeplugin"); + + QLocale::setDefault(QLocale::c()); + KPluginInfo info = KPluginInfo::fromMetaData(meta); + QLocale::setDefault(QLocale(QLocale::German, QLocale::Germany)); + KPluginInfo infoGerman = KPluginInfo::fromMetaData(meta); + QLocale::setDefault(QLocale::c()); + + QCOMPARE(info.comment(), QStringLiteral("Test Plugin Spy")); + QCOMPARE(infoGerman.comment(), QStringLiteral("Test-Spionagemodul")); + QCOMPARE(info.name(), QStringLiteral("NSA Plugin")); + QCOMPARE(infoGerman.name(), QStringLiteral("NSA-Modul")); + + QCOMPARE(info.author(), QStringLiteral("Sebastian Kügler")); + QCOMPARE(info.category(), QStringLiteral("Examples")); + QCOMPARE(info.dependencies(), QStringList()); + QCOMPARE(info.email(), QStringLiteral("sebas@kde.org")); + QCOMPARE(info.entryPath(), QString()); + QCOMPARE(info.icon(), QStringLiteral("preferences-system-time")); + QCOMPARE(info.isHidden(), false); + QCOMPARE(info.isPluginEnabled(), false); + QCOMPARE(info.isPluginEnabledByDefault(), true); + QCOMPARE(info.libraryPath(), QFileInfo(QStringLiteral("fakeplugin")).absoluteFilePath()); + QCOMPARE(info.license(), QStringLiteral("LGPL")); + QCOMPARE(info.pluginName(), QStringLiteral("fakeplugin")); + QCOMPARE(info.serviceTypes(), QStringList() << "KService/NSA"); + QCOMPARE(info.version(), QStringLiteral("1.0")); + QCOMPARE(info.website(), QStringLiteral("http://kde.org/")); + + // make sure custom values are also retained + QCOMPARE(meta.rawData().value("X-Foo-Bar").toString(), QStringLiteral("Baz")); + QCOMPARE(info.property("X-Foo-Bar"), QVariant("Baz")); + + QVector<KPluginMetaData> srcList = QVector<KPluginMetaData>() << meta; + KPluginInfo::List convertedList = KPluginInfo::fromMetaData(srcList); + QCOMPARE(convertedList.size(), 1); + // KPluginInfo::operator== compares identity of the d-pointer -> manual structural comparison + QCOMPARE(convertedList[0].comment(), info.comment()); + QCOMPARE(convertedList[0].name(), info.name()); + QCOMPARE(convertedList[0].author(), info.author()); + QCOMPARE(convertedList[0].category(), info.category()); + QCOMPARE(convertedList[0].dependencies(), info.dependencies()); + QCOMPARE(convertedList[0].email(), info.email()); + QCOMPARE(convertedList[0].entryPath(), info.entryPath()); + QCOMPARE(convertedList[0].icon(), info.icon()); + QCOMPARE(convertedList[0].isHidden(), info.isHidden()); + QCOMPARE(convertedList[0].isPluginEnabled(), info.isPluginEnabled()); + QCOMPARE(convertedList[0].isPluginEnabledByDefault(), info.isPluginEnabledByDefault()); + QCOMPARE(convertedList[0].libraryPath(), info.libraryPath()); + QCOMPARE(convertedList[0].license(), info.license()); + QCOMPARE(convertedList[0].pluginName(), info.pluginName()); + QCOMPARE(convertedList[0].serviceTypes(), info.serviceTypes()); + QCOMPARE(convertedList[0].version(), info.version()); + QCOMPARE(convertedList[0].website(), info.website()); + } +}; + +QTEST_MAIN(KPluginInfoTest) + +#include "kplugininfotest.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/autotests/kservicetest.cpp new/kservice-5.3.0/autotests/kservicetest.cpp --- old/kservice-5.2.0/autotests/kservicetest.cpp 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/autotests/kservicetest.cpp 2014-10-04 19:11:46.000000000 +0200 @@ -37,7 +37,6 @@ #include <qstandardpaths.h> #include <qthread.h> #include <qsignalspy.h> -#include <kwaitforsignal.h> #include <QTimer> #include <QDebug> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/autotests/ksycocathreadtest.cpp new/kservice-5.3.0/autotests/ksycocathreadtest.cpp --- old/kservice-5.2.0/autotests/ksycocathreadtest.cpp 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/autotests/ksycocathreadtest.cpp 2014-10-04 19:11:46.000000000 +0200 @@ -32,7 +32,6 @@ #include <kservicetypeprofile.h> #include <qstandardpaths.h> -#include "kwaitforsignal.h" // for kWaitForSignal #include <QDebug> // Helper method for all the trader tests diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/autotests/kwaitforsignal.cpp new/kservice-5.3.0/autotests/kwaitforsignal.cpp --- old/kservice-5.2.0/autotests/kwaitforsignal.cpp 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/autotests/kwaitforsignal.cpp 1970-01-01 01:00:00.000000000 +0100 @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2006 David Faure <faure@kde.org> - * - * 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 <kwaitforsignal.h> - -bool kWaitForSignal(QObject *obj, const char *signal, int timeout) -{ - KDESignalSpy spy(obj, signal, timeout); - return spy.signalEmitted(); -} - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/autotests/kwaitforsignal.h new/kservice-5.3.0/autotests/kwaitforsignal.h --- old/kservice-5.2.0/autotests/kwaitforsignal.h 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/autotests/kwaitforsignal.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2006 David Faure <faure@kde.org> - * - * 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 KWAITFORSIGNAL_H -#define KWAITFORSIGNAL_H - -#include <QtCore/QObject> - -#include <QEventLoop> -#include <QTimer> -// TODO Qt5: remove! -class KDESignalSpy : public QObject -{ - Q_OBJECT -public: - KDESignalSpy(QObject *obj, const char *signal, int timeout) - : QObject(0), m_obj(obj), m_emitted(false) - { - connect(obj, signal, this, SLOT(slotSignalEmitted())); - if (timeout > 0) { - QObject::connect(&m_timer, SIGNAL(timeout()), &m_loop, SLOT(quit())); - m_timer.setSingleShot(true); - m_timer.start(timeout); - } - m_loop.exec(); - } - bool signalEmitted() const - { - return m_emitted; - } - -private Q_SLOTS: - void slotSignalEmitted() - { - m_emitted = true; - disconnect(m_obj, 0, this, 0); - m_timer.stop(); - m_loop.quit(); - } -private: - QObject *m_obj; - bool m_emitted; - QEventLoop m_loop; - QTimer m_timer; -}; - -#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/autotests/noplugin.desktop new/kservice-5.3.0/autotests/noplugin.desktop --- old/kservice-5.2.0/autotests/noplugin.desktop 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/autotests/noplugin.desktop 2014-10-04 19:11:46.000000000 +0200 @@ -3,6 +3,7 @@ Name[ca]=Sense connector Name[ca@valencia]=Sense connector Name[cs]=Žádný modul +Name[da]=Intet plugin Name[de]=Kein Modul Name[en_GB]=No Plugin Name[es]=Ningún complemento @@ -38,6 +39,7 @@ Comment[ca]=Aquest no té cap biblioteca Comment[ca@valencia]=Això no té cap biblioteca Comment[cs]=Toto nemá knihovnu +Comment[da]=Dette har ikke et bibliotek Comment[de]=Dies hat keine Bibliothek Comment[en_GB]=This does not have a library Comment[es]=Esto no posee una biblioteca diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/po/ja/kservice5.po new/kservice-5.3.0/po/ja/kservice5.po --- old/kservice-5.2.0/po/ja/kservice5.po 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/po/ja/kservice5.po 2014-10-04 19:11:46.000000000 +0200 @@ -16,7 +16,7 @@ "POT-Creation-Date: 2014-08-03 08:17+0000\n" "PO-Revision-Date: 2011-08-27 14:05-0700\n" "Last-Translator: Fumiaki Okushi <okushi@kde.gr.jp>\n" -"Language-Team: Japanese <Kdeveloper@kde.gr.jp>\n" +"Language-Team: Japanese <kde-jp@kde.org>\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/po/nds/kservice5.po new/kservice-5.3.0/po/nds/kservice5.po --- old/kservice-5.2.0/po/nds/kservice5.po 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/po/nds/kservice5.po 2014-10-04 19:11:46.000000000 +0200 @@ -16,7 +16,7 @@ "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 1.4\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" msgctxt "NAME OF TRANSLATORS" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/po/oc/kservice5.po new/kservice-5.3.0/po/oc/kservice5.po --- old/kservice-5.2.0/po/oc/kservice5.po 1970-01-01 01:00:00.000000000 +0100 +++ new/kservice-5.3.0/po/oc/kservice5.po 2014-10-04 19:11:46.000000000 +0200 @@ -0,0 +1,218 @@ +# translation of kdelibs4.po to Occitan +# Copyright (C) 2008 This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>, 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: kdelibs4\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2014-08-03 08:17+0000\n" +"PO-Revision-Date: 2008-08-06 00:07+0200\n" +"Last-Translator: \n" +"Language-Team: Occitan <oc@li.org>\n" +"Language: oc\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: KBabel 1.11.4\n" + +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Yannig Marchegay (Kokoyaya)" + +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "yannig@marchegay.org" + +#: kbuildsycoca/kbuildsycoca.cpp:617 +#, fuzzy +#| msgid "KBuildSycoca" +msgctxt "application name" +msgid "KBuildSycoca" +msgstr "KBuildSycoca" + +#: kbuildsycoca/kbuildsycoca.cpp:619 +#, fuzzy +#| msgid "Rebuilds the system configuration cache." +msgctxt "application description" +msgid "Rebuilds the system configuration cache." +msgstr "Reconstrusís l'amagatal de configuracion del sistèma." + +#: kbuildsycoca/kbuildsycoca.cpp:621 +msgctxt "@info:credit" +msgid "Copyright 1999-2014 KDE Developers" +msgstr "" + +#: kbuildsycoca/kbuildsycoca.cpp:622 +#, fuzzy +#| msgid "David Faure" +msgctxt "@info:credit" +msgid "David Faure" +msgstr "David Faure" + +#: kbuildsycoca/kbuildsycoca.cpp:623 kbuildsycoca/kbuildsycoca.cpp:626 +#, fuzzy +#| msgid "Author" +msgctxt "@info:credit" +msgid "Author" +msgstr "Autor" + +#: kbuildsycoca/kbuildsycoca.cpp:625 +#, fuzzy +#| msgid "Waldo Bastian" +msgctxt "@info:credit" +msgid "Waldo Bastian" +msgstr "Waldo Bastian" + +#: kbuildsycoca/kbuildsycoca.cpp:636 +#, fuzzy +#| msgid "Do not signal applications to update" +msgctxt "@info:shell command-line option" +msgid "Do not signal applications to update" +msgstr "Senhalar pas las aplicacions de metre a jorn." + +#: kbuildsycoca/kbuildsycoca.cpp:639 +#, fuzzy +#| msgid "Disable incremental update, re-read everything" +msgctxt "@info:shell command-line option" +msgid "Disable incremental update, re-read everything" +msgstr "Desactivar la mesa a jorn incrementala, tornar legir tot" + +#: kbuildsycoca/kbuildsycoca.cpp:642 +#, fuzzy +#| msgid "Check file timestamps" +msgctxt "@info:shell command-line option" +msgid "Check file timestamps" +msgstr "Verificar l'orodatatge dels fichièrs" + +#: kbuildsycoca/kbuildsycoca.cpp:645 +#, fuzzy +#| msgid "Disable checking files (dangerous)" +msgctxt "@info:shell command-line option" +msgid "Disable checking files (dangerous)" +msgstr "Desactivar la verificacion dels fichièrs (dangierós)" + +#: kbuildsycoca/kbuildsycoca.cpp:648 +#, fuzzy +#| msgid "Create global database" +msgctxt "@info:shell command-line option" +msgid "Create global database" +msgstr "Crear une banca de donadas globala" + +#: kbuildsycoca/kbuildsycoca.cpp:651 +#, fuzzy +#| msgid "Perform menu generation test run only" +msgctxt "@info:shell command-line option" +msgid "Perform menu generation test run only" +msgstr "Efectuar la generacion de menut pas qu'en tèst" + +#: kbuildsycoca/kbuildsycoca.cpp:654 +#, fuzzy +#| msgid "Track menu id for debug purposes" +msgctxt "@info:shell command-line option" +msgid "Track menu id for debug purposes" +msgstr "Traçar lo menut id dins la tòca de desbogar" + +#: kbuildsycoca/kbuildsycoca.cpp:658 +msgctxt "@info:shell command-line option" +msgid "Switch QStandardPaths to test mode, for unit tests only" +msgstr "" + +#: kdeinit/ktoolinvocation.cpp:66 +msgid "Function must be called from the main thread." +msgstr "" + +#: kdeinit/ktoolinvocation.cpp:103 +#, kde-format +msgid "" +"Error launching %1. Either KLauncher is not running anymore, or it failed to " +"start the application." +msgstr "" + +#: kdeinit/ktoolinvocation.cpp:106 +#, kde-format +msgid "" +"KLauncher could not be reached via D-Bus. Error when calling %1:\n" +"%2\n" +msgstr "" + +#: kdeinit/ktoolinvocation_x11.cpp:259 +#, kde-format +msgid "" +"Could not launch the mail client:\n" +"\n" +"%1" +msgstr "" + +#: kdeinit/ktoolinvocation_x11.cpp:260 +#, fuzzy +#| msgid "" +#| "Could not launch the browser:\n" +#| "\n" +#| "%1" +msgid "Could not launch Mail Client" +msgstr "" +"Impossible d'aviar lo navegador :\n" +"\n" +"%1" + +#: kdeinit/ktoolinvocation_x11.cpp:309 kdeinit/ktoolinvocation_x11.cpp:334 +#: kdeinit/ktoolinvocation_x11.cpp:353 +#, kde-format +msgid "" +"Could not launch the browser:\n" +"\n" +"%1" +msgstr "" +"Impossible d'aviar lo navegador :\n" +"\n" +"%1" + +#: kdeinit/ktoolinvocation_x11.cpp:310 kdeinit/ktoolinvocation_x11.cpp:335 +#: kdeinit/ktoolinvocation_x11.cpp:354 +#, fuzzy +#| msgid "" +#| "Could not launch the browser:\n" +#| "\n" +#| "%1" +msgid "Could not launch Browser" +msgstr "" +"Impossible d'aviar lo navegador :\n" +"\n" +"%1" + +#: kdeinit/ktoolinvocation_x11.cpp:393 +#, kde-format +msgid "" +"Could not launch the terminal client:\n" +"\n" +"%1" +msgstr "" + +#: kdeinit/ktoolinvocation_x11.cpp:394 +#, fuzzy +#| msgid "" +#| "Could not launch the browser:\n" +#| "\n" +#| "%1" +msgid "Could not launch Terminal Client" +msgstr "" +"Impossible d'aviar lo navegador :\n" +"\n" +"%1" + +#: plugin/kdbusservicestarter.cpp:77 +#, kde-format +msgid "No service implementing %1" +msgstr "" + +#: services/kservice.cpp:1027 +msgid "The provided service is not valid" +msgstr "" + +#: services/kservice.cpp:1031 +#, kde-format +msgid "The service '%1' provides no library or the Library key is missing" +msgstr "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/po/zh_CN/kservice5.po new/kservice-5.3.0/po/zh_CN/kservice5.po --- old/kservice-5.2.0/po/zh_CN/kservice5.po 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/po/zh_CN/kservice5.po 2014-10-04 19:11:46.000000000 +0200 @@ -10,14 +10,15 @@ # Feng Chao <chaofeng111@gmail.com>, 2010, 2012, 2014. # Ni Hui <shuizhuyuanluo@126.com>, 2010, 2011, 2012. # Weng Xuetian <wengxt@gmail.com>, 2011, 2012, 2013. +# Xuetian Weng <xweng@cs.stonybrook.edu>, 2014. msgid "" msgstr "" "Project-Id-Version: kdelibs4\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2014-08-03 08:17+0000\n" -"PO-Revision-Date: 2014-03-13 21:01+0800\n" -"Last-Translator: Feng Chao <chaofeng111@gmail.com>\n" -"Language-Team: Chinese Simplified <kde-china@kde.org>\n" +"PO-Revision-Date: 2014-09-25 18:31-0400\n" +"Last-Translator: Xuetian Weng <xweng@cs.stonybrook.edu>\n" +"Language-Team: Chinese Simplified <kde-i18n-doc@kde.org>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -34,92 +35,66 @@ msgstr "kde-china@kde.org, chaofeng111@gmail.com" #: kbuildsycoca/kbuildsycoca.cpp:617 -#, fuzzy -#| msgid "KBuildSycoca" msgctxt "application name" msgid "KBuildSycoca" msgstr "KBuildSycoca" #: kbuildsycoca/kbuildsycoca.cpp:619 -#, fuzzy -#| msgid "Rebuilds the system configuration cache." msgctxt "application description" msgid "Rebuilds the system configuration cache." msgstr "重建系统配置缓存。" #: kbuildsycoca/kbuildsycoca.cpp:621 -#, fuzzy -#| msgid "(c) 1999-2002 KDE Developers" msgctxt "@info:credit" msgid "Copyright 1999-2014 KDE Developers" -msgstr "(c) 1999-2002 KDE 开发人员" +msgstr "版权所有 1999-2014 KDE 开发者" #: kbuildsycoca/kbuildsycoca.cpp:622 -#, fuzzy -#| msgid "David Faure" msgctxt "@info:credit" msgid "David Faure" msgstr "David Faure" #: kbuildsycoca/kbuildsycoca.cpp:623 kbuildsycoca/kbuildsycoca.cpp:626 -#, fuzzy -#| msgid "Author" msgctxt "@info:credit" msgid "Author" msgstr "作者" #: kbuildsycoca/kbuildsycoca.cpp:625 -#, fuzzy -#| msgid "Waldo Bastian" msgctxt "@info:credit" msgid "Waldo Bastian" msgstr "Waldo Bastian" #: kbuildsycoca/kbuildsycoca.cpp:636 -#, fuzzy -#| msgid "Do not signal applications to update" msgctxt "@info:shell command-line option" msgid "Do not signal applications to update" msgstr "不请求应用程序进行更新" #: kbuildsycoca/kbuildsycoca.cpp:639 -#, fuzzy -#| msgid "Disable incremental update, re-read everything" msgctxt "@info:shell command-line option" msgid "Disable incremental update, re-read everything" msgstr "禁用增量更新,重新读取全部数据" #: kbuildsycoca/kbuildsycoca.cpp:642 -#, fuzzy -#| msgid "Check file timestamps" msgctxt "@info:shell command-line option" msgid "Check file timestamps" msgstr "检查文件时间戳" #: kbuildsycoca/kbuildsycoca.cpp:645 -#, fuzzy -#| msgid "Disable checking files (dangerous)" msgctxt "@info:shell command-line option" msgid "Disable checking files (dangerous)" msgstr "禁用文件检查(危险)" #: kbuildsycoca/kbuildsycoca.cpp:648 -#, fuzzy -#| msgid "Create global database" msgctxt "@info:shell command-line option" msgid "Create global database" msgstr "创建全局数据库" #: kbuildsycoca/kbuildsycoca.cpp:651 -#, fuzzy -#| msgid "Perform menu generation test run only" msgctxt "@info:shell command-line option" msgid "Perform menu generation test run only" msgstr "只执行菜单创建测试" #: kbuildsycoca/kbuildsycoca.cpp:654 -#, fuzzy -#| msgid "Track menu id for debug purposes" msgctxt "@info:shell command-line option" msgid "Track menu id for debug purposes" msgstr "跟踪菜单 ID 以进行调试" @@ -127,7 +102,7 @@ #: kbuildsycoca/kbuildsycoca.cpp:658 msgctxt "@info:shell command-line option" msgid "Switch QStandardPaths to test mode, for unit tests only" -msgstr "" +msgstr "切换 QStandardPaths 到测试模式,仅用于单元测试" #: kdeinit/ktoolinvocation.cpp:66 msgid "Function must be called from the main thread." @@ -200,7 +175,7 @@ #: plugin/kdbusservicestarter.cpp:77 #, kde-format msgid "No service implementing %1" -msgstr "" +msgstr "没有实现 %1 的服务" #: services/kservice.cpp:1027 msgid "The provided service is not valid" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/src/services/application.desktop new/kservice-5.3.0/src/services/application.desktop --- old/kservice-5.2.0/src/services/application.desktop 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/src/services/application.desktop 2014-10-04 19:11:46.000000000 +0200 @@ -62,6 +62,7 @@ Name[ne]=अनुप्रयोग Name[nl]=Toepassing Name[nn]=Program +Name[oc]=Aplicacion Name[or]=ପ୍ରୟୋଗ Name[pa]=ਐਪਲੀਕੇਸ਼ਨ Name[pl]=Program diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/src/services/kplugininfo.cpp new/kservice-5.3.0/src/services/kplugininfo.cpp --- old/kservice-5.2.0/src/services/kplugininfo.cpp 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/src/services/kplugininfo.cpp 2014-10-04 19:11:46.000000000 +0200 @@ -19,15 +19,19 @@ */ #include "kplugininfo.h" -#include <kservicetypetrader.h> -#include <kdesktopfile.h> -#include <kservice.h> + #include <QList> #include <QDebug> #include <QDirIterator> +#include <QJsonArray> +#include <QStandardPaths> + +#include <kaboutdata.h> #include <kconfiggroup.h> -#include <qstandardpaths.h> -#include <qdebug.h> +#include <kdesktopfile.h> +#include <kpluginmetadata.h> +#include <kservice.h> +#include <kservicetypetrader.h> //#ifndef NDEBUG #define KPLUGININFO_ISVALID_ASSERTION \ @@ -44,6 +48,7 @@ static const char s_nameKey[] = "Name"; static const char s_commentKey[] = "Comment"; static const char s_iconKey[] = "Icon"; +static const char s_libraryKey[] = "X-KDE-Library"; static const char s_authorKey[] = "X-KDE-PluginInfo-Author"; static const char s_emailKey[] = "X-KDE-PluginInfo-Email"; static const char s_pluginNameKey[] = "X-KDE-PluginInfo-Name"; @@ -86,9 +91,14 @@ { KDesktopFile file(/*resource,*/ filename); - d->entryPath = filename; - KConfigGroup cg = file.desktopGroup(); + if (!cg.exists()) { + qWarning() << filename << "has no desktop group, cannot construct a KPluginInfo object from it."; + d.reset(); + return; + } + d->entryPath = file.fileName(); + d->hidden = cg.readEntry(s_hiddenKey, false); if (d->hidden) { return; @@ -104,9 +114,12 @@ d->metaData.insert(s_websiteKey, cg.readEntryUntranslated(s_websiteKey)); d->metaData.insert(s_categoryKey, cg.readEntryUntranslated(s_categoryKey)); d->metaData.insert(s_licenseKey, cg.readEntryUntranslated(s_licenseKey)); - d->metaData.insert(s_dependenciesKey, cg.readEntryUntranslated(s_dependenciesKey)); + d->metaData.insert(s_dependenciesKey, cg.readEntry(s_dependenciesKey, QStringList())); d->metaData.insert(s_enabledbyDefaultKey, cg.readEntryUntranslated(s_enabledbyDefaultKey)); + d->metaData.insert(s_serviceTypesKey, cg.readEntryUntranslated(s_serviceTypesKey)); + d->metaData.insert(s_xKDEServiceTypes, cg.readEntryUntranslated(s_xKDEServiceTypes)); d->enabledbydefault = cg.readEntry(s_enabledbyDefaultKey, false); + d->libraryPath = cg.readEntry(s_libraryKey); } KPluginInfo::KPluginInfo(const QVariantList &args, const QString &libraryPath) @@ -143,6 +156,7 @@ } d->service = service; d->entryPath = service->entryPath(); + d->libraryPath = service->library(); if (service->isDeleted()) { d->hidden = true; @@ -160,6 +174,7 @@ d->metaData.insert(s_categoryKey, service->property(s_categoryKey)); d->metaData.insert(s_licenseKey, service->property(s_licenseKey)); d->metaData.insert(s_dependenciesKey, service->property(s_dependenciesKey)); + d->metaData.insert(s_xKDEServiceTypes, service->serviceTypes()); QVariant tmp = service->property(s_enabledbyDefaultKey); d->metaData.insert(s_enabledbyDefaultKey, tmp.toBool()); d->enabledbydefault = d->metaData.value(s_enabledbyDefaultKey).toBool(); @@ -425,6 +440,11 @@ return d->metaData.value(key); } +QVariantMap KPluginInfo::properties() const +{ + return d->metaData; +} + void KPluginInfo::save(KConfigGroup config) { KPLUGININFO_ISVALID_ASSERTION; @@ -466,5 +486,95 @@ return qHash(reinterpret_cast<quint64>(p.d.data())); } -#undef KPLUGININFO_ISVALID_ASSERTION +KPluginInfo KPluginInfo::fromMetaData(const KPluginMetaData &md) +{ + QVariantMap metaData = md.rawData().toVariantMap(); + const QList<KAboutPerson> &authors = md.authors(); + if (!authors.isEmpty()) { + metaData[s_authorKey] = authors[0].name(); + metaData[s_emailKey] = authors[0].emailAddress(); + } + metaData[s_categoryKey] = md.category(); + metaData[s_commentKey] = md.description(); + metaData[s_dependenciesKey] = md.dependencies(); + metaData[s_enabledbyDefaultKey] = md.isEnabledByDefault(); + metaData[s_iconKey] = md.iconName(); + metaData[s_licenseKey] = md.license(); + metaData[s_nameKey] = md.name(); + metaData[s_pluginNameKey] = md.pluginId(); + metaData[s_xKDEServiceTypes] = md.serviceTypes(); + metaData[s_versionKey] = md.version(); + metaData[s_websiteKey] = md.website(); + QVariantMap result; + result[QStringLiteral("MetaData")] = metaData; + return KPluginInfo(QVariantList() << result, md.fileName()); +} + +KPluginMetaData KPluginInfo::toMetaData() const +{ + KPLUGININFO_ISVALID_ASSERTION; + QJsonObject metadata = QJsonObject::fromVariantMap(d->metaData); + QJsonObject kplugin; + /* Metadata structure is as follows: + "KPlugin": { + "Name": "Date and Time", + "Description": "Date and time by timezone", + "Icon": "preferences-system-time", + "Authors": { "Name": "Aaron Seigo", "Email": "aseigo@kde.org" }, + "Category": "Date and Time", + "Dependencies": [], + "EnabledByDefault": "true", + "License": "LGPL", + "Id": "time", + "Version": "1.0", + "Website": "http://plasma.kde.org/", + "ServiceTypes": ["Plasma/DataEngine"] + } + */ + const QString nameStr = QStringLiteral("Name"); + kplugin[nameStr] = name(); + kplugin[QStringLiteral("Description")] = comment(); + kplugin[QStringLiteral("Icon")] = icon(); + QJsonObject authors; + authors[nameStr] = author(); + authors[QStringLiteral("Email")] = email(); + kplugin[QStringLiteral("Authors")] = authors; + kplugin[QStringLiteral("Category")] = category(); + kplugin[QStringLiteral("Dependencies")] = QJsonArray::fromStringList(dependencies()); + kplugin[QStringLiteral("EnabledByDefault")] = isPluginEnabledByDefault(); + kplugin[QStringLiteral("License")] = license(); + kplugin[QStringLiteral("Id")] = pluginName(); + kplugin[QStringLiteral("Version")] = version(); + kplugin[QStringLiteral("Website")] = website(); + kplugin[QStringLiteral("ServiceTypes")] = QJsonArray::fromStringList(serviceTypes()); + metadata[QStringLiteral("KPlugin")] = kplugin; + return KPluginMetaData(metadata, d->libraryPath); +} + +KPluginMetaData KPluginInfo::toMetaData(const KPluginInfo& info) +{ + return info.toMetaData(); +} + +KPluginInfo::List KPluginInfo::fromMetaData(const QVector<KPluginMetaData> &list) +{ + KPluginInfo::List ret; + ret.reserve(list.size()); + foreach(const KPluginMetaData &md, list) { + ret.append(KPluginInfo::fromMetaData(md)); + } + return ret; +} + +QVector<KPluginMetaData> KPluginInfo::toMetaData(const KPluginInfo::List &list) +{ + QVector<KPluginMetaData> ret; + ret.reserve(list.size()); + foreach(const KPluginInfo &info, list) { + ret.append(info.toMetaData()); + } + return ret; +} + +#undef KPLUGININFO_ISVALID_ASSERTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-5.2.0/src/services/kplugininfo.h new/kservice-5.3.0/src/services/kplugininfo.h --- old/kservice-5.2.0/src/services/kplugininfo.h 2014-09-09 02:35:54.000000000 +0200 +++ new/kservice-5.3.0/src/services/kplugininfo.h 2014-10-04 19:11:46.000000000 +0200 @@ -29,6 +29,7 @@ #include <kservice.h> #include <QtCore/QList> +class KPluginMetaData; class KPluginInfoPrivate; /** @@ -123,7 +124,7 @@ * Use (Q|K)PluginLoader and build the metadata into the plugin using * K_PLUGIN_FACTORY_WITH_JSON( ..., "mypluginmetadata.json", ...) * - * You can use the "kconfigtojson tool to generate a .json file from your .desktop file. + * You can use the "desktoptojson tool to generate a .json file from your .desktop file. * The .json file should look like this: * * \verbatim @@ -237,6 +238,13 @@ QVariant property(const QString &key) const; /** + * @return All properties of this object. This can be used to read custom values. + * @since 5.3 + * @see KPluginInfo::property() + */ + QVariantMap properties() const; + + /** * @return The user visible name of the plugin. */ QString name() const; @@ -416,6 +424,40 @@ friend class KPluginTrader; + /** + * @return a KPluginMetaData object with equivalent meta data. + * @since 5.3 + */ + KPluginMetaData toMetaData() const; + + /** + * @param info the KPluginInfo object to convert + * @return a KPluginMetaData object with equivalent meta data. + * @since 5.3 + */ + static KPluginMetaData toMetaData(const KPluginInfo &info); + + /** + * @param meta the KPluginMetaData to convert + * @return a KPluginInfo object with equivalent meta data. + * @since 5.3 + */ + static KPluginInfo fromMetaData(const KPluginMetaData &meta); + + /** + * @param list the list of KPluginInfo objects to convert + * @return a list of KPluginMetaData objects with equivalent meta data. + * @since 5.3 + */ + static QVector<KPluginMetaData> toMetaData(const KPluginInfo::List &list); + + /** + * @param list the list of KPluginMetaData objects to convert + * @return a list of KPluginInfo objects with equivalent meta data. + * @since 5.3 + */ + static KPluginInfo::List fromMetaData(const QVector<KPluginMetaData> &list); + private: friend KSERVICE_EXPORT uint qHash(const KPluginInfo &); QExplicitlySharedDataPointer<KPluginInfoPrivate> d; -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de