|
|
|
@ -49,7 +49,6 @@ This file is part of the QGROUNDCONTROL project
@@ -49,7 +49,6 @@ This file is part of the QGROUNDCONTROL project
|
|
|
|
|
#include "UASListWidget.h" |
|
|
|
|
#include "MAVLinkProtocol.h" |
|
|
|
|
#include "MAVLinkSimulationLink.h" |
|
|
|
|
#include "AS4Protocol.h" |
|
|
|
|
#include "ObjectDetectionView.h" |
|
|
|
|
#include "HUD.h" |
|
|
|
|
#include "JoystickWidget.h" |
|
|
|
@ -159,9 +158,6 @@ public slots:
@@ -159,9 +158,6 @@ public slots:
|
|
|
|
|
/** @brief Show the project roadmap */ |
|
|
|
|
void showRoadMap(); |
|
|
|
|
|
|
|
|
|
/** @brief Shows the widgets based on configuration and current view and autopilot */ |
|
|
|
|
void presentView(); |
|
|
|
|
|
|
|
|
|
/** @brief Reload the CSS style sheet */ |
|
|
|
|
void reloadStylesheet(); |
|
|
|
|
/** @brief Let the user select the CSS style sheet */ |
|
|
|
@ -193,29 +189,21 @@ public slots:
@@ -193,29 +189,21 @@ public slots:
|
|
|
|
|
/**
|
|
|
|
|
* @brief Shows a Docked Widget based on the action sender |
|
|
|
|
* |
|
|
|
|
* This slot is written to be used in conjunction with the addToToolsMenu function |
|
|
|
|
* This slot is written to be used in conjunction with the addTool() function |
|
|
|
|
* It shows the QDockedWidget based on the action sender |
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
void showToolWidget(bool visible); |
|
|
|
|
void showTool(bool visible); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Shows a Widget from the center stack based on the action sender |
|
|
|
|
* |
|
|
|
|
* This slot is written to be used in conjunction with the addToCentralWidgetsMenu function |
|
|
|
|
* This slot is written to be used in conjunction with the addCentralWidget() function |
|
|
|
|
* It shows the Widget based on the action sender |
|
|
|
|
* |
|
|
|
|
*/ |
|
|
|
|
void showCentralWidget(); |
|
|
|
|
|
|
|
|
|
/** @brief Change actively a QDockWidgets visibility by an action */ |
|
|
|
|
void showDockWidget(bool vis); |
|
|
|
|
/** @brief Updates a QDockWidget's checked status based on its visibility */ |
|
|
|
|
void updateVisibilitySettings(bool vis); |
|
|
|
|
|
|
|
|
|
/** @brief Updates a QDockWidget's location */ |
|
|
|
|
void updateLocationSettings (Qt::DockWidgetArea location); |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
|
|
|
|
|
MainWindow(QWidget *parent = 0); |
|
|
|
@ -223,65 +211,19 @@ protected:
@@ -223,65 +211,19 @@ protected:
|
|
|
|
|
/** @brief Set default window settings for the current autopilot type */ |
|
|
|
|
void setDefaultSettingsForAp(); |
|
|
|
|
|
|
|
|
|
// These defines are used to save the settings when selecting with
|
|
|
|
|
// which widgets populate the views
|
|
|
|
|
// FIXME: DO NOT PUT CUSTOM VALUES IN THIS ENUM since it is iterated over
|
|
|
|
|
// this will be fixed in a future release.
|
|
|
|
|
typedef enum _TOOLS_WIDGET_NAMES { |
|
|
|
|
MENU_UAS_CONTROL_PARAM, |
|
|
|
|
MENU_UAS_CONTROL, |
|
|
|
|
MENU_UAS_INFO, |
|
|
|
|
MENU_CAMERA, |
|
|
|
|
MENU_UAS_LIST, |
|
|
|
|
MENU_WAYPOINTS, |
|
|
|
|
MENU_STATUS, |
|
|
|
|
MENU_DETECTION, |
|
|
|
|
MENU_DEBUG_CONSOLE, |
|
|
|
|
MENU_PARAMETERS, |
|
|
|
|
MENU_HDD_1, |
|
|
|
|
MENU_HDD_2, |
|
|
|
|
MENU_WATCHDOG, |
|
|
|
|
MENU_HUD, |
|
|
|
|
MENU_HSI, |
|
|
|
|
MENU_RC_VIEW, |
|
|
|
|
MENU_SLUGS_DATA, |
|
|
|
|
MENU_SLUGS_PID, |
|
|
|
|
MENU_SLUGS_HIL, |
|
|
|
|
MENU_SLUGS_CAMERA, |
|
|
|
|
MENU_MAVLINK_LOG_PLAYER, |
|
|
|
|
MENU_VIDEO_STREAM_1, |
|
|
|
|
MENU_VIDEO_STREAM_2, |
|
|
|
|
CENTRAL_SEPARATOR= 255, // do not change
|
|
|
|
|
CENTRAL_LINECHART, |
|
|
|
|
CENTRAL_PROTOCOL, |
|
|
|
|
CENTRAL_MAP, |
|
|
|
|
CENTRAL_3D_LOCAL, |
|
|
|
|
CENTRAL_3D_MAP, |
|
|
|
|
CENTRAL_OSGEARTH, |
|
|
|
|
CENTRAL_GOOGLE_EARTH, |
|
|
|
|
CENTRAL_HUD, |
|
|
|
|
CENTRAL_DATA_PLOT, |
|
|
|
|
|
|
|
|
|
} TOOLS_WIDGET_NAMES; |
|
|
|
|
|
|
|
|
|
typedef enum _SETTINGS_SECTIONS { |
|
|
|
|
SECTION_MENU, |
|
|
|
|
SUB_SECTION_CHECKED, |
|
|
|
|
SUB_SECTION_LOCATION, |
|
|
|
|
} SETTINGS_SECTIONS; |
|
|
|
|
|
|
|
|
|
typedef enum _VIEW_SECTIONS { |
|
|
|
|
VIEW_ENGINEER, |
|
|
|
|
VIEW_OPERATOR, |
|
|
|
|
VIEW_PILOT, |
|
|
|
|
VIEW_MAVLINK, |
|
|
|
|
VIEW_UNCONNECTED, ///< View in unconnected mode, when no UAS is available
|
|
|
|
|
VIEW_FULL ///< All widgets shown at once
|
|
|
|
|
} VIEW_SECTIONS; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QHash<int, QAction*> toolsMenuActions; // Holds ptr to the Menu Actions
|
|
|
|
|
QHash<int, QWidget*> dockWidgets; // Holds ptr to the Actual Dock widget
|
|
|
|
|
QHash<int, Qt::DockWidgetArea> dockWidgetLocations; // Holds the location
|
|
|
|
|
// QHash<int, Qt::DockWidgetArea> dockWidgetLocations; // Holds the location
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Adds an already instantiated QDockedWidget to the Tools Menu |
|
|
|
@ -290,24 +232,22 @@ protected:
@@ -290,24 +232,22 @@ protected:
|
|
|
|
|
* tools menu and connects the QMenuAction to a slot that shows the widget and |
|
|
|
|
* checks/unchecks the tools menu item |
|
|
|
|
* |
|
|
|
|
* @param widget The QDockedWidget being added |
|
|
|
|
* @param widget The QDockWidget being added |
|
|
|
|
* @param title The entry that will appear in the Menu and in the QDockedWidget title bar |
|
|
|
|
* @param slotName The slot to which the triggered() signal of the menu action will be connected. |
|
|
|
|
* @param tool The ENUM defined in MainWindow.h that is associated to the widget |
|
|
|
|
* @param location The default location for the QDockedWidget in case there is no previous key in the settings |
|
|
|
|
*/ |
|
|
|
|
void addToToolsMenu (QWidget* widget, const QString title, const char * slotName, TOOLS_WIDGET_NAMES tool, Qt::DockWidgetArea location=Qt::RightDockWidgetArea); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Determines if a QDockWidget needs to be show and if so, shows it |
|
|
|
|
* |
|
|
|
|
* Based on the the autopilot and the current view it queries the settings and shows the |
|
|
|
|
* widget if necessary |
|
|
|
|
* |
|
|
|
|
* @param widget The QDockWidget requested to be shown |
|
|
|
|
* @param view The view for which the QDockWidget is requested |
|
|
|
|
*/ |
|
|
|
|
void showTheWidget (TOOLS_WIDGET_NAMES widget, VIEW_SECTIONS view = VIEW_MAVLINK); |
|
|
|
|
void addTool(QDockWidget* widget, const QString& title, Qt::DockWidgetArea location=Qt::RightDockWidgetArea); |
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * @brief Determines if a QDockWidget needs to be show and if so, shows it
|
|
|
|
|
// *
|
|
|
|
|
// * Based on the the autopilot and the current view it queries the settings and shows the
|
|
|
|
|
// * widget if necessary
|
|
|
|
|
// *
|
|
|
|
|
// * @param widget The QDockWidget requested to be shown
|
|
|
|
|
// * @param view The view for which the QDockWidget is requested
|
|
|
|
|
// */
|
|
|
|
|
// void showTheWidget (TOOLS_WIDGET_NAMES widget, VIEW_SECTIONS view = VIEW_MAVLINK);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Adds an already instantiated QWidget to the center stack |
|
|
|
@ -319,21 +259,8 @@ protected:
@@ -319,21 +259,8 @@ protected:
|
|
|
|
|
* |
|
|
|
|
* @param widget The QWidget being added |
|
|
|
|
* @param title The entry that will appear in the Menu |
|
|
|
|
* @param slotName The slot to which the triggered() signal of the menu action will be connected. |
|
|
|
|
* @param centralWidget The ENUM defined in MainWindow.h that is associated to the widget |
|
|
|
|
*/ |
|
|
|
|
void addToCentralWidgetsMenu ( QWidget* widget, const QString title,const char * slotName, TOOLS_WIDGET_NAMES centralWidget); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Determines if a QWidget needs to be show and if so, shows it |
|
|
|
|
* |
|
|
|
|
* Based on the the autopilot and the current view it queries the settings and shows the |
|
|
|
|
* widget if necessary |
|
|
|
|
* |
|
|
|
|
* @param centralWidget The QWidget requested to be shown |
|
|
|
|
* @param view The view for which the QWidget is requested |
|
|
|
|
*/ |
|
|
|
|
void showTheCentralWidget (TOOLS_WIDGET_NAMES centralWidget, VIEW_SECTIONS view); |
|
|
|
|
void addCentralWidget(QWidget* widget, const QString& title); |
|
|
|
|
|
|
|
|
|
/** @brief Catch window resize events */ |
|
|
|
|
void resizeEvent(QResizeEvent * event); |
|
|
|
@ -343,24 +270,25 @@ protected:
@@ -343,24 +270,25 @@ protected:
|
|
|
|
|
bool aboutToCloseFlag; |
|
|
|
|
bool changingViewsFlag; |
|
|
|
|
|
|
|
|
|
void clearView(); |
|
|
|
|
void storeViewState(); |
|
|
|
|
void loadViewState(); |
|
|
|
|
|
|
|
|
|
void buildCustomWidget(); |
|
|
|
|
void buildCommonWidgets(); |
|
|
|
|
void buildPxWidgets(); |
|
|
|
|
void buildSlugsWidgets(); |
|
|
|
|
// void buildPxWidgets();
|
|
|
|
|
// void buildSlugsWidgets();
|
|
|
|
|
|
|
|
|
|
void connectCommonWidgets(); |
|
|
|
|
void connectPxWidgets(); |
|
|
|
|
void connectSlugsWidgets(); |
|
|
|
|
// void connectPxWidgets();
|
|
|
|
|
// void connectSlugsWidgets();
|
|
|
|
|
|
|
|
|
|
void arrangeCommonCenterStack(); |
|
|
|
|
void arrangePxCenterStack(); |
|
|
|
|
void arrangeSlugsCenterStack(); |
|
|
|
|
// void arrangePxCenterStack();
|
|
|
|
|
// void arrangeSlugsCenterStack();
|
|
|
|
|
|
|
|
|
|
void connectCommonActions(); |
|
|
|
|
void connectPxActions(); |
|
|
|
|
void connectSlugsActions(); |
|
|
|
|
// void connectPxActions();
|
|
|
|
|
// void connectSlugsActions();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void configureWindowName(); |
|
|
|
@ -369,13 +297,13 @@ protected:
@@ -369,13 +297,13 @@ protected:
|
|
|
|
|
|
|
|
|
|
// TODO Should be moved elsewhere, as the protocol does not belong to the UI
|
|
|
|
|
MAVLinkProtocol* mavlink; |
|
|
|
|
AS4Protocol* as4link; |
|
|
|
|
|
|
|
|
|
MAVLinkSimulationLink* simulationLink; |
|
|
|
|
LinkInterface* udpLink; |
|
|
|
|
|
|
|
|
|
QSettings settings; |
|
|
|
|
QStackedWidget *centerStack; |
|
|
|
|
QActionGroup centerStackActionGroup; |
|
|
|
|
|
|
|
|
|
// Center widgets
|
|
|
|
|
QPointer<Linecharts> linechartWidget; |
|
|
|
@ -451,7 +379,7 @@ protected:
@@ -451,7 +379,7 @@ protected:
|
|
|
|
|
private: |
|
|
|
|
Ui::MainWindow ui; |
|
|
|
|
|
|
|
|
|
QString buildMenuKey (SETTINGS_SECTIONS section , TOOLS_WIDGET_NAMES tool, VIEW_SECTIONS view); |
|
|
|
|
// QString buildMenuKey (SETTINGS_SECTIONS section , TOOLS_WIDGET_NAMES tool, VIEW_SECTIONS view);
|
|
|
|
|
QString getWindowStateKey(); |
|
|
|
|
QString getWindowGeometryKey(); |
|
|
|
|
|
|
|
|
|