Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
73436f42
Commit
73436f42
authored
Dec 12, 2010
by
pixhawk
Browse files
Enabled selection of individual widgets in menu, persistence pending
parent
27737cde
Changes
9
Hide whitespace changes
Inline
Side-by-side
qgroundcontrol.pri
View file @
73436f42
...
...
@@ -133,11 +133,13 @@ macx {
exists(/opt/local/include/libfreenect) {
message("
Building
support for libfreenect")
message("
ENABLED
support for libfreenect")
DEPENDENCIES_PRESENT += libfreenect
# Include libfreenect libraries
LIBS += -lfreenect
DEFINES += QGC_LIBFREENECT_ENABLED
} else {
message("DISABLED libfreenect support")
}
# osg/osgEarth dynamic casts might fail without this compiler option.
...
...
src/QGC.h
View file @
73436f42
...
...
@@ -14,6 +14,9 @@ namespace QGC
/** @brief Get the current ground time in microseconds */
quint64
groundTimeUsecs
();
const
QString
APPNAME
=
"QGROUNDCONTROL"
;
const
QString
COMPANYNAME
=
"OPENMAV"
;
}
#endif // QGC_H
src/ui/HUD.cc
View file @
73436f42
...
...
@@ -165,6 +165,19 @@ HUD::~HUD()
}
void
HUD
::
showEvent
(
QShowEvent
*
event
)
{
Q_UNUSED
(
event
);
if
(
isVisible
())
{
refreshTimer
->
start
();
}
else
{
refreshTimer
->
stop
();
}
}
void
HUD
::
start
()
{
refreshTimer
->
start
();
...
...
src/ui/HUD.h
View file @
73436f42
...
...
@@ -123,6 +123,8 @@ protected:
float
refLineWidthToPen
(
float
line
);
/** @brief Rotate a polygon around a point clockwise */
void
rotatePolygonClockWiseRad
(
QPolygonF
&
p
,
float
angle
,
QPointF
origin
);
/** @brief Override base class show */
virtual
void
showEvent
(
QShowEvent
*
event
);
QImage
*
image
;
///< Double buffer image
QImage
glImage
;
///< The background / camera image
...
...
src/ui/MainWindow.cc
View file @
73436f42
...
...
@@ -83,9 +83,13 @@ MainWindow::MainWindow(QWidget *parent) :
adjustSize
();
// Set menu
QMenu
*
widgetMenu
=
create
Popup
Menu
();
QMenu
*
widgetMenu
=
create
DockWidget
Menu
();
widgetMenu
->
setTitle
(
"Widgets"
);
ui
.
menuBar
->
addMenu
(
widgetMenu
);
// QMenu* centerMenu = createCenterWidgetMenu();
// centerMenu->setTitle("Center");
// ui.menuBar->addMenu(centerMenu);
this
->
show
();
}
MainWindow
::~
MainWindow
()
...
...
@@ -94,6 +98,46 @@ MainWindow::~MainWindow()
statusBar
=
NULL
;
}
QMenu
*
MainWindow
::
createCenterWidgetMenu
()
{
QMenu
*
menu
=
NULL
;
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
{
if
(
centerStack
->
count
()
>
0
)
{
menu
=
new
QMenu
(
this
);
for
(
int
i
=
0
;
i
<
centerStack
->
count
();
++
i
)
{
//menu->addAction(centerStack->widget(i)->actions())
}
}
}
return
menu
;
}
QMenu
*
MainWindow
::
createDockWidgetMenu
()
{
QMenu
*
menu
=
0
;
#ifndef QT_NO_DOCKWIDGET
QList
<
QDockWidget
*>
dockwidgets
=
qFindChildren
<
QDockWidget
*>
(
this
);
if
(
dockwidgets
.
size
())
{
menu
=
new
QMenu
(
this
);
for
(
int
i
=
0
;
i
<
dockwidgets
.
size
();
++
i
)
{
QDockWidget
*
dockWidget
=
dockwidgets
.
at
(
i
);
if
(
dockWidget
->
parentWidget
()
==
this
)
{
menu
->
addAction
(
dockwidgets
.
at
(
i
)
->
toggleViewAction
());
}
}
menu
->
addSeparator
();
}
#endif
return
menu
;
}
//QList<QWidget* >* MainWindow::getMainWidgets()
//{
...
...
@@ -174,59 +218,86 @@ void MainWindow::buildWidgets()
// Dock widgets
controlDockWidget
=
new
QDockWidget
(
tr
(
"Control"
),
this
);
controlDockWidget
->
setWidget
(
new
UASControlWidget
(
this
)
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
controlDockWidget
);
controlDockWidget
->
hide
();
infoDockWidget
=
new
QDockWidget
(
tr
(
"Status Details"
),
this
);
infoDockWidget
->
setWidget
(
new
UASInfoWidget
(
this
)
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
infoDockWidget
);
//infoDockWidget->hide();
listDockWidget
=
new
QDockWidget
(
tr
(
"Unmanned Systems"
),
this
);
listDockWidget
->
setWidget
(
new
UASListWidget
(
this
)
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
listDockWidget
);
listDockWidget
->
hide
();
waypointsDockWidget
=
new
QDockWidget
(
tr
(
"Waypoint List"
),
this
);
waypointsDockWidget
->
setWidget
(
new
WaypointList
(
this
,
NULL
)
);
infoDockWidget
=
new
QDockWidget
(
tr
(
"Status Details"
),
this
);
infoDockWidget
->
setWidget
(
new
UASInfoWidget
(
this
)
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
waypointsDockWidget
);
waypointsDockWidget
->
hide
();
detectionDockWidget
=
new
QDockWidget
(
tr
(
"Object Recognition"
),
this
);
detectionDockWidget
->
setWidget
(
new
ObjectDetectionView
(
"images/patterns"
,
this
)
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
detectionDockWidget
);
detectionDockWidget
->
hide
();
debugConsoleDockWidget
=
new
QDockWidget
(
tr
(
"Communication Console"
),
this
);
debugConsoleDockWidget
->
setWidget
(
new
DebugConsole
(
this
)
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
debugConsoleDockWidget
);
parametersDockWidget
=
new
QDockWidget
(
tr
(
"Onboard Parameters"
),
this
);
parametersDockWidget
->
setWidget
(
new
ParameterInterface
(
this
)
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
parametersDockWidget
);
watchdogControlDockWidget
=
new
QDockWidget
(
tr
(
"Process Control"
),
this
);
watchdogControlDockWidget
->
setWidget
(
new
WatchdogControl
(
this
)
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
watchdogControlDockWidget
);
watchdogControlDockWidget
->
hide
();
hsiDockWidget
=
new
QDockWidget
(
tr
(
"Horizontal Situation Indicator"
),
this
);
hsiDockWidget
->
setWidget
(
new
HSIDisplay
(
this
)
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
hsiDockWidget
);
headDown1DockWidget
=
new
QDockWidget
(
tr
(
"
Primary Flight Display
"
),
this
);
headDown1DockWidget
=
new
QDockWidget
(
tr
(
"
System Stats
"
),
this
);
headDown1DockWidget
->
setWidget
(
new
HDDisplay
(
acceptList
,
this
)
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
headDown1DockWidget
);
headDown2DockWidget
=
new
QDockWidget
(
tr
(
"Payload Status"
),
this
);
headDown2DockWidget
->
setWidget
(
new
HDDisplay
(
acceptList2
,
this
)
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
headDown2DockWidget
);
rcViewDockWidget
=
new
QDockWidget
(
tr
(
"Radio Control"
),
this
);
rcViewDockWidget
->
setWidget
(
new
QGCRemoteControlView
(
this
)
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
rcViewDockWidget
);
rcViewDockWidget
->
hide
();
headUpDockWidget
=
new
QDockWidget
(
tr
(
"Control Indicator"
),
this
);
headUpDockWidget
->
setWidget
(
new
HUD
(
320
,
240
,
this
));
this
->
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
headUpDockWidget
);
// Dialogue widgets
//FIXME: free memory in destructor
joystick
=
new
JoystickInput
();
// SLUGS
slugsDataWidget
=
new
QDockWidget
(
tr
(
"Slugs Data"
),
this
);
slugsDataWidget
->
setWidget
(
new
SlugsDataSensorView
(
this
));
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
slugsDataWidget
);
slugsDataWidget
->
hide
();
slugsPIDControlWidget
=
new
QDockWidget
(
tr
(
"PID Control"
),
this
);
slugsPIDControlWidget
=
new
QDockWidget
(
tr
(
"
Slugs
PID Control"
),
this
);
slugsPIDControlWidget
->
setWidget
(
new
SlugsPIDControl
(
this
));
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
slugsPIDControlWidget
);
slugsPIDControlWidget
->
hide
();
slugsHilSimWidget
=
new
QDockWidget
(
tr
(
"Slugs Hil Sim"
),
this
);
slugsHilSimWidget
->
setWidget
(
new
SlugsHilSim
(
this
));
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
slugsHilSimWidget
);
slugsHilSimWidget
->
hide
();
slugsCamControlWidget
=
new
QDockWidget
(
tr
(
"Video Camera Control"
),
this
);
slugsCamControlWidget
=
new
QDockWidget
(
tr
(
"
Slugs
Video Camera Control"
),
this
);
slugsCamControlWidget
->
setWidget
(
new
SlugsVideoCamControl
(
this
));
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
slugsCamControlWidget
);
slugsCamControlWidget
->
hide
();
//FIXME: free memory in destructor
joystick
=
new
JoystickInput
();
}
/**
...
...
@@ -332,16 +403,6 @@ void MainWindow::configureWindowName()
#endif
}
void
MainWindow
::
createCenterWidgetMenu
()
{
}
void
MainWindow
::
createDockWidgetMenu
()
{
}
QStatusBar
*
MainWindow
::
createStatusBar
()
{
QStatusBar
*
bar
=
new
QStatusBar
();
...
...
@@ -693,7 +754,8 @@ void MainWindow::clearView()
if
(
dockWidget
)
{
// Remove dock widget from main window
this
->
removeDockWidget
(
dockWidget
);
//this->removeDockWidget(dockWidget);
dockWidget
->
setVisible
(
false
);
// Deletion of dockWidget would also delete all child
// widgets of dockWidget
// Is there a way to unset a widget from QDockWidget?
...
...
@@ -766,7 +828,6 @@ void MainWindow::loadSlugsView()
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
slugsHilSimWidget
);
slugsHilSimWidget
->
show
();
}
this
->
show
();
}
void
MainWindow
::
loadPixhawkView
()
...
...
@@ -840,8 +901,6 @@ void MainWindow::loadPixhawkView()
addDockWidget
(
Qt
::
RightDockWidgetArea
,
parametersDockWidget
);
parametersDockWidget
->
show
();
}
this
->
show
();
}
void
MainWindow
::
loadDataView
()
...
...
@@ -910,8 +969,6 @@ void MainWindow::loadPilotView()
hdd
->
start
();
}
}
this
->
show
();
}
void
MainWindow
::
loadOperatorView
()
...
...
@@ -981,8 +1038,6 @@ void MainWindow::loadOperatorView()
addDockWidget
(
Qt
::
RightDockWidgetArea
,
watchdogControlDockWidget
);
watchdogControlDockWidget
->
show
();
}
this
->
show
();
}
void
MainWindow
::
loadGlobalOperatorView
()
...
...
@@ -1026,64 +1081,6 @@ void MainWindow::loadGlobalOperatorView()
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
slugsCamControlWidget
);
slugsCamControlWidget
->
show
();
}
// // UAS CONTROL
// if (controlDockWidget)
// {
// addDockWidget(Qt::LeftDockWidgetArea, controlDockWidget);
// controlDockWidget->show();
// }
// // UAS LIST
// if (listDockWidget)
// {
// addDockWidget(Qt::BottomDockWidgetArea, listDockWidget);
// listDockWidget->show();
// }
// // UAS STATUS
// if (infoDockWidget)
// {
// addDockWidget(Qt::LeftDockWidgetArea, infoDockWidget);
// infoDockWidget->show();
// }
// // HORIZONTAL SITUATION INDICATOR
// if (hsiDockWidget)
// {
// HSIDisplay* hsi = dynamic_cast<HSIDisplay*>( hsiDockWidget->widget() );
// if (hsi)
// {
// addDockWidget(Qt::BottomDockWidgetArea, hsiDockWidget);
// hsiDockWidget->show();
// hsi->start();
// }
// }
// PROCESS CONTROL
// if (watchdogControlDockWidget)
// {
// addDockWidget(Qt::RightDockWidgetArea, watchdogControlDockWidget);
// watchdogControlDockWidget->show();
// }
// HEAD UP DISPLAY
// if (headUpDockWidget)
// {
// addDockWidget(Qt::RightDockWidgetArea, headUpDockWidget);
// // FIXME Replace with default ->show() call
// HUD* hud = dynamic_cast<HUD*>(headUpDockWidget->widget());
// if (hud)
// {
// headUpDockWidget->show();
// hud->start();
// }
// }
}
void
MainWindow
::
load3DMapView
()
...
...
@@ -1135,7 +1132,6 @@ void MainWindow::load3DMapView()
}
}
#endif
this
->
show
();
}
void
MainWindow
::
loadGoogleEarthView
()
...
...
@@ -1185,7 +1181,6 @@ void MainWindow::loadGoogleEarthView()
hsiDockWidget
->
show
();
}
}
this
->
show
();
#endif
}
...
...
@@ -1240,8 +1235,6 @@ void MainWindow::load3DView()
}
}
#endif
this
->
show
();
}
void
MainWindow
::
loadEngineerView
()
...
...
@@ -1308,8 +1301,6 @@ void MainWindow::loadEngineerView()
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
rcViewDockWidget
);
rcViewDockWidget
->
show
();
}
this
->
show
();
}
void
MainWindow
::
loadMAVLinkView
()
...
...
@@ -1324,8 +1315,6 @@ void MainWindow::loadMAVLinkView()
centerStack
->
setCurrentWidget
(
protocolWidget
);
}
}
this
->
show
();
}
void
MainWindow
::
loadAllView
()
...
...
@@ -1413,13 +1402,9 @@ void MainWindow::loadAllView()
addDockWidget
(
Qt
::
RightDockWidgetArea
,
parametersDockWidget
);
parametersDockWidget
->
show
();
}
this
->
show
();
}
void
MainWindow
::
loadWidgets
()
{
//loadOperatorView();
loadEngineerView
();
//loadPilotView();
//loadEngineerView();
}
src/ui/MainWindow.h
View file @
73436f42
...
...
@@ -160,8 +160,8 @@ protected:
void
arrangeCenterStack
();
void
configureWindowName
();
void
createCenterWidgetMenu
();
void
createDockWidgetMenu
();
QMenu
*
createCenterWidgetMenu
();
QMenu
*
createDockWidgetMenu
();
// TODO Should be moved elsewhere, as the protocol does not belong to the UI
MAVLinkProtocol
*
mavlink
;
...
...
@@ -203,6 +203,7 @@ protected:
QPointer
<
QDockWidget
>
headUpDockWidget
;
QPointer
<
QDockWidget
>
hsiDockWidget
;
QPointer
<
QDockWidget
>
rcViewDockWidget
;
QPointer
<
QDockWidget
>
hudDockWidget
;
QPointer
<
QDockWidget
>
slugsDataWidget
;
QPointer
<
QDockWidget
>
slugsPIDControlWidget
;
QPointer
<
QDockWidget
>
slugsHilSimWidget
;
...
...
src/ui/XMLCommProtocolWidget.cc
View file @
73436f42
...
...
@@ -7,6 +7,7 @@
#include
"ui_XMLCommProtocolWidget.h"
#include
"MAVLinkXMLParser.h"
#include
"MAVLinkSyntaxHighlighter.h"
#include
"QGC.h"
#include
<QDebug>
#include
<iostream>
...
...
@@ -31,7 +32,7 @@ XMLCommProtocolWidget::XMLCommProtocolWidget(QWidget *parent) :
void
XMLCommProtocolWidget
::
selectXMLFile
()
{
//QString fileName = QFileDialog::getOpenFileName(this, tr("Load Protocol Definition File"), ".", "*.xml");
QSettings
settings
;
QSettings
settings
(
QGC
::
COMPANYNAME
,
QGC
::
APPNAME
)
;
const
QString
mavlinkXML
=
"MAVLINK_XML_FILE"
;
QString
dirPath
=
settings
.
value
(
mavlinkXML
,
QCoreApplication
::
applicationDirPath
()
+
"../"
).
toString
();
QFileDialog
dialog
;
...
...
@@ -92,7 +93,7 @@ void XMLCommProtocolWidget::setXML(const QString& xml)
void
XMLCommProtocolWidget
::
selectOutputDirectory
()
{
QSettings
settings
;
QSettings
settings
(
QGC
::
COMPANYNAME
,
QGC
::
APPNAME
)
;
const
QString
mavlinkOutputDir
=
"MAVLINK_OUTPUT_DIR"
;
QString
dirPath
=
settings
.
value
(
mavlinkOutputDir
,
QCoreApplication
::
applicationDirPath
()
+
"../"
).
toString
();
QFileDialog
dialog
;
...
...
@@ -110,7 +111,7 @@ void XMLCommProtocolWidget::selectOutputDirectory()
{
m_ui
->
outputDirNameLabel
->
setText
(
fileNames
.
first
());
// Store directory for next time
settings
.
setValue
(
mavlinkOutputDir
,
fileNames
.
first
());
settings
.
setValue
(
mavlinkOutputDir
,
QFileInfo
(
fileNames
.
first
())
.
absoluteFilePath
())
;
//QFile file(fileName);
}
}
...
...
src/ui/linechart/LinechartWidget.cc
View file @
73436f42
...
...
@@ -159,7 +159,9 @@ void LinechartWidget::createLayout()
QToolButton
*
timeButton
=
new
QToolButton
(
this
);
timeButton
->
setText
(
tr
(
"Ground Time"
));
timeButton
->
setCheckable
(
true
);
timeButton
->
setChecked
(
false
);
bool
gTimeDefault
=
true
;
if
(
activePlot
)
activePlot
->
enforceGroundTime
(
gTimeDefault
);
timeButton
->
setChecked
(
gTimeDefault
);
layout
->
addWidget
(
timeButton
,
1
,
4
);
layout
->
setColumnStretch
(
4
,
0
);
connect
(
timeButton
,
SIGNAL
(
clicked
(
bool
)),
activePlot
,
SLOT
(
enforceGroundTime
(
bool
)));
...
...
@@ -442,6 +444,12 @@ void LinechartWidget::removeCurve(QString curve)
// Remove name
}
void
LinechartWidget
::
showEvent
(
QShowEvent
*
event
)
{
Q_UNUSED
(
event
);
setActive
(
isVisible
());
}
void
LinechartWidget
::
setActive
(
bool
active
)
{
if
(
activePlot
)
...
...
src/ui/linechart/LinechartWidget.h
View file @
73436f42
...
...
@@ -77,6 +77,8 @@ public slots:
void
setPlotWindowPosition
(
int
scrollBarValue
);
void
setPlotWindowPosition
(
quint64
position
);
void
setPlotInterval
(
quint64
interval
);
/** @brief Override base class show */
virtual
void
showEvent
(
QShowEvent
*
event
);
void
setActive
(
bool
active
);
/** @brief Set the number of values to average over */
void
setAverageWindow
(
int
windowSize
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment