Browse Source

Fixed port to not auto-reset

QGC4.4
Lorenz Meier 12 years ago
parent
commit
7aa3ca2dcb
  1. 38
      src/ui/QGCToolBar.cc
  2. 7
      src/ui/QGCToolBar.h

38
src/ui/QGCToolBar.cc

@ -33,6 +33,7 @@ QGCToolBar::QGCToolBar(QWidget *parent) : @@ -33,6 +33,7 @@ QGCToolBar::QGCToolBar(QWidget *parent) :
QToolBar(parent),
mav(NULL),
userBaudChoice(false),
userPortChoice(false),
changed(true),
batteryPercent(0),
batteryVoltage(0),
@ -182,7 +183,7 @@ void QGCToolBar::createUI() @@ -182,7 +183,7 @@ void QGCToolBar::createUI()
baudcomboBox->setCurrentIndex(baudcomboBox->findData(57600));
addWidget(baudcomboBox);
connect(baudcomboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(baudSelected(int)));
connect(portComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(portSelected(int)));
connectButton = new QPushButton(tr("Connect"), this);
connectButton->setObjectName("connectButton");
@ -254,9 +255,16 @@ void QGCToolBar::resetToolbarUI() @@ -254,9 +255,16 @@ void QGCToolBar::resetToolbarUI()
void QGCToolBar::baudSelected(int index)
{
Q_UNUSED(index);
userBaudChoice = true;
}
void QGCToolBar::portSelected(int index)
{
Q_UNUSED(index);
userPortChoice = true;
}
void QGCToolBar::setPerspectiveChangeActions(const QList<QAction*> &actions)
{
if (actions.count() > 1)
@ -656,7 +664,6 @@ void QGCToolBar::removeLink(LinkInterface* link) @@ -656,7 +664,6 @@ void QGCToolBar::removeLink(LinkInterface* link)
}
void QGCToolBar::updateComboBox()
{
// portComboBox->clear();
if (currentLink)
{
SerialLink *slink = qobject_cast<SerialLink*>(currentLink);
@ -669,26 +676,31 @@ void QGCToolBar::updateComboBox() @@ -669,26 +676,31 @@ void QGCToolBar::updateComboBox()
}
}
if (slink->getPortName().trimmed().length() > 0)
{
portComboBox->setCurrentIndex(portComboBox->findData(slink->getPortName()));
portComboBox->setEditText(slink->getPortName());
}
else
{
if (portlist.length() > 0)
if (!userPortChoice) {
if (slink->getPortName().trimmed().length() > 0)
{
portComboBox->setEditText(portlist.last());
int portIndex = portComboBox->findData(slink->getPortName());
if (portIndex >= 0) {
portComboBox->setCurrentIndex(portIndex);
portComboBox->setEditText(slink->getPortName());
}
}
else
{
portComboBox->setEditText(tr("No serial port found"));
if (portlist.length() > 0)
{
portComboBox->setEditText(portlist.last());
}
else
{
portComboBox->setEditText(tr("No serial port found"));
}
}
}
if (!userBaudChoice) {
int index = baudcomboBox->findData(slink->getBaudRate());
if (index > 0)
if (index >= 0)
baudcomboBox->setCurrentIndex(index);
}
}

7
src/ui/QGCToolBar.h

@ -93,6 +93,12 @@ public slots: @@ -93,6 +93,12 @@ public slots:
*/
void baudSelected(int index);
/**
* @brief User selected port
* @param index The current index of the combo box
*/
void portSelected(int index);
protected:
void storeSettings();
void loadSettings();
@ -117,6 +123,7 @@ protected: @@ -117,6 +123,7 @@ protected:
QComboBox *baudcomboBox;
QTimer portBoxTimer;
bool userBaudChoice;
bool userPortChoice;
bool changed;
float batteryPercent;
float batteryVoltage;

Loading…
Cancel
Save