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
a99d190a
Unverified
Commit
a99d190a
authored
Jun 25, 2018
by
Gus Grubba
Committed by
GitHub
Jun 25, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6606 from mavlink/syncRework
Turn "Sync" menu into a proper "File" menu
parents
d15e422c
e163d336
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
149 additions
and
55 deletions
+149
-55
PlanMasterController.cc
src/MissionManager/PlanMasterController.cc
+36
-5
PlanMasterController.h
src/MissionManager/PlanMasterController.h
+5
-0
PlanView.qml
src/PlanView/PlanView.qml
+97
-43
DropPanel.qml
src/QmlControls/DropPanel.qml
+3
-3
ToolStrip.qml
src/QmlControls/ToolStrip.qml
+6
-4
QGCOptions.h
src/api/QGCOptions.h
+2
-0
No files found.
src/MissionManager/PlanMasterController.cc
View file @
a99d190a
...
...
@@ -280,6 +280,7 @@ void PlanMasterController::loadFromFile(const QString& filename)
return
;
}
QFileInfo
fileInfo
(
filename
);
QFile
file
(
filename
);
if
(
!
file
.
open
(
QIODevice
::
ReadOnly
|
QIODevice
::
Text
))
{
...
...
@@ -288,8 +289,8 @@ void PlanMasterController::loadFromFile(const QString& filename)
return
;
}
QString
fileExtension
(
".%1"
)
;
if
(
filename
.
endsWith
(
fileExtension
.
arg
(
AppSettings
::
planFileExtension
))
)
{
bool
success
=
false
;
if
(
fileInfo
.
suffix
()
==
AppSettings
::
planFileExtension
)
{
QJsonDocument
jsonDoc
;
QByteArray
bytes
=
file
.
readAll
();
...
...
@@ -319,17 +320,31 @@ void PlanMasterController::loadFromFile(const QString& filename)
!
_geoFenceController
.
load
(
json
[
_jsonGeoFenceObjectKey
].
toObject
(),
errorString
)
||
!
_rallyPointController
.
load
(
json
[
_jsonRallyPointsObjectKey
].
toObject
(),
errorString
))
{
qgcApp
()
->
showMessage
(
errorMessage
.
arg
(
errorString
));
}
else
{
success
=
true
;
}
}
else
if
(
file
name
.
endsWith
(
fileExtension
.
arg
(
AppSettings
::
missionFileExtension
))
)
{
}
else
if
(
file
Info
.
suffix
()
==
AppSettings
::
missionFileExtension
)
{
if
(
!
_missionController
.
loadJsonFile
(
file
,
errorString
))
{
qgcApp
()
->
showMessage
(
errorMessage
.
arg
(
errorString
));
}
else
{
success
=
true
;
}
}
else
if
(
filename
.
endsWith
(
fileExtension
.
arg
(
AppSettings
::
waypointsFileExtension
))
||
filename
.
endsWith
(
fileExtension
.
arg
(
QStringLiteral
(
"txt"
))))
{
}
else
if
(
fileInfo
.
suffix
()
==
AppSettings
::
waypointsFileExtension
||
fileInfo
.
suffix
()
==
QStringLiteral
(
"txt"
))
{
if
(
!
_missionController
.
loadTextFile
(
file
,
errorString
))
{
qgcApp
()
->
showMessage
(
errorMessage
.
arg
(
errorString
));
}
else
{
success
=
true
;
}
}
else
{
//-- TODO: What then?
}
if
(
success
){
_currentPlanFile
.
sprintf
(
"%s/%s.%s"
,
fileInfo
.
path
().
toLocal8Bit
().
data
(),
fileInfo
.
completeBaseName
().
toLocal8Bit
().
data
(),
AppSettings
::
planFileExtension
);
}
else
{
_currentPlanFile
.
clear
();
}
emit
currentPlanFileChanged
();
if
(
!
offline
())
{
setDirty
(
true
);
...
...
@@ -352,6 +367,14 @@ QJsonDocument PlanMasterController::saveToJson()
return
QJsonDocument
(
planJson
);
}
void
PlanMasterController
::
saveToCurrent
()
{
if
(
!
_currentPlanFile
.
isEmpty
())
{
saveToFile
(
_currentPlanFile
);
}
}
void
PlanMasterController
::
saveToFile
(
const
QString
&
filename
)
{
if
(
filename
.
isEmpty
())
{
...
...
@@ -367,9 +390,15 @@ void PlanMasterController::saveToFile(const QString& filename)
if
(
!
file
.
open
(
QIODevice
::
WriteOnly
|
QIODevice
::
Text
))
{
qgcApp
()
->
showMessage
(
tr
(
"Plan save error %1 : %2"
).
arg
(
filename
).
arg
(
file
.
errorString
()));
_currentPlanFile
.
clear
();
emit
currentPlanFileChanged
();
}
else
{
QJsonDocument
saveDoc
=
saveToJson
();
file
.
write
(
saveDoc
.
toJson
());
if
(
_currentPlanFile
!=
planFilename
)
{
_currentPlanFile
=
planFilename
;
emit
currentPlanFileChanged
();
}
}
// Only clear dirty bit if we are offline
...
...
@@ -411,6 +440,8 @@ void PlanMasterController::removeAll(void)
_missionController
.
setDirty
(
false
);
_geoFenceController
.
setDirty
(
false
);
_rallyPointController
.
setDirty
(
false
);
_currentPlanFile
.
clear
();
emit
currentPlanFileChanged
();
}
}
...
...
src/MissionManager/PlanMasterController.h
View file @
a99d190a
...
...
@@ -40,6 +40,7 @@ public:
Q_PROPERTY
(
bool
dirty
READ
dirty
WRITE
setDirty
NOTIFY
dirtyChanged
)
///< true: Unsaved/sent changes are present, false: no changes since last save/send
Q_PROPERTY
(
QString
fileExtension
READ
fileExtension
CONSTANT
)
///< File extension for missions
Q_PROPERTY
(
QString
kmlFileExtension
READ
kmlFileExtension
CONSTANT
)
Q_PROPERTY
(
QString
currentPlanFile
READ
currentPlanFile
NOTIFY
currentPlanFileChanged
)
///< kml file extension for missions
Q_PROPERTY
(
QStringList
loadNameFilters
READ
loadNameFilters
CONSTANT
)
///< File filter list loading plan files
Q_PROPERTY
(
QStringList
saveNameFilters
READ
saveNameFilters
CONSTANT
)
///< File filter list saving plan files
...
...
@@ -63,6 +64,7 @@ public:
Q_INVOKABLE
void
loadFromVehicle
(
void
);
Q_INVOKABLE
void
sendToVehicle
(
void
);
Q_INVOKABLE
void
loadFromFile
(
const
QString
&
filename
);
Q_INVOKABLE
void
saveToCurrent
();
Q_INVOKABLE
void
saveToFile
(
const
QString
&
filename
);
Q_INVOKABLE
void
saveToKml
(
const
QString
&
filename
);
Q_INVOKABLE
void
removeAll
(
void
);
///< Removes all from controller only, synce required to remove from vehicle
...
...
@@ -79,6 +81,7 @@ public:
void
setDirty
(
bool
dirty
);
QString
fileExtension
(
void
)
const
;
QString
kmlFileExtension
(
void
)
const
;
QString
currentPlanFile
(
void
)
const
{
return
_currentPlanFile
;
}
QStringList
loadNameFilters
(
void
)
const
;
QStringList
saveNameFilters
(
void
)
const
;
QStringList
fileKmlFilters
(
void
)
const
;
...
...
@@ -93,6 +96,7 @@ signals:
void
syncInProgressChanged
(
void
);
void
dirtyChanged
(
bool
dirty
);
void
offlineChanged
(
bool
offlineEditing
);
void
currentPlanFileChanged
();
private
slots
:
void
_activeVehicleChanged
(
Vehicle
*
activeVehicle
);
...
...
@@ -118,6 +122,7 @@ private:
bool
_loadRallyPoints
;
bool
_sendGeoFence
;
bool
_sendRallyPoints
;
QString
_currentPlanFile
;
static
const
int
_planFileVersion
;
static
const
char
*
_planFileType
;
...
...
src/PlanView/PlanView.qml
View file @
a99d190a
This diff is collapsed.
Click to expand it.
src/QmlControls/DropPanel.qml
View file @
a99d190a
...
...
@@ -71,11 +71,11 @@ Item {
}
function
_calcPositions
()
{
var
panelComponentWidth
=
panelLoader
.
item
.
width
var
panelComponentWidth
=
panelLoader
.
item
.
width
var
panelComponentHeight
=
panelLoader
.
item
.
height
dropDownItem
.
width
=
panelComponentWidth
+
_dropMarginX2
+
_arrowPointWidth
dropDownItem
.
height
=
panelComponentHeight
+
_dropMarginX2
dropDownItem
.
width
=
panelComponentWidth
+
(
_dropMarginX2
*
2
)
+
_arrowPointWidth
dropDownItem
.
height
=
panelComponentHeight
+
(
_dropMarginX2
*
2
)
dropDownItem
.
x
=
_dropEdgeTopPoint
.
x
+
_dropMargin
dropDownItem
.
y
=
_dropEdgeTopPoint
.
y
-
(
dropDownItem
.
height
/
2
)
+
radius
...
...
src/QmlControls/ToolStrip.qml
View file @
a99d190a
...
...
@@ -16,7 +16,7 @@ import QGroundControl.Palette 1.0
Rectangle
{
id
:
_root
color
:
qgcPal
.
window
width
:
ScreenTools
.
isMobile
?
ScreenTools
.
minTouchPixels
:
ScreenTools
.
defaultFontPixelWidth
*
6
width
:
ScreenTools
.
isMobile
?
ScreenTools
.
minTouchPixels
:
ScreenTools
.
defaultFontPixelWidth
*
7
height
:
buttonStripColumn
.
height
+
(
buttonStripColumn
.
anchors
.
margins
*
2
)
radius
:
_radius
border.width
:
1
...
...
@@ -133,7 +133,7 @@ Rectangle {
id
:
scope
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
height
:
width
height
:
width
*
0.8
Rectangle
{
anchors.fill
:
parent
...
...
@@ -141,9 +141,11 @@ Rectangle {
QGCColoredImage
{
id
:
button
anchors.fill
:
parent
height
:
parent
.
height
width
:
height
anchors.centerIn
:
parent
source
:
_source
sourceSize.height
:
parent
.
height
sourceSize.height
:
height
fillMode
:
Image
.
PreserveAspectFit
mipmap
:
true
smooth
:
true
...
...
src/api/QGCOptions.h
View file @
a99d190a
...
...
@@ -49,6 +49,7 @@ public:
Q_PROPERTY
(
bool
guidedActionsRequireRCRSSI
READ
guidedActionsRequireRCRSSI
CONSTANT
)
Q_PROPERTY
(
bool
showMissionAbsoluteAltitude
READ
showMissionAbsoluteAltitude
NOTIFY
showMissionAbsoluteAltitudeChanged
)
Q_PROPERTY
(
bool
showSimpleMissionStart
READ
showSimpleMissionStart
NOTIFY
showSimpleMissionStartChanged
)
Q_PROPERTY
(
bool
disableVehicleConnection
READ
disableVehicleConnection
CONSTANT
)
/// Should QGC hide its settings menu and colapse it into one single menu (Settings and Vehicle Setup)?
/// @return true if QGC should consolidate both menus into one.
...
...
@@ -90,6 +91,7 @@ public:
virtual
bool
showOfflineMapImport
()
const
{
return
true
;
}
virtual
bool
showMissionAbsoluteAltitude
()
const
{
return
true
;
}
virtual
bool
showSimpleMissionStart
()
const
{
return
false
;
}
virtual
bool
disableVehicleConnection
()
const
{
return
false
;
}
///< true: vehicle connection is disabled
#if defined(__mobile__)
virtual
bool
useMobileFileDialog
()
const
{
return
true
;}
...
...
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