Commit 632ddad3 authored by Michael Carpenter's avatar Michael Carpenter

New configuration menu setup. Placeholders for now, waiting for functionality

parent c23dc4d6
......@@ -235,7 +235,22 @@ FORMS += src/ui/MainWindow.ui \
src/ui/uas/UASActionsWidget.ui \
src/ui/QGCTabbedInfoView.ui \
src/ui/UASRawStatusView.ui \
src/ui/uas/QGCMessageView.ui
src/ui/uas/QGCMessageView.ui \
src/ui/configuration/ApmHardwareConfig.ui \
src/ui/configuration/ApmSoftwareConfig.ui \
src/ui/configuration/FrameTypeConfig.ui \
src/ui/configuration/CompassConfig.ui \
src/ui/configuration/AccelCalibrationConfig.ui \
src/ui/configuration/RadioCalibrationConfig.ui \
src/ui/configuration/FlightModeConfig.ui \
src/ui/configuration/Radio3DRConfig.ui \
src/ui/configuration/BatteryMonitorConfig.ui \
src/ui/configuration/SonarConfig.ui \
src/ui/configuration/AirspeedConfig.ui \
src/ui/configuration/OpticalFlowConfig.ui \
src/ui/configuration/OsdConfig.ui \
src/ui/configuration/AntennaTrackerConfig.ui \
src/ui/configuration/CameraGimbalConfig.ui
INCLUDEPATH += src \
src/ui \
src/ui/linechart \
......@@ -251,7 +266,8 @@ INCLUDEPATH += src \
src/ui/watchdog \
src/ui/map3D \
src/ui/mission \
src/ui/designer
src/ui/designer \
src/ui/configuration
HEADERS += src/MG.h \
src/QGCCore.h \
src/uas/UASInterface.h \
......@@ -393,7 +409,22 @@ HEADERS += src/MG.h \
src/ui/QGCTabbedInfoView.h \
src/ui/UASRawStatusView.h \
src/ui/PrimaryFlightDisplay.h \
src/ui/uas/QGCMessageView.h
src/ui/uas/QGCMessageView.h \
src/ui/configuration/ApmHardwareConfig.h \
src/ui/configuration/ApmSoftwareConfig.h \
src/ui/configuration/FrameTypeConfig.h \
src/ui/configuration/CompassConfig.h \
src/ui/configuration/AccelCalibrationConfig.h \
src/ui/configuration/RadioCalibrationConfig.h \
src/ui/configuration/FlightModeConfig.h \
src/ui/configuration/Radio3DRConfig.h \
src/ui/configuration/BatteryMonitorConfig.h \
src/ui/configuration/SonarConfig.h \
src/ui/configuration/AirspeedConfig.h \
src/ui/configuration/OpticalFlowConfig.h \
src/ui/configuration/OsdConfig.h \
src/ui/configuration/AntennaTrackerConfig.h \
src/ui/configuration/CameraGimbalConfig.h
# Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler
macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::HEADERS += src/ui/map3D/QGCGoogleEarthView.h
......@@ -570,7 +601,22 @@ SOURCES += src/main.cc \
src/ui/QGCTabbedInfoView.cpp \
src/ui/UASRawStatusView.cpp \
src/ui/PrimaryFlightDisplay.cpp \
src/ui/uas/QGCMessageView.cc
src/ui/uas/QGCMessageView.cc \
src/ui/configuration/ApmHardwareConfig.cc \
src/ui/configuration/ApmSoftwareConfig.cc \
src/ui/configuration/FrameTypeConfig.cc \
src/ui/configuration/CompassConfig.cc \
src/ui/configuration/AccelCalibrationConfig.cc \
src/ui/configuration/RadioCalibrationConfig.cc \
src/ui/configuration/FlightModeConfig.cc \
src/ui/configuration/Radio3DRConfig.cc \
src/ui/configuration/BatteryMonitorConfig.cc \
src/ui/configuration/SonarConfig.cc \
src/ui/configuration/AirspeedConfig.cc \
src/ui/configuration/OpticalFlowConfig.cc \
src/ui/configuration/OsdConfig.cc \
src/ui/configuration/AntennaTrackerConfig.cc \
src/ui/configuration/CameraGimbalConfig.cc
# Enable Google Earth only on Mac OS and Windows with Visual Studio compiler
macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc
......
......@@ -174,7 +174,9 @@ MainWindow::MainWindow(QWidget *parent):
QList<QAction*> actions;
actions << ui.actionFlightView;
actions << ui.actionMissionView;
actions << ui.actionConfiguration_2;
//actions << ui.actionConfiguration_2;
actions << ui.actionHardwareConfig;
actions << ui.actionSoftwareConfig;
toolBar->setPerspectiveChangeActions(actions);
// Add actions for advanced users (displayed in dropdown under "advanced")
......@@ -472,12 +474,20 @@ void MainWindow::buildCommonWidgets()
if (!configView)
{
configView = new SubMainWindow(this);
configView->setObjectName("VIEW_CONFIGURATION");
configView->setCentralWidget(new QGCVehicleConfig(this));
addCentralWidget(configView,"Config");
centralWidgetToDockWidgetsMap[VIEW_CONFIGURATION] = QMap<QString,QWidget*>();
configView->setObjectName("VIEW_HARDWARE_CONFIG");
configView->setCentralWidget(new ApmHardwareConfig(this));
addCentralWidget(configView,"Hardware");
centralWidgetToDockWidgetsMap[VIEW_HARDWARE_CONFIG] = QMap<QString,QWidget*>();
}
if (!softwareConfigView)
{
softwareConfigView = new SubMainWindow(this);
softwareConfigView->setObjectName("VIEW_SOFTWARE_CONFIG");
softwareConfigView->setCentralWidget(new ApmSoftwareConfig(this));
addCentralWidget(softwareConfigView,"Software");
centralWidgetToDockWidgetsMap[VIEW_SOFTWARE_CONFIG] = QMap<QString,QWidget*>();
}
if (!engineeringView)
{
engineeringView = new SubMainWindow(this);
......@@ -1413,7 +1423,9 @@ void MainWindow::connectCommonActions()
perspectives->addAction(ui.actionFlightView);
perspectives->addAction(ui.actionSimulation_View);
perspectives->addAction(ui.actionMissionView);
perspectives->addAction(ui.actionConfiguration_2);
//perspectives->addAction(ui.actionConfiguration_2);
perspectives->addAction(ui.actionHardwareConfig);
perspectives->addAction(ui.actionSoftwareConfig);
perspectives->addAction(ui.actionFirmwareUpdateView);
perspectives->addAction(ui.actionUnconnectedView);
perspectives->setExclusive(true);
......@@ -1444,10 +1456,15 @@ void MainWindow::connectCommonActions()
ui.actionMissionView->setChecked(true);
ui.actionMissionView->activate(QAction::Trigger);
}
if (currentView == VIEW_CONFIGURATION)
if (currentView == VIEW_HARDWARE_CONFIG)
{
ui.actionHardwareConfig->setChecked(true);
ui.actionHardwareConfig->activate(QAction::Trigger);
}
if (currentView == VIEW_SOFTWARE_CONFIG)
{
ui.actionConfiguration_2->setChecked(true);
ui.actionConfiguration_2->activate(QAction::Trigger);
ui.actionSoftwareConfig->setChecked(true);
ui.actionSoftwareConfig->activate(QAction::Trigger);
}
if (currentView == VIEW_FIRMWAREUPDATE)
{
......@@ -1489,7 +1506,9 @@ void MainWindow::connectCommonActions()
connect(ui.actionEngineersView, SIGNAL(triggered()), this, SLOT(loadEngineerView()));
connect(ui.actionMissionView, SIGNAL(triggered()), this, SLOT(loadOperatorView()));
connect(ui.actionUnconnectedView, SIGNAL(triggered()), this, SLOT(loadUnconnectedView()));
connect(ui.actionConfiguration_2,SIGNAL(triggered()),this,SLOT(loadConfigurationView()));
//connect(ui.actionConfiguration_2,SIGNAL(triggered()),this,SLOT(loadConfigurationView()));
connect(ui.actionHardwareConfig,SIGNAL(triggered()),this,SLOT(loadHardwareConfigView()));
connect(ui.actionSoftwareConfig,SIGNAL(triggered()),this,SLOT(loadSoftwareConfigView()));
connect(ui.actionFirmwareUpdateView, SIGNAL(triggered()), this, SLOT(loadFirmwareUpdateView()));
connect(ui.actionMavlinkView, SIGNAL(triggered()), this, SLOT(loadMAVLinkView()));
......@@ -1955,9 +1974,12 @@ void MainWindow::loadViewState()
// Load defaults
switch (currentView)
{
case VIEW_CONFIGURATION:
case VIEW_HARDWARE_CONFIG:
centerStack->setCurrentWidget(configView);
break;
case VIEW_SOFTWARE_CONFIG:
centerStack->setCurrentWidget(softwareConfigView);
break;
case VIEW_ENGINEER:
centerStack->setCurrentWidget(engineeringView);
break;
......@@ -2067,13 +2089,24 @@ void MainWindow::loadOperatorView()
loadViewState();
}
}
void MainWindow::loadConfigurationView()
void MainWindow::loadHardwareConfigView()
{
if (currentView != VIEW_HARDWARE_CONFIG)
{
storeViewState();
currentView = VIEW_HARDWARE_CONFIG;
ui.actionHardwareConfig->setChecked(true);
loadViewState();
}
}
void MainWindow::loadSoftwareConfigView()
{
if (currentView != VIEW_CONFIGURATION)
if (currentView != VIEW_SOFTWARE_CONFIG)
{
storeViewState();
currentView = VIEW_CONFIGURATION;
ui.actionConfiguration_2->setChecked(true);
currentView = VIEW_SOFTWARE_CONFIG;
ui.actionSoftwareConfig->setChecked(true);
loadViewState();
}
}
......
......@@ -82,6 +82,8 @@ This file is part of the QGROUNDCONTROL project
#include "QGCMAVLinkLogPlayer.h"
#include "QGCVehicleConfig.h"
#include "MAVLinkDecoder.h"
#include "ApmHardwareConfig.h"
#include "ApmSoftwareConfig.h"
class QGCMapTool;
class QGCMAVLinkMessageSender;
......@@ -164,8 +166,9 @@ public slots:
/** @brief Sets advanced mode, allowing for editing of tool widget locations */
void setAdvancedMode();
/** @brief Load configuration view */
void loadConfigurationView();
/** @brief Load configuration views */
void loadHardwareConfigView();
void loadSoftwareConfigView();
/** @brief Load default view when no MAV is connected */
void loadUnconnectedView();
/** @brief Load view for pilot */
......@@ -282,7 +285,8 @@ protected:
VIEW_SIMULATION,
VIEW_MAVLINK,
VIEW_FIRMWAREUPDATE,
VIEW_CONFIGURATION,
VIEW_HARDWARE_CONFIG,
VIEW_SOFTWARE_CONFIG,
VIEW_UNCONNECTED, ///< View in unconnected mode, when no UAS is available
VIEW_FULL ///< All widgets shown at once
} VIEW_SECTIONS;
......@@ -349,6 +353,7 @@ protected:
QPointer<SubMainWindow> plannerView;
QPointer<SubMainWindow> pilotView;
QPointer<SubMainWindow> configView;
QPointer<SubMainWindow> softwareConfigView;
QPointer<SubMainWindow> mavlinkView;
QPointer<SubMainWindow> engineeringView;
QPointer<SubMainWindow> simView;
......
......@@ -51,7 +51,7 @@
<x>0</x>
<y>0</y>
<width>800</width>
<height>22</height>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuMGround">
......@@ -105,7 +105,8 @@
</property>
<addaction name="actionMissionView"/>
<addaction name="actionFlightView"/>
<addaction name="actionConfiguration_2"/>
<addaction name="actionHardwareConfig"/>
<addaction name="actionSoftwareConfig"/>
<addaction name="actionEngineersView"/>
<addaction name="actionSimulationView"/>
<addaction name="separator"/>
......@@ -466,7 +467,7 @@
<string>Open the simulation view</string>
</property>
</action>
<action name="actionConfiguration_2">
<action name="actionHardwareConfig">
<property name="checkable">
<bool>true</bool>
</property>
......@@ -475,7 +476,7 @@
<normaloff>:/files/images/categories/preferences-system.svg</normaloff>:/files/images/categories/preferences-system.svg</iconset>
</property>
<property name="text">
<string>Config</string>
<string>Hardware</string>
</property>
<property name="toolTip">
<string>Configuration options of the vehicle.</string>
......@@ -494,6 +495,11 @@
<string>Simulation</string>
</property>
</action>
<action name="actionSoftwareConfig">
<property name="text">
<string>Software</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
......
#include "AccelCalibrationConfig.h"
AccelCalibrationConfig::AccelCalibrationConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
AccelCalibrationConfig::~AccelCalibrationConfig()
{
}
#ifndef ACCELCALIBRATIONCONFIG_H
#define ACCELCALIBRATIONCONFIG_H
#include <QWidget>
#include "ui_AccelCalibrationConfig.h"
class AccelCalibrationConfig : public QWidget
{
Q_OBJECT
public:
explicit AccelCalibrationConfig(QWidget *parent = 0);
~AccelCalibrationConfig();
private:
Ui::AccelCalibrationConfig ui;
};
#endif // ACCELCALIBRATIONCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AccelCalibrationConfig</class>
<widget class="QWidget" name="AccelCalibrationConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>231</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Accelerometer Calibration&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "AirspeedConfig.h"
AirspeedConfig::AirspeedConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
AirspeedConfig::~AirspeedConfig()
{
}
#ifndef AIRSPEEDCONFIG_H
#define AIRSPEEDCONFIG_H
#include <QWidget>
#include "ui_AirspeedConfig.h"
class AirspeedConfig : public QWidget
{
Q_OBJECT
public:
explicit AirspeedConfig(QWidget *parent = 0);
~AirspeedConfig();
private:
Ui::AirspeedConfig ui;
};
#endif // AIRSPEEDCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AirspeedConfig</class>
<widget class="QWidget" name="AirspeedConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>131</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Airspeed&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "AntennaTrackerConfig.h"
AntennaTrackerConfig::AntennaTrackerConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
AntennaTrackerConfig::~AntennaTrackerConfig()
{
}
#ifndef ANTENNATRACKERCONFIG_H
#define ANTENNATRACKERCONFIG_H
#include <QWidget>
#include "ui_AntennaTrackerConfig.h"
class AntennaTrackerConfig : public QWidget
{
Q_OBJECT
public:
explicit AntennaTrackerConfig(QWidget *parent = 0);
~AntennaTrackerConfig();
private:
Ui::AntennaTrackerConfig ui;
};
#endif // ANTENNATRACKERCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AntennaTrackerConfig</class>
<widget class="QWidget" name="AntennaTrackerConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>30</x>
<y>30</y>
<width>151</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Antenna Tracker&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "ApmHardwareConfig.h"
ApmHardwareConfig::ApmHardwareConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
//ui.firmwareButton->setVisible(valse);
ui.manditoryHardware->setVisible(false);
ui.frameTypeButton->setVisible(false);
ui.compassButton->setVisible(false);
ui.accelCalibrateButton->setVisible(false);
ui.radioCalibrateButton->setVisible(false);
ui.flightModesButton->setVisible(false);
ui.optionalHardwareButton->setVisible(false);
//ui.radio3DRButton->setVisible(false);
ui.batteryMonitorButton->setVisible(false);
ui.sonarButton->setVisible(false);
ui.airspeedButton->setVisible(false);
ui.opticalFlowButton->setVisible(false);
ui.osdButton->setVisible(false);
ui.cameraGimbalButton->setVisible(false);
//ui.antennaTrackerButton->setVisible(false);
connect(ui.manditoryHardware,SIGNAL(toggled(bool)),ui.frameTypeButton,SLOT(setShown(bool)));
connect(ui.manditoryHardware,SIGNAL(toggled(bool)),ui.compassButton,SLOT(setShown(bool)));
connect(ui.manditoryHardware,SIGNAL(toggled(bool)),ui.accelCalibrateButton,SLOT(setShown(bool)));
connect(ui.manditoryHardware,SIGNAL(toggled(bool)),ui.radioCalibrateButton,SLOT(setShown(bool)));
connect(ui.manditoryHardware,SIGNAL(toggled(bool)),ui.flightModesButton,SLOT(setShown(bool)));
connect(ui.optionalHardwareButton,SIGNAL(toggled(bool)),ui.radio3DRButton,SLOT(setShown(bool)));
connect(ui.optionalHardwareButton,SIGNAL(toggled(bool)),ui.batteryMonitorButton,SLOT(setShown(bool)));
connect(ui.optionalHardwareButton,SIGNAL(toggled(bool)),ui.sonarButton,SLOT(setShown(bool)));
connect(ui.optionalHardwareButton,SIGNAL(toggled(bool)),ui.airspeedButton,SLOT(setShown(bool)));
connect(ui.optionalHardwareButton,SIGNAL(toggled(bool)),ui.opticalFlowButton,SLOT(setShown(bool)));
connect(ui.optionalHardwareButton,SIGNAL(toggled(bool)),ui.osdButton,SLOT(setShown(bool)));
connect(ui.optionalHardwareButton,SIGNAL(toggled(bool)),ui.cameraGimbalButton,SLOT(setShown(bool)));
connect(ui.optionalHardwareButton,SIGNAL(toggled(bool)),ui.antennaTrackerButton,SLOT(setShown(bool)));
connect(ui.frameTypeButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
QWidget *widget = new QWidget(this);
ui.stackedWidget->addWidget(widget); //Firmware placeholder.
buttonToConfigWidgetMap[ui.firmwareButton] = widget;
connect(ui.firmwareButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
frameConfig = new FrameTypeConfig(this);
ui.stackedWidget->addWidget(frameConfig);
buttonToConfigWidgetMap[ui.frameTypeButton] = frameConfig;
connect(ui.frameTypeButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
compassConfig = new CompassConfig(this);
ui.stackedWidget->addWidget(compassConfig);
buttonToConfigWidgetMap[ui.compassButton] = compassConfig;
connect(ui.compassButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
accelConfig = new AccelCalibrationConfig(this);
ui.stackedWidget->addWidget(accelConfig);
buttonToConfigWidgetMap[ui.accelCalibrateButton] = accelConfig;
connect(ui.accelCalibrateButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
radioConfig = new RadioCalibrationConfig(this);
ui.stackedWidget->addWidget(radioConfig);
buttonToConfigWidgetMap[ui.radioCalibrateButton] = radioConfig;
connect(ui.radioCalibrateButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
flightConfig = new FlightModeConfig(this);
ui.stackedWidget->addWidget(flightConfig);
buttonToConfigWidgetMap[ui.flightModesButton] = flightConfig;
connect(ui.flightModesButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
radio3drConfig = new Radio3DRConfig(this);
ui.stackedWidget->addWidget(radio3drConfig);
buttonToConfigWidgetMap[ui.radio3DRButton] = radio3drConfig;
connect(ui.radio3DRButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
batteryConfig = new BatteryMonitorConfig(this);
ui.stackedWidget->addWidget(batteryConfig);
buttonToConfigWidgetMap[ui.batteryMonitorButton] = batteryConfig;
connect(ui.batteryMonitorButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
sonarConfig = new SonarConfig(this);
ui.stackedWidget->addWidget(sonarConfig);
buttonToConfigWidgetMap[ui.sonarButton] = sonarConfig;
connect(ui.sonarButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
airspeedConfig = new AirspeedConfig(this);
ui.stackedWidget->addWidget(airspeedConfig);
buttonToConfigWidgetMap[ui.airspeedButton] = airspeedConfig;
connect(ui.airspeedButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
opticalFlowConfig = new OpticalFlowConfig(this);
ui.stackedWidget->addWidget(opticalFlowConfig);
buttonToConfigWidgetMap[ui.opticalFlowButton] = opticalFlowConfig;
connect(ui.opticalFlowButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
osdConfig = new OsdConfig(this);
ui.stackedWidget->addWidget(osdConfig);
buttonToConfigWidgetMap[ui.osdButton] = osdConfig;
connect(ui.osdButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
cameraGimbalConfig = new CameraGimbalConfig(this);
ui.stackedWidget->addWidget(cameraGimbalConfig);
buttonToConfigWidgetMap[ui.cameraGimbalButton] = cameraGimbalConfig;
connect(ui.cameraGimbalButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
antennaTrackerConfig = new AntennaTrackerConfig(this);
ui.stackedWidget->addWidget(antennaTrackerConfig);
buttonToConfigWidgetMap[ui.antennaTrackerButton] = antennaTrackerConfig;
connect(ui.antennaTrackerButton,SIGNAL(clicked()),this,SLOT(activateStackedWidget()));
connect(UASManager::instance(),SIGNAL(activeUASSet(UASInterface*)),this,SLOT(activeUASSet(UASInterface*)));
if (UASManager::instance()->getActiveUAS())
{
activeUASSet(UASManager::instance()->getActiveUAS());
}
}
void ApmHardwareConfig::activateStackedWidget()
{
if (buttonToConfigWidgetMap.contains(sender()))
{
ui.stackedWidget->setCurrentWidget(buttonToConfigWidgetMap[sender()]);
}
}
ApmHardwareConfig::~ApmHardwareConfig()
{
}
void ApmHardwareConfig::activeUASSet(UASInterface *uas)
{
if (!uas)
{
return;
}
ui.firmwareButton->setVisible(true);
ui.manditoryHardware->setVisible(true);
ui.manditoryHardware->setChecked(false);
ui.optionalHardwareButton->setVisible(true);
ui.optionalHardwareButton->setChecked(false);
ui.radio3DRButton->setVisible(false);
ui.antennaTrackerButton->setVisible(false);
}
#ifndef APMHARDWARECONFIG_H
#define APMHARDWARECONFIG_H
#include <QWidget>
#include "ui_ApmHardwareConfig.h"
#include <UASInterface.h>
#include <UASManager.h>
#include "FrameTypeConfig.h"
#include "CompassConfig.h"
#include "AccelCalibrationConfig.h"
#include "RadioCalibrationConfig.h"
#include "FlightModeConfig.h"
#include "Radio3DRConfig.h"
#include "BatteryMonitorConfig.h"
#include "SonarConfig.h"
#include "AirspeedConfig.h"
#include "OpticalFlowConfig.h"
#include "OsdConfig.h"
#include "CameraGimbalConfig.h"
#include "AntennaTrackerConfig.h"
class ApmHardwareConfig : public QWidget
{
Q_OBJECT
public:
explicit ApmHardwareConfig(QWidget *parent = 0);
~ApmHardwareConfig();
private:
FrameTypeConfig *frameConfig;
CompassConfig *compassConfig;
AccelCalibrationConfig *accelConfig;
RadioCalibrationConfig *radioConfig;
FlightModeConfig *flightConfig;
Radio3DRConfig *radio3drConfig;
BatteryMonitorConfig *batteryConfig;
SonarConfig *sonarConfig;
AirspeedConfig *airspeedConfig;
OpticalFlowConfig *opticalFlowConfig;
OsdConfig *osdConfig;
CameraGimbalConfig *cameraGimbalConfig;
AntennaTrackerConfig *antennaTrackerConfig;
private slots:
void activeUASSet(UASInterface *uas);
void activateStackedWidget();
private:
Ui::ApmHardwareConfig ui;
//This is a map between the buttons, and the widgets they should be displying
QMap<QObject*,QWidget*> buttonToConfigWidgetMap;
};
#endif // APMHARDWARECONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ApmHardwareConfig</class>
<widget class="QWidget" name="ApmHardwareConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>984</width>
<height>553</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QScrollArea" name="scrollArea_6">
<property name="geometry">
<rect>
<x>0</x>
<y>20</y>
<width>175</width>
<height>531</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>175</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>175</width>
<height>16777215</height>
</size>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_3">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>156</width>
<height>676</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
<layout class="QVBoxLayout" name="navBarLayout">
<property name="sizeConstraint">
<enum>QLayout::SetMinAndMaxSize</enum>
</property>
<item>
<widget class="QPushButton" name="firmwareButton">
<property name="minimumSize">
<size>
<width>100</width>
<height>35</height>
</size>
</property>
<property name="text">
<string>Install Firmware</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="manditoryHardware">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string> &gt;&gt;&gt; Manditory Hardware</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="frameTypeButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string> Frame Type</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="compassButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string> Compass</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="accelCalibrateButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string> Accel Calibration</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="radioCalibrateButton">
<property name="minimumSize">
<size>
<width>100</width>
<height>35</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string> Radio Calibration</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="flightModesButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string> Flight Modes</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="optionalHardwareButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string>&gt;&gt;&gt; Optional Hardware</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="radio3DRButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string> 3DR Radio</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="batteryMonitorButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string> Battery Monitor</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="sonarButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string> Sonar</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="airspeedButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string> Airspeed</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="opticalFlowButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string> Optical Flow</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="osdButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string>OSD</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cameraGimbalButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string> Camera Gimbal</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="antennaTrackerButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>35</height>
</size>
</property>
<property name="text">
<string> Antenna Tracker</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<widget class="QStackedWidget" name="stackedWidget">
<property name="geometry">
<rect>
<x>200</x>
<y>30</y>
<width>721</width>
<height>491</height>
</rect>
</property>
<property name="currentIndex">
<number>-1</number>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "ApmSoftwareConfig.h"
ApmSoftwareConfig::ApmSoftwareConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
ApmSoftwareConfig::~ApmSoftwareConfig()
{
}
#ifndef APMSOFTWARECONFIG_H
#define APMSOFTWARECONFIG_H
#include <QWidget>
#include "ui_ApmSoftwareConfig.h"
class ApmSoftwareConfig : public QWidget
{
Q_OBJECT
public:
explicit ApmSoftwareConfig(QWidget *parent = 0);
~ApmSoftwareConfig();
private:
Ui::ApmSoftwareConfig ui;
};
#endif // APMSOFTWARECONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ApmSoftwareConfig</class>
<widget class="QWidget" name="ApmSoftwareConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>718</width>
<height>531</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QScrollArea" name="scrollArea_6">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>175</width>
<height>531</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>175</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>175</width>
<height>16777215</height>
</size>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_3">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>173</width>
<height>529</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
<layout class="QVBoxLayout" name="navBarLayout">
<property name="sizeConstraint">
<enum>QLayout::SetMinAndMaxSize</enum>
</property>
<item>
<widget class="QPushButton" name="plannerConfigButton">
<property name="minimumSize">
<size>
<width>100</width>
<height>35</height>
</size>
</property>
<property name="text">
<string>APM Planner 2.0 Config</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<widget class="QStackedWidget" name="stackedWidget">
<property name="geometry">
<rect>
<x>220</x>
<y>20</y>
<width>471</width>
<height>491</height>
</rect>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "BatteryMonitorConfig.h"
BatteryMonitorConfig::BatteryMonitorConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
BatteryMonitorConfig::~BatteryMonitorConfig()
{
}
#ifndef BATTERYMONITORCONFIG_H
#define BATTERYMONITORCONFIG_H
#include <QWidget>
#include "ui_BatteryMonitorConfig.h"
class BatteryMonitorConfig : public QWidget
{
Q_OBJECT
public:
explicit BatteryMonitorConfig(QWidget *parent = 0);
~BatteryMonitorConfig();
private:
Ui::BatteryMonitorConfig ui;
};
#endif // BATTERYMONITORCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>BatteryMonitorConfig</class>
<widget class="QWidget" name="BatteryMonitorConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>141</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Battery Monitor&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "CameraGimbalConfig.h"
CameraGimbalConfig::CameraGimbalConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
CameraGimbalConfig::~CameraGimbalConfig()
{
}
#ifndef CAMERAGIMBALCONFIG_H
#define CAMERAGIMBALCONFIG_H
#include <QWidget>
#include "ui_CameraGimbalConfig.h"
class CameraGimbalConfig : public QWidget
{
Q_OBJECT
public:
explicit CameraGimbalConfig(QWidget *parent = 0);
~CameraGimbalConfig();
private:
Ui::CameraGimbalConfig ui;
};
#endif // CAMERAGIMBALCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CameraGimbalConfig</class>
<widget class="QWidget" name="CameraGimbalConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>30</x>
<y>20</y>
<width>131</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Camera Gimbal&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "CompassConfig.h"
CompassConfig::CompassConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
CompassConfig::~CompassConfig()
{
}
#ifndef COMPASSCONFIG_H
#define COMPASSCONFIG_H
#include <QWidget>
#include "ui_CompassConfig.h"
class CompassConfig : public QWidget
{
Q_OBJECT
public:
explicit CompassConfig(QWidget *parent = 0);
~CompassConfig();
private:
Ui::CompassConfig ui;
};
#endif // COMPASSCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CompassConfig</class>
<widget class="QWidget" name="CompassConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>30</x>
<y>20</y>
<width>131</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Compass&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "FlightModeConfig.h"
FlightModeConfig::FlightModeConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
FlightModeConfig::~FlightModeConfig()
{
}
#ifndef FLIGHTMODECONFIG_H
#define FLIGHTMODECONFIG_H
#include <QWidget>
#include "ui_FlightModeConfig.h"
class FlightModeConfig : public QWidget
{
Q_OBJECT
public:
explicit FlightModeConfig(QWidget *parent = 0);
~FlightModeConfig();
private:
Ui::FlightModeConfig ui;
};
#endif // FLIGHTMODECONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FlightModeConfig</class>
<widget class="QWidget" name="FlightModeConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>131</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Flight Modes&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "FrameTypeConfig.h"
FrameTypeConfig::FrameTypeConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
FrameTypeConfig::~FrameTypeConfig()
{
}
#ifndef FRAMETYPECONFIG_H
#define FRAMETYPECONFIG_H
#include <QWidget>
#include "ui_FrameTypeConfig.h"
class FrameTypeConfig : public QWidget
{
Q_OBJECT
public:
explicit FrameTypeConfig(QWidget *parent = 0);
~FrameTypeConfig();
private:
Ui::FrameTypeConfig ui;
};
#endif // FRAMETYPECONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FrameTypeConfig</class>
<widget class="QWidget" name="FrameTypeConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>131</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Frame Setup&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "OpticalFlowConfig.h"
OpticalFlowConfig::OpticalFlowConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
OpticalFlowConfig::~OpticalFlowConfig()
{
}
#ifndef OPTICALFLOWCONFIG_H
#define OPTICALFLOWCONFIG_H
#include <QWidget>
#include "ui_OpticalFlowConfig.h"
class OpticalFlowConfig : public QWidget
{
Q_OBJECT
public:
explicit OpticalFlowConfig(QWidget *parent = 0);
~OpticalFlowConfig();
private:
Ui::OpticalFlowConfig ui;
};
#endif // OPTICALFLOWCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>OpticalFlowConfig</class>
<widget class="QWidget" name="OpticalFlowConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>131</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Optical Flow&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "OsdConfig.h"
OsdConfig::OsdConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
OsdConfig::~OsdConfig()
{
}
#ifndef OSDCONFIG_H
#define OSDCONFIG_H
#include <QWidget>
#include "ui_OsdConfig.h"
class OsdConfig : public QWidget
{
Q_OBJECT
public:
explicit OsdConfig(QWidget *parent = 0);
~OsdConfig();
private:
Ui::OsdConfig ui;
};
#endif // OSDCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>OsdConfig</class>
<widget class="QWidget" name="OsdConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>131</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;OSD&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "Radio3DRConfig.h"
Radio3DRConfig::Radio3DRConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
Radio3DRConfig::~Radio3DRConfig()
{
}
#ifndef RADIO3DRCONFIG_H
#define RADIO3DRCONFIG_H
#include <QWidget>
#include "ui_Radio3DRConfig.h"
class Radio3DRConfig : public QWidget
{
Q_OBJECT
public:
explicit Radio3DRConfig(QWidget *parent = 0);
~Radio3DRConfig();
private:
Ui::Radio3DRConfig ui;
};
#endif // RADIO3DRCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Radio3DRConfig</class>
<widget class="QWidget" name="Radio3DRConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>131</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;3DR Radio&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "RadioCalibrationConfig.h"
RadioCalibrationConfig::RadioCalibrationConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
RadioCalibrationConfig::~RadioCalibrationConfig()
{
}
#ifndef RADIOCALIBRATIONCONFIG_H
#define RADIOCALIBRATIONCONFIG_H
#include <QWidget>
#include "ui_RadioCalibrationConfig.h"
class RadioCalibrationConfig : public QWidget
{
Q_OBJECT
public:
explicit RadioCalibrationConfig(QWidget *parent = 0);
~RadioCalibrationConfig();
private:
Ui::RadioCalibrationConfig ui;
};
#endif // RADIOCALIBRATIONCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>RadioCalibrationConfig</class>
<widget class="QWidget" name="RadioCalibrationConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>171</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Radio Calibration&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "SonarConfig.h"
SonarConfig::SonarConfig(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
}
SonarConfig::~SonarConfig()
{
}
#ifndef SONARCONFIG_H
#define SONARCONFIG_H
#include <QWidget>
#include "ui_SonarConfig.h"
class SonarConfig : public QWidget
{
Q_OBJECT
public:
explicit SonarConfig(QWidget *parent = 0);
~SonarConfig();
private:
Ui::SonarConfig ui;
};
#endif // SONARCONFIG_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SonarConfig</class>
<widget class="QWidget" name="SonarConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>131</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>&lt;h2&gt;Sonar&lt;/h2&gt;</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
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