From f881b118b6109a36cc500fc949ee0a66688b7716 Mon Sep 17 00:00:00 2001 From: Roland Winklmeier Date: Thu, 26 Jul 2018 17:28:16 +0200 Subject: [PATCH] Connect XSwiftBus signals manually in the proxy This way we can check the return value and make sure that it is properly connected. ref T291 --- .../simulator/xplane/xswiftbusserviceproxy.cpp | 14 +++++++++++++- .../simulator/xplane/xswiftbustrafficproxy.cpp | 16 +++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/plugins/simulator/xplane/xswiftbusserviceproxy.cpp b/src/plugins/simulator/xplane/xswiftbusserviceproxy.cpp index 36993dfc7..cc31ff76d 100644 --- a/src/plugins/simulator/xplane/xswiftbusserviceproxy.cpp +++ b/src/plugins/simulator/xplane/xswiftbusserviceproxy.cpp @@ -24,7 +24,19 @@ namespace BlackSimPlugin CXSwiftBusServiceProxy::CXSwiftBusServiceProxy(QDBusConnection &connection, QObject *parent, bool dummy) : QObject(parent) { m_dbusInterface = new BlackMisc::CGenericDBusInterface(XSWIFTBUS_SERVICE_SERVICENAME, ObjectPath(), InterfaceName(), connection, this); - if (!dummy) { m_dbusInterface->relayParentSignals(); } + if (!dummy) + { + bool s; + s = connection.connect(QString(), "/xswiftbus/service", "org.swift_project.xswiftbus.service", + "aircraftModelChanged", this, + SIGNAL(aircraftModelChanged(QString, QString, QString, QString, QString, QString, QString))); + Q_ASSERT(s); + + s = connection.connect(QString(), "/xswiftbus/service", "org.swift_project.xswiftbus.service", + "airportsInRangeUpdated", this, + SIGNAL(airportsInRangeUpdated(QStringList, QStringList, QList, QList, QList))); + Q_ASSERT(s); + } } void CXSwiftBusServiceProxy::getOwnAircraftSituationData(XPlaneData *o_xplaneData) diff --git a/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp b/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp index c1ba36846..6142bbc45 100644 --- a/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp +++ b/src/plugins/simulator/xplane/xswiftbustrafficproxy.cpp @@ -24,7 +24,21 @@ namespace BlackSimPlugin CXSwiftBusTrafficProxy::CXSwiftBusTrafficProxy(QDBusConnection &connection, QObject *parent, bool dummy) : QObject(parent) { m_dbusInterface = new BlackMisc::CGenericDBusInterface(XSWIFTBUS_SERVICENAME, ObjectPath(), InterfaceName(), connection, this); - if (!dummy) { m_dbusInterface->relayParentSignals(); } + if (!dummy) + { + bool s; + s = connection.connect(QString(), "/xswiftbus/traffic", "org.swift_project.xswiftbus.traffic", + "simFrame", this, SIGNAL(simFrame())); + Q_ASSERT(s); + + s = connection.connect(QString(), "/xswiftbus/traffic", "org.swift_project.xswiftbus.traffic", + "remoteAircraftAdded", this, SIGNAL(remoteAircraftAdded(QString))); + Q_ASSERT(s); + + s = connection.connect(QString(), "/xswiftbus/traffic", "org.swift_project.xswiftbus.traffic", + "remoteAircraftAddingFailed", this, SIGNAL(remoteAircraftAddingFailed(QString))); + Q_ASSERT(s); + } } bool CXSwiftBusTrafficProxy::initialize()