+ icd2interface_ = new QDBusInterface(ICD_DBUS_API_INTERFACE,
+ ICD_DBUS_API_PATH, ICD_DBUS_API_INTERFACE,
+ systemBus, this);
+
+ systemBus.connect(ICD_DBUS_API_INTERFACE, ICD_DBUS_API_PATH,
+ ICD_DBUS_API_INTERFACE, ICD_DBUS_API_STATE_SIG,
+ this, SLOT(stateChange(const QDBusMessage&)));
+
+ systemBus.connect(ICD_DBUS_API_INTERFACE, ICD_DBUS_API_PATH,
+ ICD_DBUS_API_INTERFACE, ICD_DBUS_API_CONNECT_SIG,
+ this, SLOT(connectionChange(const QDBusMessage&)));
+
+ systemBus.connect(ICD_DBUS_API_INTERFACE, ICD_DBUS_API_PATH,
+ ICD_DBUS_API_INTERFACE, ICD_DBUS_API_SCAN_SIG,
+ this, SLOT(scanResult(const QDBusMessage&)));
+
+}
+
+ConnectionManager::~ConnectionManager()
+{
+ QDBusConnection systemBus = QDBusConnection::systemBus();
+
+ systemBus.disconnect(ICD_DBUS_API_INTERFACE, ICD_DBUS_API_PATH,
+ ICD_DBUS_API_INTERFACE, ICD_DBUS_API_STATE_SIG,
+ this, SLOT(stateChange(const QDBusMessage&)));
+
+ systemBus.disconnect(ICD_DBUS_API_INTERFACE, ICD_DBUS_API_PATH,
+ ICD_DBUS_API_INTERFACE, ICD_DBUS_API_CONNECT_SIG,
+ this, SLOT(connectionChange(const QDBusMessage&)));
+
+ systemBus.disconnect(ICD_DBUS_API_INTERFACE, ICD_DBUS_API_PATH,
+ ICD_DBUS_API_INTERFACE, ICD_DBUS_API_SCAN_SIG,
+ this, SLOT(scanResult(const QDBusMessage&)));
+}
+
+void ConnectionManager::setBlocking(bool value)
+{
+ blocking_ = value;
+}
+
+bool ConnectionManager::connect()
+{
+ connectionReady_ = false;
+ unsigned int flags = static_cast<unsigned int>(ICD_CONNECTION_FLAG_USER_EVENT);
+ icd2interface_->call(ICD_DBUS_API_CONNECT_REQ, QVariant(flags));
+
+ if(blocking_)