|
|
|
@ -86,30 +86,31 @@ MainWindow::MainWindow(QWidget *parent):
@@ -86,30 +86,31 @@ MainWindow::MainWindow(QWidget *parent):
|
|
|
|
|
|
|
|
|
|
// Load previous widget setup
|
|
|
|
|
|
|
|
|
|
// FIXME WORK IN PROGRESS
|
|
|
|
|
QSettings settings(QGC::COMPANYNAME, QGC::APPNAME); |
|
|
|
|
|
|
|
|
|
QList<QDockWidget *> dockwidgets = qFindChildren<QDockWidget *>(this); |
|
|
|
|
if (dockwidgets.size()) |
|
|
|
|
{ |
|
|
|
|
settings.beginGroup("mainwindow/dockwidgets"); |
|
|
|
|
for (int i = 0; i < dockwidgets.size(); ++i) |
|
|
|
|
{ |
|
|
|
|
QDockWidget *dockWidget = dockwidgets.at(i); |
|
|
|
|
if (dockWidget->parentWidget() == this) |
|
|
|
|
{ |
|
|
|
|
if (settings.contains(dockWidget->windowTitle())) |
|
|
|
|
{ |
|
|
|
|
dockWidget->setVisible(settings.value(dockWidget->windowTitle(), dockWidget->isVisible()).toBool()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
settings.endGroup(); |
|
|
|
|
} |
|
|
|
|
// // FIXME WORK IN PROGRESS
|
|
|
|
|
// QSettings settings(QGC::COMPANYNAME, QGC::APPNAME);
|
|
|
|
|
|
|
|
|
|
// QList<QDockWidget *> dockwidgets = qFindChildren<QDockWidget *>(this);
|
|
|
|
|
// if (dockwidgets.size())
|
|
|
|
|
// {
|
|
|
|
|
// settings.beginGroup("mainwindow/dockwidgets");
|
|
|
|
|
// for (int i = 0; i < dockwidgets.size(); ++i)
|
|
|
|
|
// {
|
|
|
|
|
// QDockWidget *dockWidget = dockwidgets.at(i);
|
|
|
|
|
// if (dockWidget->parentWidget() == this)
|
|
|
|
|
// {
|
|
|
|
|
// if (settings.contains(dockWidget->windowTitle()))
|
|
|
|
|
// {
|
|
|
|
|
// dockWidget->setVisible(settings.value(dockWidget->windowTitle(), dockWidget->isVisible()).toBool());
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// settings.endGroup();
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Enable and update view
|
|
|
|
|
this->show(); |
|
|
|
|
presentView(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
MainWindow::~MainWindow() |
|
|
|
@ -155,110 +156,6 @@ void MainWindow::buildCommonWidgets()
@@ -155,110 +156,6 @@ void MainWindow::buildCommonWidgets()
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//=======
|
|
|
|
|
//void MainWindow::storeSettings()
|
|
|
|
|
//{
|
|
|
|
|
// QSettings settings(QGC::COMPANYNAME, QGC::APPNAME);
|
|
|
|
|
|
|
|
|
|
// QList<QDockWidget *> dockwidgets = qFindChildren<QDockWidget *>(this);
|
|
|
|
|
// if (dockwidgets.size())
|
|
|
|
|
// {
|
|
|
|
|
// settings.beginGroup("mainwindow/dockwidgets");
|
|
|
|
|
// for (int i = 0; i < dockwidgets.size(); ++i)
|
|
|
|
|
// {
|
|
|
|
|
// QDockWidget *dockWidget = dockwidgets.at(i);
|
|
|
|
|
// if (dockWidget->parentWidget() == this)
|
|
|
|
|
// {
|
|
|
|
|
// settings.setValue(dockWidget->windowTitle(), QVariant(dockWidget->isVisible()));
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// settings.endGroup();
|
|
|
|
|
// }
|
|
|
|
|
// settings.sync();
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
//QMenu* MainWindow::createCenterWidgetMenu()
|
|
|
|
|
//{
|
|
|
|
|
// QMenu* menu = NULL;
|
|
|
|
|
// QStackedWidget* centerStack = dynamic_cast<QStackedWidget*>(centralWidget());
|
|
|
|
|
// if (centerStack)
|
|
|
|
|
// {
|
|
|
|
|
// if (centerStack->count() > 0)
|
|
|
|
|
// {
|
|
|
|
|
// menu = new QMenu(this);
|
|
|
|
|
// for (int i = 0; i < centerStack->count(); ++i)
|
|
|
|
|
// {
|
|
|
|
|
// //menu->addAction(centerStack->widget(i)->actions())
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// return menu;
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
//QMenu* MainWindow::createDockWidgetMenu()
|
|
|
|
|
//{
|
|
|
|
|
// QMenu *menu = 0;
|
|
|
|
|
//#ifndef QT_NO_DOCKWIDGET
|
|
|
|
|
// QList<QDockWidget *> dockwidgets = qFindChildren<QDockWidget *>(this);
|
|
|
|
|
// if (dockwidgets.size())
|
|
|
|
|
// {
|
|
|
|
|
// menu = new QMenu(this);
|
|
|
|
|
// for (int i = 0; i < dockwidgets.size(); ++i)
|
|
|
|
|
// {
|
|
|
|
|
// QDockWidget *dockWidget = dockwidgets.at(i);
|
|
|
|
|
// if (dockWidget->parentWidget() == this)
|
|
|
|
|
// {
|
|
|
|
|
// menu->addAction(dockwidgets.at(i)->toggleViewAction());
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// menu->addSeparator();
|
|
|
|
|
// }
|
|
|
|
|
//#endif
|
|
|
|
|
// return menu;
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
////QList<QWidget* >* MainWindow::getMainWidgets()
|
|
|
|
|
////{
|
|
|
|
|
|
|
|
|
|
////}
|
|
|
|
|
|
|
|
|
|
////QMenu* QMainWindow::getDockWidgetMenu()
|
|
|
|
|
////{
|
|
|
|
|
//// Q_D(QMainWindow);
|
|
|
|
|
//// QMenu *menu = 0;
|
|
|
|
|
////#ifndef QT_NO_DOCKWIDGET
|
|
|
|
|
//// QList<QDockWidget *> dockwidgets = qFindChildren<QDockWidget *>(this);
|
|
|
|
|
//// if (dockwidgets.size()) {
|
|
|
|
|
//// menu = new QMenu(this);
|
|
|
|
|
//// for (int i = 0; i < dockwidgets.size(); ++i) {
|
|
|
|
|
//// QDockWidget *dockWidget = dockwidgets.at(i);
|
|
|
|
|
//// if (dockWidget->parentWidget() == this
|
|
|
|
|
//// && d->layout->contains(dockWidget)) {
|
|
|
|
|
//// menu->addAction(dockwidgets.at(i)->toggleViewAction());
|
|
|
|
|
//// }
|
|
|
|
|
//// }
|
|
|
|
|
//// menu->addSeparator();
|
|
|
|
|
//// }
|
|
|
|
|
////#endif // QT_NO_DOCKWIDGET
|
|
|
|
|
////#ifndef QT_NO_TOOLBAR
|
|
|
|
|
//// QList<QToolBar *> toolbars = qFindChildren<QToolBar *>(this);
|
|
|
|
|
//// if (toolbars.size()) {
|
|
|
|
|
//// if (!menu)
|
|
|
|
|
//// menu = new QMenu(this);
|
|
|
|
|
//// for (int i = 0; i < toolbars.size(); ++i) {
|
|
|
|
|
//// QToolBar *toolBar = toolbars.at(i);
|
|
|
|
|
//// if (toolBar->parentWidget() == this
|
|
|
|
|
//// && d->layout->contains(toolBar)) {
|
|
|
|
|
//// menu->addAction(toolbars.at(i)->toggleViewAction());
|
|
|
|
|
//// }
|
|
|
|
|
//// }
|
|
|
|
|
//// }
|
|
|
|
|
////#endif
|
|
|
|
|
//// Q_UNUSED(d);
|
|
|
|
|
//// return menu;
|
|
|
|
|
////}
|
|
|
|
|
//>>>>>>> master
|
|
|
|
|
|
|
|
|
|
void MainWindow::buildPxWidgets() |
|
|
|
|
{ |
|
|
|
|
//FIXME: memory of acceptList will never be freed again
|
|
|
|
@ -295,8 +192,8 @@ void MainWindow::buildPxWidgets()
@@ -295,8 +192,8 @@ void MainWindow::buildPxWidgets()
|
|
|
|
|
#ifdef QGC_OSGEARTH_ENABLED |
|
|
|
|
_3DMapWidget = Q3DWidgetFactory::get("MAP3D"); |
|
|
|
|
addToCentralWidgetsMenu(_3DMapWidget, "OSG Earth 3D", SLOT(showCentralWidget()), CENTRAL_OSGEARTH); |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#if (defined Q_OS_WIN) | (defined Q_OS_MAC) |
|
|
|
|
gEarthWidget = new QGCGoogleEarthView(this); |
|
|
|
|
addToCentralWidgetsMenu(gEarthWidget, "Google Earth", SLOT(showCentralWidget()), CENTRAL_GOOGLE_EARTH); |
|
|
|
@ -322,49 +219,6 @@ void MainWindow::buildPxWidgets()
@@ -322,49 +219,6 @@ void MainWindow::buildPxWidgets()
|
|
|
|
|
hsiDockWidget = new QDockWidget(tr("Horizontal Situation Indicator"), this); |
|
|
|
|
hsiDockWidget->setWidget( new HSIDisplay(this) ); |
|
|
|
|
addToToolsMenu (hsiDockWidget, tr("HSI"), SLOT(showToolWidget()), MENU_HSI, Qt::BottomDockWidgetArea); |
|
|
|
|
//=======
|
|
|
|
|
// controlDockWidget = new QDockWidget(tr("Control"), this);
|
|
|
|
|
// controlDockWidget->setWidget( new UASControlWidget(this) );
|
|
|
|
|
// addDockWidget(Qt::LeftDockWidgetArea, controlDockWidget);
|
|
|
|
|
// controlDockWidget->hide();
|
|
|
|
|
|
|
|
|
|
// infoDockWidget = new QDockWidget(tr("Status Details"), this);
|
|
|
|
|
// infoDockWidget->setWidget( new UASInfoWidget(this) );
|
|
|
|
|
// addDockWidget(Qt::LeftDockWidgetArea, infoDockWidget);
|
|
|
|
|
// //infoDockWidget->hide();
|
|
|
|
|
|
|
|
|
|
// listDockWidget = new QDockWidget(tr("Unmanned Systems"), this);
|
|
|
|
|
// listDockWidget->setWidget( new UASListWidget(this) );
|
|
|
|
|
// addDockWidget(Qt::BottomDockWidgetArea, listDockWidget);
|
|
|
|
|
// listDockWidget->hide();
|
|
|
|
|
|
|
|
|
|
// waypointsDockWidget = new QDockWidget(tr("Waypoint List"), this);
|
|
|
|
|
// waypointsDockWidget->setWidget( new WaypointList(this, NULL) );
|
|
|
|
|
// addDockWidget(Qt::BottomDockWidgetArea, waypointsDockWidget);
|
|
|
|
|
// waypointsDockWidget->hide();
|
|
|
|
|
|
|
|
|
|
// detectionDockWidget = new QDockWidget(tr("Object Recognition"), this);
|
|
|
|
|
// detectionDockWidget->setWidget( new ObjectDetectionView("images/patterns", this) );
|
|
|
|
|
// addDockWidget(Qt::RightDockWidgetArea, detectionDockWidget);
|
|
|
|
|
// detectionDockWidget->hide();
|
|
|
|
|
|
|
|
|
|
// debugConsoleDockWidget = new QDockWidget(tr("Communication Console"), this);
|
|
|
|
|
// debugConsoleDockWidget->setWidget( new DebugConsole(this) );
|
|
|
|
|
// addDockWidget(Qt::BottomDockWidgetArea, debugConsoleDockWidget);
|
|
|
|
|
|
|
|
|
|
// parametersDockWidget = new QDockWidget(tr("Onboard Parameters"), this);
|
|
|
|
|
// parametersDockWidget->setWidget( new ParameterInterface(this) );
|
|
|
|
|
// addDockWidget(Qt::RightDockWidgetArea, parametersDockWidget);
|
|
|
|
|
|
|
|
|
|
// watchdogControlDockWidget = new QDockWidget(tr("Process Control"), this);
|
|
|
|
|
// watchdogControlDockWidget->setWidget( new WatchdogControl(this) );
|
|
|
|
|
// addDockWidget(Qt::RightDockWidgetArea, watchdogControlDockWidget);
|
|
|
|
|
// watchdogControlDockWidget->hide();
|
|
|
|
|
|
|
|
|
|
// hsiDockWidget = new QDockWidget(tr("Horizontal Situation Indicator"), this);
|
|
|
|
|
// hsiDockWidget->setWidget( new HSIDisplay(this) );
|
|
|
|
|
// addDockWidget(Qt::LeftDockWidgetArea, hsiDockWidget);
|
|
|
|
|
//>>>>>>> master
|
|
|
|
|
|
|
|
|
|
headDown1DockWidget = new QDockWidget(tr("System Stats"), this); |
|
|
|
|
headDown1DockWidget->setWidget( new HDDisplay(acceptList, this) ); |
|
|
|
@ -378,18 +232,6 @@ void MainWindow::buildPxWidgets()
@@ -378,18 +232,6 @@ void MainWindow::buildPxWidgets()
|
|
|
|
|
rcViewDockWidget = new QDockWidget(tr("Radio Control"), this); |
|
|
|
|
rcViewDockWidget->setWidget( new QGCRemoteControlView(this) ); |
|
|
|
|
addToToolsMenu (rcViewDockWidget, tr("Radio Control"), SLOT(showToolWidget()), MENU_RC_VIEW, Qt::BottomDockWidgetArea); |
|
|
|
|
//=======
|
|
|
|
|
// addDockWidget(Qt::RightDockWidgetArea, headDown1DockWidget);
|
|
|
|
|
|
|
|
|
|
// headDown2DockWidget = new QDockWidget(tr("Payload Status"), this);
|
|
|
|
|
// headDown2DockWidget->setWidget( new HDDisplay(acceptList2, this) );
|
|
|
|
|
// addDockWidget(Qt::RightDockWidgetArea, headDown2DockWidget);
|
|
|
|
|
|
|
|
|
|
// rcViewDockWidget = new QDockWidget(tr("Radio Control"), this);
|
|
|
|
|
// rcViewDockWidget->setWidget( new QGCRemoteControlView(this) );
|
|
|
|
|
// addDockWidget(Qt::BottomDockWidgetArea, rcViewDockWidget);
|
|
|
|
|
// rcViewDockWidget->hide();
|
|
|
|
|
//>>>>>>> master
|
|
|
|
|
|
|
|
|
|
headUpDockWidget = new QDockWidget(tr("HUD"), this); |
|
|
|
|
headUpDockWidget->setWidget( new HUD(320, 240, this)); |
|
|
|
@ -422,16 +264,6 @@ void MainWindow::buildSlugsWidgets()
@@ -422,16 +264,6 @@ void MainWindow::buildSlugsWidgets()
|
|
|
|
|
slugsDataWidget->setWidget( new SlugsDataSensorView(this)); |
|
|
|
|
addToToolsMenu (slugsDataWidget, tr("Telemetry Data"), SLOT(showToolWidget()), MENU_SLUGS_DATA, Qt::RightDockWidgetArea); |
|
|
|
|
|
|
|
|
|
//=======
|
|
|
|
|
// this->addDockWidget(Qt::LeftDockWidgetArea, headUpDockWidget);
|
|
|
|
|
|
|
|
|
|
// // SLUGS
|
|
|
|
|
// slugsDataWidget = new QDockWidget(tr("Slugs Data"), this);
|
|
|
|
|
// slugsDataWidget->setWidget( new SlugsDataSensorView(this));
|
|
|
|
|
// addDockWidget(Qt::LeftDockWidgetArea, slugsDataWidget);
|
|
|
|
|
// slugsDataWidget->hide();
|
|
|
|
|
//>>>>>>> master
|
|
|
|
|
|
|
|
|
|
slugsPIDControlWidget = new QDockWidget(tr("Slugs PID Control"), this); |
|
|
|
|
slugsPIDControlWidget->setWidget(new SlugsPIDControl(this)); |
|
|
|
|
addToToolsMenu (slugsPIDControlWidget, tr("PID Configuration"), SLOT(showToolWidget()), MENU_SLUGS_PID, Qt::LeftDockWidgetArea); |
|
|
|
@ -439,15 +271,6 @@ void MainWindow::buildSlugsWidgets()
@@ -439,15 +271,6 @@ void MainWindow::buildSlugsWidgets()
|
|
|
|
|
slugsHilSimWidget = new QDockWidget(tr("Slugs Hil Sim"), this); |
|
|
|
|
slugsHilSimWidget->setWidget( new SlugsHilSim(this)); |
|
|
|
|
addToToolsMenu (slugsHilSimWidget, tr("HIL Sim Configuration"), SLOT(showToolWidget()), MENU_SLUGS_HIL, Qt::LeftDockWidgetArea); |
|
|
|
|
//=======
|
|
|
|
|
// addDockWidget(Qt::BottomDockWidgetArea, slugsPIDControlWidget);
|
|
|
|
|
// slugsPIDControlWidget->hide();
|
|
|
|
|
|
|
|
|
|
// slugsHilSimWidget = new QDockWidget(tr("Slugs Hil Sim"), this);
|
|
|
|
|
// slugsHilSimWidget->setWidget( new SlugsHilSim(this));
|
|
|
|
|
// addDockWidget(Qt::BottomDockWidgetArea, slugsHilSimWidget);
|
|
|
|
|
// slugsHilSimWidget->hide();
|
|
|
|
|
//>>>>>>> master
|
|
|
|
|
|
|
|
|
|
slugsCamControlWidget = new QDockWidget(tr("Slugs Video Camera Control"), this); |
|
|
|
|
slugsCamControlWidget->setWidget(new SlugsVideoCamControl(this)); |
|
|
|
@ -495,14 +318,16 @@ void MainWindow::addToCentralWidgetsMenu ( QWidget* widget,
@@ -495,14 +318,16 @@ void MainWindow::addToCentralWidgetsMenu ( QWidget* widget,
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void MainWindow::showCentralWidget(){ |
|
|
|
|
void MainWindow::showCentralWidget() |
|
|
|
|
{ |
|
|
|
|
QAction* senderAction = qobject_cast<QAction *>(sender()); |
|
|
|
|
int tool = senderAction->data().toInt(); |
|
|
|
|
QString chKey; |
|
|
|
|
|
|
|
|
|
// check the current action
|
|
|
|
|
|
|
|
|
|
if (senderAction && dockWidgets[tool]){ |
|
|
|
|
if (senderAction && dockWidgets[tool]) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
// uncheck all central widget actions
|
|
|
|
|
QHashIterator<int, QAction*> i(toolsMenuActions); |
|
|
|
@ -533,11 +358,16 @@ void MainWindow::showCentralWidget(){
@@ -533,11 +358,16 @@ void MainWindow::showCentralWidget(){
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Adds a widget to the tools menu and sets it visible if it was |
|
|
|
|
* enabled last time. |
|
|
|
|
*/ |
|
|
|
|
void MainWindow::addToToolsMenu ( QWidget* widget, |
|
|
|
|
const QString title, |
|
|
|
|
const char * slotName, |
|
|
|
|
TOOLS_WIDGET_NAMES tool, |
|
|
|
|
Qt::DockWidgetArea location){ |
|
|
|
|
Qt::DockWidgetArea location) |
|
|
|
|
{ |
|
|
|
|
QAction* tempAction; |
|
|
|
|
QString posKey, chKey; |
|
|
|
|
|
|
|
|
@ -569,11 +399,15 @@ void MainWindow::addToToolsMenu ( QWidget* widget,
@@ -569,11 +399,15 @@ void MainWindow::addToToolsMenu ( QWidget* widget,
|
|
|
|
|
|
|
|
|
|
chKey = buildMenuKey(SUB_SECTION_CHECKED,tool, currentView); |
|
|
|
|
|
|
|
|
|
if (!settings.contains(chKey)){ |
|
|
|
|
if (!settings.contains(chKey)) |
|
|
|
|
{ |
|
|
|
|
settings.setValue(chKey,false); |
|
|
|
|
tempAction->setChecked(false); |
|
|
|
|
} else { |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
tempAction->setChecked(settings.value(chKey).toBool()); |
|
|
|
|
widget->setVisible(settings.value(chKey).toBool()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// connect the action
|
|
|
|
@ -1263,17 +1097,10 @@ void MainWindow::loadMAVLinkView()
@@ -1263,17 +1097,10 @@ void MainWindow::loadMAVLinkView()
|
|
|
|
|
currentView = VIEW_MAVLINK; |
|
|
|
|
|
|
|
|
|
presentView(); |
|
|
|
|
//=======
|
|
|
|
|
// // Slugs Data View
|
|
|
|
|
// if (slugsHilSimWidget)
|
|
|
|
|
// {
|
|
|
|
|
// addDockWidget(Qt::LeftDockWidgetArea, slugsHilSimWidget);
|
|
|
|
|
// slugsHilSimWidget->show();
|
|
|
|
|
// }
|
|
|
|
|
//>>>>>>> master
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void MainWindow::presentView() { |
|
|
|
|
void MainWindow::presentView() |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef QGC_OSG_ENABLED |
|
|
|
@ -1290,7 +1117,8 @@ void MainWindow::presentView() {
@@ -1290,7 +1117,8 @@ void MainWindow::presentView() {
|
|
|
|
|
|
|
|
|
|
qDebug() << "LC"; |
|
|
|
|
showTheCentralWidget(CENTRAL_LINECHART, currentView); |
|
|
|
|
if (linechartWidget){ |
|
|
|
|
if (linechartWidget) |
|
|
|
|
{ |
|
|
|
|
qDebug () << buildMenuKey (SUB_SECTION_CHECKED,CENTRAL_LINECHART,currentView) << |
|
|
|
|
settings.value(buildMenuKey (SUB_SECTION_CHECKED,CENTRAL_LINECHART,currentView)).toBool() ; |
|
|
|
|
if (settings.value(buildMenuKey (SUB_SECTION_CHECKED,CENTRAL_LINECHART,currentView)).toBool()){ |
|
|
|
|