Browse Source

Added periodic check for ports to QGC toolbar to not depend on port state on power up

QGC4.4
Lorenz Meier 12 years ago
parent
commit
402029725d
  1. 17
      src/ui/QGCToolBar.cc
  2. 4
      src/ui/QGCToolBar.h

17
src/ui/QGCToolBar.cc

@ -221,6 +221,9 @@ void QGCToolBar::createUI() @@ -221,6 +221,9 @@ void QGCToolBar::createUI()
loadSettings();
connect(&portBoxTimer, SIGNAL(timeout()), this, SLOT(updateComboBox()));
portBoxTimer.start(500);
changed = false;
}
@ -647,25 +650,29 @@ void QGCToolBar::removeLink(LinkInterface* link) @@ -647,25 +650,29 @@ void QGCToolBar::removeLink(LinkInterface* link)
}
void QGCToolBar::updateComboBox()
{
portComboBox->clear();
// portComboBox->clear();
if (currentLink)
{
SerialLink *slink = qobject_cast<SerialLink*>(currentLink);
QList<QString> portlist = slink->getCurrentPorts();
foreach(QString port, portlist) {
portComboBox->addItem(port, port);
foreach (QString port, portlist)
{
if (portComboBox->findText(port) == -1)
{
portComboBox->addItem(port, port);
}
}
portComboBox->setCurrentIndex(portComboBox->findData(slink->getPortName()));
if (slink->getPortName().trimmed().length() > 0)
{
portComboBox->setCurrentIndex(portComboBox->findData(slink->getPortName()));
portComboBox->setEditText(slink->getPortName());
}
else
{
if (portlist.length() > 0)
{
portComboBox->setEditText(portlist.first());
portComboBox->setEditText(portlist.last());
}
else
{

4
src/ui/QGCToolBar.h

@ -31,6 +31,7 @@ This file is part of the QGROUNDCONTROL project @@ -31,6 +31,7 @@ This file is part of the QGROUNDCONTROL project
#include <QLabel>
#include <QProgressBar>
#include <QComboBox>
#include <QTimer>
#include "UASInterface.h"
#include "QGCMAVLinkLogPlayer.h"
#include "SerialLink.h"
@ -84,13 +85,13 @@ public slots: @@ -84,13 +85,13 @@ public slots:
void clearStatusString();
/** @brief Set an activity action as checked in menu */
void advancedActivityTriggered(QAction* action);
void updateComboBox();
protected:
void storeSettings();
void loadSettings();
void createUI();
void resetToolbarUI();
void updateComboBox();
UASInterface* mav;
QLabel* symbolLabel;
QLabel* toolBarNameLabel;
@ -108,6 +109,7 @@ protected: @@ -108,6 +109,7 @@ protected:
QGCMAVLinkLogPlayer* player;
QComboBox *portComboBox;
QComboBox *baudcomboBox;
QTimer portBoxTimer;
bool changed;
float batteryPercent;
float batteryVoltage;

Loading…
Cancel
Save