Browse Source

Xbee window fixes

QGC4.4
oberion 14 years ago
parent
commit
f4a1b73af9
  1. 29
      src/ui/CommConfigurationWindow.cc
  2. 4
      src/ui/MainWindow.cc
  3. 4
      src/ui/MainWindow.h

29
src/ui/CommConfigurationWindow.cc

@ -210,21 +210,32 @@ QAction* CommConfigurationWindow::getAction() @@ -210,21 +210,32 @@ QAction* CommConfigurationWindow::getAction()
void CommConfigurationWindow::setLinkType(int linktype)
{
#ifdef XBEELINK
// close old configuration window
this->window()->close();
if(link->isConnected())
{
// close old configuration window
this->window()->close();
}
else
{
// delete old configuration window
this->remove();
}
LinkInterface *tmpLink(NULL);
switch(linktype)
{
case 4:
{
XbeeLink *xbee = new XbeeLink();
MainWindow::instance()->addLink(xbee);
tmpLink = xbee;
MainWindow::instance()->addLink(tmpLink);
break;
}
case 0:
{
SerialLink *serial = new SerialLink();
MainWindow::instance()->addLink(serial);
tmpLink = serial;
MainWindow::instance()->addLink(tmpLink);
break;
}
default:
@ -233,6 +244,16 @@ void CommConfigurationWindow::setLinkType(int linktype) @@ -233,6 +244,16 @@ void CommConfigurationWindow::setLinkType(int linktype)
break;
}
}
// trigger new window
QList<QAction*> actions = MainWindow::instance()->listLinkMenuActions();
foreach (QAction* act, actions)
{
if (act->data().toInt() == LinkManager::instance()->getLinks().indexOf(tmpLink))
{
act->trigger();
break;
}
}
#endif // XBEELINK
}

4
src/ui/MainWindow.cc

@ -2002,3 +2002,7 @@ void MainWindow::loadDataView(QString fileName) @@ -2002,3 +2002,7 @@ void MainWindow::loadDataView(QString fileName)
}
QList<QAction*> MainWindow::listLinkMenuActions(void)
{
return ui.menuNetwork->actions();
}

4
src/ui/MainWindow.h

@ -35,6 +35,7 @@ This file is part of the QGROUNDCONTROL project @@ -35,6 +35,7 @@ This file is part of the QGROUNDCONTROL project
#include <QStatusBar>
#include <QStackedWidget>
#include <QSettings>
#include <qlist.h>
#include "ui_MainWindow.h"
#include "LinkManager.h"
@ -215,6 +216,9 @@ public slots: @@ -215,6 +216,9 @@ public slots:
/** @brief Updates a QDockWidget's location */
void updateLocationSettings (Qt::DockWidgetArea location);
public:
QList<QAction*> listLinkMenuActions(void);
protected:
MainWindow(QWidget *parent = 0);

Loading…
Cancel
Save