Hello community, here is the log from the commit of package bluez-qt for openSUSE:Factory checked in at 2015-07-14 17:21:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bluez-qt (Old) and /work/SRC/openSUSE:Factory/.bluez-qt.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bluez-qt" Changes: -------- --- /work/SRC/openSUSE:Factory/bluez-qt/bluez-qt.changes 2015-06-23 12:05:26.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.bluez-qt.new/bluez-qt.changes 2015-07-14 17:21:20.000000000 +0200 @@ -1,0 +2,10 @@ +Sun Jul 5 18:44:43 UTC 2015 - [email protected] + +- Update to 5.12.0 + * Remove all devices from adapter before removing the adapter + (kde#349363) + * Update links in README.md + * For more details please see: + https://www.kde.org/announcements/kde-frameworks-5.12.0.php + +------------------------------------------------------------------- Old: ---- bluez-qt-5.11.0.tar.xz New: ---- bluez-qt-5.12.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bluez-qt.spec ++++++ --- /var/tmp/diff_new_pack.VxLr29/_old 2015-07-14 17:21:21.000000000 +0200 +++ /var/tmp/diff_new_pack.VxLr29/_new 2015-07-14 17:21:21.000000000 +0200 @@ -18,9 +18,9 @@ %define sonum 6 %define _libname KF5BluezQt -%define _tar_path 5.11 +%define _tar_path 5.12 Name: bluez-qt -Version: 5.11.0 +Version: 5.12.0 Release: 0 Summary: Async Bluez wrapper library License: LGPL-2.1+ ++++++ bluez-qt-5.11.0.tar.xz -> bluez-qt-5.12.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.11.0/CMakeLists.txt new/bluez-qt-5.12.0/CMakeLists.txt --- old/bluez-qt-5.11.0/CMakeLists.txt 2015-06-06 11:21:38.000000000 +0200 +++ new/bluez-qt-5.12.0/CMakeLists.txt 2015-07-04 22:28:30.000000000 +0200 @@ -3,7 +3,7 @@ project(BluezQt) include(FeatureSummary) -find_package(ECM 5.11.0 NO_MODULE) +find_package(ECM 5.12.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) @@ -18,7 +18,7 @@ include(KDEFrameworkCompilerSettings) include(KDECMakeSettings) -set(KF5_VERSION "5.11.0") # handled by release scripts +set(KF5_VERSION "5.12.0") # handled by release scripts ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX BLUEZQT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.11.0/README.md new/bluez-qt-5.12.0/README.md --- old/bluez-qt-5.11.0/README.md 2015-06-06 11:21:38.000000000 +0200 +++ new/bluez-qt-5.12.0/README.md 2015-07-04 22:28:30.000000000 +0200 @@ -16,6 +16,7 @@ ## Links -- Mailing list: <https://mail.kde.org/mailman/listinfo/kde-hardware-devel> -- IRC channel: \#solid on Freenode -- Git repository: <https://projects.kde.org/projects/kde/workspace/bluez-qt/repository> +- Home page: <https://projects.kde.org/projects/frameworks/bluez-qt> +- Mailing list: <https://mail.kde.org/mailman/listinfo/kde-frameworks-devel> +- IRC channel: \#kde-devel and \#solid on Freenode +- Git repository: <https://projects.kde.org/projects/frameworks/bluez-qt/repository> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.11.0/autotests/managertest.cpp new/bluez-qt-5.12.0/autotests/managertest.cpp --- old/bluez-qt-5.11.0/autotests/managertest.cpp 2015-06-06 11:21:38.000000000 +0200 +++ new/bluez-qt-5.12.0/autotests/managertest.cpp 2015-07-04 22:28:30.000000000 +0200 @@ -44,7 +44,7 @@ Autotests::registerMetatypes(); } -void ManagerTest::cleanupTestCase() +void ManagerTest::cleanup() { FakeBluez::stop(); } @@ -345,10 +345,70 @@ FakeBluez::runAction(QStringLiteral("devicemanager"), QStringLiteral("change-adapter-property"), properties); QTRY_COMPARE(adapter1Spy.count(), 2); - QVERIFY(manager->deviceForAddress(address)); delete manager; } + +void ManagerTest::adapterWithDevicesRemovedTest() +{ + // tests whether the devices are always removed from the adapter before removing adapter + + FakeBluez::start(); + FakeBluez::runTest(QStringLiteral("bluez-standard")); + + // Create adapters + QDBusObjectPath adapter1path = QDBusObjectPath(QStringLiteral("/org/bluez/hci0")); + QVariantMap adapterProps; + adapterProps[QStringLiteral("Path")] = QVariant::fromValue(adapter1path); + adapterProps[QStringLiteral("Address")] = QStringLiteral("1C:E5:C3:BC:94:7E"); + adapterProps[QStringLiteral("Name")] = QStringLiteral("TestAdapter"); + adapterProps[QStringLiteral("Powered")] = false; + FakeBluez::runAction(QStringLiteral("devicemanager"), QStringLiteral("create-adapter"), adapterProps); + + // Create devices + QVariantMap deviceProps; + deviceProps[QStringLiteral("Path")] = QVariant::fromValue(QDBusObjectPath("/org/bluez/hci0/dev_40_79_6A_0C_39_75")); + deviceProps[QStringLiteral("Adapter")] = QVariant::fromValue(adapter1path); + deviceProps[QStringLiteral("Address")] = QStringLiteral("40:79:6A:0C:39:75"); + deviceProps[QStringLiteral("Name")] = QStringLiteral("TestDevice"); + FakeBluez::runAction(QStringLiteral("devicemanager"), QStringLiteral("create-device"), deviceProps); + + deviceProps[QStringLiteral("Path")] = QVariant::fromValue(QDBusObjectPath("/org/bluez/hci0/dev_50_79_6A_0C_39_75")); + deviceProps[QStringLiteral("Adapter")] = QVariant::fromValue(adapter1path); + deviceProps[QStringLiteral("Address")] = QStringLiteral("50:79:6A:0C:39:75"); + deviceProps[QStringLiteral("Name")] = QStringLiteral("TestDevice2"); + FakeBluez::runAction(QStringLiteral("devicemanager"), QStringLiteral("create-device"), deviceProps); + + Manager *manager = new Manager; + + InitManagerJob *job = manager->init(); + job->exec(); + + QVERIFY(!job->error()); + + AdapterPtr adapter = manager->adapterForAddress(QStringLiteral("1C:E5:C3:BC:94:7E")); + DevicePtr device1 = manager->deviceForAddress(QStringLiteral("40:79:6A:0C:39:75")); + DevicePtr device2 = manager->deviceForAddress(QStringLiteral("50:79:6A:0C:39:75")); + + QVERIFY(adapter); + QVERIFY(device1); + QVERIFY(device2); + + QSignalSpy adapterRemovedSpy(manager, SIGNAL(adapterRemoved(AdapterPtr))); + QSignalSpy deviceRemovedSpy(manager, SIGNAL(deviceRemoved(DevicePtr))); + + QVariantMap properties; + properties[QStringLiteral("Path")] = QVariant::fromValue(adapter1path); + FakeBluez::runAction(QStringLiteral("devicemanager"), QStringLiteral("remove-adapter"), properties); + + QTRY_COMPARE(adapterRemovedSpy.count(), 1); + QTRY_COMPARE(deviceRemovedSpy.count(), 2); + QCOMPARE(manager->adapters().count(), 0); + QCOMPARE(manager->devices().count(), 0); + QCOMPARE(adapter->devices().count(), 0); + + delete manager; +} QTEST_MAIN(ManagerTest) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.11.0/autotests/managertest.h new/bluez-qt-5.12.0/autotests/managertest.h --- old/bluez-qt-5.11.0/autotests/managertest.h 2015-06-06 11:21:38.000000000 +0200 +++ new/bluez-qt-5.12.0/autotests/managertest.h 2015-07-04 22:28:30.000000000 +0200 @@ -29,7 +29,7 @@ private Q_SLOTS: void initTestCase(); - void cleanupTestCase(); + void cleanup(); void bluezNotRunningTest(); void bluezNotExportingInterfacesTest(); @@ -39,6 +39,7 @@ void usableAdapterTest(); void deviceForAddressTest(); + void adapterWithDevicesRemovedTest(); }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.11.0/autotests/qml/tst_manager.qml new/bluez-qt-5.12.0/autotests/qml/tst_manager.qml --- old/bluez-qt-5.11.0/autotests/qml/tst_manager.qml 2015-06-06 11:21:38.000000000 +0200 +++ new/bluez-qt-5.12.0/autotests/qml/tst_manager.qml 2015-07-04 22:28:30.000000000 +0200 @@ -130,5 +130,75 @@ tryCompare(usableAdapterChangedSpy, "count", 1); compare(manager.usableAdapter.ubi, adapter2path); } + + SignalSpy { + id: managerAdapterRemovedSpy + signalName: "adapterRemoved" + } + + SignalSpy { + id: managerDeviceRemovedSpy + signalName: "deviceRemoved" + } + + function test_adapterWithDevicesRemoved() + { + FakeBluez.start(); + FakeBluez.runTest("bluez-standard"); + + var adapter1path = "/org/bluez/hci0"; + var adapterProps = { + Path: adapter1path, + Address: "1C:E5:C3:BC:94:7E", + Name: "TestAdapter", + Powered: false, + _toDBusObjectPath: [ "Path" ] + } + FakeBluez.runAction("devicemanager", "create-adapter", adapterProps); + + var device1props = { + Path: "/org/bluez/hci0/dev_40_79_6A_0C_39_75", + Adapter: adapter1path, + Address: "40:79:6A:0C:39:75", + Name: "TestDevice", + _toDBusObjectPath: [ "Path", "Adapter" ] + } + FakeBluez.runAction("devicemanager", "create-device", device1props); + + var device2props = { + Path: "/org/bluez/hci0/dev_50_79_6A_0C_39_75", + Adapter: adapter1path, + Address: "50:79:6A:0C:39:75", + Name: "TestDevice2", + _toDBusObjectPath: [ "Path", "Adapter" ] + } + FakeBluez.runAction("devicemanager", "create-device", device2props); + + var manager = BluezQt.Manager; + + tryCompare(manager, "operational", true); + + var adapter = manager.adapterForAddress("1C:E5:C3:BC:94:7E"); + var device1 = manager.deviceForAddress("40:79:6A:0C:39:75"); + var device2 = manager.deviceForAddress("50:79:6A:0C:39:75"); + + verify(adapter); + verify(device1); + verify(device2); + + managerAdapterRemovedSpy.target = manager; + managerDeviceRemovedSpy.target = manager; + + var properties = { + Path: adapter1path, + _toDBusObjectPath: [ "Path" ] + } + FakeBluez.runAction("devicemanager", "remove-adapter", properties); + + tryCompare(managerAdapterRemovedSpy, "count", 1); + tryCompare(managerDeviceRemovedSpy, "count", 2); + compare(manager.adapters.length, 0); + compare(manager.devices.length, 0); + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.11.0/src/device_p.h new/bluez-qt-5.12.0/src/device_p.h --- old/bluez-qt-5.11.0/src/device_p.h 2015-06-06 11:21:38.000000000 +0200 +++ new/bluez-qt-5.12.0/src/device_p.h 2015-07-04 22:28:30.000000000 +0200 @@ -49,11 +49,6 @@ void interfacesAdded(const QString &path, const QVariantMapMap &interfaces); void interfacesRemoved(const QString &path, const QStringList &interfaces); - void addInput(InputPtr input); - void addMediaPlayer(MediaPlayerPtr player); - void removeInput(); - void removeMediaPlayer(); - QDBusPendingReply<> setDBusProperty(const QString &name, const QVariant &value); void propertiesChanged(const QString &interface, const QVariantMap &changed, const QStringList &invalidated); void namePropertyChanged(const QString &value); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.11.0/src/devicesmodel.h new/bluez-qt-5.12.0/src/devicesmodel.h --- old/bluez-qt-5.11.0/src/devicesmodel.h 2015-06-06 11:21:38.000000000 +0200 +++ new/bluez-qt-5.12.0/src/devicesmodel.h 2015-07-04 22:28:30.000000000 +0200 @@ -72,7 +72,7 @@ RemoteNameRole = Qt::UserRole + 104, /** Class of the device (quint32) */ ClassRole = Qt::UserRole + 105, - /** Type of the device (DeviceType) */ + /** Type of the device (Device::Type) */ TypeRole = Qt::UserRole + 106, /** Appearance of the device (quint16) */ AppearanceRole = Qt::UserRole + 107, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bluez-qt-5.11.0/src/manager_p.cpp new/bluez-qt-5.12.0/src/manager_p.cpp --- old/bluez-qt-5.11.0/src/manager_p.cpp 2015-06-06 11:21:38.000000000 +0200 +++ new/bluez-qt-5.12.0/src/manager_p.cpp 2015-07-04 22:28:30.000000000 +0200 @@ -361,11 +361,17 @@ void ManagerPrivate::removeAdapter(const QString &adapterPath) { - AdapterPtr adapter = m_adapters.take(adapterPath); + AdapterPtr adapter = m_adapters.value(adapterPath); if (!adapter) { return; } + // Make sure we always remove all devices before removing the adapter + Q_FOREACH (DevicePtr device, adapter->devices()) { + removeDevice(device->ubi()); + } + + m_adapters.remove(adapterPath); Q_EMIT adapter->adapterRemoved(adapter); if (m_adapters.isEmpty()) {
