Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
c81927fa
Commit
c81927fa
authored
Dec 26, 2014
by
Don Gagne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rework Connect toolbar button usage
Now works for more than Serial links
parent
cf777949
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
505 additions
and
651 deletions
+505
-651
QGCApplication.cc
src/QGCApplication.cc
+2
-41
LinkManager.cc
src/comm/LinkManager.cc
+24
-2
LinkManager.h
src/comm/LinkManager.h
+6
-0
UDPLink.cc
src/comm/UDPLink.cc
+2
-3
MainWindowTest.cc
src/qgcunittest/MainWindowTest.cc
+1
-1
CommConfigurationWindow.cc
src/ui/CommConfigurationWindow.cc
+0
-1
MainWindow.cc
src/ui/MainWindow.cc
+5
-10
MainWindow.h
src/ui/MainWindow.h
+2
-24
QGCToolBar.cc
src/ui/QGCToolBar.cc
+152
-225
QGCToolBar.h
src/ui/QGCToolBar.h
+22
-37
SettingsDialog.cc
src/ui/SettingsDialog.cc
+0
-14
SettingsDialog.h
src/ui/SettingsDialog.h
+2
-3
SettingsDialog.ui
src/ui/SettingsDialog.ui
+287
-290
No files found.
src/QGCApplication.cc
View file @
c81927fa
...
@@ -252,8 +252,6 @@ bool QGCApplication::_initForNormalAppBoot(void)
...
@@ -252,8 +252,6 @@ bool QGCApplication::_initForNormalAppBoot(void)
_createSingletons
();
_createSingletons
();
enum
MainWindow
::
CUSTOM_MODE
mode
=
(
enum
MainWindow
::
CUSTOM_MODE
)
settings
.
value
(
"QGC_CUSTOM_MODE"
,
(
int
)
MainWindow
::
CUSTOM_MODE_PX4
).
toInt
();
// Show splash screen
// Show splash screen
QPixmap
splashImage
(
":/files/images/splash.png"
);
QPixmap
splashImage
(
":/files/images/splash.png"
);
QSplashScreen
*
splashScreen
=
new
QSplashScreen
(
splashImage
);
QSplashScreen
*
splashScreen
=
new
QSplashScreen
(
splashImage
);
...
@@ -268,7 +266,7 @@ bool QGCApplication::_initForNormalAppBoot(void)
...
@@ -268,7 +266,7 @@ bool QGCApplication::_initForNormalAppBoot(void)
// Start the user interface
// Start the user interface
splashScreen
->
showMessage
(
tr
(
"Starting user interface"
),
Qt
::
AlignLeft
|
Qt
::
AlignBottom
,
QColor
(
62
,
93
,
141
));
splashScreen
->
showMessage
(
tr
(
"Starting user interface"
),
Qt
::
AlignLeft
|
Qt
::
AlignBottom
,
QColor
(
62
,
93
,
141
));
MainWindow
*
mainWindow
=
MainWindow
::
_create
(
splashScreen
,
mode
);
MainWindow
*
mainWindow
=
MainWindow
::
_create
(
splashScreen
);
Q_CHECK_PTR
(
mainWindow
);
Q_CHECK_PTR
(
mainWindow
);
// If we made it this far and we still don't have a location. Either the specfied location was invalid
// If we made it this far and we still don't have a location. Either the specfied location was invalid
...
@@ -281,47 +279,10 @@ bool QGCApplication::_initForNormalAppBoot(void)
...
@@ -281,47 +279,10 @@ bool QGCApplication::_initForNormalAppBoot(void)
mainWindow
->
showSettings
();
mainWindow
->
showSettings
();
}
}
UDPLink
*
udpLink
=
NULL
;
if
(
mainWindow
->
getCustomMode
()
==
MainWindow
::
CUSTOM_MODE_WIFI
)
{
// Connect links
// to make sure that all components are initialized when the
// first messages arrive
udpLink
=
new
UDPLink
(
QHostAddress
::
Any
,
14550
);
LinkManager
::
instance
()
->
addLink
(
udpLink
);
}
else
{
// We want to have a default serial link available for "quick" connecting.
SerialLink
*
slink
=
new
SerialLink
();
LinkManager
::
instance
()
->
addLink
(
slink
);
}
#ifdef QGC_RTLAB_ENABLED
// Add OpalRT Link, but do not connect
OpalLink
*
opalLink
=
new
OpalLink
();
_mainWindow
->
addLink
(
opalLink
);
#endif
// Remove splash screen
// Remove splash screen
splashScreen
->
finish
(
mainWindow
);
splashScreen
->
finish
(
mainWindow
);
mainWindow
->
splashScreenFinished
();
mainWindow
->
splashScreenFinished
();
// Check if link could be connected
if
(
udpLink
&&
LinkManager
::
instance
()
->
connectLink
(
udpLink
))
{
QMessageBox
::
StandardButton
button
=
QGCMessageBox
::
critical
(
tr
(
"Could not connect UDP port. Is an instance of %1 already running?"
).
arg
(
qAppName
()),
tr
(
"It is recommended to close the application and stop all instances. Click Yes to close."
),
QMessageBox
::
Yes
|
QMessageBox
::
No
,
QMessageBox
::
No
);
// Exit application
if
(
button
==
QMessageBox
::
Yes
)
{
//mainWindow->close();
QTimer
::
singleShot
(
200
,
mainWindow
,
SLOT
(
close
()));
}
}
// Now that main window is upcheck for lost log files
// Now that main window is upcheck for lost log files
connect
(
this
,
&
QGCApplication
::
checkForLostLogFiles
,
MAVLinkProtocol
::
instance
(),
&
MAVLinkProtocol
::
checkForLostLogFiles
);
connect
(
this
,
&
QGCApplication
::
checkForLostLogFiles
,
MAVLinkProtocol
::
instance
(),
&
MAVLinkProtocol
::
checkForLostLogFiles
);
emit
checkForLostLogFiles
();
emit
checkForLostLogFiles
();
...
...
src/comm/LinkManager.cc
View file @
c81927fa
...
@@ -84,6 +84,9 @@ void LinkManager::addLink(LinkInterface* link)
...
@@ -84,6 +84,9 @@ void LinkManager::addLink(LinkInterface* link)
connect
(
link
,
&
LinkInterface
::
connected
,
mavlink
,
&
MAVLinkProtocol
::
linkConnected
);
connect
(
link
,
&
LinkInterface
::
connected
,
mavlink
,
&
MAVLinkProtocol
::
linkConnected
);
connect
(
link
,
&
LinkInterface
::
disconnected
,
mavlink
,
&
MAVLinkProtocol
::
linkDisconnected
);
connect
(
link
,
&
LinkInterface
::
disconnected
,
mavlink
,
&
MAVLinkProtocol
::
linkDisconnected
);
mavlink
->
resetMetadataForLink
(
link
);
mavlink
->
resetMetadataForLink
(
link
);
connect
(
link
,
&
LinkInterface
::
connected
,
this
,
&
LinkManager
::
_linkConnected
);
connect
(
link
,
&
LinkInterface
::
disconnected
,
this
,
&
LinkManager
::
_linkDisconnected
);
}
}
bool
LinkManager
::
connectAll
()
bool
LinkManager
::
connectAll
()
...
@@ -131,13 +134,22 @@ bool LinkManager::connectLink(LinkInterface* link)
...
@@ -131,13 +134,22 @@ bool LinkManager::connectLink(LinkInterface* link)
return
false
;
return
false
;
}
}
return
link
->
_connect
();
if
(
link
->
_connect
())
{
return
true
;
}
else
{
return
false
;
}
}
}
bool
LinkManager
::
disconnectLink
(
LinkInterface
*
link
)
bool
LinkManager
::
disconnectLink
(
LinkInterface
*
link
)
{
{
Q_ASSERT
(
link
);
Q_ASSERT
(
link
);
return
link
->
_disconnect
();
if
(
link
->
_disconnect
())
{
return
true
;
}
else
{
return
false
;
}
}
}
void
LinkManager
::
deleteLink
(
LinkInterface
*
link
)
void
LinkManager
::
deleteLink
(
LinkInterface
*
link
)
...
@@ -218,3 +230,13 @@ void LinkManager::_shutdown(void)
...
@@ -218,3 +230,13 @@ void LinkManager::_shutdown(void)
deleteLink
(
link
);
deleteLink
(
link
);
}
}
}
}
void
LinkManager
::
_linkConnected
(
void
)
{
emit
linkConnected
((
LinkInterface
*
)
sender
());
}
void
LinkManager
::
_linkDisconnected
(
void
)
{
emit
linkDisconnected
((
LinkInterface
*
)
sender
());
}
src/comm/LinkManager.h
View file @
c81927fa
...
@@ -91,6 +91,12 @@ public:
...
@@ -91,6 +91,12 @@ public:
signals:
signals:
void
newLink
(
LinkInterface
*
link
);
void
newLink
(
LinkInterface
*
link
);
void
linkDeleted
(
LinkInterface
*
link
);
void
linkDeleted
(
LinkInterface
*
link
);
void
linkConnected
(
LinkInterface
*
link
);
void
linkDisconnected
(
LinkInterface
*
link
);
private
slots
:
void
_linkConnected
(
void
);
void
_linkDisconnected
(
void
);
private:
private:
/// All access to LinkManager is through LinkManager::instance
/// All access to LinkManager is through LinkManager::instance
...
...
src/comm/UDPLink.cc
View file @
c81927fa
...
@@ -277,16 +277,15 @@ bool UDPLink::_disconnect(void)
...
@@ -277,16 +277,15 @@ bool UDPLink::_disconnect(void)
this
->
quit
();
this
->
quit
();
this
->
wait
();
this
->
wait
();
if
(
socket
)
if
(
socket
)
{
{
// Make sure delete happen on correct thread
// Make sure delete happen on correct thread
socket
->
deleteLater
();
socket
->
deleteLater
();
socket
=
NULL
;
socket
=
NULL
;
emit
disconnected
();
}
}
connectState
=
false
;
connectState
=
false
;
emit
disconnected
();
return
!
connectState
;
return
!
connectState
;
}
}
...
...
src/qgcunittest/MainWindowTest.cc
View file @
c81927fa
...
@@ -42,7 +42,7 @@ void MainWindowTest::init(void)
...
@@ -42,7 +42,7 @@ void MainWindowTest::init(void)
{
{
UnitTest
::
init
();
UnitTest
::
init
();
_mainWindow
=
MainWindow
::
_create
(
NULL
,
MainWindow
::
CUSTOM_MODE_PX4
);
_mainWindow
=
MainWindow
::
_create
(
NULL
);
Q_CHECK_PTR
(
_mainWindow
);
Q_CHECK_PTR
(
_mainWindow
);
}
}
...
...
src/ui/CommConfigurationWindow.cc
View file @
c81927fa
...
@@ -368,7 +368,6 @@ void CommConfigurationWindow::remove()
...
@@ -368,7 +368,6 @@ void CommConfigurationWindow::remove()
action
=
NULL
;
action
=
NULL
;
if
(
link
)
{
if
(
link
)
{
LinkManager
::
instance
()
->
disconnectLink
(
link
);
// disconnect connection
link
->
deleteLater
();
link
->
deleteLater
();
}
}
link
=
NULL
;
link
=
NULL
;
...
...
src/ui/MainWindow.cc
View file @
c81927fa
...
@@ -80,11 +80,11 @@ This file is part of the QGROUNDCONTROL project
...
@@ -80,11 +80,11 @@ This file is part of the QGROUNDCONTROL project
static
MainWindow
*
_instance
=
NULL
;
///< @brief MainWindow singleton
static
MainWindow
*
_instance
=
NULL
;
///< @brief MainWindow singleton
MainWindow
*
MainWindow
::
_create
(
QSplashScreen
*
splashScreen
,
enum
MainWindow
::
CUSTOM_MODE
mode
)
MainWindow
*
MainWindow
::
_create
(
QSplashScreen
*
splashScreen
)
{
{
Q_ASSERT
(
_instance
==
NULL
);
Q_ASSERT
(
_instance
==
NULL
);
new
MainWindow
(
splashScreen
,
mode
);
new
MainWindow
(
splashScreen
);
// _instance is set in constructor
// _instance is set in constructor
Q_ASSERT
(
_instance
);
Q_ASSERT
(
_instance
);
...
@@ -105,13 +105,12 @@ void MainWindow::deleteInstance(void)
...
@@ -105,13 +105,12 @@ void MainWindow::deleteInstance(void)
/// @brief Private constructor for MainWindow. MainWindow singleton is only ever created
/// @brief Private constructor for MainWindow. MainWindow singleton is only ever created
/// by MainWindow::_create method. Hence no other code should have access to
/// by MainWindow::_create method. Hence no other code should have access to
/// constructor.
/// constructor.
MainWindow
::
MainWindow
(
QSplashScreen
*
splashScreen
,
enum
MainWindow
::
CUSTOM_MODE
mode
)
:
MainWindow
::
MainWindow
(
QSplashScreen
*
splashScreen
)
:
currentView
(
VIEW_FLIGHT
),
currentView
(
VIEW_FLIGHT
),
centerStackActionGroup
(
new
QActionGroup
(
this
)),
centerStackActionGroup
(
new
QActionGroup
(
this
)),
autoReconnect
(
false
),
autoReconnect
(
false
),
simulationLink
(
NULL
),
simulationLink
(
NULL
),
lowPowerMode
(
false
),
lowPowerMode
(
false
),
customMode
(
mode
),
menuActionHelper
(
new
MenuActionHelper
()),
menuActionHelper
(
new
MenuActionHelper
()),
_splashScreen
(
splashScreen
)
_splashScreen
(
splashScreen
)
{
{
...
@@ -405,10 +404,10 @@ QString MainWindow::getWindowStateKey()
...
@@ -405,10 +404,10 @@ QString MainWindow::getWindowStateKey()
{
{
if
(
UASManager
::
instance
()
->
getActiveUAS
())
if
(
UASManager
::
instance
()
->
getActiveUAS
())
{
{
return
QString
::
number
(
currentView
)
+
"_windowstate_"
+
QString
::
number
(
getCustomMode
())
+
"_"
+
UASManager
::
instance
()
->
getActiveUAS
()
->
getAutopilotTypeName
();
return
QString
::
number
(
currentView
)
+
"_windowstate_"
+
UASManager
::
instance
()
->
getActiveUAS
()
->
getAutopilotTypeName
();
}
}
else
else
return
QString
::
number
(
currentView
)
+
"_windowstate_"
+
QString
::
number
(
getCustomMode
())
;
return
QString
::
number
(
currentView
)
+
"_windowstate_"
;
}
}
QString
MainWindow
::
getWindowGeometryKey
()
QString
MainWindow
::
getWindowGeometryKey
()
...
@@ -938,8 +937,6 @@ void MainWindow::loadSettings()
...
@@ -938,8 +937,6 @@ void MainWindow::loadSettings()
{
{
QSettings
settings
;
QSettings
settings
;
customMode
=
static_cast
<
enum
MainWindow
::
CUSTOM_MODE
>
(
settings
.
value
(
"QGC_CUSTOM_MODE"
,
(
unsigned
int
)
MainWindow
::
CUSTOM_MODE_NONE
).
toInt
());
settings
.
beginGroup
(
"QGC_MAINWINDOW"
);
settings
.
beginGroup
(
"QGC_MAINWINDOW"
);
autoReconnect
=
settings
.
value
(
"AUTO_RECONNECT"
,
autoReconnect
).
toBool
();
autoReconnect
=
settings
.
value
(
"AUTO_RECONNECT"
,
autoReconnect
).
toBool
();
lowPowerMode
=
settings
.
value
(
"LOW_POWER_MODE"
,
lowPowerMode
).
toBool
();
lowPowerMode
=
settings
.
value
(
"LOW_POWER_MODE"
,
lowPowerMode
).
toBool
();
...
@@ -953,8 +950,6 @@ void MainWindow::storeSettings()
...
@@ -953,8 +950,6 @@ void MainWindow::storeSettings()
{
{
QSettings
settings
;
QSettings
settings
;
settings
.
setValue
(
"QGC_CUSTOM_MODE"
,
(
int
)
customMode
);
settings
.
beginGroup
(
"QGC_MAINWINDOW"
);
settings
.
beginGroup
(
"QGC_MAINWINDOW"
);
settings
.
setValue
(
"AUTO_RECONNECT"
,
autoReconnect
);
settings
.
setValue
(
"AUTO_RECONNECT"
,
autoReconnect
);
settings
.
setValue
(
"LOW_POWER_MODE"
,
lowPowerMode
);
settings
.
setValue
(
"LOW_POWER_MODE"
,
lowPowerMode
);
...
...
src/ui/MainWindow.h
View file @
c81927fa
...
@@ -88,14 +88,6 @@ class MainWindow : public QMainWindow
...
@@ -88,14 +88,6 @@ class MainWindow : public QMainWindow
Q_OBJECT
Q_OBJECT
public:
public:
enum
CUSTOM_MODE
{
CUSTOM_MODE_UNCHANGED
=
0
,
CUSTOM_MODE_NONE
,
CUSTOM_MODE_PX4
,
CUSTOM_MODE_WIFI
};
/// @brief Returns the MainWindow singleton. Will not create the MainWindow if it has not already
/// @brief Returns the MainWindow singleton. Will not create the MainWindow if it has not already
/// been created.
/// been created.
static
MainWindow
*
instance
(
void
);
static
MainWindow
*
instance
(
void
);
...
@@ -104,7 +96,7 @@ public:
...
@@ -104,7 +96,7 @@ public:
void
deleteInstance
(
void
);
void
deleteInstance
(
void
);
/// @brief Creates the MainWindow singleton. Should only be called once by QGCApplication.
/// @brief Creates the MainWindow singleton. Should only be called once by QGCApplication.
static
MainWindow
*
_create
(
QSplashScreen
*
splashScreen
,
enum
MainWindow
::
CUSTOM_MODE
mode
);
static
MainWindow
*
_create
(
QSplashScreen
*
splashScreen
);
/// @brief Called to indicate that splash screen is no longer being displayed.
/// @brief Called to indicate that splash screen is no longer being displayed.
void
splashScreenFinished
(
void
)
{
_splashScreen
=
NULL
;
}
void
splashScreenFinished
(
void
)
{
_splashScreen
=
NULL
;
}
...
@@ -127,19 +119,6 @@ public:
...
@@ -127,19 +119,6 @@ public:
return
lowPowerMode
;
return
lowPowerMode
;
}
}
void
setCustomMode
(
MainWindow
::
CUSTOM_MODE
mode
)
{
if
(
mode
!=
CUSTOM_MODE_UNCHANGED
)
{
customMode
=
mode
;
}
}
MainWindow
::
CUSTOM_MODE
getCustomMode
()
const
{
return
customMode
;
}
QList
<
QAction
*>
listLinkMenuActions
();
QList
<
QAction
*>
listLinkMenuActions
();
void
hideSplashScreen
(
void
);
void
hideSplashScreen
(
void
);
...
@@ -420,14 +399,13 @@ protected:
...
@@ -420,14 +399,13 @@ protected:
bool
lowPowerMode
;
///< If enabled, QGC reduces the update rates of all widgets
bool
lowPowerMode
;
///< If enabled, QGC reduces the update rates of all widgets
QGCFlightGearLink
*
fgLink
;
QGCFlightGearLink
*
fgLink
;
QTimer
windowNameUpdateTimer
;
QTimer
windowNameUpdateTimer
;
CUSTOM_MODE
customMode
;
private
slots
:
private
slots
:
void
_addLinkMenu
(
LinkInterface
*
link
);
void
_addLinkMenu
(
LinkInterface
*
link
);
private:
private:
/// Constructor is private since all creation should be through MainWindow::_create
/// Constructor is private since all creation should be through MainWindow::_create
MainWindow
(
QSplashScreen
*
splashScreen
,
enum
MainWindow
::
CUSTOM_MODE
mode
);
MainWindow
(
QSplashScreen
*
splashScreen
);
void
_openUrl
(
const
QString
&
url
,
const
QString
&
errorMessage
);
void
_openUrl
(
const
QString
&
url
,
const
QString
&
errorMessage
);
...
...
src/ui/QGCToolBar.cc
View file @
c81927fa
...
@@ -24,43 +24,41 @@ This file is part of the QGROUNDCONTROL project
...
@@ -24,43 +24,41 @@ This file is part of the QGROUNDCONTROL project
#include <QToolButton>
#include <QToolButton>
#include <QLabel>
#include <QLabel>
#include <QSpacerItem>
#include <QSpacerItem>
#include <QSerialPortInfo>
#include "SerialLink.h"
#include "SerialLink.h"
#include "UDPLink.h"
#include "QGCToolBar.h"
#include "QGCToolBar.h"
#include "UASManager.h"
#include "UASManager.h"
#include "MainWindow.h"
#include "MainWindow.h"
#include "QGCApplication.h"
#include "QGCApplication.h"
#include "CommConfigurationWindow.h"
QGCToolBar
::
QGCToolBar
(
QWidget
*
parent
)
:
QGCToolBar
::
QGCToolBar
(
QWidget
*
parent
)
:
QToolBar
(
parent
),
QToolBar
(
parent
),
mav
(
NULL
),
mav
(
NULL
),
userBaudChoice
(
false
),
userPortChoice
(
false
),
changed
(
true
),
changed
(
true
),
batteryPercent
(
0
),
batteryPercent
(
0
),
batteryVoltage
(
0
),
batteryVoltage
(
0
),
wpId
(
0
),
wpId
(
0
),
wpDistance
(
0
),
wpDistance
(
0
),
altitudeMSL
(
0
),
altitudeRel
(
0
),
altitudeRel
(
0
),
systemArmed
(
false
),
systemArmed
(
false
),
currentLink
(
NULL
),
currentLink
(
NULL
),
firstAction
(
NULL
)
firstAction
(
NULL
),
_linkMgr
(
LinkManager
::
instance
()),
_linkCombo
(
NULL
),
_linkComboAction
(
NULL
),
_linkSelectedOnce
(
false
),
_baudCombo
(
NULL
),
_baudComboAction
(
NULL
),
_linksConnected
(
false
)
{
{
setObjectName
(
"QGCToolBar"
);
setObjectName
(
"QGCToolBar"
);
setSizePolicy
(
QSizePolicy
::
MinimumExpanding
,
QSizePolicy
::
MinimumExpanding
);
setSizePolicy
(
QSizePolicy
::
MinimumExpanding
,
QSizePolicy
::
MinimumExpanding
);
// Do not load UI, wait for actions
connect
(
LinkManager
::
instance
(),
&
LinkManager
::
linkConnected
,
this
,
&
QGCToolBar
::
_linkConnected
);
}
connect
(
LinkManager
::
instance
(),
&
LinkManager
::
linkDisconnected
,
this
,
&
QGCToolBar
::
_linkDisconnected
);
void
QGCToolBar
::
globalPositionChanged
(
UASInterface
*
uas
,
double
lat
,
double
lon
,
double
altAMSL
,
double
altWGS84
,
quint64
usec
)
{
Q_UNUSED
(
uas
);
Q_UNUSED
(
lat
);
Q_UNUSED
(
lon
);
Q_UNUSED
(
altWGS84
);
Q_UNUSED
(
usec
);
altitudeMSL
=
altAMSL
;
changed
=
true
;
}
}
void
QGCToolBar
::
heartbeatTimeout
(
bool
timeout
,
unsigned
int
ms
)
void
QGCToolBar
::
heartbeatTimeout
(
bool
timeout
,
unsigned
int
ms
)
...
@@ -163,36 +161,36 @@ void QGCToolBar::createUI()
...
@@ -163,36 +161,36 @@ void QGCToolBar::createUI()
spacer
->
setSizePolicy
(
QSizePolicy
::
Expanding
,
QSizePolicy
::
Expanding
);
spacer
->
setSizePolicy
(
QSizePolicy
::
Expanding
,
QSizePolicy
::
Expanding
);
addWidget
(
spacer
);
addWidget
(
spacer
);
portComboBox
=
new
QComboBox
(
this
);
_linkCombo
=
new
QComboBox
(
this
);
portComboBox
->
setToolTip
(
tr
(
"Choose the COM port to use"
)
);
_linkCombo
->
addItem
(
"WiFi"
);
portComboBox
->
setEnabled
(
true
);
connect
(
_linkCombo
,
SIGNAL
(
activated
(
int
)),
SLOT
(
_linkComboActivated
(
int
))
);
portComboBox
->
setMinimumWidth
(
100
);
toolBarPortAction
=
addWidget
(
portComboBox
);
_linkCombo
->
setToolTip
(
tr
(
"Choose the link to use"
)
);
_linkCombo
->
setEnabled
(
true
);
baudcomboBox
=
new
QComboBox
(
this
);
_linkCombo
->
setMinimumWidth
(
100
);
baudcomboBox
->
setToolTip
(
tr
(
"Choose what baud rate to use"
));
baudcomboBox
->
setEnabled
(
true
);
_linkComboAction
=
addWidget
(
_linkCombo
);
baudcomboBox
->
setMinimumWidth
(
40
);
baudcomboBox
->
addItem
(
"9600"
,
9600
);
_baudCombo
=
new
QComboBox
(
this
);
baudcomboBox
->
addItem
(
"14400"
,
14400
);
_baudCombo
->
setToolTip
(
tr
(
"Choose what baud rate to use"
)
);
baudcomboBox
->
addItem
(
"19200"
,
19200
);
_baudCombo
->
setEnabled
(
true
);
baudcomboBox
->
addItem
(
"38400"
,
3840
0
);
_baudCombo
->
setMinimumWidth
(
4
0
);
baudcomboBox
->
addItem
(
"57600"
,
57
600
);
_baudCombo
->
addItem
(
"9600"
,
9
600
);
baudcomboBox
->
addItem
(
"115200"
,
1152
00
);
_baudCombo
->
addItem
(
"14400"
,
144
00
);
baudcomboBox
->
addItem
(
"230400"
,
2304
00
);
_baudCombo
->
addItem
(
"19200"
,
192
00
);
baudcomboBox
->
addItem
(
"460800"
,
4608
00
);
_baudCombo
->
addItem
(
"38400"
,
384
00
);
baudcomboBox
->
addItem
(
"921600"
,
921
600
);
_baudCombo
->
addItem
(
"57600"
,
57
600
);
baudcomboBox
->
setCurrentIndex
(
baudcomboBox
->
findData
(
57600
)
);
_baudCombo
->
addItem
(
"115200"
,
115200
);
toolBarBaudAction
=
addWidget
(
baudcomboBox
);
_baudCombo
->
addItem
(
"230400"
,
230400
);
connect
(
baudcomboBox
,
SIGNAL
(
activated
(
int
)),
this
,
SLOT
(
baudSelected
(
int
))
);
_baudCombo
->
addItem
(
"460800"
,
460800
);
connect
(
portComboBox
,
SIGNAL
(
activated
(
int
)),
this
,
SLOT
(
portSelected
(
int
))
);
_baudCombo
->
addItem
(
"921600"
,
921600
);
_baudCombo
->
setCurrentIndex
(
_baudCombo
->
findData
(
57600
));
connectButton
=
new
QPushButton
(
tr
(
"Connect"
),
this
);
_baudComboAction
=
addWidget
(
_baudCombo
);
connectButton
->
setObjectName
(
"connectButton"
);
connectButton
->
setToolTip
(
tr
(
"Connect wireless link to MAV"
)
);
_connectButton
=
new
QPushButton
(
tr
(
"Connect"
),
this
);
connectButton
->
setCheckable
(
true
);
_connectButton
->
setObjectName
(
"connectButton"
);
addWidget
(
connectButton
);
addWidget
(
_
connectButton
);
connect
(
connectButton
,
SIGNAL
(
clicked
(
bool
)),
this
,
SLOT
(
connectLink
(
bool
))
);
connect
(
_connectButton
,
&
QPushButton
::
clicked
,
this
,
&
QGCToolBar
::
_connectButtonClicked
);
resetToolbarUI
();
resetToolbarUI
();
...
@@ -204,28 +202,9 @@ void QGCToolBar::createUI()
...
@@ -204,28 +202,9 @@ void QGCToolBar::createUI()
// Configure the toolbar for the current default UAS
// Configure the toolbar for the current default UAS
setActiveUAS
(
UASManager
::
instance
()
->
getActiveUAS
());
setActiveUAS
(
UASManager
::
instance
()
->
getActiveUAS
());
connect
(
UASManager
::
instance
(),
SIGNAL
(
activeUASSet
(
UASInterface
*
)),
this
,
SLOT
(
setActiveUAS
(
UASInterface
*
)));
connect
(
UASManager
::
instance
(),
SIGNAL
(
activeUASSet
(
UASInterface
*
)),
this
,
SLOT
(
setActiveUAS
(
UASInterface
*
)));
// Update label if required
if
(
LinkManager
::
instance
()
->
getSerialLinks
().
count
()
<
1
)
{
connectButton
->
setText
(
tr
(
"New Serial Link"
));
toolBarPortAction
->
setVisible
(
false
);
toolBarBaudAction
->
setVisible
(
false
);
}
else
{
QList
<
SerialLink
*>
links
=
LinkManager
::
instance
()
->
getSerialLinks
();
foreach
(
SerialLink
*
slink
,
links
)
connect
(
&
_portListTimer
,
&
QTimer
::
timeout
,
this
,
&
QGCToolBar
::
_updatePortList
);
{
_portListTimer
.
start
(
500
);
addLink
(
slink
);
}
}
connect
(
LinkManager
::
instance
(),
SIGNAL
(
newLink
(
LinkInterface
*
)),
this
,
SLOT
(
addLink
(
LinkInterface
*
)));
connect
(
LinkManager
::
instance
(),
SIGNAL
(
linkDeleted
(
LinkInterface
*
)),
this
,
SLOT
(
removeLink
(
LinkInterface
*
)));
loadSettings
();
connect
(
&
portBoxTimer
,
SIGNAL
(
timeout
()),
this
,
SLOT
(
updateComboBox
()));
portBoxTimer
.
start
(
500
);
toolBarMessageAction
->
setVisible
(
false
);
toolBarMessageAction
->
setVisible
(
false
);
toolBarBatteryBarAction
->
setVisible
(
false
);
toolBarBatteryBarAction
->
setVisible
(
false
);
...
@@ -259,18 +238,6 @@ void QGCToolBar::resetToolbarUI()
...
@@ -259,18 +238,6 @@ void QGCToolBar::resetToolbarUI()
toolBarBatteryBarAction
->
setVisible
(
false
);
toolBarBatteryBarAction
->
setVisible
(
false
);
}
}
void
QGCToolBar
::
baudSelected
(
int
index
)
{
Q_UNUSED
(
index
);
userBaudChoice
=
true
;
}
void
QGCToolBar
::
portSelected
(
int
index
)
{
Q_UNUSED
(
index
);
userPortChoice
=
true
;
}
void
QGCToolBar
::
setPerspectiveChangeActions
(
const
QList
<
QAction
*>
&
actions
)
void
QGCToolBar
::
setPerspectiveChangeActions
(
const
QList
<
QAction
*>
&
actions
)
{
{
if
(
actions
.
count
()
>
1
)
if
(
actions
.
count
()
>
1
)
...
@@ -372,7 +339,6 @@ void QGCToolBar::setActiveUAS(UASInterface* active)
...
@@ -372,7 +339,6 @@ void QGCToolBar::setActiveUAS(UASInterface* active)
disconnect
(
mav
,
SIGNAL
(
batteryChanged
(
UASInterface
*
,
double
,
double
,
double
,
int
)),
this
,
SLOT
(
updateBatteryRemaining
(
UASInterface
*
,
double
,
double
,
double
,
int
)));
disconnect
(
mav
,
SIGNAL
(
batteryChanged
(
UASInterface
*
,
double
,
double
,
double
,
int
)),
this
,
SLOT
(
updateBatteryRemaining
(
UASInterface
*
,
double
,
double
,
double
,
int
)));
disconnect
(
mav
,
SIGNAL
(
armingChanged
(
bool
)),
this
,
SLOT
(
updateArmingState
(
bool
)));
disconnect
(
mav
,
SIGNAL
(
armingChanged
(
bool
)),
this
,
SLOT
(
updateArmingState
(
bool
)));
disconnect
(
mav
,
SIGNAL
(
heartbeatTimeout
(
bool
,
unsigned
int
)),
this
,
SLOT
(
heartbeatTimeout
(
bool
,
unsigned
int
)));
disconnect
(
mav
,
SIGNAL
(
heartbeatTimeout
(
bool
,
unsigned
int
)),
this
,
SLOT
(
heartbeatTimeout
(
bool
,
unsigned
int
)));
disconnect
(
active
,
SIGNAL
(
globalPositionChanged
(
UASInterface
*
,
double
,
double
,
double
,
double
,
quint64
)),
this
,
SLOT
(
globalPositionChanged
(
UASInterface
*
,
double
,
double
,
double
,
double
,
quint64
)));
if
(
mav
->
getWaypointManager
())
if
(
mav
->
getWaypointManager
())
{
{
disconnect
(
mav
->
getWaypointManager
(),
SIGNAL
(
currentWaypointChanged
(
quint16
)),
this
,
SLOT
(
updateCurrentWaypoint
(
quint16
)));
disconnect
(
mav
->
getWaypointManager
(),
SIGNAL
(
currentWaypointChanged
(
quint16
)),
this
,
SLOT
(
updateCurrentWaypoint
(
quint16
)));
...
@@ -397,7 +363,6 @@ void QGCToolBar::setActiveUAS(UASInterface* active)
...
@@ -397,7 +363,6 @@ void QGCToolBar::setActiveUAS(UASInterface* active)
connect
(
mav
,
SIGNAL
(
batteryChanged
(
UASInterface
*
,
double
,
double
,
double
,
int
)),
this
,
SLOT
(
updateBatteryRemaining
(
UASInterface
*
,
double
,
double
,
double
,
int
)));
connect
(
mav
,
SIGNAL
(
batteryChanged
(
UASInterface
*
,
double
,
double
,
double
,
int
)),
this
,
SLOT
(
updateBatteryRemaining
(
UASInterface
*
,
double
,
double
,
double
,
int
)));
connect
(
mav
,
SIGNAL
(
armingChanged
(
bool
)),
this
,
SLOT
(
updateArmingState
(
bool
)));
connect
(
mav
,
SIGNAL
(
armingChanged
(
bool
)),
this
,
SLOT
(
updateArmingState
(
bool
)));
connect
(
mav
,
SIGNAL
(
heartbeatTimeout
(
bool
,
unsigned
int
)),
this
,
SLOT
(
heartbeatTimeout
(
bool
,
unsigned
int
)));
connect
(
mav
,
SIGNAL
(
heartbeatTimeout
(
bool
,
unsigned
int
)),
this
,
SLOT
(
heartbeatTimeout
(
bool
,
unsigned
int
)));
connect
(
mav
,
SIGNAL
(
globalPositionChanged
(
UASInterface
*
,
double
,
double
,
double
,
double
,
quint64
)),
this
,
SLOT
(
globalPositionChanged
(
UASInterface
*
,
double
,
double
,
double
,
double
,
quint64
)));
if
(
mav
->
getWaypointManager
())
if
(
mav
->
getWaypointManager
())
{
{
connect
(
mav
->
getWaypointManager
(),
SIGNAL
(
currentWaypointChanged
(
quint16
)),
this
,
SLOT
(
updateCurrentWaypoint
(
quint16
)));
connect
(
mav
->
getWaypointManager
(),
SIGNAL
(
currentWaypointChanged
(
quint16
)),
this
,
SLOT
(
updateCurrentWaypoint
(
quint16
)));
...
@@ -636,175 +601,135 @@ void QGCToolBar::receiveTextMessage(int uasid, int componentid, int severity, QS
...
@@ -636,175 +601,135 @@ void QGCToolBar::receiveTextMessage(int uasid, int componentid, int severity, QS
lastSystemMessageTimeMs
=
QGC
::
groundTimeMilliseconds
();
lastSystemMessageTimeMs
=
QGC
::
groundTimeMilliseconds
();
}
}
void
QGCToolBar
::
addLink
(
LinkInterface
*
link
)
void
QGCToolBar
::
_updatePortList
(
void
)
{
{
// Accept only serial links as current link
if
(
!
_linkCombo
->
isVisible
())
{
SerialLink
*
serial
=
qobject_cast
<
SerialLink
*>
(
link
);
return
;
}
if
(
serial
&&
!
currentLink
)
{
toolBarPortAction
->
setVisible
(
true
);
toolBarBaudAction
->
setVisible
(
true
);
currentLink
=
link
;
connect
(
currentLink
,
&
LinkInterface
::
connected
,
this
,
&
QGCToolBar
::
_linkConnected
);
_updateLinkState
(
link
->
isConnected
());
qDebug
()
<<
"ADD LINK"
;
QList
<
QSerialPortInfo
>
portList
=
QSerialPortInfo
::
availablePorts
()
;
updateComboBox
();
foreach
(
QSerialPortInfo
portInfo
,
portList
)
{
if
(
_linkCombo
->
findText
(
portInfo
.
portName
())
==
-
1
)
{
_linkCombo
->
addItem
(
portInfo
.
portName
());
if
(
!
_linkSelectedOnce
&&
portInfo
.
vendorIdentifier
()
==
9900
)
{
// Pre-Select 3DR connection
_linkSelectedOnce
=
true
;
_linkCombo
->
setCurrentIndex
(
_linkCombo
->
findText
(
portInfo
.
portName
()));
}
}
}
}
}
}
void
QGCToolBar
::
removeLink
(
LinkInterface
*
link
)
void
QGCToolBar
::
_linkConnected
(
LinkInterface
*
link
)
{
{
if
(
link
==
currentLink
)
{
Q_UNUSED
(
link
);
currentLink
=
NULL
;
_updateConnectButton
();
}
// Try to get a new serial link
foreach
(
SerialLink
*
s
,
LinkManager
::
instance
()
->
getSerialLinks
())
{
addLink
(
s
);
}
// Update GUI according to scan result
void
QGCToolBar
::
_linkDisconnected
(
LinkInterface
*
link
)
if
(
currentLink
)
{
{
_updateLinkState
(
currentLink
->
isConnected
());
Q_UNUSED
(
link
);
}
else
{
_updateConnectButton
();
connectButton
->
setText
(
tr
(
"New Serial Link"
));
portComboBox
->
hide
();
baudcomboBox
->
hide
();
}
}
updateComboBox
();
}
}
void
QGCToolBar
::
updateComboBox
()
void
QGCToolBar
::
_updateConnectButton
(
void
)
{
{
if
(
currentLink
&&
!
currentLink
->
isConnected
())
QMenu
*
menu
=
new
QMenu
(
this
);
{
// Do not update if not visible
if
(
!
portComboBox
->
isVisible
())
return
;
SerialLink
*
slink
=
qobject_cast
<
SerialLink
*>
(
currentLink
);
// If there are multiple connected links add/update the connect button menu
QList
<
QString
>
portlist
=
slink
->
getCurrentPorts
();
foreach
(
QString
port
,
portlist
)
{
if
(
portComboBox
->
findText
(
port
)
==
-
1
)
{
portComboBox
->
addItem
(
port
,
port
);
}
}
if
(
!
userPortChoice
)
{
int
connectedCount
=
0
;
if
(
slink
->
getPortName
().
trimmed
().
length
()
>
0
)
QList
<
LinkInterface
*>
links
=
_linkMgr
->
getLinks
();
{
foreach
(
LinkInterface
*
link
,
links
)
{
int
portIndex
=
portComboBox
->
findData
(
slink
->
getPortName
());
if
(
link
->
isConnected
())
{
if
(
portIndex
>=
0
)
{
connectedCount
++
;
portComboBox
->
setCurrentIndex
(
portIndex
);
QAction
*
action
=
menu
->
addAction
(
link
->
getName
());
portComboBox
->
setEditText
(
slink
->
getPortName
());
action
->
setData
(
QVariant
::
fromValue
((
void
*
)
link
));
}
connect
(
action
,
&
QAction
::
triggered
,
this
,
&
QGCToolBar
::
_disconnectFromMenu
);
}
else
{
if
(
portlist
.
length
()
>
0
)
{
portComboBox
->
setEditText
(
portlist
.
last
());
}
else
{
portComboBox
->
setEditText
(
tr
(
"No serial port found"
));
}
}
}
}
}
if
(
!
userBaudChoice
)
{
// Remove old menu
int
index
=
baudcomboBox
->
findData
(
slink
->
getBaudRate
());
QMenu
*
oldMenu
=
_connectButton
->
menu
();
if
(
index
>=
0
)
_connectButton
->
setMenu
(
NULL
);
baudcomboBox
->
setCurrentIndex
(
index
);
if
(
oldMenu
)
{
oldMenu
->
deleteLater
();
}
}
// Add new menu if needed
if
(
connectedCount
>
1
)
{
_connectButton
->
setMenu
(
menu
);
}
else
{
delete
menu
;
}
}
}
void
QGCToolBar
::
_linkConnected
(
void
)
_linksConnected
=
connectedCount
!=
0
;
{
_updateLinkState
(
true
);
}
void
QGCToolBar
::
_linkDisconnected
(
void
)
_connectButton
->
setText
(
_linksConnected
?
tr
(
"Disconnect"
)
:
tr
(
"Connect"
));
{
_updateLinkState
(
false
);
}
void
QGCToolBar
::
_updateLinkState
(
bool
connected
)
_linkComboAction
->
setVisible
(
!
_linksConnected
);
{
_baudComboAction
->
setVisible
(
!
_linksConnected
);
Q_UNUSED
(
connected
);
toolBarMessageAction
->
setVisible
(
_linksConnected
);
if
(
currentLink
&&
currentLink
->
isConnected
()
&&
portComboBox
->
isVisible
())
toolBarWpAction
->
setVisible
(
_linksConnected
);
{
connectButton
->
setText
(
tr
(
"Disconnect"
));
connectButton
->
blockSignals
(
true
);
connectButton
->
setChecked
(
true
);
connectButton
->
blockSignals
(
false
);
toolBarPortAction
->
setVisible
(
false
);
toolBarBaudAction
->
setVisible
(
false
);
toolBarMessageAction
->
setVisible
(
true
);
toolBarWpAction
->
setVisible
(
true
);
}
else
{
connectButton
->
setText
(
tr
(
"Connect"
));
connectButton
->
blockSignals
(
true
);
connectButton
->
setChecked
(
false
);
connectButton
->
blockSignals
(
false
);
toolBarPortAction
->
setVisible
(
true
);
toolBarBaudAction
->
setVisible
(
true
);
toolBarMessageAction
->
setVisible
(
false
);
toolBarWpAction
->
setVisible
(
false
);
}
}
}
void
QGCToolBar
::
connectLink
(
bool
connectLink
)
void
QGCToolBar
::
_connectButtonClicked
(
bool
checked
)
{
{
LinkManager
*
linkMgr
=
LinkManager
::
instance
();
Q_UNUSED
(
checked
);
Q_ASSERT
(
linkMgr
);
// No serial port yet present
if
(
_linksConnected
)
{
if
(
connectLink
&&
linkMgr
->
getSerialLinks
().
count
()
==
0
)
{
// Disconnect
MainWindow
::
instance
()
->
addLink
();
currentLink
=
linkMgr
->
getLinks
().
last
();
}
else
if
(
connectLink
)
{
SerialLink
*
link
=
qobject_cast
<
SerialLink
*>
(
currentLink
);
if
(
link
)
{
// Should be just one connected link, disconnect it
link
->
setPortName
(
portComboBox
->
itemData
(
portComboBox
->
currentIndex
()).
toString
().
trimmed
());
int
baud
=
baudcomboBox
->
currentText
().
toInt
();
int
connectedCount
=
0
;
link
->
setBaudRate
(
baud
);
LinkInterface
*
connectedLink
=
NULL
;
connect
(
link
,
&
LinkInterface
::
connected
,
this
,
&
QGCToolBar
::
_linkConnected
);
QList
<
LinkInterface
*>
links
=
_linkMgr
->
getLinks
();
linkMgr
->
connectLink
(
link
);
foreach
(
LinkInterface
*
link
,
links
)
{
if
(
link
->
isConnected
())
{
connectedCount
++
;
connectedLink
=
link
;
}
}
}
else
if
(
!
connectLink
&&
currentLink
)
{
linkMgr
->
disconnectLink
(
currentLink
);
disconnect
(
currentLink
,
&
LinkInterface
::
connected
,
this
,
&
QGCToolBar
::
_linkConnected
);
}
}
Q_ASSERT
(
connectedCount
==
1
);
Q_ASSERT
(
connectedLink
);
if
(
currentLink
)
{
_linkMgr
->
disconnectLink
(
connectedLink
);
_updateLinkState
(
currentLink
->
isConnected
());
}
else
{
}
// Connect
}
QString
linkName
=
_linkCombo
->
currentText
();
void
QGCToolBar
::
loadSettings
()
if
(
linkName
==
"WiFi"
)
{
{
UDPLink
*
link
=
new
UDPLink
;
QSettings
settings
;
Q_CHECK_PTR
(
link
);
settings
.
beginGroup
(
"QGC_TOOLBAR"
);
settings
.
endGroup
();
_linkMgr
->
addLink
(
link
);
CommConfigurationWindow
*
commDialog
=
new
CommConfigurationWindow
(
link
,
this
);
commDialog
->
exec
();
}
else
{
// Must be a serial port
SerialLink
*
link
=
new
SerialLink
(
linkName
,
_baudCombo
->
currentText
().
toInt
());
Q_CHECK_PTR
(
link
);
_linkMgr
->
addLink
(
link
);
_linkMgr
->
connectLink
(
link
);
}
}
}
}
void
QGCToolBar
::
storeSettings
(
)
void
QGCToolBar
::
_disconnectFromMenu
(
bool
checked
)
{
{
QSettings
settings
;
Q_UNUSED
(
checked
);
settings
.
beginGroup
(
"QGC_TOOLBAR"
);
settings
.
endGroup
();
QAction
*
action
=
qobject_cast
<
QAction
*>
(
sender
());
Q_ASSERT
(
action
);
LinkInterface
*
link
=
(
LinkInterface
*
)(
action
->
data
().
value
<
void
*>
());
Q_ASSERT
(
link
);
_linkMgr
->
disconnectLink
(
link
);
}
}
void
QGCToolBar
::
clearStatusString
()
void
QGCToolBar
::
clearStatusString
()
...
@@ -816,7 +741,9 @@ void QGCToolBar::clearStatusString()
...
@@ -816,7 +741,9 @@ void QGCToolBar::clearStatusString()
}
}
}
}
QGCToolBar
::~
QGCToolBar
(
)
void
QGCToolBar
::
_linkComboActivated
(
int
index
)
{
{
storeSettings
();
Q_UNUSED
(
index
);
_linkSelectedOnce
=
true
;
}
}
src/ui/QGCToolBar.h
View file @
c81927fa
...
@@ -32,8 +32,10 @@ This file is part of the QGROUNDCONTROL project
...
@@ -32,8 +32,10 @@ This file is part of the QGROUNDCONTROL project
#include <QProgressBar>
#include <QProgressBar>
#include <QComboBox>
#include <QComboBox>
#include <QTimer>
#include <QTimer>
#include "UASInterface.h"
#include "UASInterface.h"
#include "SerialLink.h"
#include "SerialLink.h"
#include "LinkManager.h"
class
QGCToolBar
:
public
QToolBar
class
QGCToolBar
:
public
QToolBar
{
{
...
@@ -43,15 +45,10 @@ public:
...
@@ -43,15 +45,10 @@ public:
explicit
QGCToolBar
(
QWidget
*
parent
=
0
);
explicit
QGCToolBar
(
QWidget
*
parent
=
0
);
void
setPerspectiveChangeActions
(
const
QList
<
QAction
*>
&
action
);
void
setPerspectiveChangeActions
(
const
QList
<
QAction
*>
&
action
);
void
setPerspectiveChangeAdvancedActions
(
const
QList
<
QAction
*>
&
action
);
void
setPerspectiveChangeAdvancedActions
(
const
QList
<
QAction
*>
&
action
);
~
QGCToolBar
();
public
slots
:
public
slots
:
/** @brief Set the system that is currently displayed by this widget */
/** @brief Set the system that is currently displayed by this widget */
void
setActiveUAS
(
UASInterface
*
active
);
void
setActiveUAS
(
UASInterface
*
active
);
/** @brief Set the link which is currently handled with connecting / disconnecting */
void
addLink
(
LinkInterface
*
link
);
/** @brief Remove link which is currently handled */
void
removeLink
(
LinkInterface
*
link
);
/** @brief Set the system state */
/** @brief Set the system state */
void
updateState
(
UASInterface
*
system
,
QString
name
,
QString
description
);
void
updateState
(
UASInterface
*
system
,
QString
name
,
QString
description
);
/** @brief Set the system mode */
/** @brief Set the system mode */
...
@@ -74,31 +71,12 @@ public slots:
...
@@ -74,31 +71,12 @@ public slots:
void
updateView
();
void
updateView
();
/** @brief Update connection timeout time */
/** @brief Update connection timeout time */
void
heartbeatTimeout
(
bool
timeout
,
unsigned
int
ms
);
void
heartbeatTimeout
(
bool
timeout
,
unsigned
int
ms
);
/** @brief Update global position */
void
globalPositionChanged
(
UASInterface
*
uas
,
double
lat
,
double
lon
,
double
altAMSL
,
double
altWGS84
,
quint64
usec
);
/** @brief Create or connect link */
void
connectLink
(
bool
connect
);
/** @brief Clear status string */
/** @brief Clear status string */
void
clearStatusString
();
void
clearStatusString
();
/** @brief Set an activity action as checked in menu */
/** @brief Set an activity action as checked in menu */
void
advancedActivityTriggered
(
QAction
*
action
);
void
advancedActivityTriggered
(
QAction
*
action
);
void
updateComboBox
();
/**
* @brief User selected baud rate
* @param index The current index of the combo box
*/
void
baudSelected
(
int
index
);
/**
* @brief User selected port
* @param index The current index of the combo box
*/
void
portSelected
(
int
index
);
protected:
protected:
void
storeSettings
();
void
loadSettings
();
void
createUI
();
void
createUI
();
void
resetToolbarUI
();
void
resetToolbarUI
();
UASInterface
*
mav
;
UASInterface
*
mav
;
...
@@ -107,8 +85,6 @@ protected:
...
@@ -107,8 +85,6 @@ protected:
QLabel
*
toolBarTimeoutLabel
;
QLabel
*
toolBarTimeoutLabel
;
QAction
*
toolBarTimeoutAction
;
///< Needed to set label (in)visible.
QAction
*
toolBarTimeoutAction
;
///< Needed to set label (in)visible.
QAction
*
toolBarMessageAction
;
QAction
*
toolBarMessageAction
;
QAction
*
toolBarPortAction
;
QAction
*
toolBarBaudAction
;
QAction
*
toolBarWpAction
;
QAction
*
toolBarWpAction
;
QAction
*
toolBarBatteryBarAction
;
QAction
*
toolBarBatteryBarAction
;
QAction
*
toolBarBatteryVoltageAction
;
QAction
*
toolBarBatteryVoltageAction
;
...
@@ -117,21 +93,14 @@ protected:
...
@@ -117,21 +93,14 @@ protected:
QLabel
*
toolBarStateLabel
;
QLabel
*
toolBarStateLabel
;
QLabel
*
toolBarWpLabel
;
QLabel
*
toolBarWpLabel
;
QLabel
*
toolBarMessageLabel
;
QLabel
*
toolBarMessageLabel
;
QPushButton
*
connectButton
;
QProgressBar
*
toolBarBatteryBar
;
QProgressBar
*
toolBarBatteryBar
;
QLabel
*
toolBarBatteryVoltageLabel
;
QLabel
*
toolBarBatteryVoltageLabel
;
QComboBox
*
portComboBox
;
QComboBox
*
baudcomboBox
;
QTimer
portBoxTimer
;
bool
userBaudChoice
;
bool
userPortChoice
;
bool
changed
;
bool
changed
;
float
batteryPercent
;
float
batteryPercent
;
float
batteryVoltage
;
float
batteryVoltage
;
int
wpId
;
int
wpId
;
double
wpDistance
;
double
wpDistance
;
float
altitudeMSL
;
float
altitudeRel
;
float
altitudeRel
;
QString
state
;
QString
state
;
QString
mode
;
QString
mode
;
...
@@ -146,12 +115,28 @@ protected:
...
@@ -146,12 +115,28 @@ protected:
QButtonGroup
*
group
;
QButtonGroup
*
group
;
private
slots
:
private
slots
:
void
_linkConnected
(
void
);
void
_linkConnected
(
LinkInterface
*
link
);
void
_linkDisconnected
(
void
);
void
_linkDisconnected
(
LinkInterface
*
link
);
void
_disconnectFromMenu
(
bool
checked
);
void
_connectButtonClicked
(
bool
checked
);
void
_linkComboActivated
(
int
index
);
private:
private:
/** @brief Update the link state */
void
_updateConnectButton
(
void
);
void
_updateLinkState
(
bool
connected
);
void
_updatePortList
(
void
);
LinkManager
*
_linkMgr
;
QComboBox
*
_linkCombo
;
QAction
*
_linkComboAction
;
bool
_linkSelectedOnce
;
QTimer
_portListTimer
;
QComboBox
*
_baudCombo
;
QAction
*
_baudComboAction
;
QPushButton
*
_connectButton
;
bool
_linksConnected
;
};
};
#endif // QGCTOOLBAR_H
#endif // QGCTOOLBAR_H
src/ui/SettingsDialog.cc
View file @
c81927fa
...
@@ -76,15 +76,6 @@ _ui(new Ui::SettingsDialog)
...
@@ -76,15 +76,6 @@ _ui(new Ui::SettingsDialog)
connect
(
_ui
->
deleteSettings
,
&
QAbstractButton
::
toggled
,
this
,
&
SettingsDialog
::
_deleteSettingsToggled
);
connect
(
_ui
->
deleteSettings
,
&
QAbstractButton
::
toggled
,
this
,
&
SettingsDialog
::
_deleteSettingsToggled
);
// Custom mode
_ui
->
customModeComboBox
->
addItem
(
tr
(
"Default: Generic MAVLink and serial links"
),
MainWindow
::
CUSTOM_MODE_NONE
);
_ui
->
customModeComboBox
->
addItem
(
tr
(
"Wifi: Generic MAVLink, wifi or serial links"
),
MainWindow
::
CUSTOM_MODE_WIFI
);
_ui
->
customModeComboBox
->
addItem
(
tr
(
"PX4: Optimized for PX4 Autopilot Users"
),
MainWindow
::
CUSTOM_MODE_PX4
);
_ui
->
customModeComboBox
->
setCurrentIndex
(
_ui
->
customModeComboBox
->
findData
(
_mainWindow
->
getCustomMode
()));
connect
(
_ui
->
customModeComboBox
,
SIGNAL
(
currentIndexChanged
(
int
)),
this
,
SLOT
(
selectCustomMode
(
int
)));
// Application color style
// Application color style
_ui
->
styleChooser
->
setCurrentIndex
(
qgcApp
()
->
styleIsDark
()
?
0
:
1
);
_ui
->
styleChooser
->
setCurrentIndex
(
qgcApp
()
->
styleIsDark
()
?
0
:
1
);
...
@@ -107,11 +98,6 @@ void SettingsDialog::styleChanged(int index)
...
@@ -107,11 +98,6 @@ void SettingsDialog::styleChanged(int index)
qgcApp
()
->
setStyle
(
index
==
0
);
qgcApp
()
->
setStyle
(
index
==
0
);
}
}
void
SettingsDialog
::
selectCustomMode
(
int
mode
)
{
_mainWindow
->
setCustomMode
(
static_cast
<
enum
MainWindow
::
CUSTOM_MODE
>
(
_ui
->
customModeComboBox
->
itemData
(
mode
).
toInt
()));
}
void
SettingsDialog
::
_deleteSettingsToggled
(
bool
checked
)
void
SettingsDialog
::
_deleteSettingsToggled
(
bool
checked
)
{
{
if
(
checked
){
if
(
checked
){
...
...
src/ui/SettingsDialog.h
View file @
c81927fa
...
@@ -40,11 +40,10 @@ public:
...
@@ -40,11 +40,10 @@ public:
SettingsDialog
(
JoystickInput
*
joystick
,
QWidget
*
parent
=
0
,
Qt
::
WindowFlags
flags
=
Qt
::
Sheet
);
SettingsDialog
(
JoystickInput
*
joystick
,
QWidget
*
parent
=
0
,
Qt
::
WindowFlags
flags
=
Qt
::
Sheet
);
~
SettingsDialog
();
~
SettingsDialog
();
public
slots
:
public
slots
:
void
styleChanged
(
int
index
);
void
styleChanged
(
int
index
);
void
selectCustomMode
(
int
mode
);
private
slots
:
private
slots
:
void
_deleteSettingsToggled
(
bool
checked
);
void
_deleteSettingsToggled
(
bool
checked
);
void
_selectSavedFilesDirectory
(
void
);
void
_selectSavedFilesDirectory
(
void
);
void
_validateBeforeClose
(
void
);
void
_validateBeforeClose
(
void
);
...
...
src/ui/SettingsDialog.ui
View file @
c81927fa
...
@@ -79,9 +79,6 @@
...
@@ -79,9 +79,6 @@
</property>
</property>
</widget>
</widget>
</item>
</item>
<item>
<widget
class=
"QComboBox"
name=
"customModeComboBox"
/>
</item>
<item>
<item>
<widget
class=
"QGroupBox"
name=
"groupBox"
>
<widget
class=
"QGroupBox"
name=
"groupBox"
>
<property
name=
"title"
>
<property
name=
"title"
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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