Hello community, here is the log from the commit of package libbluedevil for openSUSE:Factory checked in at 2012-05-08 06:45:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libbluedevil (Old) and /work/SRC/openSUSE:Factory/.libbluedevil.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libbluedevil", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/libbluedevil/libbluedevil.changes 2011-11-05 11:20:23.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libbluedevil.new/libbluedevil.changes 2012-05-08 06:45:59.000000000 +0200 @@ -1,0 +2,8 @@ +Tue May 1 10:36:55 UTC 2012 - [email protected] + +- Update to version 1.9.2 + * Fill properties with defaults in case that GetProperties is not valid (kde#288865) + * Print possible errors using qDebug and fix dbus handling + * When BlueZ service is unregistered, remove all adapters + +------------------------------------------------------------------- Old: ---- libbluedevil-1.9.1.tar.bz2 New: ---- libbluedevil-1.9.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libbluedevil.spec ++++++ --- /var/tmp/diff_new_pack.cNpaHn/_old 2012-05-08 06:46:00.000000000 +0200 +++ /var/tmp/diff_new_pack.cNpaHn/_new 2012-05-08 06:46:00.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package libbluedevil # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2010 Raymond Wooninck <[email protected]> # # All modifications and additions to the file contributed by third parties @@ -17,14 +17,13 @@ # - Name: libbluedevil -Version: 1.9.1 -Release: 1 -License: LGPL-2.0+ +Version: 1.9.2 +Release: 0 Summary: Qt Bluetooth client library -Url: http://www.kde.org +License: LGPL-2.0+ Group: System/Libraries +Url: http://www.kde.org Source0: ftp://ftp.kde.org/pub/kde/stable/libbluedevil/%{version}/src/%{name}-%{version}.tar.bz2 BuildRequires: cmake BuildRequires: kde4-filesystem ++++++ libbluedevil-1.9.1.tar.bz2 -> libbluedevil-1.9.2.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluedevil-1.9.1/.gitignore new/libbluedevil-1.9.2/.gitignore --- old/libbluedevil-1.9.1/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/libbluedevil-1.9.2/.gitignore 2012-04-26 05:28:30.000000000 +0200 @@ -0,0 +1,4 @@ +build +.kdev4 +libbluedevil.kdev4 +doc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluedevil-1.9.1/bluedevil/bluedevil.pc.in new/libbluedevil-1.9.2/bluedevil/bluedevil.pc.in --- old/libbluedevil-1.9.1/bluedevil/bluedevil.pc.in 2011-10-09 12:42:22.000000000 +0200 +++ new/libbluedevil-1.9.2/bluedevil/bluedevil.pc.in 2012-04-26 05:28:30.000000000 +0200 @@ -1,5 +1,5 @@ prefix=@CMAKE_INSTALL_PREFIX@ -libdir=@CMAKE_INSTALL_PREFIX@/lib +libdir=@LIB_INSTALL_DIR@ includedir=@CMAKE_INSTALL_PREFIX@/include Name: bluedevil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluedevil-1.9.1/bluedevil/bluedeviladapter.cpp new/libbluedevil-1.9.2/bluedevil/bluedeviladapter.cpp --- old/libbluedevil-1.9.1/bluedevil/bluedeviladapter.cpp 2011-10-09 12:42:22.000000000 +0200 +++ new/libbluedevil-1.9.2/bluedevil/bluedeviladapter.cpp 2012-04-26 05:28:30.000000000 +0200 @@ -41,6 +41,7 @@ ~Private(); void fetchProperties(); + void setDefaultProperties(); void startDiscovery(); void _k_deviceCreated(const QDBusObjectPath &objectPath); @@ -88,7 +89,19 @@ void Adapter::Private::fetchProperties() { - const QVariantMap properties = m_bluezAdapterInterface->GetProperties().value(); + QDBusPendingReply <QVariantMap > reply = m_bluezAdapterInterface->GetProperties(); + + //This may happen when the AdapterRemoved signal has been emitted but the adapter + //is still returned by Manager::defaultAdapter + reply.waitForFinished(); + if (!reply.isValid() || reply.isError()) { + qDebug() << reply.error().name(); + qDebug() << reply.error().message(); + setDefaultProperties(); + return; + } + + const QVariantMap properties = reply.value(); m_address = properties["Address"].toString(); m_name = properties["Name"].toString(); m_class = properties["Class"].toUInt(); @@ -106,6 +119,19 @@ m_propertiesFetched = true; } +void Adapter::Private::setDefaultProperties() +{ + m_address = QString(); + m_name = QString(); + m_class = 0; + m_powered = false; + m_discoverable = false; + m_pairable = false; + m_pairableTimeout = 0; + m_discoverableTimeout = 0; + m_discovering = false; +} + void Adapter::Private::startDiscovery() { qDeleteAll(m_devicesMap); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libbluedevil-1.9.1/bluedevil/bluedevilmanager.cpp new/libbluedevil-1.9.2/bluedevil/bluedevilmanager.cpp --- old/libbluedevil-1.9.1/bluedevil/bluedevilmanager.cpp 2011-10-09 12:42:22.000000000 +0200 +++ new/libbluedevil-1.9.2/bluedevil/bluedevilmanager.cpp 2012-04-26 05:28:30.000000000 +0200 @@ -135,6 +135,7 @@ void Manager::Private::_k_adapterAdded(const QDBusObjectPath &objectPath) { + qDebug() << "Added: " << objectPath.path(); Adapter *const adapter = new Adapter(objectPath.path(), m_q); m_adaptersHash.insert(objectPath.path(), adapter); if (!m_defaultAdapter) { @@ -152,6 +153,7 @@ void Manager::Private::_k_adapterRemoved(const QDBusObjectPath &objectPath) { + qDebug() << "Removed: " << objectPath.path(); Adapter *const adapter = m_adaptersHash.take(objectPath.path()); // return and remove it from the hash if (m_adaptersHash.isEmpty()) { m_defaultAdapter = 0; @@ -203,15 +205,21 @@ void Manager::Private::_k_bluezServiceUnregistered() { - m_bluezServiceRunning = false; - if (m_defaultAdapter) { - m_defaultAdapter = 0; - emit m_q->defaultAdapterChanged(0); - } - if (m_usableAdapter) { - m_usableAdapter = 0; - emit m_q->usableAdapterChanged(0); + QHashIterator<QString, Adapter*> i(m_adaptersHash); + while (i.hasNext()) { + i.next(); + Adapter *adapter = m_adaptersHash.take(i.key()); + emit m_q->adapterRemoved(adapter); + delete adapter; } + + m_usableAdapter = 0; + m_defaultAdapter = 0; + + emit m_q->usableAdapterChanged(0); + emit m_q->defaultAdapterChanged(0); + + m_bluezServiceRunning = false; } //////////////////////////////////////////////////////////////////////////////////////////////////// -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
