From db3e3dab31d59d3596dfe7c22916d426ebed55e3 Mon Sep 17 00:00:00 2001 From: Bill Bonney Date: Fri, 12 Jul 2013 17:36:57 -0700 Subject: [PATCH] Fixed APM Tool Bar connect button not changing images when connected --- qml/ApmToolBar.qml | 35 +++++++++++++++++++++++------------ src/ui/apmtoolbar.cpp | 13 ++++++++++--- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/qml/ApmToolBar.qml b/qml/ApmToolBar.qml index 21cc0fd3d..fed71697a 100644 --- a/qml/ApmToolBar.qml +++ b/qml/ApmToolBar.qml @@ -8,26 +8,37 @@ Rectangle { property alias backgroundColor : toolbar.color property alias linkNameLabel: linkDevice.label property alias baudrateLabel: baudrate.label + property bool connected: false width: 1024 < parent.width ? 1024 : parent.width height: 72 color: "black" border.color: "black" - Connections { - target: globalObj - onMAVConnected: { - console.log("Change Connection " + connected) - if (connect){ - console.log("connected") - // connectButton.image = "./resources/apmplanner/toolbar/disconnect.png" - } else { - console.log("disconnected") - // connectButton.image = "./resources/apmplanner/toolbar/connect.png" - } - } + onConnectedChanged: { + if (connected){ + console.log("APM Tool BAR QML: connected") + connectButton.image = "./resources/apmplanner/toolbar/disconnect.png" + } else { + console.log("APM Tool BAR QML: disconnected") + connectButton.image = "./resources/apmplanner/toolbar/connect.png" + } } +// Connections { +// target: globalObj +// onMAVConnected: { +// console.log("QML Change Connection " + connected) +// if (connected){ +// console.log("connected") +// connectButton.image = "./resources/apmplanner/toolbar/disconnect.png" +// } else { +// console.log("disconnected") +// connectButton.image = "./resources/apmplanner/toolbar/connect.png" +// } +// } +// } + Row { anchors.left: parent.left spacing: 2 diff --git a/src/ui/apmtoolbar.cpp b/src/ui/apmtoolbar.cpp index 6ed411e7d..ff9a94419 100644 --- a/src/ui/apmtoolbar.cpp +++ b/src/ui/apmtoolbar.cpp @@ -10,16 +10,18 @@ APMToolBar::APMToolBar(QWidget *parent): QDeclarativeView(parent) { // Configure our QML object - this->rootContext()->setContextProperty("globalObj", this); setSource(QUrl::fromLocalFile("qml/ApmToolBar.qml")); setResizeMode(QDeclarativeView::SizeRootObjectToView); - + this->rootContext()->setContextProperty("globalObj", this); connect(LinkManager::instance(),SIGNAL(newLink(LinkInterface*)), this, SLOT(updateLinkDisplay(LinkInterface*))); if (LinkManager::instance()->getLinks().count()>=3) { updateLinkDisplay(LinkManager::instance()->getLinks().last()); } + + QObject *object = rootObject(); + object->setProperty("connected", false); } void APMToolBar::setFlightViewAction(QAction *action) @@ -111,6 +113,11 @@ void APMToolBar::connectMAV() result = !LinkManager::instance()->getLinks().last()->disconnect(); } qDebug() << "result = " << result; + + // Change the image to represent the state + QObject *object = rootObject(); + object->setProperty("connected", result); + emit MAVConnected(result); } @@ -147,7 +154,7 @@ void APMToolBar::updateLinkDisplay(LinkInterface* newLink) qDebug() << "APMToolBar: updateLinkDisplay"; QObject *object = rootObject(); - if (newLink){ + if (newLink && object){ qint64 baudrate = newLink->getNominalDataRate(); object->setProperty("baudrateLabel", QString::number(baudrate)); -- 2.22.0