From 88f279d65902d117975d0a5e99af36efd583aaee Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sun, 11 Oct 2015 21:15:58 -0700 Subject: [PATCH] Remove widget code from Mobile builds --- QGCApplication.pro | 100 ++--- src/QGCApplication.cc | 11 - src/QGCApplication.h | 2 - src/main.cc | 22 +- src/ui/MainWindow.cc | 127 +++--- src/ui/MainWindow.h | 28 +- src/ui/QGCMainWindowAPConfigurator.cc | 6 - src/ui/QGCMainWindowAPConfigurator.h | 18 - src/ui/mavlink/QGCMAVLinkMessageSender.cc | 510 ---------------------- src/ui/mavlink/QGCMAVLinkMessageSender.h | 52 --- src/ui/mavlink/QGCMAVLinkMessageSender.ui | 43 -- 11 files changed, 137 insertions(+), 782 deletions(-) delete mode 100644 src/ui/QGCMainWindowAPConfigurator.cc delete mode 100644 src/ui/QGCMainWindowAPConfigurator.h delete mode 100644 src/ui/mavlink/QGCMAVLinkMessageSender.cc delete mode 100644 src/ui/mavlink/QGCMAVLinkMessageSender.h delete mode 100644 src/ui/mavlink/QGCMAVLinkMessageSender.ui diff --git a/QGCApplication.pro b/QGCApplication.pro index c9d94598f..4efcb0e1d 100644 --- a/QGCApplication.pro +++ b/QGCApplication.pro @@ -153,7 +153,6 @@ INCLUDEPATH += \ src/ui/linechart \ src/ui/map \ src/ui/mapdisplay \ - src/ui/mavlink \ src/ui/mission \ src/ui/px4_configuration \ src/ui/toolbar \ @@ -166,40 +165,41 @@ FORMS += \ src/ui/Linechart.ui \ src/ui/LogReplayLinkConfigurationWidget.ui \ src/ui/MainWindow.ui \ - src/ui/mavlink/QGCMAVLinkMessageSender.ui \ src/ui/MAVLinkSettingsWidget.ui \ - src/ui/MultiVehicleDockWidget.ui \ src/ui/QGCCommConfiguration.ui \ src/ui/QGCDataPlot2D.ui \ src/ui/QGCLinkConfiguration.ui \ src/ui/QGCMapRCToParamDialog.ui \ - src/ui/QGCMAVLinkInspector.ui \ src/ui/QGCMAVLinkLogPlayer.ui \ src/ui/QGCPluginHost.ui \ - src/ui/QGCTabbedInfoView.ui \ src/ui/QGCTCPLinkConfiguration.ui \ - src/ui/QGCUASFileView.ui \ - src/ui/QGCUASFileViewMulti.ui \ src/ui/QGCUDPLinkConfiguration.ui \ src/ui/SettingsDialog.ui \ - src/ui/uas/QGCUnconnectedInfoWidget.ui \ src/ui/uas/UASMessageView.ui \ - src/ui/uas/UASQuickView.ui \ - src/ui/uas/UASQuickViewItemSelect.ui \ - src/ui/UASInfo.ui \ - src/ui/UASRawStatusView.ui \ !iOSBuild { FORMS += \ src/ui/SerialSettings.ui \ } +!NoWidgets { !MobileBuild { FORMS += \ + src/ui/MultiVehicleDockWidget.ui \ src/ui/QGCHilConfiguration.ui \ src/ui/QGCHilFlightGearConfiguration.ui \ src/ui/QGCHilJSBSimConfiguration.ui \ src/ui/QGCHilXPlaneConfiguration.ui \ + src/ui/QGCMAVLinkInspector.ui \ + src/ui/QGCTabbedInfoView.ui \ + src/ui/QGCUASFileView.ui \ + src/ui/QGCUASFileViewMulti.ui \ + src/ui/uas/QGCUnconnectedInfoWidget.ui \ + src/ui/uas/UASQuickView.ui \ + src/ui/uas/UASQuickViewItemSelect.ui \ + src/ui/UASInfo.ui \ + src/ui/UASRawStatusView.ui \ +} } HEADERS += \ @@ -232,7 +232,6 @@ HEADERS += \ src/QGCApplication.h \ src/QGCComboBox.h \ src/QGCConfig.h \ - src/QGCDockWidget.h \ src/QGCFileDialog.h \ src/QGCGeo.h \ src/QGCLoggingCategory.h \ @@ -263,37 +262,19 @@ HEADERS += \ src/ui/linechart/ScrollZoomer.h \ src/ui/LogReplayLinkConfigurationWidget.h \ src/ui/MainWindow.h \ - src/ui/mavlink/QGCMAVLinkMessageSender.h \ src/ui/MAVLinkDecoder.h \ src/ui/MAVLinkSettingsWidget.h \ - src/ui/MultiVehicleDockWidget.h \ src/ui/QGCCommConfiguration.h \ src/ui/QGCDataPlot2D.h \ src/ui/QGCLinkConfiguration.h \ - src/ui/QGCMainWindowAPConfigurator.h \ src/ui/QGCMapRCToParamDialog.h \ - src/ui/QGCMAVLinkInspector.h \ src/ui/QGCMAVLinkLogPlayer.h \ src/ui/QGCPluginHost.h \ - src/ui/QGCTabbedInfoView.h \ src/ui/QGCTCPLinkConfiguration.h \ - src/ui/QGCUASFileView.h \ - src/ui/QGCUASFileViewMulti.h \ src/ui/QGCUDPLinkConfiguration.h \ src/ui/SettingsDialog.h \ src/ui/toolbar/MainToolBar.h \ - src/ui/uas/QGCUnconnectedInfoWidget.h \ - src/ui/uas/UASInfoWidget.h \ src/ui/uas/UASMessageView.h \ - src/ui/uas/UASQuickView.h \ - src/ui/uas/UASQuickViewGaugeItem.h \ - src/ui/uas/UASQuickViewItem.h \ - src/ui/uas/UASQuickViewItemSelect.h \ - src/ui/uas/UASQuickViewTextItem.h \ - src/ui/UASRawStatusView.h \ - src/ViewWidgets/CustomCommandWidget.h \ - src/ViewWidgets/CustomCommandWidgetController.h \ - src/ViewWidgets/ViewWidgetController.h \ src/MissionItem.h \ src/AutoPilotPlugins/PX4/PX4AirframeLoader.h @@ -303,19 +284,38 @@ HEADERS += \ src/ui/SerialConfigurationWindow.h \ } +!NoWidgets { !MobileBuild { HEADERS += \ src/comm/QGCFlightGearLink.h \ src/comm/QGCHilLink.h \ src/comm/QGCJSBSimLink.h \ src/comm/QGCXPlaneLink.h \ + src/QGCDockWidget.h \ src/ui/CameraView.h \ src/ui/HILDockWidget.h \ + src/ui/MultiVehicleDockWidget.h \ src/ui/QGCHilConfiguration.h \ src/ui/QGCHilFlightGearConfiguration.h \ src/ui/QGCHilJSBSimConfiguration.h \ src/ui/QGCHilXPlaneConfiguration.h \ + src/ui/QGCMAVLinkInspector.h \ + src/ui/QGCTabbedInfoView.h \ + src/ui/QGCUASFileView.h \ + src/ui/QGCUASFileViewMulti.h \ + src/ui/uas/QGCUnconnectedInfoWidget.h \ + src/ui/uas/UASInfoWidget.h \ + src/ui/uas/UASQuickView.h \ + src/ui/uas/UASQuickViewGaugeItem.h \ + src/ui/uas/UASQuickViewItem.h \ + src/ui/uas/UASQuickViewItemSelect.h \ + src/ui/uas/UASQuickViewTextItem.h \ + src/ui/UASRawStatusView.h \ src/VehicleSetup/JoystickConfigController.h \ + src/ViewWidgets/CustomCommandWidget.h \ + src/ViewWidgets/CustomCommandWidgetController.h \ + src/ViewWidgets/ViewWidgetController.h \ +} } SOURCES += \ @@ -344,7 +344,6 @@ SOURCES += \ src/QGC.cc \ src/QGCApplication.cc \ src/QGCComboBox.cc \ - src/QGCDockWidget.cc \ src/QGCFileDialog.cc \ src/QGCLoggingCategory.cc \ src/QGCPalette.cc \ @@ -370,37 +369,19 @@ SOURCES += \ src/ui/linechart/ScrollZoomer.cc \ src/ui/LogReplayLinkConfigurationWidget.cc \ src/ui/MainWindow.cc \ - src/ui/mavlink/QGCMAVLinkMessageSender.cc \ src/ui/MAVLinkDecoder.cc \ src/ui/MAVLinkSettingsWidget.cc \ - src/ui/MultiVehicleDockWidget.cc \ src/ui/QGCCommConfiguration.cc \ src/ui/QGCDataPlot2D.cc \ src/ui/QGCLinkConfiguration.cc \ - src/ui/QGCMainWindowAPConfigurator.cc \ src/ui/QGCMapRCToParamDialog.cpp \ - src/ui/QGCMAVLinkInspector.cc \ src/ui/QGCMAVLinkLogPlayer.cc \ src/ui/QGCPluginHost.cc \ - src/ui/QGCTabbedInfoView.cpp \ src/ui/QGCTCPLinkConfiguration.cc \ - src/ui/QGCUASFileView.cc \ - src/ui/QGCUASFileViewMulti.cc \ src/ui/QGCUDPLinkConfiguration.cc \ src/ui/SettingsDialog.cc \ src/ui/toolbar/MainToolBar.cc \ - src/ui/uas/QGCUnconnectedInfoWidget.cc \ - src/ui/uas/UASInfoWidget.cc \ src/ui/uas/UASMessageView.cc \ - src/ui/uas/UASQuickView.cc \ - src/ui/uas/UASQuickViewGaugeItem.cc \ - src/ui/uas/UASQuickViewItem.cc \ - src/ui/uas/UASQuickViewItemSelect.cc \ - src/ui/uas/UASQuickViewTextItem.cc \ - src/ui/UASRawStatusView.cpp \ - src/ViewWidgets/CustomCommandWidget.cc \ - src/ViewWidgets/CustomCommandWidgetController.cc \ - src/ViewWidgets/ViewWidgetController.cc \ src/MissionItem.cc \ src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc @@ -410,18 +391,37 @@ SOURCES += \ src/ui/SerialConfigurationWindow.cc \ } +!NoWidgets { !MobileBuild { SOURCES += \ src/comm/QGCFlightGearLink.cc \ src/comm/QGCJSBSimLink.cc \ src/comm/QGCXPlaneLink.cc \ + src/QGCDockWidget.cc \ src/ui/CameraView.cc \ src/ui/HILDockWidget.cc \ + src/ui/MultiVehicleDockWidget.cc \ src/ui/QGCHilConfiguration.cc \ src/ui/QGCHilFlightGearConfiguration.cc \ src/ui/QGCHilJSBSimConfiguration.cc \ src/ui/QGCHilXPlaneConfiguration.cc \ + src/ui/QGCMAVLinkInspector.cc \ + src/ui/QGCTabbedInfoView.cpp \ + src/ui/QGCUASFileView.cc \ + src/ui/QGCUASFileViewMulti.cc \ + src/ui/uas/QGCUnconnectedInfoWidget.cc \ + src/ui/uas/UASInfoWidget.cc \ + src/ui/uas/UASQuickView.cc \ + src/ui/uas/UASQuickViewGaugeItem.cc \ + src/ui/uas/UASQuickViewItem.cc \ + src/ui/uas/UASQuickViewItemSelect.cc \ + src/ui/uas/UASQuickViewTextItem.cc \ + src/ui/UASRawStatusView.cpp \ src/VehicleSetup/JoystickConfigController.cc \ + src/ViewWidgets/CustomCommandWidget.cc \ + src/ViewWidgets/CustomCommandWidgetController.cc \ + src/ViewWidgets/ViewWidgetController.cc \ +} } # diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index cefc50592..65c4d95d6 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -163,9 +163,6 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting) , _runningUnitTests(unitTesting) , _styleIsDark(true) , _fakeMobile(false) -#ifdef UNITTEST_BUILD - , _useNewMissionEditor(true) // Unit Tests run new mission editor -#endif #ifdef QT_DEBUG , _testHighDPI(false) #endif @@ -420,14 +417,6 @@ bool QGCApplication::_initForNormalAppBoot(void) _styleIsDark = settings.value(_styleKey, _styleIsDark).toBool(); _loadCurrentStyle(); - // Temp hack for new mission editor -#ifdef __mobile__ - // Mobile builds always use new Mission Editor - _useNewMissionEditor = true; -#else - _useNewMissionEditor = settings.value("UseNewMissionEditor", false).toBool(); -#endif - // Show splash screen QPixmap splashImage(":/res/SplashScreen"); QSplashScreen* splashScreen = new QSplashScreen(splashImage); diff --git a/src/QGCApplication.h b/src/QGCApplication.h index 1e98b7e30..f503a7f91 100644 --- a/src/QGCApplication.h +++ b/src/QGCApplication.h @@ -178,8 +178,6 @@ private: QStringList _missingParams; ///< List of missing facts to be displayed bool _fakeMobile; ///< true: Fake ui into displaying mobile interface - - bool _useNewMissionEditor; ///< true: Use new Mission Editor #ifdef QT_DEBUG bool _testHighDPI; ///< true: double fonts sizes for simulating high dpi devices diff --git a/src/main.cc b/src/main.cc index 80d0fea86..1b48c55ca 100644 --- a/src/main.cc +++ b/src/main.cc @@ -31,21 +31,25 @@ This file is part of the QGROUNDCONTROL project #include #include #include +#include + #ifndef __mobile__ -#include + #include #endif -#include + #include "QGCApplication.h" #include "MainWindow.h" + #ifdef QT_DEBUG -#ifndef __mobile__ -#include "UnitTest.h" -#endif -#include "CmdLineOptParser.h" -#ifdef Q_OS_WIN -#include -#endif + #ifndef __mobile__ + #include "UnitTest.h" + #endif + #include "CmdLineOptParser.h" + #ifdef Q_OS_WIN + #include + #endif #endif + #include /* SDL does ugly things to main() */ diff --git a/src/ui/MainWindow.cc b/src/ui/MainWindow.cc index 37ba7e2f3..a6e07ecaf 100644 --- a/src/ui/MainWindow.cc +++ b/src/ui/MainWindow.cc @@ -46,7 +46,6 @@ This file is part of the QGROUNDCONTROL project #include "QGCMAVLinkLogPlayer.h" #include "SettingsDialog.h" #include "MAVLinkDecoder.h" -#include "QGCMAVLinkMessageSender.h" #include "UASQuickView.h" #include "QGCDataPlot2D.h" #include "Linecharts.h" @@ -86,6 +85,7 @@ This file is part of the QGROUNDCONTROL project /// The key under which the Main Window settings are saved const char* MAIN_SETTINGS_GROUP = "QGC_MAINWINDOW"; +#ifndef __mobile__ const char* MainWindow::_mavlinkDockWidgetName = "MAVLINK_INSPECTOR_DOCKWIDGET"; const char* MainWindow::_customCommandWidgetName = "CUSTOM_COMMAND_DOCKWIDGET"; const char* MainWindow::_filesDockWidgetName = "FILE_VIEW_DOCKWIDGET"; @@ -94,6 +94,7 @@ const char* MainWindow::_mapViewDockWidgetName = "MAP_VIEW_DOCKWIDGET"; const char* MainWindow::_pfdDockWidgetName = "PRIMARY_FLIGHT_DISPLAY_DOCKWIDGET"; const char* MainWindow::_uasInfoViewDockWidgetName = "UAS_INFO_INFOVIEW_DOCKWIDGET"; const char* MainWindow::_hilDockWidgetName = "HIL_DOCKWIDGET"; +#endif static MainWindow* _instance = NULL; ///< @brief MainWindow singleton @@ -162,10 +163,12 @@ MainWindow::MainWindow(QSplashScreen* splashScreen) menuBar()->setNativeMenuBar(false); #endif +#ifndef __mobile__ #ifdef UNITTEST_BUILD QAction* qmlTestAction = new QAction("Test QML palette and controls", NULL); connect(qmlTestAction, &QAction::triggered, this, &MainWindow::_showQmlTestWidget); _ui.menuWidgets->addAction(qmlTestAction); +#endif #endif // Load QML Toolbar @@ -184,9 +187,12 @@ MainWindow::MainWindow(QSplashScreen* splashScreen) setStatusBar(new QStatusBar(this)); statusBar()->setSizeGripEnabled(true); +#ifndef __mobile__ emit initStatusChanged(tr("Building common widgets."), Qt::AlignLeft | Qt::AlignBottom, QColor(62, 93, 141)); _buildCommonWidgets(); emit initStatusChanged(tr("Building common actions"), Qt::AlignLeft | Qt::AlignBottom, QColor(62, 93, 141)); +#endif + // Create actions connectCommonActions(); // Connect user interface devices @@ -332,6 +338,7 @@ QString MainWindow::_getWindowGeometryKey() return "_geometry"; } +#ifndef __mobile__ void MainWindow::_createDockWidget(const QString& title, const QString& name, Qt::DockWidgetArea area, QWidget* innerWidget) { Q_ASSERT(!_mapName2DockWidget.contains(name)); @@ -401,46 +408,6 @@ void MainWindow::_buildCommonWidgets(void) } } -void MainWindow::_buildMissionEditorView(void) -{ - if (!_missionEditorView) { - _missionEditorView = new MissionEditor(this); - _missionEditorView->setVisible(false); - } -} - -void MainWindow::_buildFlightView(void) -{ - if (!_flightView) { - _flightView = new FlightDisplayView(this); - _flightView->setVisible(false); - } -} - -void MainWindow::_buildSetupView(void) -{ - if (!_setupView) { - _setupView = new SetupView(this); - _setupView->setVisible(false); - } -} - -void MainWindow::_buildAnalyzeView(void) -{ - if (!_analyzeView) { - _analyzeView = new QGCDataPlot2D(this); - _analyzeView->setVisible(false); - } -} - -void MainWindow::_buildSimView(void) -{ - if (!_simView) { - _simView = new FlightDisplayView(this); - _simView->setVisible(false); - } -} - /// Shows or hides the specified dock widget, creating if necessary void MainWindow::_showDockWidget(const QString& name, bool show) { @@ -449,18 +416,18 @@ void MainWindow::_showDockWidget(const QString& name, bool show) // Which would cause us to end up here. return; } - + // Create the inner widget if we need to if (!_mapName2DockWidget[name]->widget()) { _createInnerDockWidget(name); } - + Q_ASSERT(_mapName2DockWidget.contains(name)); QDockWidget* dockWidget = _mapName2DockWidget[name]; Q_ASSERT(dockWidget); - + dockWidget->setVisible(show); - + Q_ASSERT(_mapDockWidget2Action.contains(dockWidget)); _mapDockWidget2Action[dockWidget]->setChecked(show); } @@ -470,9 +437,9 @@ void MainWindow::_createInnerDockWidget(const QString& widgetName) { Q_ASSERT(_mapName2DockWidget.contains(widgetName)); // QDockWidget should already exist Q_ASSERT(!_mapName2DockWidget[widgetName]->widget()); // Inner widget should not - + QWidget* widget = NULL; - + if (widgetName == _mavlinkDockWidgetName) { widget = new QGCMAVLinkInspector(MAVLinkProtocol::instance(),this); } else if (widgetName == _customCommandWidgetName) { @@ -494,7 +461,7 @@ void MainWindow::_createInnerDockWidget(const QString& widgetName) } else { qWarning() << "Attempt to create unknown Inner Dock Widget" << widgetName; } - + if (widget) { QDockWidget* dockWidget = _mapName2DockWidget[widgetName]; Q_CHECK_PTR(dockWidget); @@ -503,6 +470,53 @@ void MainWindow::_createInnerDockWidget(const QString& widgetName) } } +void MainWindow::_hideAllDockWidgets(void) +{ + foreach(QDockWidget* dockWidget, _mapName2DockWidget) { + dockWidget->setVisible(false); + } +} + +void MainWindow::_showDockWidgetAction(bool show) +{ + QAction* action = dynamic_cast(QObject::sender()); + Q_ASSERT(action); + _showDockWidget(action->data().toString(), show); +} +#endif + +void MainWindow::_buildMissionEditorView(void) +{ + if (!_missionEditorView) { + _missionEditorView = new MissionEditor(this); + _missionEditorView->setVisible(false); + } +} + +void MainWindow::_buildFlightView(void) +{ + if (!_flightView) { + _flightView = new FlightDisplayView(this); + _flightView->setVisible(false); + } +} + +void MainWindow::_buildSetupView(void) +{ + if (!_setupView) { + _setupView = new SetupView(this); + _setupView->setVisible(false); + } +} + +void MainWindow::_buildAnalyzeView(void) +{ + if (!_analyzeView) { + _analyzeView = new QGCDataPlot2D(this); + _analyzeView->setVisible(false); + } +} + void MainWindow::fullScreenActionItemCallback(bool) { _ui.actionNormal->setChecked(false); @@ -804,10 +818,10 @@ void MainWindow::_loadCurrentViewState(void) _centralLayout->setContentsMargins(0, 0, 0, 0); _currentViewWidget->setVisible(true); +#ifndef __mobile__ // Hide all widgets from previous view _hideAllDockWidgets(); -#ifndef __mobile__ // Restore the widgets for the new view QString widgetNames = settings.value(_getWindowStateKey() + "WIDGETS", defaultWidgets).toString(); qDebug() << widgetNames; @@ -829,21 +843,6 @@ void MainWindow::_loadCurrentViewState(void) emit repaintCanvas(); } -void MainWindow::_hideAllDockWidgets(void) -{ - foreach(QDockWidget* dockWidget, _mapName2DockWidget) { - dockWidget->setVisible(false); - } -} - -void MainWindow::_showDockWidgetAction(bool show) -{ - QAction* action = dynamic_cast(QObject::sender()); - Q_ASSERT(action); - _showDockWidget(action->data().toString(), show); -} - - void MainWindow::loadAnalyzeView() { if (_currentView != VIEW_ANALYZE) diff --git a/src/ui/MainWindow.h b/src/ui/MainWindow.h index fb83aed8b..dc880fcc9 100644 --- a/src/ui/MainWindow.h +++ b/src/ui/MainWindow.h @@ -56,7 +56,6 @@ This file is part of the QGROUNDCONTROL project #include "QGCUASFileViewMulti.h" #include "Vehicle.h" -class QGCMAVLinkMessageSender; class QGCFirmwareUpdate; class QSplashScreen; class QGCStatusBar; @@ -212,19 +211,11 @@ protected: // Center widgets QPointer linechartWidget; -#ifdef QGC_OSG_ENABLED - QPointer q3DWidget; -#endif - QPointer firmwareUpdateWidget; QPointer _mainToolBar; - QPointer mavlinkInspectorWidget; QPointer mavlinkDecoder; - QPointer mavlinkSenderWidget; QGCMAVLinkLogPlayer* logPlayer; - QPointer fileWidget; - #ifdef QGC_MOUSE_ENABLED_WIN /** @brief 3d Mouse support (WIN only) */ Mouse3DInput* mouseInput; ///< 3dConnexion 3dMouse SDK @@ -251,15 +242,17 @@ protected: QTimer windowNameUpdateTimer; private slots: - void _showDockWidgetAction(bool show); void _linkStateChange(LinkInterface*); + void _closeWindow(void) { close(); } + void _vehicleAdded(Vehicle* vehicle); + +#ifndef __mobile__ + void _showDockWidgetAction(bool show); +#endif + #ifdef UNITTEST_BUILD void _showQmlTestWidget(void); #endif - void _closeWindow(void) { close(); } - -private slots: - void _vehicleAdded(Vehicle* vehicle); private: /// Constructor is private since all creation should be through MainWindow::_create @@ -272,10 +265,9 @@ private: QPointer _flightView; QPointer _setupView; QPointer _analyzeView; - QPointer _simView; - QPointer _terminalView; QPointer _missionEditorView; +#ifndef __mobile__ // Dock widget names static const char* _mavlinkDockWidgetName; static const char* _customCommandWidgetName; @@ -288,23 +280,25 @@ private: QMap _mapName2DockWidget; QMap _mapDockWidget2Action; +#endif void _buildPlanView(void); void _buildFlightView(void); void _buildSetupView(void); void _buildAnalyzeView(void); - void _buildSimView(void); void _buildTerminalView(void); void _buildMissionEditorView(void); void _storeCurrentViewState(void); void _loadCurrentViewState(void); +#ifndef __mobile__ void _createDockWidget(const QString& title, const QString& name, Qt::DockWidgetArea area, QWidget* innerWidget); void _createInnerDockWidget(const QString& widgetName); void _buildCommonWidgets(void); void _hideAllDockWidgets(void); void _showDockWidget(const QString &name, bool show); +#endif bool _autoReconnect; bool _lowPowerMode; ///< If enabled, QGC reduces the update rates of all widgets diff --git a/src/ui/QGCMainWindowAPConfigurator.cc b/src/ui/QGCMainWindowAPConfigurator.cc deleted file mode 100644 index 69da8c599..000000000 --- a/src/ui/QGCMainWindowAPConfigurator.cc +++ /dev/null @@ -1,6 +0,0 @@ -#include "QGCMainWindowAPConfigurator.h" - -QGCMainWindowAPConfigurator::QGCMainWindowAPConfigurator(QObject *parent) : - QObject(parent) -{ -} diff --git a/src/ui/QGCMainWindowAPConfigurator.h b/src/ui/QGCMainWindowAPConfigurator.h deleted file mode 100644 index f4806f820..000000000 --- a/src/ui/QGCMainWindowAPConfigurator.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef QGCMAINWINDOWAPCONFIGURATOR_H -#define QGCMAINWINDOWAPCONFIGURATOR_H - -#include - -class QGCMainWindowAPConfigurator : public QObject -{ - Q_OBJECT -public: - explicit QGCMainWindowAPConfigurator(QObject *parent = 0); - -signals: - -public slots: - -}; - -#endif // QGCMAINWINDOWAPCONFIGURATOR_H diff --git a/src/ui/mavlink/QGCMAVLinkMessageSender.cc b/src/ui/mavlink/QGCMAVLinkMessageSender.cc deleted file mode 100644 index 6a93ed195..000000000 --- a/src/ui/mavlink/QGCMAVLinkMessageSender.cc +++ /dev/null @@ -1,510 +0,0 @@ -#include "QGCMAVLinkMessageSender.h" -#include "ui_QGCMAVLinkMessageSender.h" -#include "MAVLinkProtocol.h" - -QGCMAVLinkMessageSender::QGCMAVLinkMessageSender(MAVLinkProtocol* mavlink, QWidget *parent) : - QWidget(parent), - protocol(mavlink), - ui(new Ui::QGCMAVLinkMessageSender) -{ - ui->setupUi(this); - mavlink_message_info_t msg[256] = MAVLINK_MESSAGE_INFO; - memcpy(messageInfo, msg, sizeof(mavlink_message_info_t)*256); - - QStringList header; - header << tr("Name"); - header << tr("Value"); - header << tr("Type"); - ui->treeWidget->setHeaderLabels(header); - createTreeView(); - connect(&refreshTimer, SIGNAL(timeout()), this, SLOT(refresh())); - //refreshTimer.start(1000); // Refresh at 1 Hz interval - - connect(ui->sendButton, SIGNAL(pressed()), this, SLOT(sendMessage())); -} - -void QGCMAVLinkMessageSender::refresh() -{ - // Send messages - foreach (unsigned int i, managementItems.keys()) - { - if (!sendTimers.contains(i)) - { - //sendTimers.insert(i, new QTimer()) - } - } - - // ui->treeWidget->topLevelItem(0)->children(); -} - -bool QGCMAVLinkMessageSender::sendMessage() -{ - return sendMessage(ui->messageIdSpinBox->value()); -} - -bool QGCMAVLinkMessageSender::sendMessage(unsigned int msgid) -{ - QString msgname(messageInfo[msgid].name); - if (msgid == 0 || msgid > 255 || messageInfo[msgid].name == NULL || msgname.compare(QString("EMPTY"))) - { - return false; - } - bool result = true; - - if (treeWidgetItems.contains(msgid)) - { - // Fill message fields - - mavlink_message_t msg; - QList fields;// = treeWidgetItems.value(msgid)->; - - for (unsigned int i = 0; i < messageInfo[msgid].num_fields; ++i) - { - QTreeWidgetItem* field = fields.at(i); - int fieldid = i; - uint8_t* m = ((uint8_t*)(&msg))+8; - switch (messageInfo[msgid].fields[fieldid].type) - { - case MAVLINK_TYPE_CHAR: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - char* str = (char*)(m+messageInfo[msgid].fields[fieldid].wire_offset); - // Copy data - QString string = field->data(1, Qt::DisplayRole).toString(); - // Copy string size - int len = qMin((unsigned int)string.length(), messageInfo[msgid].fields[fieldid].array_length); - memcpy(str, string.toStdString().c_str(), len); - // Enforce null termination - str[len-1] = '\0'; - } - else - { - // Single char - char* b = ((char*)(m+messageInfo[msgid].fields[fieldid].wire_offset)); - *b = field->data(1, Qt::DisplayRole).toChar().toLatin1(); - } - break; - case MAVLINK_TYPE_UINT8_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - uint8_t* nums = m+messageInfo[msgid].fields[fieldid].wire_offset; - for (unsigned int j = 0; j < messageInfo[msgid].fields[fieldid].array_length; ++j) - { - if ((unsigned int)(field->data(1, Qt::DisplayRole).toString().split(" ").size()) > j) - { - nums[j] = field->data(1, Qt::DisplayRole).toString().split(" ").at(j).toInt(); - } - } - } - else - { - // Single value - uint8_t* u = (m+messageInfo[msgid].fields[fieldid].wire_offset); - *u = field->data(1, Qt::DisplayRole).toChar().toLatin1(); - } - break; - case MAVLINK_TYPE_INT8_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - int8_t* nums = reinterpret_cast((m+messageInfo[msgid].fields[fieldid].wire_offset)); - for (unsigned int j = 0; j < messageInfo[msgid].fields[fieldid].array_length; ++j) - { - if ((unsigned int)(field->data(1, Qt::DisplayRole).toString().split(" ").size()) > j) - { - nums[j] = field->data(1, Qt::DisplayRole).toString().split(" ").at(j).toInt(); - } - } - } - else - { - // Single value - int8_t* u = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - *u = field->data(1, Qt::DisplayRole).toChar().toLatin1(); - } - break; - case MAVLINK_TYPE_INT16_T: - case MAVLINK_TYPE_UINT16_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - uint16_t* nums = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - for (unsigned int j = 0; j < messageInfo[msgid].fields[fieldid].array_length; ++j) - { - if ((unsigned int)(field->data(1, Qt::DisplayRole).toString().split(" ").size()) > j) - { - nums[j] = field->data(1, Qt::DisplayRole).toString().split(" ").at(j).toUInt(); - } - } - } - else - { - // Single value - uint16_t* u = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - *u = field->data(1, Qt::DisplayRole).toUInt(); - } - break; - case MAVLINK_TYPE_INT32_T: - case MAVLINK_TYPE_UINT32_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - int32_t* nums = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - for (unsigned int j = 0; j < messageInfo[msgid].fields[fieldid].array_length; ++j) - { - if ((unsigned int)(field->data(1, Qt::DisplayRole).toString().split(" ").size()) > j) - { - nums[j] = field->data(1, Qt::DisplayRole).toString().split(" ").at(j).toUInt(); - } - } - } - else - { - // Single value - int32_t* u = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - *u = field->data(1, Qt::DisplayRole).toUInt(); - } - break; - case MAVLINK_TYPE_INT64_T: - case MAVLINK_TYPE_UINT64_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - int64_t* nums = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - for (unsigned int j = 0; j < messageInfo[msgid].fields[fieldid].array_length; ++j) - { - if ((unsigned int)(field->data(1, Qt::DisplayRole).toString().split(" ").size()) > j) - { - nums[j] = field->data(1, Qt::DisplayRole).toString().split(" ").at(j).toULongLong(); - } - } - } - else - { - // Single value - int64_t* u = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - *u = field->data(1, Qt::DisplayRole).toULongLong(); - } - break; - case MAVLINK_TYPE_FLOAT: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - float* nums = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - for (unsigned int j = 0; j < messageInfo[msgid].fields[fieldid].array_length; ++j) - { - if ((unsigned int)(field->data(1, Qt::DisplayRole).toString().split(" ").size()) > j) - { - nums[j] = field->data(1, Qt::DisplayRole).toString().split(" ").at(j).toFloat(); - } - } - } - else - { - // Single value - float* u = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - *u = field->data(1, Qt::DisplayRole).toFloat(); - } - break; - case MAVLINK_TYPE_DOUBLE: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - double* nums = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - for (unsigned int j = 0; j < messageInfo[msgid].fields[fieldid].array_length; ++j) - { - if ((unsigned int)(field->data(1, Qt::DisplayRole).toString().split(" ").size()) > j) - { - nums[j] = field->data(1, Qt::DisplayRole).toString().split(" ").at(j).toDouble(); - } - } - } - else - { - // Single value - double* u = reinterpret_cast(m+messageInfo[msgid].fields[fieldid].wire_offset); - *u = field->data(1, Qt::DisplayRole).toDouble(); - } - break; - } - } - - // Send message - protocol->sendMessage(msg); - } - else - { - result = false; - } - - return result; -} - -QGCMAVLinkMessageSender::~QGCMAVLinkMessageSender() -{ - delete ui; -} - -void QGCMAVLinkMessageSender::createTreeView() -{ - for (int i = 0; i < 256; ++i)//mavlink_message_t msg, receivedMessages) - { - // Update the tree view - QString messageName("%1 (%2 Hz, #%3)"); - float msgHz = messagesHz.value(i, 0); - - // Ignore non-existent messages - if (QString(messageInfo[i].name) == "EMPTY") continue; - - messageName = messageName.arg(messageInfo[i].name).arg(msgHz, 3, 'f', 1).arg(i); - if (!treeWidgetItems.contains(i)) - { - QStringList fields; - fields << messageName; - QTreeWidgetItem* widget = new QTreeWidgetItem(fields); - widget->setFirstColumnSpanned(true); - - for (unsigned int j = 0; j < messageInfo[i].num_fields; ++j) - { - QTreeWidgetItem* field = new QTreeWidgetItem(); - widget->addChild(field); - } - - treeWidgetItems.insert(i, widget); - ui->treeWidget->addTopLevelItem(widget); - - - QTreeWidgetItem* message = widget;//treeWidgetItems.value(msg->msgid); - message->setFirstColumnSpanned(true); - message->setData(0, Qt::DisplayRole, QVariant(messageName)); - for (unsigned int j = 0; j < messageInfo[i].num_fields; ++j) - { - createField(i, j, message->child(j)); - } - // Add management fields, such as update rate and send button - // QTreeWidgetItem* management = new QTreeWidgetItem(); - // widget->addChild(management); - // management->setData(0, Qt::DisplayRole, "Rate:"); - // management->setData(1, Qt::DisplayRole, 0); - // management->setData(2, Qt::DisplayRole, "Hz"); - // managementItems.insert(i, management); - } - } -} - -void QGCMAVLinkMessageSender::createField(int msgid, int fieldid, QTreeWidgetItem* item) -{ - // Add field tree widget item - item->setData(0, Qt::DisplayRole, QVariant(messageInfo[msgid].fields[fieldid].name)); - //uint8_t* m = ((uint8_t*)(receivedMessages+msgid))+8; - switch (messageInfo[msgid].fields[fieldid].type) - { - case MAVLINK_TYPE_CHAR: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - item->setData(2, Qt::DisplayRole, "char"); - item->setData(1, Qt::DisplayRole, ""); - } - else - { - // Single char - item->setData(2, Qt::DisplayRole, QString("char[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, ""); - } - break; - case MAVLINK_TYPE_UINT8_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - // Enforce null termination - QString tmp("%1, "); - QString string; - for (unsigned int j = 0; j < messageInfo[msgid].fields[fieldid].array_length; ++j) - { - string += tmp.arg(0); - } - item->setData(2, Qt::DisplayRole, QString("uint8_t[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, string); - } - else - { - // Single value - item->setData(2, Qt::DisplayRole, "uint8_t"); - item->setData(1, Qt::DisplayRole, 0); - } - break; - case MAVLINK_TYPE_INT8_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - // Enforce null termination - QString tmp("%1, "); - QString string; - for (unsigned int j = 0; j < messageInfo[msgid].fields[j].array_length; ++j) - { - string += tmp.arg(0); - } - item->setData(2, Qt::DisplayRole, QString("int8_t[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, string); - } - else - { - // Single value - item->setData(2, Qt::DisplayRole, "int8_t"); - item->setData(1, Qt::DisplayRole, 0); - } - break; - case MAVLINK_TYPE_UINT16_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - // Enforce null termination - QString tmp("%1, "); - QString string; - for (unsigned int j = 0; j < messageInfo[msgid].fields[j].array_length; ++j) - { - string += tmp.arg(0); - } - item->setData(2, Qt::DisplayRole, QString("uint16_t[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, string); - } - else - { - // Single value - item->setData(2, Qt::DisplayRole, "uint16_t"); - item->setData(1, Qt::DisplayRole, 0); - } - break; - case MAVLINK_TYPE_INT16_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - // Enforce null termination - QString tmp("%1, "); - QString string; - for (unsigned int j = 0; j < messageInfo[msgid].fields[j].array_length; ++j) - { - string += tmp.arg(0); - } - item->setData(2, Qt::DisplayRole, QString("int16_t[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, string); - } - else - { - // Single value - item->setData(2, Qt::DisplayRole, "int16_t"); - item->setData(1, Qt::DisplayRole, 0); - } - break; - case MAVLINK_TYPE_UINT32_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - // Enforce null termination - QString tmp("%1, "); - QString string; - for (unsigned int j = 0; j < messageInfo[msgid].fields[j].array_length; ++j) - { - string += tmp.arg(0); - } - item->setData(2, Qt::DisplayRole, QString("uint32_t[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, string); - } - else - { - // Single value - item->setData(2, Qt::DisplayRole, "uint32_t"); - item->setData(1, Qt::DisplayRole, 0); - } - break; - case MAVLINK_TYPE_INT32_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - // Enforce null termination - QString tmp("%1, "); - QString string; - for (unsigned int j = 0; j < messageInfo[msgid].fields[j].array_length; ++j) - { - string += tmp.arg(0); - } - item->setData(2, Qt::DisplayRole, QString("int32_t[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, string); - } - else - { - // Single value - item->setData(2, Qt::DisplayRole, "int32_t"); - item->setData(1, Qt::DisplayRole, 0); - } - break; - case MAVLINK_TYPE_FLOAT: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - // Enforce null termination - QString tmp("%1, "); - QString string; - for (unsigned int j = 0; j < messageInfo[msgid].fields[j].array_length; ++j) - { - string += tmp.arg(0.0f); - } - item->setData(2, Qt::DisplayRole, QString("float[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, string); - } - else - { - // Single value - item->setData(2, Qt::DisplayRole, "float"); - item->setData(1, Qt::DisplayRole, 0.0f); - } - break; - case MAVLINK_TYPE_DOUBLE: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - // Enforce null termination - QString tmp("%1, "); - QString string; - for (unsigned int j = 0; j < messageInfo[msgid].fields[j].array_length; ++j) - { - string += tmp.arg(0); - } - item->setData(2, Qt::DisplayRole, QString("double[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, string); - } - else - { - // Single value - item->setData(2, Qt::DisplayRole, "double"); - item->setData(1, Qt::DisplayRole, 0.0); - } - break; - case MAVLINK_TYPE_UINT64_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - // Enforce null termination - QString tmp("%1, "); - QString string; - for (unsigned int j = 0; j < messageInfo[msgid].fields[j].array_length; ++j) - { - string += tmp.arg(0); - } - item->setData(2, Qt::DisplayRole, QString("uint64_t[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, string); - } - else - { - // Single value - item->setData(2, Qt::DisplayRole, "uint64_t"); - item->setData(1, Qt::DisplayRole, (quint64) 0); - } - break; - case MAVLINK_TYPE_INT64_T: - if (messageInfo[msgid].fields[fieldid].array_length > 0) - { - // Enforce null termination - QString tmp("%1, "); - QString string; - for (unsigned int j = 0; j < messageInfo[msgid].fields[j].array_length; ++j) - { - string += tmp.arg(0); - } - item->setData(2, Qt::DisplayRole, QString("int64_t[%1]").arg(messageInfo[msgid].fields[fieldid].array_length)); - item->setData(1, Qt::DisplayRole, string); - } - else - { - // Single value - item->setData(2, Qt::DisplayRole, "int64_t"); - item->setData(1, Qt::DisplayRole, (qint64) 0); - } - break; - } -} diff --git a/src/ui/mavlink/QGCMAVLinkMessageSender.h b/src/ui/mavlink/QGCMAVLinkMessageSender.h deleted file mode 100644 index 267c9c2d1..000000000 --- a/src/ui/mavlink/QGCMAVLinkMessageSender.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef QGCMAVLINKMESSAGESENDER_H -#define QGCMAVLINKMESSAGESENDER_H - -#include -#include -#include -#include -#include "MAVLinkProtocol.h" - -namespace Ui { -class QGCMAVLinkMessageSender; -} - -class QGCMAVLinkMessageSender : public QWidget -{ - Q_OBJECT - - friend class QTimer; - -public: - explicit QGCMAVLinkMessageSender(MAVLinkProtocol* mavlink, QWidget *parent = 0); - ~QGCMAVLinkMessageSender(); - -public slots: - /** @brief Send message currently selected in ui, taking values from tree view */ - bool sendMessage(); - -protected: - mavlink_message_info_t messageInfo[256]; ///< Meta information about all messages - MAVLinkProtocol* protocol; ///< MAVLink protocol - QMap messagesHz; ///< Used to store update rate in Hz - QTimer refreshTimer; - QMap sendTimers; - QMap managementItems; - QMap treeWidgetItems; ///< Messages - - /** @brief Create the tree view of all messages */ - void createTreeView(); - /** @brief Create one field of one message in the tree view of all messages */ - void createField(int msgid, int fieldid, QTreeWidgetItem* item); - /** @brief Send message with values taken from tree view */ - bool sendMessage(unsigned int id); - -protected slots: - /** @brief Read / display values in UI */ - void refresh(); - -private: - Ui::QGCMAVLinkMessageSender *ui; -}; - -#endif // QGCMAVLINKMESSAGESENDER_H diff --git a/src/ui/mavlink/QGCMAVLinkMessageSender.ui b/src/ui/mavlink/QGCMAVLinkMessageSender.ui deleted file mode 100644 index 5b4ea00e9..000000000 --- a/src/ui/mavlink/QGCMAVLinkMessageSender.ui +++ /dev/null @@ -1,43 +0,0 @@ - - - QGCMAVLinkMessageSender - - - - 0 - 0 - 400 - 300 - - - - Form - - - - 6 - - - - - - 1 - - - - - - - - - - - Send Message - - - - - - - - -- 2.22.0