Commit da66c5a8 authored by Lorenz Meier's avatar Lorenz Meier

Improved visual quality

parent 304b3999
* { font-family: "Bitstream Vera Sans"; font: "Roman"; font-size: 12px; } * { font-family: "Bitstream Vera Sans"; font: "Roman"; font-size: 12px; border: 0px solid; }
QWidget#colorIcon {} QWidget#colorIcon {}
QWidget { QWidget {
...@@ -6,6 +6,8 @@ background-color: #050508; ...@@ -6,6 +6,8 @@ background-color: #050508;
color: #DDDDDF; color: #DDDDDF;
background-clip: border; background-clip: border;
font-size: 11px; font-size: 11px;
border: 0px;
padding: 1px;
} }
QGroupBox { QGroupBox {
...@@ -186,7 +188,8 @@ QPushButton { ...@@ -186,7 +188,8 @@ QPushButton {
min-height: 20px; min-height: 20px;
/*min-width: 24px;*/ /*min-width: 24px;*/
max-height: 20px; max-height: 20px;
border: 0px solid #59666f; border: 1px solid #465158;
margin: 1px;
border-radius: 2px; border-radius: 2px;
padding-left: 8px; padding-left: 8px;
padding-right: 8px; padding-right: 8px;
...@@ -194,13 +197,11 @@ QPushButton { ...@@ -194,13 +197,11 @@ QPushButton {
} }
QPushButton:checked { QPushButton:checked {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #404040, stop: 1 #808080); background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #09A2B2, stop: 1 #414B52);
border: 0px solid #379AC3;
} }
QPushButton:pressed { QPushButton:pressed {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #bbbbbb, stop: 1 #b0b0b0); background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #bbbbbb, stop: 1 #b0b0b0);
border: 0px solid #379AC3;
} }
QToolButton { QToolButton {
...@@ -208,21 +209,20 @@ QToolButton { ...@@ -208,21 +209,20 @@ QToolButton {
min-height: 20px; min-height: 20px;
/*min-width: 24px;*/ /*min-width: 24px;*/
max-height: 20px; max-height: 20px;
border: 0px solid #4A4A4F; border: 1px solid #4A4A4F;
margin: 1px;
border-radius: 2px; border-radius: 2px;
padding-left: 3px; padding-left: 3px;
padding-right: 3px; padding-right: 3px;
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #59666f, stop: 1 #414B52); background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #59666f, stop: 1 #414B52);
} }
QToolButton:checked { QToolButton:checked {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #090909, stop: 1 #353535); background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #09A2B2, stop: 1 #414B52);
border: 2px solid #379AC3;
} }
QToolButton:pressed { QToolButton:pressed {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #bbbbbb, stop: 1 #b0b0b0); background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #bbbbbb, stop: 1 #b0b0b0);
border: 2px solid #379AC3;
} }
QToolTip { QToolTip {
...@@ -259,6 +259,10 @@ QMenuBar::item:disabled:pressed { ...@@ -259,6 +259,10 @@ QMenuBar::item:disabled:pressed {
border: none; border: none;
} }
QSlider {
background-color: transparent;
}
QSlider::groove:horizontal { QSlider::groove:horizontal {
border: 1px solid #999999; border: 1px solid #999999;
height: 4px; /* the groove expands to the size of the slider by default. by giving it a height, it has a fixed size */ height: 4px; /* the groove expands to the size of the slider by default. by giving it a height, it has a fixed size */
...@@ -266,6 +270,13 @@ QSlider::groove:horizontal { ...@@ -266,6 +270,13 @@ QSlider::groove:horizontal {
margin: 2px 0; margin: 2px 0;
} }
QSlider::groove:disabled:horizontal {
border: 1px solid #AAAAAA;
height: 4px; /* the groove expands to the size of the slider by default. by giving it a height, it has a fixed size */
background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #6A6A6F, stop:1 #6A6A6F);
margin: 2px 0;
}
QSlider::handle:horizontal { QSlider::handle:horizontal {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #232228, stop: 1 #020208); background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #232228, stop: 1 #020208);
border: 2px solid #379AC3; border: 2px solid #379AC3;
...@@ -273,6 +284,14 @@ QSlider::groove:horizontal { ...@@ -273,6 +284,14 @@ QSlider::groove:horizontal {
margin: -5px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ margin: -5px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */
border-radius: 3px; border-radius: 3px;
} }
QSlider::handle:disabled:horizontal {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #535258, stop: 1 #050508);
border: 2px solid #444444;
width: 18px;
margin: -5px 0; /* handle is placed by default on the contents rect of the groove. Expand outside the groove */
border-radius: 3px;
}
QSlider::groove:vertical { QSlider::groove:vertical {
border: 1px solid #999999; border: 1px solid #999999;
......
# ------------------------------------------------- # -------------------------------------------------
# QGroundControl - Micro Air Vehicle Groundstation # QGroundControl - Micro Air Vehicle Groundstation
# Please see our website at <http://qgroundcontrol.org> # Please see our website at <http://qgroundcontrol.org>
# Maintainer: # Maintainer:
# Lorenz Meier <lm@inf.ethz.ch> # Lorenz Meier <lm@inf.ethz.ch>
# (c) 2009-2011 QGroundControl Developers # (c) 2009-2011 QGroundControl Developers
# This file is part of the open groundstation project # This file is part of the open groundstation project
# QGroundControl is free software: you can redistribute it and/or modify # QGroundControl is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or # the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version. # (at your option) any later version.
# QGroundControl is distributed in the hope that it will be useful, # QGroundControl is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with QGroundControl. If not, see <http://www.gnu.org/licenses/>. # along with QGroundControl. If not, see <http://www.gnu.org/licenses/>.
# ------------------------------------------------- # -------------------------------------------------
# Qt configuration # Qt configuration
CONFIG += qt \ CONFIG += qt \
thread thread
QT += network \ QT += network \
opengl \ opengl \
svg \ svg \
xml \ xml \
phonon \ phonon \
webkit \ webkit \
sql sql
TEMPLATE = app TEMPLATE = app
TARGET = qgroundcontrol TARGET = qgroundcontrol
BASEDIR = $${IN_PWD} BASEDIR = $${IN_PWD}
linux-g++|linux-g++-64{ linux-g++|linux-g++-64{
debug { debug {
TARGETDIR = $${OUT_PWD}/debug TARGETDIR = $${OUT_PWD}/debug
BUILDDIR = $${OUT_PWD}/build-debug BUILDDIR = $${OUT_PWD}/build-debug
} }
release { release {
TARGETDIR = $${OUT_PWD}/release TARGETDIR = $${OUT_PWD}/release
BUILDDIR = $${OUT_PWD}/build-release BUILDDIR = $${OUT_PWD}/build-release
} }
} else { } else {
TARGETDIR = $${OUT_PWD} TARGETDIR = $${OUT_PWD}
BUILDDIR = $${OUT_PWD}/build BUILDDIR = $${OUT_PWD}/build
} }
LANGUAGE = C++ LANGUAGE = C++
OBJECTS_DIR = $${BUILDDIR}/obj OBJECTS_DIR = $${BUILDDIR}/obj
MOC_DIR = $${BUILDDIR}/moc MOC_DIR = $${BUILDDIR}/moc
UI_DIR = $${BUILDDIR}/ui UI_DIR = $${BUILDDIR}/ui
RCC_DIR = $${BUILDDIR}/rcc RCC_DIR = $${BUILDDIR}/rcc
MAVLINK_CONF = "" MAVLINK_CONF = ""
MAVLINKPATH = $$BASEDIR/libs/mavlink/include/mavlink/v1.0 MAVLINKPATH = $$BASEDIR/libs/mavlink/include/mavlink/v1.0
DEFINES += MAVLINK_NO_DATA DEFINES += MAVLINK_NO_DATA
win32 { win32 {
QMAKE_INCDIR_QT = $$(QTDIR)/include QMAKE_INCDIR_QT = $$(QTDIR)/include
QMAKE_LIBDIR_QT = $$(QTDIR)/lib QMAKE_LIBDIR_QT = $$(QTDIR)/lib
QMAKE_UIC = "$$(QTDIR)/bin/uic.exe" QMAKE_UIC = "$$(QTDIR)/bin/uic.exe"
QMAKE_MOC = "$$(QTDIR)/bin/moc.exe" QMAKE_MOC = "$$(QTDIR)/bin/moc.exe"
QMAKE_RCC = "$$(QTDIR)/bin/rcc.exe" QMAKE_RCC = "$$(QTDIR)/bin/rcc.exe"
QMAKE_QMAKE = "$$(QTDIR)/bin/qmake.exe" QMAKE_QMAKE = "$$(QTDIR)/bin/qmake.exe"
# Build QAX for GoogleEarth API access # Build QAX for GoogleEarth API access
!exists( $(QTDIR)/src/activeqt/Makefile ) { !exists( $(QTDIR)/src/activeqt/Makefile ) {
message( Making QAx (ONE TIME) ) message( Making QAx (ONE TIME) )
system( cd $$(QTDIR)\\src\\activeqt && $$(QTDIR)\\bin\\qmake.exe ) system( cd $$(QTDIR)\\src\\activeqt && $$(QTDIR)\\bin\\qmake.exe )
system( cd $$(QTDIR)\\src\\activeqt\\container && $$(QTDIR)\\bin\\qmake.exe ) system( cd $$(QTDIR)\\src\\activeqt\\container && $$(QTDIR)\\bin\\qmake.exe )
system( cd $$(QTDIR)\\src\\activeqt\\control && $$(QTDIR)\\bin\\qmake.exe ) system( cd $$(QTDIR)\\src\\activeqt\\control && $$(QTDIR)\\bin\\qmake.exe )
} }
} }
################################################################# #################################################################
# EXTERNAL LIBRARY CONFIGURATION # EXTERNAL LIBRARY CONFIGURATION
# EIGEN matrix library (header-only) # EIGEN matrix library (header-only)
INCLUDEPATH += libs/eigen INCLUDEPATH += libs/eigen
# OPMapControl library (from OpenPilot) # OPMapControl library (from OpenPilot)
include(libs/utils/utils_external.pri) include(libs/utils/utils_external.pri)
include(libs/opmapcontrol/opmapcontrol_external.pri) include(libs/opmapcontrol/opmapcontrol_external.pri)
DEPENDPATH += \ DEPENDPATH += \
libs/utils \ libs/utils \
libs/utils/src \ libs/utils/src \
libs/opmapcontrol \ libs/opmapcontrol \
libs/opmapcontrol/src \ libs/opmapcontrol/src \
libs/opmapcontrol/src/mapwidget libs/opmapcontrol/src/mapwidget
INCLUDEPATH += \ INCLUDEPATH += \
libs/utils \ libs/utils \
libs \ libs \
libs/opmapcontrol libs/opmapcontrol
# If the user config file exists, it will be included. # If the user config file exists, it will be included.
# if the variable MAVLINK_CONF contains the name of an # if the variable MAVLINK_CONF contains the name of an
# additional project, QGroundControl includes the support # additional project, QGroundControl includes the support
# of custom MAVLink messages of this project. It will also # of custom MAVLink messages of this project. It will also
# create a QGC_USE_{AUTOPILOT_NAME}_MESSAGES macro for use # create a QGC_USE_{AUTOPILOT_NAME}_MESSAGES macro for use
# within the actual code. # within the actual code.
exists(user_config.pri) { exists(user_config.pri) {
include(user_config.pri) include(user_config.pri)
message("----- USING CUSTOM USER QGROUNDCONTROL CONFIG FROM user_config.pri -----") message("----- USING CUSTOM USER QGROUNDCONTROL CONFIG FROM user_config.pri -----")
message("Adding support for additional MAVLink messages for: " $$MAVLINK_CONF) message("Adding support for additional MAVLink messages for: " $$MAVLINK_CONF)
message("------------------------------------------------------------------------") message("------------------------------------------------------------------------")
} }
INCLUDEPATH += $$MAVLINKPATH INCLUDEPATH += $$MAVLINKPATH
isEmpty(MAVLINK_CONF) { isEmpty(MAVLINK_CONF) {
INCLUDEPATH += $$MAVLINKPATH/common INCLUDEPATH += $$MAVLINKPATH/common
} else { } else {
INCLUDEPATH += $$MAVLINKPATH/$$MAVLINK_CONF INCLUDEPATH += $$MAVLINKPATH/$$MAVLINK_CONF
#DEFINES += 'MAVLINK_CONF="$${MAVLINK_CONF}.h"' #DEFINES += 'MAVLINK_CONF="$${MAVLINK_CONF}.h"'
DEFINES += $$sprintf('QGC_USE_%1_MESSAGES', $$upper($$MAVLINK_CONF)) DEFINES += $$sprintf('QGC_USE_%1_MESSAGES', $$upper($$MAVLINK_CONF))
} }
# Include general settings for QGroundControl # Include general settings for QGroundControl
# necessary as last include to override any non-acceptable settings # necessary as last include to override any non-acceptable settings
# done by the plugins above # done by the plugins above
include(qgroundcontrol.pri) include(qgroundcontrol.pri)
# Include MAVLink generator # Include MAVLink generator
# has been deprecated # has been deprecated
DEPENDPATH += \ DEPENDPATH += \
src/apps/mavlinkgen src/apps/mavlinkgen
INCLUDEPATH += \ INCLUDEPATH += \
src/apps/mavlinkgen \ src/apps/mavlinkgen \
src/apps/mavlinkgen/ui \ src/apps/mavlinkgen/ui \
src/apps/mavlinkgen/generator src/apps/mavlinkgen/generator
include(src/apps/mavlinkgen/mavlinkgen.pri) include(src/apps/mavlinkgen/mavlinkgen.pri)
# Include QWT plotting library # Include QWT plotting library
include(libs/qwt/qwt.pri) include(libs/qwt/qwt.pri)
DEPENDPATH += . \ DEPENDPATH += . \
plugins \ plugins \
libs/thirdParty/qserialport/include \ libs/thirdParty/qserialport/include \
libs/thirdParty/qserialport/include/QtSerialPort \ libs/thirdParty/qserialport/include/QtSerialPort \
libs/thirdParty/qserialport \ libs/thirdParty/qserialport \
libs/qextserialport libs/qextserialport
INCLUDEPATH += . \ INCLUDEPATH += . \
libs/thirdParty/qserialport/include \ libs/thirdParty/qserialport/include \
libs/thirdParty/qserialport/include/QtSerialPort \ libs/thirdParty/qserialport/include/QtSerialPort \
libs/thirdParty/qserialport/src \ libs/thirdParty/qserialport/src \
libs/qextserialport libs/qextserialport
# Include serial port library (QSerial) # Include serial port library (QSerial)
include(qserialport.pri) include(qserialport.pri)
# Serial port detection (ripped-off from qextserialport library) # Serial port detection (ripped-off from qextserialport library)
macx|macx-g++|macx-g++42::SOURCES += libs/qextserialport/qextserialenumerator_osx.cpp macx|macx-g++|macx-g++42::SOURCES += libs/qextserialport/qextserialenumerator_osx.cpp
linux-g++::SOURCES += libs/qextserialport/qextserialenumerator_unix.cpp linux-g++::SOURCES += libs/qextserialport/qextserialenumerator_unix.cpp
linux-g++-64::SOURCES += libs/qextserialport/qextserialenumerator_unix.cpp linux-g++-64::SOURCES += libs/qextserialport/qextserialenumerator_unix.cpp
win32::SOURCES += libs/qextserialport/qextserialenumerator_win.cpp win32::SOURCES += libs/qextserialport/qextserialenumerator_win.cpp
win32-msvc2008|win32-msvc2010::SOURCES += libs/qextserialport/qextserialenumerator_win.cpp win32-msvc2008|win32-msvc2010::SOURCES += libs/qextserialport/qextserialenumerator_win.cpp
# Input # Input
FORMS += src/ui/MainWindow.ui \ FORMS += src/ui/MainWindow.ui \
src/ui/CommSettings.ui \ src/ui/CommSettings.ui \
src/ui/SerialSettings.ui \ src/ui/SerialSettings.ui \
src/ui/UASControl.ui \ src/ui/UASControl.ui \
src/ui/UASList.ui \ src/ui/UASList.ui \
src/ui/UASInfo.ui \ src/ui/UASInfo.ui \
src/ui/Linechart.ui \ src/ui/Linechart.ui \
src/ui/UASView.ui \ src/ui/UASView.ui \
src/ui/ParameterInterface.ui \ src/ui/ParameterInterface.ui \
src/ui/WaypointList.ui \ src/ui/WaypointList.ui \
src/ui/ObjectDetectionView.ui \ src/ui/ObjectDetectionView.ui \
src/ui/JoystickWidget.ui \ src/ui/JoystickWidget.ui \
src/ui/DebugConsole.ui \ src/ui/DebugConsole.ui \
src/ui/HDDisplay.ui \ src/ui/HDDisplay.ui \
src/ui/MAVLinkSettingsWidget.ui \ src/ui/MAVLinkSettingsWidget.ui \
src/ui/AudioOutputWidget.ui \ src/ui/AudioOutputWidget.ui \
src/ui/QGCSensorSettingsWidget.ui \ src/ui/QGCSensorSettingsWidget.ui \
src/ui/watchdog/WatchdogControl.ui \ src/ui/watchdog/WatchdogControl.ui \
src/ui/watchdog/WatchdogProcessView.ui \ src/ui/watchdog/WatchdogProcessView.ui \
src/ui/watchdog/WatchdogView.ui \ src/ui/watchdog/WatchdogView.ui \
src/ui/QGCFirmwareUpdate.ui \ src/ui/QGCFirmwareUpdate.ui \
src/ui/QGCPxImuFirmwareUpdate.ui \ src/ui/QGCPxImuFirmwareUpdate.ui \
src/ui/QGCDataPlot2D.ui \ src/ui/QGCDataPlot2D.ui \
src/ui/QGCRemoteControlView.ui \ src/ui/QGCRemoteControlView.ui \
src/ui/QMap3D.ui \ src/ui/QMap3D.ui \
src/ui/QGCWebView.ui \ src/ui/QGCWebView.ui \
src/ui/map3D/QGCGoogleEarthView.ui \ src/ui/map3D/QGCGoogleEarthView.ui \
src/ui/SlugsDataSensorView.ui \ src/ui/SlugsDataSensorView.ui \
src/ui/SlugsHilSim.ui \ src/ui/SlugsHilSim.ui \
src/ui/SlugsPadCameraControl.ui \ src/ui/SlugsPadCameraControl.ui \
src/ui/uas/QGCUnconnectedInfoWidget.ui \ src/ui/uas/QGCUnconnectedInfoWidget.ui \
src/ui/designer/QGCToolWidget.ui \ src/ui/designer/QGCToolWidget.ui \
src/ui/designer/QGCParamSlider.ui \ src/ui/designer/QGCParamSlider.ui \
src/ui/designer/QGCActionButton.ui \ src/ui/designer/QGCActionButton.ui \
src/ui/designer/QGCCommandButton.ui \ src/ui/designer/QGCCommandButton.ui \
src/ui/QGCMAVLinkLogPlayer.ui \ src/ui/QGCMAVLinkLogPlayer.ui \
src/ui/QGCWaypointListMulti.ui \ src/ui/QGCWaypointListMulti.ui \
src/ui/QGCUDPLinkConfiguration.ui \ src/ui/QGCUDPLinkConfiguration.ui \
src/ui/QGCSettingsWidget.ui \ src/ui/QGCSettingsWidget.ui \
src/ui/UASControlParameters.ui \ src/ui/UASControlParameters.ui \
src/ui/map/QGCMapTool.ui \ src/ui/map/QGCMapTool.ui \
src/ui/map/QGCMapToolBar.ui \ src/ui/map/QGCMapToolBar.ui \
src/ui/QGCMAVLinkInspector.ui \ src/ui/QGCMAVLinkInspector.ui \
src/ui/WaypointViewOnlyView.ui \ src/ui/WaypointViewOnlyView.ui \
src/ui/WaypointEditableView.ui \ src/ui/WaypointEditableView.ui \
src/ui/UnconnectedUASInfoWidget.ui \ src/ui/UnconnectedUASInfoWidget.ui \
src/ui/mavlink/QGCMAVLinkMessageSender.ui \ src/ui/mavlink/QGCMAVLinkMessageSender.ui \
src/ui/firmwareupdate/QGCFirmwareUpdateWidget.ui \ src/ui/firmwareupdate/QGCFirmwareUpdateWidget.ui \
src/ui/QGCPluginHost.ui \ src/ui/QGCPluginHost.ui \
src/ui/firmwareupdate/QGCPX4FirmwareUpdate.ui \ src/ui/firmwareupdate/QGCPX4FirmwareUpdate.ui \
src/ui/mission/QGCMissionOther.ui \ src/ui/mission/QGCMissionOther.ui \
src/ui/mission/QGCMissionNavWaypoint.ui \ src/ui/mission/QGCMissionNavWaypoint.ui \
src/ui/mission/QGCMissionDoJump.ui \ src/ui/mission/QGCMissionDoJump.ui \
src/ui/mission/QGCMissionConditionDelay.ui \ src/ui/mission/QGCMissionConditionDelay.ui \
src/ui/mission/QGCMissionNavLoiterUnlim.ui \ src/ui/mission/QGCMissionNavLoiterUnlim.ui \
src/ui/mission/QGCMissionNavLoiterTurns.ui \ src/ui/mission/QGCMissionNavLoiterTurns.ui \
src/ui/mission/QGCMissionNavLoiterTime.ui \ src/ui/mission/QGCMissionNavLoiterTime.ui \
src/ui/mission/QGCMissionNavReturnToLaunch.ui \ src/ui/mission/QGCMissionNavReturnToLaunch.ui \
src/ui/mission/QGCMissionNavLand.ui \ src/ui/mission/QGCMissionNavLand.ui \
src/ui/mission/QGCMissionNavTakeoff.ui \ src/ui/mission/QGCMissionNavTakeoff.ui \
src/ui/mission/QGCMissionNavSweep.ui \ src/ui/mission/QGCMissionNavSweep.ui \
src/ui/mission/QGCMissionDoStartSearch.ui \ src/ui/mission/QGCMissionDoStartSearch.ui \
src/ui/mission/QGCMissionDoFinishSearch.ui \ src/ui/mission/QGCMissionDoFinishSearch.ui \
src/ui/QGCVehicleConfig.ui \ src/ui/QGCVehicleConfig.ui \
src/ui/QGCHilConfiguration.ui \ src/ui/QGCHilConfiguration.ui \
src/ui/QGCHilFlightGearConfiguration.ui \ src/ui/QGCHilFlightGearConfiguration.ui \
src/ui/QGCHilJSBSimConfiguration.ui \ src/ui/QGCHilJSBSimConfiguration.ui \
src/ui/QGCHilXPlaneConfiguration.ui src/ui/QGCHilXPlaneConfiguration.ui
INCLUDEPATH += src \ INCLUDEPATH += src \
src/ui \ src/ui \
src/ui/linechart \ src/ui/linechart \
src/ui/uas \ src/ui/uas \
src/ui/map \ src/ui/map \
src/uas \ src/uas \
src/comm \ src/comm \
include/ui \ include/ui \
src/input \ src/input \
src/lib/qmapcontrol \ src/lib/qmapcontrol \
src/ui/mavlink \ src/ui/mavlink \
src/ui/param \ src/ui/param \
src/ui/watchdog \ src/ui/watchdog \
src/ui/map3D \ src/ui/map3D \
src/ui/mission \ src/ui/mission \
src/ui/designer src/ui/designer
HEADERS += src/MG.h \ HEADERS += src/MG.h \
src/QGCCore.h \ src/QGCCore.h \
src/uas/UASInterface.h \ src/uas/UASInterface.h \
src/uas/UAS.h \ src/uas/UAS.h \
src/uas/UASManager.h \ src/uas/UASManager.h \
src/comm/LinkManager.h \ src/comm/LinkManager.h \
src/comm/LinkInterface.h \ src/comm/LinkInterface.h \
src/comm/SerialLinkInterface.h \ src/comm/SerialLinkInterface.h \
src/comm/SerialLink.h \ src/comm/SerialLink.h \
src/comm/ProtocolInterface.h \ src/comm/ProtocolInterface.h \
src/comm/MAVLinkProtocol.h \ src/comm/MAVLinkProtocol.h \
src/comm/QGCFlightGearLink.h \ src/comm/QGCFlightGearLink.h \
src/comm/QGCJSBSimLink.h \ src/comm/QGCJSBSimLink.h \
src/comm/QGCXPlaneLink.h \ src/comm/QGCXPlaneLink.h \
src/ui/CommConfigurationWindow.h \ src/ui/CommConfigurationWindow.h \
src/ui/SerialConfigurationWindow.h \ src/ui/SerialConfigurationWindow.h \
src/ui/MainWindow.h \ src/ui/MainWindow.h \
src/ui/uas/UASControlWidget.h \ src/ui/uas/UASControlWidget.h \
src/ui/uas/UASListWidget.h \ src/ui/uas/UASListWidget.h \
src/ui/uas/UASInfoWidget.h \ src/ui/uas/UASInfoWidget.h \
src/ui/HUD.h \ src/ui/HUD.h \
src/ui/linechart/LinechartWidget.h \ src/ui/linechart/LinechartWidget.h \
src/ui/linechart/LinechartPlot.h \ src/ui/linechart/LinechartPlot.h \
src/ui/linechart/Scrollbar.h \ src/ui/linechart/Scrollbar.h \
src/ui/linechart/ScrollZoomer.h \ src/ui/linechart/ScrollZoomer.h \
src/configuration.h \ src/configuration.h \
src/ui/uas/UASView.h \ src/ui/uas/UASView.h \
src/ui/CameraView.h \ src/ui/CameraView.h \
src/comm/MAVLinkSimulationLink.h \ src/comm/MAVLinkSimulationLink.h \
src/comm/UDPLink.h \ src/comm/UDPLink.h \
src/ui/ParameterInterface.h \ src/ui/ParameterInterface.h \
src/ui/WaypointList.h \ src/ui/WaypointList.h \
src/Waypoint.h \ src/Waypoint.h \
src/ui/ObjectDetectionView.h \ src/ui/ObjectDetectionView.h \
src/input/JoystickInput.h \ src/input/JoystickInput.h \
src/ui/JoystickWidget.h \ src/ui/JoystickWidget.h \
src/ui/DebugConsole.h \ src/ui/DebugConsole.h \
src/ui/HDDisplay.h \ src/ui/HDDisplay.h \
src/ui/MAVLinkSettingsWidget.h \ src/ui/MAVLinkSettingsWidget.h \
src/ui/AudioOutputWidget.h \ src/ui/AudioOutputWidget.h \
src/GAudioOutput.h \ src/GAudioOutput.h \
src/LogCompressor.h \ src/LogCompressor.h \
src/ui/QGCParamWidget.h \ src/ui/QGCParamWidget.h \
src/ui/QGCSensorSettingsWidget.h \ src/ui/QGCSensorSettingsWidget.h \
src/ui/linechart/Linecharts.h \ src/ui/linechart/Linecharts.h \
src/uas/SlugsMAV.h \ src/uas/SlugsMAV.h \
src/uas/PxQuadMAV.h \ src/uas/PxQuadMAV.h \
src/uas/ArduPilotMegaMAV.h \ src/uas/ArduPilotMegaMAV.h \
src/uas/senseSoarMAV.h \ src/uas/senseSoarMAV.h \
src/ui/watchdog/WatchdogControl.h \ src/ui/watchdog/WatchdogControl.h \
src/ui/watchdog/WatchdogProcessView.h \ src/ui/watchdog/WatchdogProcessView.h \
src/ui/watchdog/WatchdogView.h \ src/ui/watchdog/WatchdogView.h \
src/uas/UASWaypointManager.h \ src/uas/UASWaypointManager.h \
src/ui/HSIDisplay.h \ src/ui/HSIDisplay.h \
src/QGC.h \ src/QGC.h \
src/ui/QGCFirmwareUpdate.h \ src/ui/QGCFirmwareUpdate.h \
src/ui/QGCPxImuFirmwareUpdate.h \ src/ui/QGCPxImuFirmwareUpdate.h \
src/ui/QGCDataPlot2D.h \ src/ui/QGCDataPlot2D.h \
src/ui/linechart/IncrementalPlot.h \ src/ui/linechart/IncrementalPlot.h \
src/ui/QGCRemoteControlView.h \ src/ui/QGCRemoteControlView.h \
src/ui/RadioCalibration/RadioCalibrationData.h \ src/ui/RadioCalibration/RadioCalibrationData.h \
src/ui/RadioCalibration/RadioCalibrationWindow.h \ src/ui/RadioCalibration/RadioCalibrationWindow.h \
src/ui/RadioCalibration/AirfoilServoCalibrator.h \ src/ui/RadioCalibration/AirfoilServoCalibrator.h \
src/ui/RadioCalibration/SwitchCalibrator.h \ src/ui/RadioCalibration/SwitchCalibrator.h \
src/ui/RadioCalibration/CurveCalibrator.h \ src/ui/RadioCalibration/CurveCalibrator.h \
src/ui/RadioCalibration/AbstractCalibrator.h \ src/ui/RadioCalibration/AbstractCalibrator.h \
src/comm/QGCMAVLink.h \ src/comm/QGCMAVLink.h \
src/ui/QGCWebView.h \ src/ui/QGCWebView.h \
src/ui/map3D/QGCWebPage.h \ src/ui/map3D/QGCWebPage.h \
src/ui/SlugsDataSensorView.h \ src/ui/SlugsDataSensorView.h \
src/ui/SlugsHilSim.h \ src/ui/SlugsHilSim.h \
src/ui/SlugsPadCameraControl.h \ src/ui/SlugsPadCameraControl.h \
src/ui/QGCMainWindowAPConfigurator.h \ src/ui/QGCMainWindowAPConfigurator.h \
src/comm/MAVLinkSwarmSimulationLink.h \ src/comm/MAVLinkSwarmSimulationLink.h \
src/ui/uas/QGCUnconnectedInfoWidget.h \ src/ui/uas/QGCUnconnectedInfoWidget.h \
src/ui/designer/QGCToolWidget.h \ src/ui/designer/QGCToolWidget.h \
src/ui/designer/QGCParamSlider.h \ src/ui/designer/QGCParamSlider.h \
src/ui/designer/QGCCommandButton.h \ src/ui/designer/QGCCommandButton.h \
src/ui/designer/QGCToolWidgetItem.h \ src/ui/designer/QGCToolWidgetItem.h \
src/ui/QGCMAVLinkLogPlayer.h \ src/ui/QGCMAVLinkLogPlayer.h \
src/comm/MAVLinkSimulationWaypointPlanner.h \ src/comm/MAVLinkSimulationWaypointPlanner.h \
src/comm/MAVLinkSimulationMAV.h \ src/comm/MAVLinkSimulationMAV.h \
src/uas/QGCMAVLinkUASFactory.h \ src/uas/QGCMAVLinkUASFactory.h \
src/ui/QGCWaypointListMulti.h \ src/ui/QGCWaypointListMulti.h \
src/ui/QGCUDPLinkConfiguration.h \ src/ui/QGCUDPLinkConfiguration.h \
src/ui/QGCSettingsWidget.h \ src/ui/QGCSettingsWidget.h \
src/ui/uas/UASControlParameters.h \ src/ui/uas/UASControlParameters.h \
src/uas/QGCUASParamManager.h \ src/uas/QGCUASParamManager.h \
src/ui/map/QGCMapWidget.h \ src/ui/map/QGCMapWidget.h \
src/ui/map/MAV2DIcon.h \ src/ui/map/MAV2DIcon.h \
src/ui/map/Waypoint2DIcon.h \ src/ui/map/Waypoint2DIcon.h \
src/ui/map/QGCMapTool.h \ src/ui/map/QGCMapTool.h \
src/ui/map/QGCMapToolBar.h \ src/ui/map/QGCMapToolBar.h \
libs/qextserialport/qextserialenumerator.h \ libs/qextserialport/qextserialenumerator.h \
src/QGCGeo.h \ src/QGCGeo.h \
src/ui/QGCToolBar.h \ src/ui/QGCToolBar.h \
src/ui/QGCStatusBar.h \ src/ui/QGCStatusBar.h \
src/ui/QGCMAVLinkInspector.h \ src/ui/QGCMAVLinkInspector.h \
src/ui/MAVLinkDecoder.h \ src/ui/MAVLinkDecoder.h \
src/ui/WaypointViewOnlyView.h \ src/ui/WaypointViewOnlyView.h \
src/ui/WaypointViewOnlyView.h \ src/ui/WaypointViewOnlyView.h \
src/ui/WaypointEditableView.h \ src/ui/WaypointEditableView.h \
src/ui/UnconnectedUASInfoWidget.h \ src/ui/UnconnectedUASInfoWidget.h \
src/ui/QGCRGBDView.h \ src/ui/QGCRGBDView.h \
src/ui/mavlink/QGCMAVLinkMessageSender.h \ src/ui/mavlink/QGCMAVLinkMessageSender.h \
src/ui/firmwareupdate/QGCFirmwareUpdateWidget.h \ src/ui/firmwareupdate/QGCFirmwareUpdateWidget.h \
src/ui/QGCPluginHost.h \ src/ui/QGCPluginHost.h \
src/ui/firmwareupdate/QGCPX4FirmwareUpdate.h \ src/ui/firmwareupdate/QGCPX4FirmwareUpdate.h \
src/ui/mission/QGCMissionOther.h \ src/ui/mission/QGCMissionOther.h \
src/ui/mission/QGCMissionNavWaypoint.h \ src/ui/mission/QGCMissionNavWaypoint.h \
src/ui/mission/QGCMissionDoJump.h \ src/ui/mission/QGCMissionDoJump.h \
src/ui/mission/QGCMissionConditionDelay.h \ src/ui/mission/QGCMissionConditionDelay.h \
src/ui/mission/QGCMissionNavLoiterUnlim.h \ src/ui/mission/QGCMissionNavLoiterUnlim.h \
src/ui/mission/QGCMissionNavLoiterTurns.h \ src/ui/mission/QGCMissionNavLoiterTurns.h \
src/ui/mission/QGCMissionNavLoiterTime.h \ src/ui/mission/QGCMissionNavLoiterTime.h \
src/ui/mission/QGCMissionNavReturnToLaunch.h \ src/ui/mission/QGCMissionNavReturnToLaunch.h \
src/ui/mission/QGCMissionNavLand.h \ src/ui/mission/QGCMissionNavLand.h \
src/ui/mission/QGCMissionNavTakeoff.h \ src/ui/mission/QGCMissionNavTakeoff.h \
src/ui/mission/QGCMissionNavSweep.h \ src/ui/mission/QGCMissionNavSweep.h \
src/ui/mission/QGCMissionDoStartSearch.h \ src/ui/mission/QGCMissionDoStartSearch.h \
src/ui/mission/QGCMissionDoFinishSearch.h \ src/ui/mission/QGCMissionDoFinishSearch.h \
src/ui/QGCVehicleConfig.h \ src/ui/QGCVehicleConfig.h \
src/comm/QGCHilLink.h \ src/comm/QGCHilLink.h \
src/ui/QGCHilConfiguration.h \ src/ui/QGCHilConfiguration.h \
src/ui/QGCHilFlightGearConfiguration.h \ src/ui/QGCHilFlightGearConfiguration.h \
src/ui/QGCHilJSBSimConfiguration.h \ src/ui/QGCHilJSBSimConfiguration.h \
src/ui/QGCHilXPlaneConfiguration.h src/ui/QGCHilXPlaneConfiguration.h
# Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler # Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler
macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010::HEADERS += src/ui/map3D/QGCGoogleEarthView.h macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010::HEADERS += src/ui/map3D/QGCGoogleEarthView.h
contains(DEPENDENCIES_PRESENT, osg) { contains(DEPENDENCIES_PRESENT, osg) {
message("Including headers for OpenSceneGraph") message("Including headers for OpenSceneGraph")
# Enable only if OpenSceneGraph is available # Enable only if OpenSceneGraph is available
HEADERS += src/ui/map3D/gpl.h \ HEADERS += src/ui/map3D/gpl.h \
src/ui/map3D/CameraParams.h \ src/ui/map3D/CameraParams.h \
src/ui/map3D/ViewParamWidget.h \ src/ui/map3D/ViewParamWidget.h \
src/ui/map3D/SystemContainer.h \ src/ui/map3D/SystemContainer.h \
src/ui/map3D/SystemViewParams.h \ src/ui/map3D/SystemViewParams.h \
src/ui/map3D/GlobalViewParams.h \ src/ui/map3D/GlobalViewParams.h \
src/ui/map3D/SystemGroupNode.h \ src/ui/map3D/SystemGroupNode.h \
src/ui/map3D/Q3DWidget.h \ src/ui/map3D/Q3DWidget.h \
src/ui/map3D/GCManipulator.h \ src/ui/map3D/GCManipulator.h \
src/ui/map3D/ImageWindowGeode.h \ src/ui/map3D/ImageWindowGeode.h \
src/ui/map3D/PixhawkCheetahNode.h \ src/ui/map3D/PixhawkCheetahNode.h \
src/ui/map3D/Pixhawk3DWidget.h \ src/ui/map3D/Pixhawk3DWidget.h \
src/ui/map3D/Q3DWidgetFactory.h \ src/ui/map3D/Q3DWidgetFactory.h \
src/ui/map3D/WebImageCache.h \ src/ui/map3D/WebImageCache.h \
src/ui/map3D/WebImage.h \ src/ui/map3D/WebImage.h \
src/ui/map3D/TextureCache.h \ src/ui/map3D/TextureCache.h \
src/ui/map3D/Texture.h \ src/ui/map3D/Texture.h \
src/ui/map3D/Imagery.h \ src/ui/map3D/Imagery.h \
src/ui/map3D/HUDScaleGeode.h \ src/ui/map3D/HUDScaleGeode.h \
src/ui/map3D/WaypointGroupNode.h \ src/ui/map3D/WaypointGroupNode.h \
src/ui/map3D/TerrainParamDialog.h \ src/ui/map3D/TerrainParamDialog.h \
src/ui/map3D/ImageryParamDialog.h src/ui/map3D/ImageryParamDialog.h
} }
contains(DEPENDENCIES_PRESENT, protobuf):contains(MAVLINK_CONF, pixhawk) { contains(DEPENDENCIES_PRESENT, protobuf):contains(MAVLINK_CONF, pixhawk) {
message("Including headers for Protocol Buffers") message("Including headers for Protocol Buffers")
# Enable only if protobuf is available # Enable only if protobuf is available
HEADERS += libs/mavlink/include/mavlink/v1.0/pixhawk/pixhawk.pb.h \ HEADERS += libs/mavlink/include/mavlink/v1.0/pixhawk/pixhawk.pb.h \
src/ui/map3D/ObstacleGroupNode.h \ src/ui/map3D/ObstacleGroupNode.h \
src/ui/map3D/GLOverlayGeode.h src/ui/map3D/GLOverlayGeode.h
} }
contains(DEPENDENCIES_PRESENT, libfreenect) { contains(DEPENDENCIES_PRESENT, libfreenect) {
message("Including headers for libfreenect") message("Including headers for libfreenect")
# Enable only if libfreenect is available # Enable only if libfreenect is available
HEADERS += src/input/Freenect.h HEADERS += src/input/Freenect.h
} }
SOURCES += src/main.cc \ SOURCES += src/main.cc \
src/QGCCore.cc \ src/QGCCore.cc \
src/uas/UASManager.cc \ src/uas/UASManager.cc \
src/uas/UAS.cc \ src/uas/UAS.cc \
src/comm/LinkManager.cc \ src/comm/LinkManager.cc \
src/comm/LinkInterface.cpp \ src/comm/LinkInterface.cpp \
src/comm/SerialLink.cc \ src/comm/SerialLink.cc \
src/comm/MAVLinkProtocol.cc \ src/comm/MAVLinkProtocol.cc \
src/comm/QGCFlightGearLink.cc \ src/comm/QGCFlightGearLink.cc \
src/comm/QGCJSBSimLink.cc \ src/comm/QGCJSBSimLink.cc \
src/comm/QGCXPlaneLink.cc \ src/comm/QGCXPlaneLink.cc \
src/ui/CommConfigurationWindow.cc \ src/ui/CommConfigurationWindow.cc \
src/ui/SerialConfigurationWindow.cc \ src/ui/SerialConfigurationWindow.cc \
src/ui/MainWindow.cc \ src/ui/MainWindow.cc \
src/ui/uas/UASControlWidget.cc \ src/ui/uas/UASControlWidget.cc \
src/ui/uas/UASListWidget.cc \ src/ui/uas/UASListWidget.cc \
src/ui/uas/UASInfoWidget.cc \ src/ui/uas/UASInfoWidget.cc \
src/ui/HUD.cc \ src/ui/HUD.cc \
src/ui/linechart/LinechartWidget.cc \ src/ui/linechart/LinechartWidget.cc \
src/ui/linechart/LinechartPlot.cc \ src/ui/linechart/LinechartPlot.cc \
src/ui/linechart/Scrollbar.cc \ src/ui/linechart/Scrollbar.cc \
src/ui/linechart/ScrollZoomer.cc \ src/ui/linechart/ScrollZoomer.cc \
src/ui/uas/UASView.cc \ src/ui/uas/UASView.cc \
src/ui/CameraView.cc \ src/ui/CameraView.cc \
src/comm/MAVLinkSimulationLink.cc \ src/comm/MAVLinkSimulationLink.cc \
src/comm/UDPLink.cc \ src/comm/UDPLink.cc \
src/ui/ParameterInterface.cc \ src/ui/ParameterInterface.cc \
src/ui/WaypointList.cc \ src/ui/WaypointList.cc \
src/Waypoint.cc \ src/Waypoint.cc \
src/ui/ObjectDetectionView.cc \ src/ui/ObjectDetectionView.cc \
src/input/JoystickInput.cc \ src/input/JoystickInput.cc \
src/ui/JoystickWidget.cc \ src/ui/JoystickWidget.cc \
src/ui/DebugConsole.cc \ src/ui/DebugConsole.cc \
src/ui/HDDisplay.cc \ src/ui/HDDisplay.cc \
src/ui/MAVLinkSettingsWidget.cc \ src/ui/MAVLinkSettingsWidget.cc \
src/ui/AudioOutputWidget.cc \ src/ui/AudioOutputWidget.cc \
src/GAudioOutput.cc \ src/GAudioOutput.cc \
src/LogCompressor.cc \ src/LogCompressor.cc \
src/ui/QGCParamWidget.cc \ src/ui/QGCParamWidget.cc \
src/ui/QGCSensorSettingsWidget.cc \ src/ui/QGCSensorSettingsWidget.cc \
src/ui/linechart/Linecharts.cc \ src/ui/linechart/Linecharts.cc \
src/uas/SlugsMAV.cc \ src/uas/SlugsMAV.cc \
src/uas/PxQuadMAV.cc \ src/uas/PxQuadMAV.cc \
src/uas/ArduPilotMegaMAV.cc \ src/uas/ArduPilotMegaMAV.cc \
src/uas/senseSoarMAV.cpp \ src/uas/senseSoarMAV.cpp \
src/ui/watchdog/WatchdogControl.cc \ src/ui/watchdog/WatchdogControl.cc \
src/ui/watchdog/WatchdogProcessView.cc \ src/ui/watchdog/WatchdogProcessView.cc \
src/ui/watchdog/WatchdogView.cc \ src/ui/watchdog/WatchdogView.cc \
src/uas/UASWaypointManager.cc \ src/uas/UASWaypointManager.cc \
src/ui/HSIDisplay.cc \ src/ui/HSIDisplay.cc \
src/QGC.cc \ src/QGC.cc \
src/ui/QGCFirmwareUpdate.cc \ src/ui/QGCFirmwareUpdate.cc \
src/ui/QGCPxImuFirmwareUpdate.cc \ src/ui/QGCPxImuFirmwareUpdate.cc \
src/ui/QGCDataPlot2D.cc \ src/ui/QGCDataPlot2D.cc \
src/ui/linechart/IncrementalPlot.cc \ src/ui/linechart/IncrementalPlot.cc \
src/ui/QGCRemoteControlView.cc \ src/ui/QGCRemoteControlView.cc \
src/ui/RadioCalibration/RadioCalibrationWindow.cc \ src/ui/RadioCalibration/RadioCalibrationWindow.cc \
src/ui/RadioCalibration/AirfoilServoCalibrator.cc \ src/ui/RadioCalibration/AirfoilServoCalibrator.cc \
src/ui/RadioCalibration/SwitchCalibrator.cc \ src/ui/RadioCalibration/SwitchCalibrator.cc \
src/ui/RadioCalibration/CurveCalibrator.cc \ src/ui/RadioCalibration/CurveCalibrator.cc \
src/ui/RadioCalibration/AbstractCalibrator.cc \ src/ui/RadioCalibration/AbstractCalibrator.cc \
src/ui/RadioCalibration/RadioCalibrationData.cc \ src/ui/RadioCalibration/RadioCalibrationData.cc \
src/ui/QGCWebView.cc \ src/ui/QGCWebView.cc \
src/ui/map3D/QGCWebPage.cc \ src/ui/map3D/QGCWebPage.cc \
src/ui/SlugsDataSensorView.cc \ src/ui/SlugsDataSensorView.cc \
src/ui/SlugsHilSim.cc \ src/ui/SlugsHilSim.cc \
src/ui/SlugsPadCameraControl.cpp \ src/ui/SlugsPadCameraControl.cpp \
src/ui/QGCMainWindowAPConfigurator.cc \ src/ui/QGCMainWindowAPConfigurator.cc \
src/comm/MAVLinkSwarmSimulationLink.cc \ src/comm/MAVLinkSwarmSimulationLink.cc \
src/ui/uas/QGCUnconnectedInfoWidget.cc \ src/ui/uas/QGCUnconnectedInfoWidget.cc \
src/ui/designer/QGCToolWidget.cc \ src/ui/designer/QGCToolWidget.cc \
src/ui/designer/QGCParamSlider.cc \ src/ui/designer/QGCParamSlider.cc \
src/ui/designer/QGCCommandButton.cc \ src/ui/designer/QGCCommandButton.cc \
src/ui/designer/QGCToolWidgetItem.cc \ src/ui/designer/QGCToolWidgetItem.cc \
src/ui/QGCMAVLinkLogPlayer.cc \ src/ui/QGCMAVLinkLogPlayer.cc \
src/comm/MAVLinkSimulationWaypointPlanner.cc \ src/comm/MAVLinkSimulationWaypointPlanner.cc \
src/comm/MAVLinkSimulationMAV.cc \ src/comm/MAVLinkSimulationMAV.cc \
src/uas/QGCMAVLinkUASFactory.cc \ src/uas/QGCMAVLinkUASFactory.cc \
src/ui/QGCWaypointListMulti.cc \ src/ui/QGCWaypointListMulti.cc \
src/ui/QGCUDPLinkConfiguration.cc \ src/ui/QGCUDPLinkConfiguration.cc \
src/ui/QGCSettingsWidget.cc \ src/ui/QGCSettingsWidget.cc \
src/ui/uas/UASControlParameters.cpp \ src/ui/uas/UASControlParameters.cpp \
src/uas/QGCUASParamManager.cc \ src/uas/QGCUASParamManager.cc \
src/ui/map/QGCMapWidget.cc \ src/ui/map/QGCMapWidget.cc \
src/ui/map/MAV2DIcon.cc \ src/ui/map/MAV2DIcon.cc \
src/ui/map/Waypoint2DIcon.cc \ src/ui/map/Waypoint2DIcon.cc \
src/ui/map/QGCMapTool.cc \ src/ui/map/QGCMapTool.cc \
src/ui/map/QGCMapToolBar.cc \ src/ui/map/QGCMapToolBar.cc \
src/ui/QGCToolBar.cc \ src/ui/QGCToolBar.cc \
src/ui/QGCStatusBar.cc \ src/ui/QGCStatusBar.cc \
src/ui/QGCMAVLinkInspector.cc \ src/ui/QGCMAVLinkInspector.cc \
src/ui/MAVLinkDecoder.cc \ src/ui/MAVLinkDecoder.cc \
src/ui/WaypointViewOnlyView.cc \ src/ui/WaypointViewOnlyView.cc \
src/ui/WaypointEditableView.cc \ src/ui/WaypointEditableView.cc \
src/ui/UnconnectedUASInfoWidget.cc \ src/ui/UnconnectedUASInfoWidget.cc \
src/ui/QGCRGBDView.cc \ src/ui/QGCRGBDView.cc \
src/ui/mavlink/QGCMAVLinkMessageSender.cc \ src/ui/mavlink/QGCMAVLinkMessageSender.cc \
src/ui/firmwareupdate/QGCFirmwareUpdateWidget.cc \ src/ui/firmwareupdate/QGCFirmwareUpdateWidget.cc \
src/ui/QGCPluginHost.cc \ src/ui/QGCPluginHost.cc \
src/ui/firmwareupdate/QGCPX4FirmwareUpdate.cc \ src/ui/firmwareupdate/QGCPX4FirmwareUpdate.cc \
src/ui/mission/QGCMissionOther.cc \ src/ui/mission/QGCMissionOther.cc \
src/ui/mission/QGCMissionNavWaypoint.cc \ src/ui/mission/QGCMissionNavWaypoint.cc \
src/ui/mission/QGCMissionDoJump.cc \ src/ui/mission/QGCMissionDoJump.cc \
src/ui/mission/QGCMissionConditionDelay.cc \ src/ui/mission/QGCMissionConditionDelay.cc \
src/ui/mission/QGCMissionNavLoiterUnlim.cc \ src/ui/mission/QGCMissionNavLoiterUnlim.cc \
src/ui/mission/QGCMissionNavLoiterTurns.cc \ src/ui/mission/QGCMissionNavLoiterTurns.cc \
src/ui/mission/QGCMissionNavLoiterTime.cc \ src/ui/mission/QGCMissionNavLoiterTime.cc \
src/ui/mission/QGCMissionNavReturnToLaunch.cc \ src/ui/mission/QGCMissionNavReturnToLaunch.cc \
src/ui/mission/QGCMissionNavLand.cc \ src/ui/mission/QGCMissionNavLand.cc \
src/ui/mission/QGCMissionNavTakeoff.cc \ src/ui/mission/QGCMissionNavTakeoff.cc \
src/ui/mission/QGCMissionNavSweep.cc \ src/ui/mission/QGCMissionNavSweep.cc \
src/ui/mission/QGCMissionDoStartSearch.cc \ src/ui/mission/QGCMissionDoStartSearch.cc \
src/ui/mission/QGCMissionDoFinishSearch.cc \ src/ui/mission/QGCMissionDoFinishSearch.cc \
src/ui/QGCVehicleConfig.cc \ src/ui/QGCVehicleConfig.cc \
src/ui/QGCHilConfiguration.cc \ src/ui/QGCHilConfiguration.cc \
src/ui/QGCHilFlightGearConfiguration.cc \ src/ui/QGCHilFlightGearConfiguration.cc \
src/ui/QGCHilJSBSimConfiguration.cc \ src/ui/QGCHilJSBSimConfiguration.cc \
src/ui/QGCHilXPlaneConfiguration.cc src/ui/QGCHilXPlaneConfiguration.cc
# Enable Google Earth only on Mac OS and Windows with Visual Studio compiler # Enable Google Earth only on Mac OS and Windows with Visual Studio compiler
macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc
# Enable OSG only if it has been found # Enable OSG only if it has been found
contains(DEPENDENCIES_PRESENT, osg) { contains(DEPENDENCIES_PRESENT, osg) {
message("Including sources for OpenSceneGraph") message("Including sources for OpenSceneGraph")
# Enable only if OpenSceneGraph is available # Enable only if OpenSceneGraph is available
SOURCES += src/ui/map3D/gpl.cc \ SOURCES += src/ui/map3D/gpl.cc \
src/ui/map3D/CameraParams.cc \ src/ui/map3D/CameraParams.cc \
src/ui/map3D/ViewParamWidget.cc \ src/ui/map3D/ViewParamWidget.cc \
src/ui/map3D/SystemContainer.cc \ src/ui/map3D/SystemContainer.cc \
src/ui/map3D/SystemViewParams.cc \ src/ui/map3D/SystemViewParams.cc \
src/ui/map3D/GlobalViewParams.cc \ src/ui/map3D/GlobalViewParams.cc \
src/ui/map3D/SystemGroupNode.cc \ src/ui/map3D/SystemGroupNode.cc \
src/ui/map3D/Q3DWidget.cc \ src/ui/map3D/Q3DWidget.cc \
src/ui/map3D/ImageWindowGeode.cc \ src/ui/map3D/ImageWindowGeode.cc \
src/ui/map3D/GCManipulator.cc \ src/ui/map3D/GCManipulator.cc \
src/ui/map3D/PixhawkCheetahNode.cc \ src/ui/map3D/PixhawkCheetahNode.cc \
src/ui/map3D/Pixhawk3DWidget.cc \ src/ui/map3D/Pixhawk3DWidget.cc \
src/ui/map3D/Q3DWidgetFactory.cc \ src/ui/map3D/Q3DWidgetFactory.cc \
src/ui/map3D/WebImageCache.cc \ src/ui/map3D/WebImageCache.cc \
src/ui/map3D/WebImage.cc \ src/ui/map3D/WebImage.cc \
src/ui/map3D/TextureCache.cc \ src/ui/map3D/TextureCache.cc \
src/ui/map3D/Texture.cc \ src/ui/map3D/Texture.cc \
src/ui/map3D/Imagery.cc \ src/ui/map3D/Imagery.cc \
src/ui/map3D/HUDScaleGeode.cc \ src/ui/map3D/HUDScaleGeode.cc \
src/ui/map3D/WaypointGroupNode.cc \ src/ui/map3D/WaypointGroupNode.cc \
src/ui/map3D/TerrainParamDialog.cc \ src/ui/map3D/TerrainParamDialog.cc \
src/ui/map3D/ImageryParamDialog.cc src/ui/map3D/ImageryParamDialog.cc
contains(DEPENDENCIES_PRESENT, osgearth) { contains(DEPENDENCIES_PRESENT, osgearth) {
message("Including sources for osgEarth") message("Including sources for osgEarth")
# Enable only if OpenSceneGraph is available # Enable only if OpenSceneGraph is available
SOURCES += SOURCES +=
} }
} }
contains(DEPENDENCIES_PRESENT, protobuf):contains(MAVLINK_CONF, pixhawk) { contains(DEPENDENCIES_PRESENT, protobuf):contains(MAVLINK_CONF, pixhawk) {
message("Including sources for Protocol Buffers") message("Including sources for Protocol Buffers")
# Enable only if protobuf is available # Enable only if protobuf is available
SOURCES += libs/mavlink/share/mavlink/src/v1.0/pixhawk/pixhawk.pb.cc \ SOURCES += libs/mavlink/share/mavlink/src/v1.0/pixhawk/pixhawk.pb.cc \
src/ui/map3D/ObstacleGroupNode.cc \ src/ui/map3D/ObstacleGroupNode.cc \
src/ui/map3D/GLOverlayGeode.cc src/ui/map3D/GLOverlayGeode.cc
} }
contains(DEPENDENCIES_PRESENT, libfreenect) { contains(DEPENDENCIES_PRESENT, libfreenect) {
message("Including sources for libfreenect") message("Including sources for libfreenect")
# Enable only if libfreenect is available # Enable only if libfreenect is available
SOURCES += src/input/Freenect.cc SOURCES += src/input/Freenect.cc
} }
# Add icons and other resources # Add icons and other resources
RESOURCES += qgroundcontrol.qrc RESOURCES += qgroundcontrol.qrc
# Include RT-LAB Library # Include RT-LAB Library
win32:exists(src/lib/opalrt/OpalApi.h):exists(C:/OPAL-RT/RT-LAB7.2.4/Common/bin) { win32:exists(src/lib/opalrt/OpalApi.h):exists(C:/OPAL-RT/RT-LAB7.2.4/Common/bin) {
message("Building support for Opal-RT") message("Building support for Opal-RT")
LIBS += -LC:/OPAL-RT/RT-LAB7.2.4/Common/bin \ LIBS += -LC:/OPAL-RT/RT-LAB7.2.4/Common/bin \
-lOpalApi -lOpalApi
INCLUDEPATH += src/lib/opalrt INCLUDEPATH += src/lib/opalrt
HEADERS += src/comm/OpalRT.h \ HEADERS += src/comm/OpalRT.h \
src/comm/OpalLink.h \ src/comm/OpalLink.h \
src/comm/Parameter.h \ src/comm/Parameter.h \
src/comm/QGCParamID.h \ src/comm/QGCParamID.h \
src/comm/ParameterList.h \ src/comm/ParameterList.h \
src/ui/OpalLinkConfigurationWindow.h src/ui/OpalLinkConfigurationWindow.h
SOURCES += src/comm/OpalRT.cc \ SOURCES += src/comm/OpalRT.cc \
src/comm/OpalLink.cc \ src/comm/OpalLink.cc \
src/comm/Parameter.cc \ src/comm/Parameter.cc \
src/comm/QGCParamID.cc \ src/comm/QGCParamID.cc \
src/comm/ParameterList.cc \ src/comm/ParameterList.cc \
src/ui/OpalLinkConfigurationWindow.cc src/ui/OpalLinkConfigurationWindow.cc
FORMS += src/ui/OpalLinkSettings.ui FORMS += src/ui/OpalLinkSettings.ui
DEFINES += OPAL_RT DEFINES += OPAL_RT
} }
TRANSLATIONS += es-MX.ts \ TRANSLATIONS += es-MX.ts \
en-US.ts en-US.ts
# xbee support # xbee support
# libxbee only supported by linux and windows systems # libxbee only supported by linux and windows systems
win32-msvc2008|win32-msvc2010|linux { win32-msvc2008|win32-msvc2010|linux {
HEADERS += src/comm/XbeeLinkInterface.h \ HEADERS += src/comm/XbeeLinkInterface.h \
src/comm/XbeeLink.h \ src/comm/XbeeLink.h \
src/comm/HexSpinBox.h \ src/comm/HexSpinBox.h \
src/ui/XbeeConfigurationWindow.h \ src/ui/XbeeConfigurationWindow.h \
src/comm/CallConv.h src/comm/CallConv.h
SOURCES += src/comm/XbeeLink.cpp \ SOURCES += src/comm/XbeeLink.cpp \
src/comm/HexSpinBox.cpp \ src/comm/HexSpinBox.cpp \
src/ui/XbeeConfigurationWindow.cpp src/ui/XbeeConfigurationWindow.cpp
DEFINES += XBEELINK DEFINES += XBEELINK
INCLUDEPATH += libs/thirdParty/libxbee INCLUDEPATH += libs/thirdParty/libxbee
# TO DO: build library when it does not exist already # TO DO: build library when it does not exist already
LIBS += -Llibs/thirdParty/libxbee/lib \ LIBS += -Llibs/thirdParty/libxbee/lib \
-llibxbee -llibxbee
} }
################################################################### ###################################################################
#### --- 3DConnexion 3d Mice support (e.g. spacenavigator) --- #### #### --- 3DConnexion 3d Mice support (e.g. spacenavigator) --- ####
################################################################### ###################################################################
# xdrvlib only supported by linux (theoretical all X11) systems # xdrvlib only supported by linux (theoretical all X11) systems
# You have to install the official 3DxWare driver for linux to use 3D mouse support on linux systems! # You have to install the official 3DxWare driver for linux to use 3D mouse support on linux systems!
linux-g++|linux-g++-64{ linux-g++|linux-g++-64{
exists(/usr/local/lib/libxdrvlib.so){ exists(/usr/local/lib/libxdrvlib.so){
message("Including support for Magellan 3DxWare for linux system.") message("Including support for Magellan 3DxWare for linux system.")
SOURCES += src/input/Mouse6dofInput.cpp SOURCES += src/input/Mouse6dofInput.cpp
HEADERS += src/input/Mouse6dofInput.h HEADERS += src/input/Mouse6dofInput.h
LIBS += -L/usr/local/lib/ -lxdrvlib LIBS += -L/usr/local/lib/ -lxdrvlib
INCLUDEPATH *= /usr/local/include INCLUDEPATH *= /usr/local/include
DEFINES += MOUSE_ENABLED_LINUX \ DEFINES += MOUSE_ENABLED_LINUX \
ParameterCheck # Hack: Has to be defined for magellan usage ParameterCheck # Hack: Has to be defined for magellan usage
} }
} }
# Support for Windows systems # Support for Windows systems
# You have to install the official 3DxWare driver for Windows to use the 3D mouse support on Windows systems! # You have to install the official 3DxWare driver for Windows to use the 3D mouse support on Windows systems!
win32-msvc2008|win32-msvc2010 { win32-msvc2008|win32-msvc2010 {
message("Including support for 3DxWare for Windows system.") message("Including support for 3DxWare for Windows system.")
SOURCES += libs/thirdParty/3DMouse/win/MouseParameters.cpp \ SOURCES += libs/thirdParty/3DMouse/win/MouseParameters.cpp \
libs/thirdParty/3DMouse/win/Mouse3DInput.cpp \ libs/thirdParty/3DMouse/win/Mouse3DInput.cpp \
src/input/Mouse6dofInput.cpp src/input/Mouse6dofInput.cpp
HEADERS += libs/thirdParty/3DMouse/win/I3dMouseParams.h \ HEADERS += libs/thirdParty/3DMouse/win/I3dMouseParams.h \
libs/thirdParty/3DMouse/win/MouseParameters.h \ libs/thirdParty/3DMouse/win/MouseParameters.h \
libs/thirdParty/3DMouse/win/Mouse3DInput.h \ libs/thirdParty/3DMouse/win/Mouse3DInput.h \
src/input/Mouse6dofInput.h src/input/Mouse6dofInput.h
INCLUDEPATH += libs/thirdParty/3DMouse/win INCLUDEPATH += libs/thirdParty/3DMouse/win
DEFINES += MOUSE_ENABLED_WIN DEFINES += MOUSE_ENABLED_WIN
} }
unix:!macx:!symbian: LIBS += -losg unix:!macx:!symbian: LIBS += -losg
...@@ -135,6 +135,12 @@ MainWindow::MainWindow(QWidget *parent): ...@@ -135,6 +135,12 @@ MainWindow::MainWindow(QWidget *parent):
ui.setupUi(this); ui.setupUi(this);
hide(); hide();
// We only need this menu if we have more than one system
ui.menuConnected_Systems->setEnabled(false);
// XXX This menu probably doesn't make sense and should go, not just hide
ui.menuUnmanned_System->setEnabled(false);
// Set dock options // Set dock options
setDockOptions(AnimatedDocks | AllowTabbedDocks | AllowNestedDocks); setDockOptions(AnimatedDocks | AllowTabbedDocks | AllowNestedDocks);
...@@ -153,10 +159,14 @@ MainWindow::MainWindow(QWidget *parent): ...@@ -153,10 +159,14 @@ MainWindow::MainWindow(QWidget *parent):
toolBar = new QGCToolBar(this); toolBar = new QGCToolBar(this);
this->addToolBar(toolBar); this->addToolBar(toolBar);
// Add actions (inverted order due to insert) // Add actions (inverted order due to insert)
toolBar->addPerspectiveChangeAction(ui.actionSimulation_View);
toolBar->addPerspectiveChangeAction(ui.actionEngineersView); QList<QAction*> actions;
toolBar->addPerspectiveChangeAction(ui.actionPilotsView);
toolBar->addPerspectiveChangeAction(ui.actionOperatorsView); actions << ui.actionOperatorsView;
actions << ui.actionPilotsView;
actions << ui.actionEngineersView;
actions << ui.actionSimulation_View;
toolBar->setPerspectiveChangeActions(actions);
customStatusBar = new QGCStatusBar(this); customStatusBar = new QGCStatusBar(this);
setStatusBar(customStatusBar); setStatusBar(customStatusBar);
...@@ -1272,6 +1282,10 @@ void MainWindow::UASSpecsChanged(int uas) ...@@ -1272,6 +1282,10 @@ void MainWindow::UASSpecsChanged(int uas)
void MainWindow::UASCreated(UASInterface* uas) void MainWindow::UASCreated(UASInterface* uas)
{ {
// Check if this is the 2nd system and we need a switch menu
if (UASManager::instance()->getUASList().count() > 1)
ui.menuConnected_Systems->setEnabled(true);
// Connect the UAS to the full user interface // Connect the UAS to the full user interface
//if (uas != NULL) //if (uas != NULL)
......
...@@ -141,14 +141,6 @@ ...@@ -141,14 +141,6 @@
<string>Main Widget</string> <string>Main Widget</string>
</property> </property>
</widget> </widget>
<widget class="QMenu" name="menuPlugins">
<property name="enabled">
<bool>false</bool>
</property>
<property name="title">
<string>Plugins</string>
</property>
</widget>
<addaction name="menuMGround"/> <addaction name="menuMGround"/>
<addaction name="menuNetwork"/> <addaction name="menuNetwork"/>
<addaction name="menuConnected_Systems"/> <addaction name="menuConnected_Systems"/>
...@@ -156,7 +148,6 @@ ...@@ -156,7 +148,6 @@
<addaction name="menuPerspectives"/> <addaction name="menuPerspectives"/>
<addaction name="menuMain"/> <addaction name="menuMain"/>
<addaction name="menuTools"/> <addaction name="menuTools"/>
<addaction name="menuPlugins"/>
<addaction name="menuHelp"/> <addaction name="menuHelp"/>
</widget> </widget>
<widget class="QStatusBar" name="statusBar"/> <widget class="QStatusBar" name="statusBar"/>
...@@ -338,7 +329,7 @@ ...@@ -338,7 +329,7 @@
<normaloff>:/files/images/apps/utilities-system-monitor.svg</normaloff>:/files/images/apps/utilities-system-monitor.svg</iconset> <normaloff>:/files/images/apps/utilities-system-monitor.svg</normaloff>:/files/images/apps/utilities-system-monitor.svg</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>Development</string> <string>Plot</string>
</property> </property>
<property name="shortcut"> <property name="shortcut">
<string>Meta+E</string> <string>Meta+E</string>
......
...@@ -44,6 +44,11 @@ QGCMAVLinkLogPlayer::QGCMAVLinkLogPlayer(MAVLinkProtocol* mavlink, QWidget *pare ...@@ -44,6 +44,11 @@ QGCMAVLinkLogPlayer::QGCMAVLinkLogPlayer(MAVLinkProtocol* mavlink, QWidget *pare
setAccelerationFactorInt(49); setAccelerationFactorInt(49);
ui->speedSlider->setValue(49); ui->speedSlider->setValue(49);
ui->positionSlider->setValue(ui->positionSlider->minimum()); ui->positionSlider->setValue(ui->positionSlider->minimum());
ui->playButton->setEnabled(false);
ui->speedSlider->setEnabled(false);
ui->positionSlider->setEnabled(false);
loadSettings(); loadSettings();
} }
...@@ -254,6 +259,11 @@ void QGCMAVLinkLogPlayer::setAccelerationFactorInt(int factor) ...@@ -254,6 +259,11 @@ void QGCMAVLinkLogPlayer::setAccelerationFactorInt(int factor)
bool QGCMAVLinkLogPlayer::loadLogFile(const QString& file) bool QGCMAVLinkLogPlayer::loadLogFile(const QString& file)
{ {
// Enable controls
ui->playButton->setEnabled(true);
ui->speedSlider->setEnabled(true);
ui->positionSlider->setEnabled(true);
// Check if logging is still enabled // Check if logging is still enabled
if (mavlink->loggingEnabled()) if (mavlink->loggingEnabled())
{ {
......
...@@ -14,22 +14,22 @@ ...@@ -14,22 +14,22 @@
<string>Form</string> <string>Form</string>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<property name="margin"> <property name="leftMargin">
<number>12</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>4</number> <number>4</number>
</property> </property>
<property name="bottomMargin">
<number>0</number>
</property>
<item> <item>
<widget class="QSlider" name="positionSlider"> <widget class="QLabel" name="logStatsLabel">
<property name="maximum"> <property name="text">
<number>10000</number> <string>No logfile selected..</string>
</property>
<property name="pageStep">
<number>100</number>
</property>
<property name="tracking">
<bool>false</bool>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property> </property>
</widget> </widget>
</item> </item>
...@@ -57,9 +57,18 @@ ...@@ -57,9 +57,18 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="logStatsLabel"> <widget class="QSlider" name="positionSlider">
<property name="text"> <property name="maximum">
<string>No logfile selected..</string> <number>10000</number>
</property>
<property name="pageStep">
<number>100</number>
</property>
<property name="tracking">
<bool>false</bool>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property> </property>
</widget> </widget>
</item> </item>
...@@ -110,7 +119,7 @@ ...@@ -110,7 +119,7 @@
<item> <item>
<widget class="QLabel" name="logFileNameLabel"> <widget class="QLabel" name="logFileNameLabel">
<property name="text"> <property name="text">
<string>Please choose logfile</string> <string>-</string>
</property> </property>
</widget> </widget>
</item> </item>
......
...@@ -40,9 +40,11 @@ QGCStatusBar::QGCStatusBar(QWidget *parent) : ...@@ -40,9 +40,11 @@ QGCStatusBar::QGCStatusBar(QWidget *parent) :
toggleLoggingButton = new QPushButton("Logging", this); toggleLoggingButton = new QPushButton("Logging", this);
toggleLoggingButton->setCheckable(true); toggleLoggingButton->setCheckable(true);
addWidget(toggleLoggingButton); addPermanentWidget(toggleLoggingButton);
loadSettings(); loadSettings();
setStyleSheet("QStatusBar {margin: 1px; border-bottom: 1px solid #252525; border-top: 1px solid #969696; padding: 1px");
} }
void QGCStatusBar::setLogPlayer(QGCMAVLinkLogPlayer* player) void QGCStatusBar::setLogPlayer(QGCMAVLinkLogPlayer* player)
......
...@@ -54,11 +54,11 @@ void QGCToolBar::heartbeatTimeout(bool timeout, unsigned int ms) ...@@ -54,11 +54,11 @@ void QGCToolBar::heartbeatTimeout(bool timeout, unsigned int ms)
// Alternate colors to increase visibility // Alternate colors to increase visibility
if ((ms / 1000) % 2 == 0) if ((ms / 1000) % 2 == 0)
{ {
toolBarTimeoutLabel->setStyleSheet(QString("QLabel { margin: 0px 2px; font: 14px; color: %1; background-color: %2; }").arg(QGC::colorDarkWhite.name()).arg(QGC::colorMagenta.name())); toolBarTimeoutLabel->setStyleSheet(QString("QLabel { margin: 3px 2px; font: 14px; color: %1; background-color: %2; border-radius: 4px;}").arg(QGC::colorDarkWhite.name()).arg(QGC::colorMagenta.name()));
} }
else else
{ {
toolBarTimeoutLabel->setStyleSheet(QString("QLabel { margin: 0px 2px; font: 14px; color: %1; background-color: %2; }").arg(QGC::colorDarkWhite.name()).arg(QGC::colorMagenta.dark(250).name())); toolBarTimeoutLabel->setStyleSheet(QString("QLabel { margin: 3px 2px; font: 14px; color: %1; background-color: %2; border-radius: 4px;}").arg(QGC::colorDarkWhite.name()).arg(QGC::colorMagenta.dark(250).name()));
} }
toolBarTimeoutLabel->setText(tr("CONNECTION LOST: %1 s").arg((ms / 1000.0f), 2, 'f', 1, ' ')); toolBarTimeoutLabel->setText(tr("CONNECTION LOST: %1 s").arg((ms / 1000.0f), 2, 'f', 1, ' '));
} }
...@@ -75,67 +75,79 @@ void QGCToolBar::heartbeatTimeout(bool timeout, unsigned int ms) ...@@ -75,67 +75,79 @@ void QGCToolBar::heartbeatTimeout(bool timeout, unsigned int ms)
void QGCToolBar::createUI() void QGCToolBar::createUI()
{ {
setStyleSheet("QToolBar {margin: 1px; border-bottom: 1px solid #484848; border-top: 1px solid #969696; background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #8B8B8B, stop:0.3 #808080, stop:0.34 #747474, stop:1 #484848);}");
// CREATE TOOLBAR ITEMS // CREATE TOOLBAR ITEMS
// Add internal actions // Add internal actions
// Add MAV widget // Add MAV widget
symbolButton = new QToolButton(this); symbolButton = new QToolButton(this);
symbolButton->setStyleSheet("QWidget { background-color: #050508; color: #DDDDDF; background-clip: border; }"); symbolButton->setStyleSheet("QWidget { margin-left: 10px; background-color: #050508; color: #DDDDDF; background-clip: border; }");
addWidget(symbolButton); addWidget(symbolButton);
toolBarNameLabel = new QLabel("------", this); toolBarNameLabel = new QLabel("------", this);
toolBarNameLabel->setToolTip(tr("Currently controlled vehicle")); toolBarNameLabel->setToolTip(tr("Currently controlled vehicle"));
toolBarNameLabel->setAlignment(Qt::AlignCenter);
addWidget(toolBarNameLabel); addWidget(toolBarNameLabel);
toolBarTimeoutLabel = new QLabel("UNCONNECTED", this); toolBarTimeoutLabel = new QLabel("UNCONNECTED", this);
toolBarTimeoutLabel->setToolTip(tr("System timed out, interval since last message")); toolBarTimeoutLabel->setToolTip(tr("System timed out, interval since last message"));
toolBarTimeoutLabel->setStyleSheet(QString("QLabel { margin: 0px 2px; font: 14px; color: %1; background-color: %2; }").arg(QGC::colorDarkWhite.name()).arg(QGC::colorMagenta.name())); toolBarTimeoutLabel->setStyleSheet(QString("QLabel { margin: 3px 2px; font: 14px; color: %1; background-color: %2; border-radius: 4px;}").arg(QGC::colorDarkWhite.name()).arg(QGC::colorMagenta.name()));
toolBarTimeoutLabel->setAlignment(Qt::AlignCenter);
addWidget(toolBarTimeoutLabel); addWidget(toolBarTimeoutLabel);
toolBarSafetyLabel = new QLabel("SAFE", this); toolBarSafetyLabel = new QLabel("SAFE", this);
toolBarSafetyLabel->setStyleSheet("QLabel { margin: 0px 2px; font: 14px; color: #14C814; }"); toolBarSafetyLabel->setStyleSheet("QLabel { margin: 3px 2px; font: 14px; color: #14C814; }");
toolBarSafetyLabel->setToolTip(tr("Vehicle safety state")); toolBarSafetyLabel->setToolTip(tr("Vehicle safety state"));
toolBarSafetyLabel->setAlignment(Qt::AlignCenter);
addWidget(toolBarSafetyLabel); addWidget(toolBarSafetyLabel);
toolBarModeLabel = new QLabel("------", this); toolBarModeLabel = new QLabel("------", this);
toolBarModeLabel->setStyleSheet("QLabel { margin: 0px 2px; font: 14px; color: #3C7B9E; }"); toolBarModeLabel->setStyleSheet("QLabel { margin: 3px 2px; font: 14px; color: #3C7B9E; }");
toolBarModeLabel->setToolTip(tr("Vehicle mode")); toolBarModeLabel->setToolTip(tr("Vehicle mode"));
toolBarModeLabel->setAlignment(Qt::AlignCenter);
addWidget(toolBarModeLabel); addWidget(toolBarModeLabel);
toolBarStateLabel = new QLabel("------", this); toolBarStateLabel = new QLabel("------", this);
toolBarStateLabel->setStyleSheet("QLabel { margin: 0px 2px; font: 14px; color: #FEC654; }"); toolBarStateLabel->setStyleSheet("QLabel { margin: 3px 2px; font: 14px; color: #FEC654; }");
toolBarStateLabel->setToolTip(tr("Vehicle state")); toolBarStateLabel->setToolTip(tr("Vehicle state"));
toolBarStateLabel->setAlignment(Qt::AlignCenter);
addWidget(toolBarStateLabel); addWidget(toolBarStateLabel);
toolBarBatteryBar = new QProgressBar(this); toolBarBatteryBar = new QProgressBar(this);
toolBarBatteryBar->setStyleSheet("QProgressBar:horizontal { margin: 0px 4px 0px 0px; border: 1px solid #4A4A4F; border-radius: 4px; text-align: center; padding: 2px; color: #111111; background-color: #111118; height: 10px; } QProgressBar:horizontal QLabel { font-size: 9px; color: #111111; } QProgressBar::chunk { background-color: green; }"); toolBarBatteryBar->setStyleSheet("QProgressBar:horizontal { margin: 0px 4px 0px 0px; border: 1px solid #4A4A4F; border-radius: 4px; text-align: center; padding: 2px; color: #111111; background-color: #111118; height: 14px; } QProgressBar:horizontal QLabel { font-size: 9px; color: #111111; } QProgressBar::chunk { background-color: green; }");
toolBarBatteryBar->setMinimum(0); toolBarBatteryBar->setMinimum(0);
toolBarBatteryBar->setMaximum(100); toolBarBatteryBar->setMaximum(100);
toolBarBatteryBar->setMinimumWidth(20); toolBarBatteryBar->setMinimumWidth(20);
toolBarBatteryBar->setMaximumWidth(100); toolBarBatteryBar->setMaximumWidth(100);
toolBarBatteryBar->setValue(0);
toolBarBatteryBar->setToolTip(tr("Battery charge level")); toolBarBatteryBar->setToolTip(tr("Battery charge level"));
addWidget(toolBarBatteryBar); addWidget(toolBarBatteryBar);
toolBarBatteryVoltageLabel = new QLabel("xx.x V"); toolBarBatteryVoltageLabel = new QLabel("xx.x V");
toolBarBatteryVoltageLabel->setStyleSheet(QString("QLabel { margin: 0px 0px 0px 4px; font: 14px; color: %1; }").arg(QColor(Qt::green).name())); toolBarBatteryVoltageLabel->setStyleSheet(QString("QLabel { margin: 0px 0px 0px 4px; font: 14px; color: %1; }").arg(QColor(Qt::green).name()));
toolBarBatteryVoltageLabel->setToolTip(tr("Battery voltage")); toolBarBatteryVoltageLabel->setToolTip(tr("Battery voltage"));
toolBarBatteryVoltageLabel->setAlignment(Qt::AlignCenter);
addWidget(toolBarBatteryVoltageLabel); addWidget(toolBarBatteryVoltageLabel);
toolBarWpLabel = new QLabel("WP--", this); toolBarWpLabel = new QLabel("WP--", this);
toolBarWpLabel->setStyleSheet("QLabel { margin: 0px 2px; font: 18px; color: #3C7B9E; }"); toolBarWpLabel->setStyleSheet("QLabel { margin: 3px 2px; font: 18px; color: #3C7B9E; }");
toolBarWpLabel->setToolTip(tr("Current waypoint")); toolBarWpLabel->setToolTip(tr("Current waypoint"));
toolBarWpLabel->setAlignment(Qt::AlignCenter);
addWidget(toolBarWpLabel); addWidget(toolBarWpLabel);
toolBarDistLabel = new QLabel("--- ---- m", this); toolBarDistLabel = new QLabel("--- ---- m", this);
toolBarDistLabel->setToolTip(tr("Distance to current waypoint")); toolBarDistLabel->setToolTip(tr("Distance to current waypoint"));
toolBarDistLabel->setAlignment(Qt::AlignCenter);
addWidget(toolBarDistLabel); addWidget(toolBarDistLabel);
toolBarMessageLabel = new QLabel("No system messages.", this); toolBarMessageLabel = new QLabel("", this);
toolBarMessageLabel->setStyleSheet("QLabel { margin: 0px 4px; font: 12px; font-style: italic; color: #3C7B9E; }"); toolBarMessageLabel->setStyleSheet("QLabel { margin: 3px 2px; font: 14px; color: #3C7B9E; }");
toolBarMessageLabel->setToolTip(tr("Most recent system message")); toolBarMessageLabel->setToolTip(tr("Most recent system message"));
addWidget(toolBarMessageLabel); addWidget(toolBarMessageLabel);
QWidget* spacer = new QWidget(); QWidget* spacer = new QWidget();
spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
spacer->setStyleSheet("* { margin: 0px; background-color: transparent; min-height: 28px}");
addWidget(spacer); addWidget(spacer);
connectButton = new QPushButton(tr("Connect"), this); connectButton = new QPushButton(tr("Connect"), this);
...@@ -165,17 +177,63 @@ void QGCToolBar::createUI() ...@@ -165,17 +177,63 @@ void QGCToolBar::createUI()
updateViewTimer.start(2000); updateViewTimer.start(2000);
loadSettings(); loadSettings();
changed = false;
} }
void QGCToolBar::addPerspectiveChangeAction(QAction* action) void QGCToolBar::setPerspectiveChangeActions(const QList<QAction*> &actions)
{ {
if (firstAction) { if (actions.count() > 1)
insertAction(firstAction, action); {
QButtonGroup* group = new QButtonGroup(this);
group->setExclusive(true);
QToolButton *first = new QToolButton(this);
// Add first button
first->setIcon(actions.first()->icon());
first->setText(actions.first()->text());
first->setToolTip(actions.first()->toolTip());
first->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
first->setCheckable(true);
connect(first, SIGNAL(clicked(bool)), actions.first(), SIGNAL(triggered(bool)));
first->setStyleSheet("QToolButton { min-width: 70px; color: #222222; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A2A3A4, stop: 1 #B6B7B8); margin-left: 8px; margin-right: 0px; border-radius: 0px; border : 0px solid blue; border-bottom-left-radius: 6px; border-top-left-radius: 6px; border-left: 1px solid #484848; border-top: 1px solid #484848; border-bottom: 1px solid #484848; } QToolButton:checked { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #333333, stop: 1 #757575); color: #CCCCCC; }");
addWidget(first);
group->addButton(first);
for (int i = 1; i < actions.count() - 1; i++)
{
// Add last button
QToolButton *btn = new QToolButton(this);
// Add first button
btn->setIcon(actions.at(i)->icon());
btn->setText(actions.at(i)->text());
btn->setToolTip(actions.at(i)->toolTip());
btn->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
btn->setCheckable(true);
connect(btn, SIGNAL(clicked(bool)), actions.at(i), SIGNAL(triggered(bool)));
btn->setStyleSheet("QToolButton { min-width: 70px; color: #222222; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A2A3A4, stop: 1 #B6B7B8); margin-left: -2px; margin-right: -2px; padding-left: 0px; padding-right: 0px; border-radius: 0px; border-top: 1px solid #484848; border-bottom: 1px solid #484848; } QToolButton:checked { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #333333, stop: 1 #757575); color: #CCCCCC; }");
addWidget(btn);
group->addButton(btn);
}
// Add last button
QToolButton *last = new QToolButton(this);
// Add first button
last->setIcon(actions.last()->icon());
last->setText(actions.last()->text());
last->setToolTip(actions.last()->toolTip());
last->setCheckable(true);
connect(last, SIGNAL(clicked(bool)), actions.last(), SIGNAL(triggered(bool)));
last->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
last->setStyleSheet("QToolButton { min-width: 70px; color: #222222; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A2A3A4, stop: 1 #B6B7B8); margin-left: 0px; margin-right: 8px; padding-left: 0px; padding-right: 0px; border-radius: 0px; border : 0px solid blue; border-bottom-right-radius: 6px; border-top-right-radius: 6px; border-right: 1px solid #484848; border-top: 1px solid #484848; border-bottom: 1px solid #484848; } QToolButton:checked { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #333333, stop: 1 #757575); color: #CCCCCC; }");
addWidget(last);
group->addButton(last);
} else { } else {
addAction(action); qDebug() << __FILE__ << __LINE__ << "Not enough perspective change actions provided";
firstAction = action;
createUI();
} }
// Add the "rest"
createUI();
} }
void QGCToolBar::setActiveUAS(UASInterface* active) void QGCToolBar::setActiveUAS(UASInterface* active)
...@@ -222,7 +280,7 @@ void QGCToolBar::setActiveUAS(UASInterface* active) ...@@ -222,7 +280,7 @@ void QGCToolBar::setActiveUAS(UASInterface* active)
systemArmed = mav->isArmed(); systemArmed = mav->isArmed();
toolBarNameLabel->setText(mav->getUASName()); toolBarNameLabel->setText(mav->getUASName());
toolBarNameLabel->setStyleSheet(QString("QLabel { font: bold 16px; color: %1; }").arg(mav->getColor().name())); toolBarNameLabel->setStyleSheet(QString("QLabel { font: bold 16px; color: %1; }").arg(mav->getColor().name()));
symbolButton->setStyleSheet(QString("QWidget { background-color: %1; color: #DDDDDF; background-clip: border; } QToolButton { font-weight: bold; font-size: 12px; border: 0px solid #999999; border-radius: 5px; min-width:22px; max-width: 22px; min-height: 22px; max-height: 22px; padding: 0px; margin: 0px 4px 0px 20px; background-color: none; }").arg(mav->getColor().name())); symbolButton->setStyleSheet(QString("QWidget { background-color: %1; color: #DDDDDF; background-clip: border; } QToolButton { font-weight: bold; font-size: 14px; border: 0px solid #484848; border-radius: 5px; min-width:22px; max-width: 22px; min-height: 22px; max-height: 22px; padding: 0px; margin: 0px 4px 0px 20px; background-color: none; }").arg(mav->getColor().name()));
toolBarModeLabel->setText(mav->getShortMode()); toolBarModeLabel->setText(mav->getShortMode());
toolBarStateLabel->setText(mav->getShortState()); toolBarStateLabel->setText(mav->getShortState());
toolBarTimeoutLabel->setStyleSheet(QString("")); toolBarTimeoutLabel->setStyleSheet(QString(""));
...@@ -249,25 +307,31 @@ void QGCToolBar::updateView() ...@@ -249,25 +307,31 @@ void QGCToolBar::updateView()
toolBarDistLabel->setText(tr("%1 m").arg(wpDistance, 6, 'f', 2, '0')); toolBarDistLabel->setText(tr("%1 m").arg(wpDistance, 6, 'f', 2, '0'));
toolBarWpLabel->setText(tr("WP%1").arg(wpId)); toolBarWpLabel->setText(tr("WP%1").arg(wpId));
toolBarBatteryBar->setValue(batteryPercent); toolBarBatteryBar->setValue(batteryPercent);
if (batteryPercent < 30 && toolBarBatteryBar->value() >= 30) {
toolBarBatteryBar->setStyleSheet("QProgressBar:horizontal { margin: 0px 4px 0px 0px; border: 1px solid #4A4A4F; border-radius: 4px; text-align: center; padding: 2px; color: #111111; background-color: #111118; height: 14px; } QProgressBar:horizontal QLabel { font-size: 9px; color: #111111; } QProgressBar::chunk { background-color: yellow; }");
} else if (batteryPercent >= 30 && toolBarBatteryBar->value() < 30){
toolBarBatteryBar->setStyleSheet("QProgressBar:horizontal { margin: 0px 4px 0px 0px; border: 1px solid #4A4A4F; border-radius: 4px; text-align: center; padding: 2px; color: #111111; background-color: #111118; height: 14px; } QProgressBar:horizontal QLabel { font-size: 9px; color: #111111; } QProgressBar::chunk { background-color: green; }");
}
toolBarBatteryVoltageLabel->setText(tr("%1 V").arg(batteryVoltage, 4, 'f', 1, ' ')); toolBarBatteryVoltageLabel->setText(tr("%1 V").arg(batteryVoltage, 4, 'f', 1, ' '));
toolBarStateLabel->setText(tr("%1").arg(state)); toolBarStateLabel->setText(tr("%1").arg(state));
toolBarModeLabel->setText(tr("%1").arg(mode)); toolBarModeLabel->setText(tr("%1").arg(mode));
toolBarNameLabel->setText(systemName); toolBarNameLabel->setText(systemName);
// expire after 15 seconds // expire after 15 seconds
if (QGC::groundTimeMilliseconds() - lastSystemMessageTimeMs < 15000) { if (QGC::groundTimeMilliseconds() - lastSystemMessageTimeMs < 15000) {
toolBarMessageLabel->setText(lastSystemMessage); toolBarMessageLabel->setText(tr("%1").arg(lastSystemMessage));
} else { } else {
toolBarMessageLabel->setText(""); toolBarMessageLabel->setText(tr("%1").arg(""));
} }
if (systemArmed) if (systemArmed)
{ {
toolBarSafetyLabel->setStyleSheet(QString("QLabel { margin: 0px 2px; font: 14px; color: %1; background-color: %2; }").arg(QGC::colorRed.name()).arg(QGC::colorYellow.name())); toolBarSafetyLabel->setStyleSheet(QString("QLabel { margin: 3px 2px; font: 14px; color: %1; background-color: %2; border-radius: 4px;}").arg(QGC::colorRed.name()).arg(QGC::colorYellow.name()));
toolBarSafetyLabel->setText(tr("ARMED")); toolBarSafetyLabel->setText(tr("ARMED"));
} }
else else
{ {
toolBarSafetyLabel->setStyleSheet("QLabel { margin: 0px 2px; font: 14px; color: #14C814; }"); toolBarSafetyLabel->setStyleSheet("QLabel { margin: 3px 2px; font: 14px; color: #14C814; }");
toolBarSafetyLabel->setText(tr("SAFE")); toolBarSafetyLabel->setText(tr("SAFE"));
} }
...@@ -481,8 +545,11 @@ void QGCToolBar::storeSettings() ...@@ -481,8 +545,11 @@ void QGCToolBar::storeSettings()
void QGCToolBar::clearStatusString() void QGCToolBar::clearStatusString()
{ {
lastSystemMessage = ""; if (toolBarMessageLabel->text().length() > 0)
changed = true; {
lastSystemMessage = "";
changed = true;
}
} }
QGCToolBar::~QGCToolBar() QGCToolBar::~QGCToolBar()
......
...@@ -39,7 +39,7 @@ class QGCToolBar : public QToolBar ...@@ -39,7 +39,7 @@ class QGCToolBar : public QToolBar
public: public:
explicit QGCToolBar(QWidget* parent = 0); explicit QGCToolBar(QWidget* parent = 0);
void addPerspectiveChangeAction(QAction* action); void setPerspectiveChangeActions(const QList<QAction*> &action);
~QGCToolBar(); ~QGCToolBar();
public slots: public slots:
......
#include "QGCWelcomeWidget.h"
#include "ui_QGCWelcomeWidget.h"
QGCWelcomeWidget::QGCWelcomeWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::QGCWelcomeWidget)
{
ui->setupUi(this);
}
QGCWelcomeWidget::~QGCWelcomeWidget()
{
delete ui;
}
#ifndef QGCWELCOMEWIDGET_H
#define QGCWELCOMEWIDGET_H
#include <QWidget>
namespace Ui {
class QGCWelcomeWidget;
}
class QGCWelcomeWidget : public QWidget
{
Q_OBJECT
public:
explicit QGCWelcomeWidget(QWidget *parent = 0);
~QGCWelcomeWidget();
private:
Ui::QGCWelcomeWidget *ui;
};
#endif // QGCWELCOMEWIDGET_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QGCWelcomeWidget</class>
<widget class="QWidget" name="QGCWelcomeWidget">
<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>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>30</number>
</property>
<property name="rightMargin">
<number>30</number>
</property>
<item row="0" column="0">
<widget class="QToolButton" name="connectButton">
<property name="minimumSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QToolButton" name="logreplayButton">
<property name="minimumSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QToolButton" name="demoButton">
<property name="minimumSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
...@@ -14,24 +14,15 @@ ...@@ -14,24 +14,15 @@
<string>Form</string> <string>Form</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout" rowstretch="100,1"> <layout class="QGridLayout" name="gridLayout" rowstretch="100,1">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>4</number>
</property>
<property name="bottomMargin">
<number>2</number>
</property>
<property name="horizontalSpacing"> <property name="horizontalSpacing">
<number>2</number> <number>3</number>
</property> </property>
<property name="verticalSpacing"> <property name="verticalSpacing">
<number>0</number> <number>0</number>
</property> </property>
<property name="margin">
<number>0</number>
</property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QGCMapWidget" name="map" native="true"/> <widget class="QGCMapWidget" name="map" native="true"/>
</item> </item>
......
...@@ -6,16 +6,16 @@ ...@@ -6,16 +6,16 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>695</width> <width>809</width>
<height>35</height> <height>35</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string>Form</string>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,1,1,1,0,1,100,20,1"> <layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,1,1,1,1,1,1,30,1">
<property name="spacing"> <property name="spacing">
<number>12</number> <number>2</number>
</property> </property>
<property name="margin"> <property name="margin">
<number>4</number> <number>4</number>
......
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