Browse Source

Fixed APM Tool Bar connect button not changing images when connected

QGC4.4
Bill Bonney 12 years ago
parent
commit
db3e3dab31
  1. 35
      qml/ApmToolBar.qml
  2. 13
      src/ui/apmtoolbar.cpp

35
qml/ApmToolBar.qml

@ -8,25 +8,36 @@ Rectangle {
property alias backgroundColor : toolbar.color property alias backgroundColor : toolbar.color
property alias linkNameLabel: linkDevice.label property alias linkNameLabel: linkDevice.label
property alias baudrateLabel: baudrate.label property alias baudrateLabel: baudrate.label
property bool connected: false
width: 1024 < parent.width ? 1024 : parent.width width: 1024 < parent.width ? 1024 : parent.width
height: 72 height: 72
color: "black" color: "black"
border.color: "black" border.color: "black"
Connections { onConnectedChanged: {
target: globalObj if (connected){
onMAVConnected: { console.log("APM Tool BAR QML: connected")
console.log("Change Connection " + connected) connectButton.image = "./resources/apmplanner/toolbar/disconnect.png"
if (connect){
console.log("connected")
// connectButton.image = "./resources/apmplanner/toolbar/disconnect.png"
} else { } else {
console.log("disconnected") console.log("APM Tool BAR QML: disconnected")
// connectButton.image = "./resources/apmplanner/toolbar/connect.png" 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 { Row {
anchors.left: parent.left anchors.left: parent.left

13
src/ui/apmtoolbar.cpp

@ -10,16 +10,18 @@ APMToolBar::APMToolBar(QWidget *parent):
QDeclarativeView(parent) QDeclarativeView(parent)
{ {
// Configure our QML object // Configure our QML object
this->rootContext()->setContextProperty("globalObj", this);
setSource(QUrl::fromLocalFile("qml/ApmToolBar.qml")); setSource(QUrl::fromLocalFile("qml/ApmToolBar.qml"));
setResizeMode(QDeclarativeView::SizeRootObjectToView); setResizeMode(QDeclarativeView::SizeRootObjectToView);
this->rootContext()->setContextProperty("globalObj", this);
connect(LinkManager::instance(),SIGNAL(newLink(LinkInterface*)), connect(LinkManager::instance(),SIGNAL(newLink(LinkInterface*)),
this, SLOT(updateLinkDisplay(LinkInterface*))); this, SLOT(updateLinkDisplay(LinkInterface*)));
if (LinkManager::instance()->getLinks().count()>=3) { if (LinkManager::instance()->getLinks().count()>=3) {
updateLinkDisplay(LinkManager::instance()->getLinks().last()); updateLinkDisplay(LinkManager::instance()->getLinks().last());
} }
QObject *object = rootObject();
object->setProperty("connected", false);
} }
void APMToolBar::setFlightViewAction(QAction *action) void APMToolBar::setFlightViewAction(QAction *action)
@ -111,6 +113,11 @@ void APMToolBar::connectMAV()
result = !LinkManager::instance()->getLinks().last()->disconnect(); result = !LinkManager::instance()->getLinks().last()->disconnect();
} }
qDebug() << "result = " << result; qDebug() << "result = " << result;
// Change the image to represent the state
QObject *object = rootObject();
object->setProperty("connected", result);
emit MAVConnected(result); emit MAVConnected(result);
} }
@ -147,7 +154,7 @@ void APMToolBar::updateLinkDisplay(LinkInterface* newLink)
qDebug() << "APMToolBar: updateLinkDisplay"; qDebug() << "APMToolBar: updateLinkDisplay";
QObject *object = rootObject(); QObject *object = rootObject();
if (newLink){ if (newLink && object){
qint64 baudrate = newLink->getNominalDataRate(); qint64 baudrate = newLink->getNominalDataRate();
object->setProperty("baudrateLabel", QString::number(baudrate)); object->setProperty("baudrateLabel", QString::number(baudrate));

Loading…
Cancel
Save