Commit 7aa3ca2d authored by Lorenz Meier's avatar Lorenz Meier

Fixed port to not auto-reset

parent 1665245a
...@@ -33,6 +33,7 @@ QGCToolBar::QGCToolBar(QWidget *parent) : ...@@ -33,6 +33,7 @@ QGCToolBar::QGCToolBar(QWidget *parent) :
QToolBar(parent), QToolBar(parent),
mav(NULL), mav(NULL),
userBaudChoice(false), userBaudChoice(false),
userPortChoice(false),
changed(true), changed(true),
batteryPercent(0), batteryPercent(0),
batteryVoltage(0), batteryVoltage(0),
...@@ -182,7 +183,7 @@ void QGCToolBar::createUI() ...@@ -182,7 +183,7 @@ void QGCToolBar::createUI()
baudcomboBox->setCurrentIndex(baudcomboBox->findData(57600)); baudcomboBox->setCurrentIndex(baudcomboBox->findData(57600));
addWidget(baudcomboBox); addWidget(baudcomboBox);
connect(baudcomboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(baudSelected(int))); 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 = new QPushButton(tr("Connect"), this);
connectButton->setObjectName("connectButton"); connectButton->setObjectName("connectButton");
...@@ -254,9 +255,16 @@ void QGCToolBar::resetToolbarUI() ...@@ -254,9 +255,16 @@ void QGCToolBar::resetToolbarUI()
void QGCToolBar::baudSelected(int index) void QGCToolBar::baudSelected(int index)
{ {
Q_UNUSED(index);
userBaudChoice = true; userBaudChoice = true;
} }
void QGCToolBar::portSelected(int index)
{
Q_UNUSED(index);
userPortChoice = true;
}
void QGCToolBar::setPerspectiveChangeActions(const QList<QAction*> &actions) void QGCToolBar::setPerspectiveChangeActions(const QList<QAction*> &actions)
{ {
if (actions.count() > 1) 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() void QGCToolBar::updateComboBox()
{ {
// portComboBox->clear();
if (currentLink) if (currentLink)
{ {
SerialLink *slink = qobject_cast<SerialLink*>(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) if (!userPortChoice) {
{ if (slink->getPortName().trimmed().length() > 0)
portComboBox->setCurrentIndex(portComboBox->findData(slink->getPortName()));
portComboBox->setEditText(slink->getPortName());
}
else
{
if (portlist.length() > 0)
{ {
portComboBox->setEditText(portlist.last()); int portIndex = portComboBox->findData(slink->getPortName());
if (portIndex >= 0) {
portComboBox->setCurrentIndex(portIndex);
portComboBox->setEditText(slink->getPortName());
}
} }
else 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) { if (!userBaudChoice) {
int index = baudcomboBox->findData(slink->getBaudRate()); int index = baudcomboBox->findData(slink->getBaudRate());
if (index > 0) if (index >= 0)
baudcomboBox->setCurrentIndex(index); baudcomboBox->setCurrentIndex(index);
} }
} }
......
...@@ -93,6 +93,12 @@ public slots: ...@@ -93,6 +93,12 @@ public slots:
*/ */
void baudSelected(int index); void baudSelected(int index);
/**
* @brief User selected port
* @param index The current index of the combo box
*/
void portSelected(int index);
protected: protected:
void storeSettings(); void storeSettings();
void loadSettings(); void loadSettings();
...@@ -117,6 +123,7 @@ protected: ...@@ -117,6 +123,7 @@ protected:
QComboBox *baudcomboBox; QComboBox *baudcomboBox;
QTimer portBoxTimer; QTimer portBoxTimer;
bool userBaudChoice; bool userBaudChoice;
bool userPortChoice;
bool changed; bool changed;
float batteryPercent; float batteryPercent;
float batteryVoltage; float batteryVoltage;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment