|
|
|
@ -1,6 +1,7 @@
@@ -1,6 +1,7 @@
|
|
|
|
|
import QtQuick 2.3 |
|
|
|
|
import QtQuick.Controls 1.2 |
|
|
|
|
import QtQuick.Dialogs 1.2 |
|
|
|
|
import QtQuick.Layouts 1.2 |
|
|
|
|
|
|
|
|
|
import QGroundControl 1.0 |
|
|
|
|
import QGroundControl.ScreenTools 1.0 |
|
|
|
@ -21,12 +22,14 @@ Item {
@@ -21,12 +22,14 @@ Item {
|
|
|
|
|
property bool selectExisting |
|
|
|
|
property bool selectFolder |
|
|
|
|
|
|
|
|
|
property bool _openForLoad |
|
|
|
|
property real _margins: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
property bool _openForLoad: true |
|
|
|
|
property real _margins: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
property bool _mobile: ScreenTools.isMobile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function openForLoad() { |
|
|
|
|
_openForLoad = true |
|
|
|
|
if (ScreenTools.isMobile && folder.length !== 0) { |
|
|
|
|
if (_mobile && folder.length !== 0) { |
|
|
|
|
qgcView.showDialog(mobileFileOpenDialog, title, qgcView.showDialogDefaultWidth, StandardButton.Cancel) |
|
|
|
|
} else { |
|
|
|
|
fullFileDialog.open() |
|
|
|
@ -35,7 +38,7 @@ Item {
@@ -35,7 +38,7 @@ Item {
|
|
|
|
|
|
|
|
|
|
function openForSave() { |
|
|
|
|
_openForLoad = false |
|
|
|
|
if (ScreenTools.isMobile && folder.length !== 0) { |
|
|
|
|
if (_mobile && folder.length !== 0) { |
|
|
|
|
qgcView.showDialog(mobileFileSaveDialog, title, qgcView.showDialogDefaultWidth, StandardButton.Cancel | StandardButton.Ok) |
|
|
|
|
} else { |
|
|
|
|
fullFileDialog.open() |
|
|
|
@ -76,30 +79,36 @@ Item {
@@ -76,30 +79,36 @@ Item {
|
|
|
|
|
id: mobileFileOpenDialog |
|
|
|
|
|
|
|
|
|
QGCViewDialog { |
|
|
|
|
Item { |
|
|
|
|
anchors.margins: _margins |
|
|
|
|
anchors.fill: parent |
|
|
|
|
|
|
|
|
|
QGCListView { |
|
|
|
|
id: listView |
|
|
|
|
anchors.fill: parent |
|
|
|
|
spacing: _margins / 2 |
|
|
|
|
orientation: ListView.Vertical |
|
|
|
|
model: controller.getFiles(folder, fileExtension) |
|
|
|
|
|
|
|
|
|
delegate: QGCButton { |
|
|
|
|
text: modelData |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
hideDialog() |
|
|
|
|
_root.acceptedForLoad(controller.fullyQualifiedFilename(folder, modelData, fileExtension)) |
|
|
|
|
QGCFlickable { |
|
|
|
|
anchors.fill: parent |
|
|
|
|
contentHeight: fileOpenColumn.height |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
id: fileOpenColumn |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
spacing: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
|
|
|
|
|
Repeater { |
|
|
|
|
id: fileList; |
|
|
|
|
model: controller.getFiles(folder, fileExtension) |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
text: modelData |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
hideDialog() |
|
|
|
|
_root.acceptedForLoad(controller.fullyQualifiedFilename(folder, modelData, fileExtension)) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("No files") |
|
|
|
|
visible: listView.model.length == 0 |
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("No files") |
|
|
|
|
visible: fileList.model.length == 0 |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -123,35 +132,69 @@ Item {
@@ -123,35 +132,69 @@ Item {
|
|
|
|
|
hideDialog() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Column { |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
spacing: ScreenTools.defaultFontPixelHeight |
|
|
|
|
QGCFlickable { |
|
|
|
|
anchors.fill: parent |
|
|
|
|
contentHeight: fileSaveColumn.height |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
text: qsTr("File name:") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCTextField { |
|
|
|
|
id: filenameTextField |
|
|
|
|
onTextChanged: replaceMessage.visible = false |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
Column { |
|
|
|
|
id: fileSaveColumn |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
text: qsTr("File names must end with .%1 file extension. If missing it will be added.").arg(fileExtension) |
|
|
|
|
} |
|
|
|
|
spacing: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
|
|
|
|
|
RowLayout { |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
|
|
|
|
|
QGCLabel { text: qsTr("New file name:") } |
|
|
|
|
|
|
|
|
|
QGCTextField { |
|
|
|
|
id: filenameTextField |
|
|
|
|
Layout.fillWidth: true |
|
|
|
|
onTextChanged: replaceMessage.visible = false |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
text: qsTr("File names must end with .%1 file extension. If missing it will be added.").arg(fileExtension) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: replaceMessage |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
text: qsTr("The file %1 exists. Click Save again to replace it.").arg(filenameTextField.text) |
|
|
|
|
visible: false |
|
|
|
|
color: qgcPal.warningText |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
SectionHeader { |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
text: qsTr("Save to existing file:") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Repeater { |
|
|
|
|
model: controller.getFiles(folder, fileExtension) |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
text: modelData |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
hideDialog() |
|
|
|
|
_root.acceptedForSave(controller.fullyQualifiedFilename(folder, modelData, fileExtension)) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QGCLabel { |
|
|
|
|
id: replaceMessage |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
wrapMode: Text.WordWrap |
|
|
|
|
text: qsTr("The file %1 exists. Click Save again to replace it.").arg(filenameTextField.text) |
|
|
|
|
visible: false |
|
|
|
|
color: qgcPal.warningText |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|