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
2f982bbe
Commit
2f982bbe
authored
Dec 10, 2018
by
Gus Grubba
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/mavlink/qgroundcontrol
into autoVideoStream
parents
9dba67b9
5ab7d32c
Changes
20
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
712 additions
and
789 deletions
+712
-789
AirmapSettings.qml
src/Airmap/AirmapSettings.qml
+0
-1
FlightDisplayViewMap.qml
src/FlightDisplay/FlightDisplayViewMap.qml
+2
-2
QGCMapCircleVisuals.qml
src/MissionManager/QGCMapCircleVisuals.qml
+4
-4
ScreenTools.qml
src/QmlControls/ScreenTools.qml
+13
-12
ScreenToolsController.h
src/QmlControls/ScreenToolsController.h
+16
-9
BluetoothLink.cc
src/comm/BluetoothLink.cc
+23
-13
BluetoothLink.h
src/comm/BluetoothLink.h
+1
-0
LinkConfiguration.h
src/comm/LinkConfiguration.h
+9
-1
LogReplayLink.h
src/comm/LogReplayLink.h
+1
-0
MockLink.h
src/comm/MockLink.h
+1
-0
SerialLink.h
src/comm/SerialLink.h
+1
-0
TCPLink.h
src/comm/TCPLink.h
+1
-0
UDPLink.h
src/comm/UDPLink.h
+1
-0
BluetoothSettings.qml
src/ui/preferences/BluetoothSettings.qml
+89
-120
LinkSettings.qml
src/ui/preferences/LinkSettings.qml
+166
-98
LogReplaySettings.qml
src/ui/preferences/LogReplaySettings.qml
+31
-45
MockLinkSettings.qml
src/ui/preferences/MockLinkSettings.qml
+50
-72
SerialSettings.qml
src/ui/preferences/SerialSettings.qml
+170
-208
TcpSettings.qml
src/ui/preferences/TcpSettings.qml
+27
-61
UdpSettings.qml
src/ui/preferences/UdpSettings.qml
+106
-143
No files found.
src/Airmap/AirmapSettings.qml
View file @
2f982bbe
...
...
@@ -69,7 +69,6 @@ QGCView {
height
:
generalLabel
.
height
anchors.margins
:
ScreenTools
.
defaultFontPixelWidth
anchors.horizontalCenter
:
parent
.
horizontalCenter
visible
:
QGroundControl
.
settingsManager
.
unitsSettings
.
visible
QGCLabel
{
id
:
generalLabel
text
:
qsTr
(
"
General
"
)
...
...
src/FlightDisplay/FlightDisplayViewMap.qml
View file @
2f982bbe
...
...
@@ -357,7 +357,7 @@ FlightMap {
// Used to show orbit status telemetry from the vehicle
QGCMapCircleVisuals
{
mapControl
:
parent
mapCircle
:
_activeVehicle
.
orbitMapCircle
mapCircle
:
_activeVehicle
?
_activeVehicle
.
orbitMapCircle
:
null
visible
:
_activeVehicle
?
_activeVehicle
.
orbitActive
:
false
}
...
...
@@ -396,7 +396,7 @@ FlightMap {
onClicked
:
{
if
(
guidedActionsController
.
guidedUIVisible
||
(
!
guidedActionsController
.
showGotoLocation
&&
!
guidedActionsController
.
showOrbit
))
{
return
}
}
orbitMapCircle
.
hide
()
gotoLocationItem
.
hide
()
var
clickCoord
=
flightMap
.
toCoordinate
(
Qt
.
point
(
mouse
.
x
,
mouse
.
y
),
false
/* clipToViewPort */
)
...
...
src/MissionManager/QGCMapCircleVisuals.qml
View file @
2f982bbe
...
...
@@ -22,9 +22,9 @@ import QGroundControl.FlightMap 1.0
Item
{
id
:
_root
property
var
mapControl
///< Map control to place item in
property
var
mapCircle
///< QGCMapCircle object
property
bool
interactive
:
mapCircle
.
interactive
/// true: user can manipulate polygon
property
var
mapControl
///< Map control to place item in
property
var
mapCircle
///< QGCMapCircle object
property
bool
interactive
:
mapCircle
?
mapCircle
.
interactive
:
0
/// true: user can manipulate polygon
property
color
interiorColor
:
"
transparent
"
property
real
interiorOpacity
:
1
property
int
borderWidth
:
2
...
...
@@ -34,7 +34,7 @@ Item {
property
var
_topRotationIndicatorComponent
property
var
_bottomRotationIndicatorComponent
property
var
_dragHandlesComponent
property
real
_radius
:
mapCircle
.
radius
.
rawValue
property
real
_radius
:
mapCircle
?
mapCircle
.
radius
.
rawValue
:
0
function
addVisuals
()
{
if
(
!
_circleComponent
)
{
...
...
src/QmlControls/ScreenTools.qml
View file @
2f982bbe
...
...
@@ -69,18 +69,19 @@ Item {
return
Screen
.
pixelDensity
}
property
bool
isAndroid
:
ScreenToolsController
.
isAndroid
property
bool
isiOS
:
ScreenToolsController
.
isiOS
property
bool
isMobile
:
ScreenToolsController
.
isMobile
property
bool
isWindows
:
ScreenToolsController
.
isWindows
property
bool
isDebug
:
ScreenToolsController
.
isDebug
property
bool
isMac
:
ScreenToolsController
.
isMacOS
property
bool
isTinyScreen
:
(
Screen
.
width
/
realPixelDensity
)
<
120
// 120mm
property
bool
isShortScreen
:
ScreenToolsController
.
isMobile
&&
((
Screen
.
height
/
Screen
.
width
)
<
0.6
)
// Nexus 7 for example
property
bool
isHugeScreen
:
(
Screen
.
width
/
realPixelDensity
)
>=
(
23.5
*
25.4
)
// 27" monitor
readonly
property
real
minTouchMillimeters
:
10
///< Minimum touch size in millimeters
property
real
minTouchPixels
:
0
///< Minimum touch size in pixels
property
bool
isAndroid
:
ScreenToolsController
.
isAndroid
property
bool
isiOS
:
ScreenToolsController
.
isiOS
property
bool
isMobile
:
ScreenToolsController
.
isMobile
property
bool
isWindows
:
ScreenToolsController
.
isWindows
property
bool
isDebug
:
ScreenToolsController
.
isDebug
property
bool
isMac
:
ScreenToolsController
.
isMacOS
property
bool
isTinyScreen
:
(
Screen
.
width
/
realPixelDensity
)
<
120
// 120mm
property
bool
isShortScreen
:
ScreenToolsController
.
isMobile
&&
((
Screen
.
height
/
Screen
.
width
)
<
0.6
)
// Nexus 7 for example
property
bool
isHugeScreen
:
(
Screen
.
width
/
realPixelDensity
)
>=
(
23.5
*
25.4
)
// 27" monitor
property
bool
isSerialAvailable
:
ScreenToolsController
.
isSerialAvailable
readonly
property
real
minTouchMillimeters
:
10
///< Minimum touch size in millimeters
property
real
minTouchPixels
:
0
///< Minimum touch size in pixels
// The implicit heights/widths for our custom control set
property
real
implicitButtonWidth
:
Math
.
round
(
defaultFontPixelWidth
*
(
isMobile
?
7.0
:
5.0
))
...
...
src/QmlControls/ScreenToolsController.h
View file @
2f982bbe
...
...
@@ -29,15 +29,16 @@ class ScreenToolsController : public QQuickItem
public:
ScreenToolsController
();
Q_PROPERTY
(
bool
isAndroid
READ
isAndroid
CONSTANT
)
Q_PROPERTY
(
bool
isiOS
READ
isiOS
CONSTANT
)
Q_PROPERTY
(
bool
isMobile
READ
isMobile
CONSTANT
)
Q_PROPERTY
(
bool
isDebug
READ
isDebug
CONSTANT
)
Q_PROPERTY
(
bool
isMacOS
READ
isMacOS
CONSTANT
)
Q_PROPERTY
(
bool
isLinux
READ
isLinux
CONSTANT
)
Q_PROPERTY
(
bool
isWindows
READ
isWindows
CONSTANT
)
Q_PROPERTY
(
QString
iOSDevice
READ
iOSDevice
CONSTANT
)
Q_PROPERTY
(
QString
fixedFontFamily
READ
fixedFontFamily
CONSTANT
)
Q_PROPERTY
(
bool
isAndroid
READ
isAndroid
CONSTANT
)
Q_PROPERTY
(
bool
isiOS
READ
isiOS
CONSTANT
)
Q_PROPERTY
(
bool
isMobile
READ
isMobile
CONSTANT
)
Q_PROPERTY
(
bool
isDebug
READ
isDebug
CONSTANT
)
Q_PROPERTY
(
bool
isMacOS
READ
isMacOS
CONSTANT
)
Q_PROPERTY
(
bool
isLinux
READ
isLinux
CONSTANT
)
Q_PROPERTY
(
bool
isWindows
READ
isWindows
CONSTANT
)
Q_PROPERTY
(
bool
isSerialAvailable
READ
isSerialAvailable
CONSTANT
)
Q_PROPERTY
(
QString
iOSDevice
READ
iOSDevice
CONSTANT
)
Q_PROPERTY
(
QString
fixedFontFamily
READ
fixedFontFamily
CONSTANT
)
// Returns current mouse position
Q_INVOKABLE
int
mouseX
(
void
)
{
return
QCursor
::
pos
().
x
();
}
...
...
@@ -87,6 +88,12 @@ public:
bool
isWindows
()
{
return
false
;
}
#endif
#if defined(NO_SERIAL_LINK)
bool
isSerialAvailable
()
{
return
false
;
}
#else
bool
isSerialAvailable
()
{
return
true
;
}
#endif
#ifdef QT_DEBUG
bool
isDebug
()
{
return
true
;
}
#else
...
...
src/comm/BluetoothLink.cc
View file @
2f982bbe
...
...
@@ -26,6 +26,7 @@
#include <QtBluetooth/QBluetoothUuid>
#include <QtBluetooth/QBluetoothSocket>
#include "QGCApplication.h"
#include "BluetoothLink.h"
#include "QGC.h"
...
...
@@ -33,9 +34,9 @@ BluetoothLink::BluetoothLink(SharedLinkConfigurationPointer& config)
:
LinkInterface
(
config
)
,
_config
(
qobject_cast
<
BluetoothConfiguration
*>
(
config
.
data
()))
,
_connectState
(
false
)
,
_targetSocket
(
NULL
)
,
_targetSocket
(
nullptr
)
#ifdef __ios__
,
_discoveryAgent
(
NULL
)
,
_discoveryAgent
(
nullptr
)
#endif
,
_shutDown
(
false
)
{
...
...
@@ -50,7 +51,7 @@ BluetoothLink::~BluetoothLink()
_shutDown
=
true
;
_discoveryAgent
->
stop
();
_discoveryAgent
->
deleteLater
();
_discoveryAgent
=
NULL
;
_discoveryAgent
=
nullptr
;
}
#endif
}
...
...
@@ -104,13 +105,13 @@ void BluetoothLink::_disconnect(void)
_shutDown
=
true
;
_discoveryAgent
->
stop
();
_discoveryAgent
->
deleteLater
();
_discoveryAgent
=
NULL
;
_discoveryAgent
=
nullptr
;
}
#endif
if
(
_targetSocket
)
{
_targetSocket
->
deleteLater
();
_targetSocket
=
NULL
;
_targetSocket
=
nullptr
;
emit
disconnected
();
}
_connectState
=
false
;
...
...
@@ -129,7 +130,7 @@ bool BluetoothLink::_hardwareConnect()
_shutDown
=
true
;
_discoveryAgent
->
stop
();
_discoveryAgent
->
deleteLater
();
_discoveryAgent
=
NULL
;
_discoveryAgent
=
nullptr
;
}
_discoveryAgent
=
new
QBluetoothServiceDiscoveryAgent
(
this
);
QObject
::
connect
(
_discoveryAgent
,
&
QBluetoothServiceDiscoveryAgent
::
serviceDiscovered
,
this
,
&
BluetoothLink
::
serviceDiscovered
);
...
...
@@ -149,7 +150,7 @@ void BluetoothLink::_createSocket()
if
(
_targetSocket
)
{
delete
_targetSocket
;
_targetSocket
=
NULL
;
_targetSocket
=
nullptr
;
}
_targetSocket
=
new
QBluetoothSocket
(
QBluetoothServiceInfo
::
RfcommProtocol
,
this
);
QObject
::
connect
(
_targetSocket
,
&
QBluetoothSocket
::
connected
,
this
,
&
BluetoothLink
::
deviceConnected
);
...
...
@@ -182,7 +183,7 @@ void BluetoothLink::discoveryFinished()
{
_shutDown
=
true
;
_discoveryAgent
->
deleteLater
();
_discoveryAgent
=
NULL
;
_discoveryAgent
=
nullptr
;
if
(
!
_targetSocket
)
{
_connectState
=
false
;
...
...
@@ -236,14 +237,14 @@ qint64 BluetoothLink::getCurrentOutDataRate() const
BluetoothConfiguration
::
BluetoothConfiguration
(
const
QString
&
name
)
:
LinkConfiguration
(
name
)
,
_deviceDiscover
(
NULL
)
,
_deviceDiscover
(
nullptr
)
{
}
BluetoothConfiguration
::
BluetoothConfiguration
(
BluetoothConfiguration
*
source
)
:
LinkConfiguration
(
source
)
,
_deviceDiscover
(
NULL
)
,
_deviceDiscover
(
nullptr
)
,
_device
(
source
->
device
())
{
}
...
...
@@ -257,11 +258,20 @@ BluetoothConfiguration::~BluetoothConfiguration()
}
}
QString
BluetoothConfiguration
::
settingsTitle
()
{
if
(
qgcApp
()
->
toolbox
()
->
linkManager
()
->
isBluetoothAvailable
())
{
return
tr
(
"Bluetooth Link Settings"
);
}
else
{
return
tr
(
"Bluetooth Not Available"
);
}
}
void
BluetoothConfiguration
::
copyFrom
(
LinkConfiguration
*
source
)
{
LinkConfiguration
::
copyFrom
(
source
);
BluetoothConfiguration
*
usource
=
dynamic_cast
<
BluetoothConfiguration
*>
(
source
);
Q_ASSERT
(
usource
!=
NULL
);
Q_ASSERT
(
usource
!=
nullptr
);
_device
=
usource
->
device
();
}
...
...
@@ -306,7 +316,7 @@ void BluetoothConfiguration::stopScan()
{
_deviceDiscover
->
stop
();
_deviceDiscover
->
deleteLater
();
_deviceDiscover
=
NULL
;
_deviceDiscover
=
nullptr
;
emit
scanningChanged
();
}
}
...
...
@@ -366,7 +376,7 @@ void BluetoothConfiguration::doneScanning()
if
(
_deviceDiscover
)
{
_deviceDiscover
->
deleteLater
();
_deviceDiscover
=
NULL
;
_deviceDiscover
=
nullptr
;
emit
scanningChanged
();
}
}
...
...
src/comm/BluetoothLink.h
View file @
2f982bbe
...
...
@@ -104,6 +104,7 @@ public:
void
saveSettings
(
QSettings
&
settings
,
const
QString
&
root
);
void
updateSettings
();
QString
settingsURL
()
{
return
"BluetoothSettings.qml"
;
}
QString
settingsTitle
();
public
slots
:
void
deviceDiscovered
(
QBluetoothDeviceInfo
info
);
...
...
src/comm/LinkConfiguration.h
View file @
2f982bbe
...
...
@@ -31,6 +31,7 @@ public:
Q_PROPERTY
(
bool
autoConnect
READ
isAutoConnect
WRITE
setAutoConnect
NOTIFY
autoConnectChanged
)
Q_PROPERTY
(
bool
autoConnectAllowed
READ
isAutoConnectAllowed
CONSTANT
)
Q_PROPERTY
(
QString
settingsURL
READ
settingsURL
CONSTANT
)
Q_PROPERTY
(
QString
settingsTitle
READ
settingsTitle
CONSTANT
)
Q_PROPERTY
(
bool
highLatency
READ
isHighLatency
WRITE
setHighLatency
NOTIFY
highLatencyChanged
)
Q_PROPERTY
(
bool
highLatencyAllowed
READ
isHighLatencyAllowed
CONSTANT
)
...
...
@@ -146,7 +147,14 @@ public:
*
* Pure virtual method providing the URL for the (QML) settings dialog
*/
virtual
QString
settingsURL
()
=
0
;
virtual
QString
settingsURL
()
=
0
;
/*!
* @brief Settings Title
*
* Pure virtual method providing the Title for the (QML) settings dialog
*/
virtual
QString
settingsTitle
()
=
0
;
/*!
* @brief Update settings
...
...
src/comm/LogReplayLink.h
View file @
2f982bbe
...
...
@@ -40,6 +40,7 @@ public:
void
saveSettings
(
QSettings
&
settings
,
const
QString
&
root
);
void
updateSettings
();
QString
settingsURL
()
{
return
"LogReplaySettings.qml"
;
}
QString
settingsTitle
()
{
return
tr
(
"Log Replay Link Settings"
);
}
signals:
void
fileNameChanged
();
...
...
src/comm/MockLink.h
View file @
2f982bbe
...
...
@@ -70,6 +70,7 @@ public:
void
saveSettings
(
QSettings
&
settings
,
const
QString
&
root
);
void
updateSettings
(
void
);
QString
settingsURL
()
{
return
"MockLinkSettings.qml"
;
}
QString
settingsTitle
()
{
return
tr
(
"Mock Link Settings"
);
}
signals:
void
firmwareChanged
();
...
...
src/comm/SerialLink.h
View file @
2f982bbe
...
...
@@ -90,6 +90,7 @@ public:
void
saveSettings
(
QSettings
&
settings
,
const
QString
&
root
);
void
updateSettings
();
QString
settingsURL
()
{
return
"SerialSettings.qml"
;
}
QString
settingsTitle
()
{
return
tr
(
"Serial Link Settings"
);
}
signals:
void
baudChanged
();
...
...
src/comm/TCPLink.h
View file @
2f982bbe
...
...
@@ -101,6 +101,7 @@ public:
void
saveSettings
(
QSettings
&
settings
,
const
QString
&
root
);
void
updateSettings
();
QString
settingsURL
()
{
return
"TcpSettings.qml"
;
}
QString
settingsTitle
()
{
return
tr
(
"TCP Link Settings"
);
}
signals:
void
portChanged
();
...
...
src/comm/UDPLink.h
View file @
2f982bbe
...
...
@@ -127,6 +127,7 @@ public:
bool
isAutoConnectAllowed
()
{
return
true
;
}
bool
isHighLatencyAllowed
()
{
return
true
;
}
QString
settingsURL
()
{
return
"UdpSettings.qml"
;
}
QString
settingsTitle
()
{
return
tr
(
"UDP Link Settings"
);
}
signals:
void
localPortChanged
();
...
...
src/ui/preferences/BluetoothSettings.qml
View file @
2f982bbe
...
...
@@ -17,143 +17,111 @@ import QGroundControl.Controls 1.0
import
QGroundControl
.
ScreenTools
1.0
import
QGroundControl
.
Palette
1.0
Item
{
id
:
_btSettings
width
:
parent
?
parent
.
width
:
0
height
:
btColumn
.
height
Column
{
id
:
_btSettings
spacing
:
ScreenTools
.
defaultFontPixelHeight
*
0.5
anchors.margins
:
ScreenTools
.
defaultFontPixelWidth
visible
:
QGroundControl
.
linkManager
.
isBluetoothAvailable
function
saveSettings
()
{
// No need
}
QGCLabel
{
text
:
qsTr
(
"
Bluetooth Not Available
"
)
visible
:
!
QGroundControl
.
linkManager
.
isBluetoothAvailable
anchors.centerIn
:
parent
}
Column
{
id
:
btColumn
spacing
:
ScreenTools
.
defaultFontPixelHeight
/
2
visible
:
QGroundControl
.
linkManager
.
isBluetoothAvailable
ExclusiveGroup
{
id
:
linkGroup
}
QGCPalette
{
id
:
qgcPal
colorGroupEnabled
:
enabled
}
ExclusiveGroup
{
id
:
linkGroup
}
Row
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
QGCLabel
{
id
:
btLabel
text
:
qsTr
(
"
Bluetooth Link Settings
"
)
text
:
qsTr
(
"
Device:
"
)
width
:
_firstColumn
}
Rectangle
{
height
:
1
width
:
btLabel
.
width
color
:
qgcPal
.
button
QGCLabel
{
id
:
deviceField
text
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
?
subEditConfig
.
devName
:
""
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
}
Row
{
visible
:
!
ScreenTools
.
isiOS
spacing
:
ScreenTools
.
defaultFontPixelWidth
QGCLabel
{
text
:
qsTr
(
"
Address:
"
)
width
:
_firstColumn
}
Row
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
QGCLabel
{
text
:
qsTr
(
"
Device:
"
)
width
:
_firstColumn
}
QGCLabel
{
id
:
deviceField
text
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
?
subEditConfig
.
devName
:
""
}
QGCLabel
{
id
:
addressField
text
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
?
subEditConfig
.
address
:
""
}
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
}
QGCLabel
{
text
:
qsTr
(
"
Bluetooth Devices:
"
)
}
Item
{
width
:
hostRow
.
width
height
:
hostRow
.
height
Row
{
visible
:
!
ScreenTools
.
isiOS
spacing
:
ScreenTools
.
defaultFontPixelWidth
QGCLabel
{
text
:
qsTr
(
"
Address:
"
)
id
:
hostRow
spacing
:
ScreenTools
.
defaultFontPixelWidth
Item
{
height
:
1
width
:
_firstColumn
}
QGCLabel
{
id
:
addressField
text
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
?
subEditConfig
.
address
:
""
}
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
}
QGCLabel
{
text
:
qsTr
(
"
Bluetooth Devices:
"
)
}
Item
{
width
:
hostRow
.
width
height
:
hostRow
.
height
Row
{
id
:
hostRow
spacing
:
ScreenTools
.
defaultFontPixelWidth
Item
{
height
:
1
width
:
_firstColumn
Column
{
id
:
hostColumn
spacing
:
ScreenTools
.
defaultFontPixelHeight
/
2
Rectangle
{
height
:
1
width
:
_secondColumn
color
:
qgcPal
.
button
visible
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
&&
subEditConfig
.
nameList
.
length
>
0
}
Column
{
id
:
hostColumn
spacing
:
ScreenTools
.
defaultFontPixelHeight
/
2
Rectangle
{
height
:
1
width
:
_secondColumn
color
:
qgcPal
.
button
visible
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
&&
subEditConfig
.
nameList
.
length
>
0
Repeater
{
model
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
?
subEditConfig
.
nameList
:
""
delegate
:
QGCButton
{
text
:
modelData
width
:
_secondColumn
anchors.leftMargin
:
ScreenTools
.
defaultFontPixelWidth
*
2
exclusiveGroup
:
linkGroup
onClicked
:
{
checked
=
true
if
(
subEditConfig
&&
modelData
!==
""
)
subEditConfig
.
devName
=
modelData
}
}
Repeater
{
model
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
?
subEditConfig
.
nameList
:
""
delegate
:
}
Rectangle
{
height
:
1
width
:
_secondColumn
color
:
qgcPal
.
button
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
}
Item
{
width
:
_secondColumn
height
:
udpButtonRow
.
height
Row
{
id
:
udpButtonRow
spacing
:
ScreenTools
.
defaultFontPixelWidth
anchors.horizontalCenter
:
parent
.
horizontalCenter
QGCButton
{
text
:
modelData
width
:
_secondColumn
anchors.leftMargin
:
ScreenTools
.
defaultFontPixelWidth
*
2
exclusiveGroup
:
linkGroup
width
:
ScreenTools
.
defaultFontPixelWidth
*
10
text
:
qsTr
(
"
Scan
"
)
enabled
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
&&
!
subEditConfig
.
scanning
onClicked
:
{
checked
=
true
if
(
subEditConfig
&&
modelData
!==
""
)
subEditConfig
.
devName
=
modelData
if
(
subEditConfig
)
subEditConfig
.
startScan
()
}
}
}
Rectangle
{
height
:
1
width
:
_secondColumn
color
:
qgcPal
.
button
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
}
Item
{
width
:
_secondColumn
height
:
udpButtonRow
.
height
Row
{
id
:
udpButtonRow
spacing
:
ScreenTools
.
defaultFontPixelWidth
anchors.horizontalCenter
:
parent
.
horizontalCenter
QGCButton
{
width
:
ScreenTools
.
defaultFontPixelWidth
*
10
text
:
qsTr
(
"
Scan
"
)
enabled
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
&&
!
subEditConfig
.
scanning
onClicked
:
{
if
(
subEditConfig
)
subEditConfig
.
startScan
()
}
}
QGCButton
{
width
:
ScreenTools
.
defaultFontPixelWidth
*
10
text
:
qsTr
(
"
Stop
"
)
enabled
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
&&
subEditConfig
.
scanning
onClicked
:
{
if
(
subEditConfig
)
subEditConfig
.
stopScan
()
}
QGCButton
{
width
:
ScreenTools
.
defaultFontPixelWidth
*
10
text
:
qsTr
(
"
Stop
"
)
enabled
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeBluetooth
&&
subEditConfig
.
scanning
onClicked
:
{
if
(
subEditConfig
)
subEditConfig
.
stopScan
()
}
}
}
...
...
@@ -162,3 +130,4 @@ Item {
}
}
}
src/ui/preferences/LinkSettings.qml
View file @
2f982bbe
This diff is collapsed.
Click to expand it.
src/ui/preferences/LogReplaySettings.qml
View file @
2f982bbe
...
...
@@ -17,62 +17,48 @@ import QGroundControl.Controls 1.0
import
QGroundControl
.
ScreenTools
1.0
import
QGroundControl
.
Palette
1.0
Item
{
width
:
parent
?
parent
.
width
:
0
height
:
logColumn
.
height
Column
{
spacing
:
ScreenTools
.
defaultFontPixelHeight
*
0.5
anchors.margins
:
ScreenTools
.
defaultFontPixelWidth
function
saveSettings
()
{
if
(
subEditConfig
)
{
subEditConfig
.
filename
=
logField
.
text
}
}
Column
{
id
:
logColumn
width
:
parent
.
width
spacing
:
ScreenTools
.
defaultFontPixelHeight
/
2
Row
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
QGCLabel
{
text
:
qsTr
(
"
Log Replay Link Settings
"
)
text
:
qsTr
(
"
Log File:
"
)
width
:
_firstColumn
anchors.verticalCenter
:
parent
.
verticalCenter
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
QGCTextField
{
id
:
logField
text
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeLogReplay
?
subEditConfig
.
fileName
:
""
width
:
_secondColumn
anchors.verticalCenter
:
parent
.
verticalCenter
}
Row
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
QGCLabel
{
text
:
qsTr
(
"
Log File:
"
)
width
:
_firstColumn
anchors.verticalCenter
:
parent
.
verticalCenter
}
QGCTextField
{
id
:
logField
text
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeLogReplay
?
subEditConfig
.
fileName
:
""
width
:
_secondColumn
anchors.verticalCenter
:
parent
.
verticalCenter
}
QGCButton
{
text
:
qsTr
(
"
Browse
"
)
onClicked
:
{
fileDialog
.
visible
=
true
}
QGCButton
{
text
:
qsTr
(
"
Browse
"
)
onClicked
:
{
fileDialog
.
visible
=
true
}
}
FileDialog
{
id
:
fileDialog
title
:
qsTr
(
"
Please choose a file
"
)
folder
:
shortcuts
.
home
visible
:
false
selectExisting
:
true
onAccepted
:
{
if
(
subEditConfig
)
{
subEditConfig
.
fileName
=
fileDialog
.
fileUrl
.
toString
().
replace
(
"
file://
"
,
""
)
}
fileDialog
.
visible
=
false
}
onRejected
:
{
fileDialog
.
visible
=
false
}
FileDialog
{
id
:
fileDialog
title
:
qsTr
(
"
Please choose a file
"
)
folder
:
shortcuts
.
home
visible
:
false
selectExisting
:
true
onAccepted
:
{
if
(
subEditConfig
)
{
subEditConfig
.
fileName
=
fileDialog
.
fileUrl
.
toString
().
replace
(
"
file://
"
,
""
)
}
fileDialog
.
visible
=
false
}
onRejected
:
{
fileDialog
.
visible
=
false
}
}
}
src/ui/preferences/MockLinkSettings.qml
View file @
2f982bbe
...
...
@@ -17,11 +17,10 @@ import QGroundControl.Controls 1.0
import
QGroundControl
.
ScreenTools
1.0
import
QGroundControl
.
Palette
1.0
Item
{
id
:
mockLinkSettings
width
:
parent
?
parent
.
width
:
0
height
:
mockColumn
.
height
Column
{
id
:
mockLinkSettings
spacing
:
ScreenTools
.
defaultFontPixelHeight
*
0.5
anchors.margins
:
ScreenTools
.
defaultFontPixelWidth
function
saveSettings
()
{
if
(
px4Firmware
.
checked
)
subEditConfig
.
firmware
=
12
// Hardcoded MAV_AUTOPILOT_PX4
...
...
@@ -35,9 +34,7 @@ Item {
else
subEditConfig
.
firmware
=
0
subEditConfig
.
sendStatus
=
sendStatus
.
checked
subEditConfig
.
highLatency
=
highLatency
.
checked
}
Component.onCompleted
:
{
if
(
subEditConfig
.
firmware
===
12
)
// Hardcoded MAV_AUTOPILOT_PX4
px4Firmware
.
checked
=
true
...
...
@@ -50,78 +47,59 @@ Item {
else
copterVehicle
.
checked
=
true
sendStatus
.
checked
=
subEditConfig
.
sendStatus
highLatency
.
checked
=
subEditConfig
.
highLatency
}
Column
{
id
:
mockColumn
width
:
mockLinkSettings
.
width
spacing
:
ScreenTools
.
defaultFontPixelHeight
/
2
QGCLabel
{
text
:
qsTr
(
"
Mock Link Settings
"
)
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
}
QGCCheckBox
{
id
:
sendStatus
text
:
qsTr
(
"
Send Status Text and Voice
"
)
QGCCheckBox
{
id
:
sendStatus
text
:
qsTr
(
"
Send Status Text and Voice
"
)
checked
:
false
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
}
ColumnLayout
{
ExclusiveGroup
{
id
:
autoPilotGroup
}
QGCRadioButton
{
id
:
px4Firmware
text
:
qsTr
(
"
PX4 Firmware
"
)
checked
:
false
exclusiveGroup
:
autoPilotGroup
}
QGC
CheckBox
{
id
:
highLatency
text
:
qsTr
(
"
High latency
"
)
QGC
RadioButton
{
id
:
apmFirmware
text
:
qsTr
(
"
APM Firmware
"
)
checked
:
false
exclusiveGroup
:
autoPilotGroup
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
}
ColumnLayout
{
ExclusiveGroup
{
id
:
autoPilotGroup
}
QGCRadioButton
{
id
:
px4Firmware
text
:
qsTr
(
"
PX4 Firmware
"
)
checked
:
false
exclusiveGroup
:
autoPilotGroup
}
QGCRadioButton
{
id
:
apmFirmware
text
:
qsTr
(
"
APM Firmware
"
)
checked
:
false
exclusiveGroup
:
autoPilotGroup
}
QGCRadioButton
{
id
:
genericFirmware
text
:
qsTr
(
"
Generic Firmware
"
)
checked
:
false
exclusiveGroup
:
autoPilotGroup
}
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
QGCRadioButton
{
id
:
genericFirmware
text
:
qsTr
(
"
Generic Firmware
"
)
checked
:
false
exclusiveGroup
:
autoPilotGroup
}
QGCLabel
{
text
:
qsTr
(
"
APM Vehicle Type
"
)
visible
:
apmFirmware
.
checked
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
}
QGCLabel
{
text
:
qsTr
(
"
APM Vehicle Type
"
)
visible
:
apmFirmware
.
checked
}
ColumnLayout
{
visible
:
apmFirmware
.
checked
ExclusiveGroup
{
id
:
apmVehicleGroup
}
QGCRadioButton
{
id
:
copterVehicle
text
:
qsTr
(
"
ArduCopter
"
)
checked
:
false
exclusiveGroup
:
apmVehicleGroup
}
ColumnLayout
{
visible
:
apmFirmware
.
checked
ExclusiveGroup
{
id
:
apmVehicleGroup
}
QGCRadioButton
{
id
:
copterVehicle
text
:
qsTr
(
"
ArduCopter
"
)
checked
:
false
exclusiveGroup
:
apmVehicleGroup
}
QGCRadioButton
{
id
:
planeVehicle
text
:
qsTr
(
"
ArduPlane
"
)
checked
:
false
exclusiveGroup
:
apmVehicleGroup
}
QGCRadioButton
{
id
:
planeVehicle
text
:
qsTr
(
"
ArduPlane
"
)
checked
:
false
exclusiveGroup
:
apmVehicleGroup
}
}
}
src/ui/preferences/SerialSettings.qml
View file @
2f982bbe
This diff is collapsed.
Click to expand it.
src/ui/preferences/TcpSettings.qml
View file @
2f982bbe
...
...
@@ -17,77 +17,43 @@ import QGroundControl.Controls 1.0
import
QGroundControl
.
ScreenTools
1.0
import
QGroundControl
.
Palette
1.0
Item
{
id
:
tcpLinkSettings
width
:
parent
?
parent
.
width
:
0
height
:
tcpColumn
.
height
Column
{
id
:
tcpLinkSettings
spacing
:
ScreenTools
.
defaultFontPixelHeight
*
0.5
anchors.margins
:
ScreenTools
.
defaultFontPixelWidth
function
saveSettings
()
{
if
(
subEditConfig
)
{
subEditConfig
.
host
=
hostField
.
text
subEditConfig
.
port
=
parseInt
(
portField
.
text
)
}
}
Column
{
id
:
tcpColumn
width
:
tcpLinkSettings
.
width
spacing
:
ScreenTools
.
defaultFontPixelHeight
/
2
Row
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
QGCLabel
{
id
:
tcpLabel
text
:
qsTr
(
"
TCP Link Settings
"
)
}
Rectangle
{
height
:
1
width
:
tcpLabel
.
width
color
:
qgcPal
.
button
text
:
qsTr
(
"
Host Address:
"
)
width
:
_firstColumn
anchors.verticalCenter
:
parent
.
verticalCenter
}
Item
{
height
:
ScreenTools
.
defaultFontPixelHeight
/
2
width
:
parent
.
width
QGCTextField
{
id
:
hostField
text
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeTcp
?
subEditConfig
.
host
:
""
width
:
_secondColumn
anchors.verticalCenter
:
parent
.
verticalCenter
}
Row
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
QGCLabel
{
text
:
qsTr
(
"
Host Address:
"
)
width
:
_firstColumn
anchors.verticalCenter
:
parent
.
verticalCenter
}
QGCTextField
{
id
:
hostField
text
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeTcp
?
subEditConfig
.
host
:
""
width
:
_secondColumn
anchors.verticalCenter
:
parent
.
verticalCenter
}
}
Row
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
QGCLabel
{
text
:
qsTr
(
"
TCP Port:
"
)
width
:
_firstColumn
anchors.verticalCenter
:
parent
.
verticalCenter
}
QGCTextField
{
id
:
portField
text
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeTcp
?
subEditConfig
.
port
.
toString
()
:
""
width
:
_firstColumn
inputMethodHints
:
Qt
.
ImhFormattedNumbersOnly
anchors.verticalCenter
:
parent
.
verticalCenter
}
}
Row
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
QGCLabel
{
text
:
qsTr
(
"
TCP Port:
"
)
width
:
_firstColumn
anchors.verticalCenter
:
parent
.
verticalCenter
}
QGCCheckBox
{
text
:
"
High Latency
"
checked
:
false
visible
:
editConfig
?
editConfig
.
highLatencyAllowed
:
false
onCheckedChanged
:
{
if
(
editConfig
)
{
editConfig
.
highLatency
=
checked
}
}
Component
.
onCompleted
:
{
if
(
editConfig
)
checked
=
editConfig
.
highLatency
}
QGCTextField
{
id
:
portField
text
:
subEditConfig
&&
subEditConfig
.
linkType
===
LinkConfiguration
.
TypeTcp
?
subEditConfig
.
port
.
toString
()
:
""
width
:
_firstColumn
inputMethodHints
:
Qt
.
ImhFormattedNumbersOnly
anchors.verticalCenter
:
parent
.
verticalCenter
}
}
}
src/ui/preferences/UdpSettings.qml
View file @
2f982bbe
This diff is collapsed.
Click to expand it.
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