QGCMobileFileSaveDialog.qml 2.45 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
/****************************************************************************
 *
 *   (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/


11 12
import QtQuick          2.3
import QtQuick.Controls 1.2
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
import QtQuick.Dialogs  1.2

import QGroundControl               1.0
import QGroundControl.ScreenTools   1.0
import QGroundControl.Controls      1.0
import QGroundControl.Controllers   1.0
import QGroundControl.Palette       1.0

/// Simple file picker for mobile
QGCViewDialog {
    property string fileExtension   ///< File extension for file listing

    signal filenameReturned(string filename)

    readonly property real _margins: ScreenTools.defaultFontPixelHeight / 2

    function accept() {
        if (filenameTextField.text == "") {
            return
        }
        if (!replaceMessage.visible) {
            if (controller.fileExists(filenameTextField.text, fileExtension)) {
                console.log("File exists")
                replaceMessage.visible = true
                return
            }
        }
        filenameReturned(controller.fullPath(filenameTextField.text, fileExtension))
        hideDialog()
    }

    QGCMobileFileDialogController { id: controller }
    QGCPalette { id: qgcPal; colorGroupEnabled: true }

    Column {
        anchors.left:   parent.left
        anchors.right:  parent.right
        spacing:        ScreenTools.defaultFontPixelHeight

        QGCLabel {
            text: qsTr("File name:")
        }

        QGCTextField {
            id:             filenameTextField
            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
        }
    }
}