FirmwareUpgrade.qml 3.93 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
/*=====================================================================

 QGroundControl Open Source Ground Control Station

 (c) 2009 - 2015 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>

 This file is part of the QGROUNDCONTROL project

 QGROUNDCONTROL is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 QGROUNDCONTROL is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.

 ======================================================================*/

Don Gagne's avatar
Don Gagne committed
24
import QtQuick 2.3
25 26 27 28 29 30
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2

import QGroundControl.Controls 1.0
import QGroundControl.FactControls 1.0
import QGroundControl.Palette 1.0
31
import QGroundControl.Controllers 1.0
32
import QGroundControl.ScreenTools 1.0
33 34 35

Rectangle {
    width: 600
36
    height: 600
37

38
    property var qgcPal: QGCPalette { colorGroupEnabled: true }
39
    property ScreenTools screenTools: ScreenTools { }
40 41
    property FirmwareUpgradeController controller: FirmwareUpgradeController {
        upgradeButton: upgradeButton
42
        progressBar: progressBar
43 44 45
        statusLog: statusTextArea
        firmwareType: FirmwareUpgradeController.StableFirmware
    }
46 47 48 49

    color: qgcPal.window

    Column {
50 51
        anchors.fill:parent

Don Gagne's avatar
Don Gagne committed
52
        QGCLabel {
53
            text: "FIRMWARE UPDATE"
54
            font.pointSize: screenTools.dpiAdjustedPointSize(20);
55 56 57 58 59 60 61 62
        }

        Item {
            // Just used as a spacer
            height: 20
            width: 10
        }

63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
        Row {
            spacing: 10

            ListModel {
                id: firmwareItems
                ListElement {
                    text: qsTr("Standard Version (stable)");
                    firmwareType: FirmwareUpgradeController.StableFirmware
                }
                ListElement {
                    text: qsTr("Beta Testing (beta)");
                    firmwareType: FirmwareUpgradeController.BetaFirmware
                }
                ListElement {
                    text: qsTr("Developer Build (master)");
                    firmwareType: FirmwareUpgradeController.DeveloperFirmware
                }
                ListElement {
                    text: qsTr("Custom firmware file...");
                    firmwareType: FirmwareUpgradeController.CustomFirmware
                }
84 85
            }

86 87 88 89 90 91
            QGCComboBox {
                id: firmwareCombo
                width: 200
                height: upgradeButton.height
                model: firmwareItems
            }
92

93 94 95 96 97 98 99 100
            QGCButton {
                id: upgradeButton
                text: "UPGRADE"
                primary: true
                onClicked: {
                    controller.firmwareType = firmwareItems.get(firmwareCombo.currentIndex).firmwareType
                    controller.doFirmwareUpgrade();
                }
101 102 103 104 105 106 107 108 109
            }
        }

        Item {
            // Just used as a spacer
            height: 20
            width: 10
        }

110 111 112 113 114
        ProgressBar {
            id: progressBar
            width: parent.width
        }

115 116
        TextArea {
            id: statusTextArea
117 118 119 120 121 122 123 124 125

            width:			parent.width
            height:			300
            readOnly:		true
            frameVisible:	false
			font.pointSize: qgcPal.dpiAdjustedDefaultFontPointSize
            
			text: qsTr("Please disconnect all connections and unplug board from USB before selecting Upgrade.")

126
            style: TextAreaStyle {
127
                textColor: qgcPal.text
128
                backgroundColor: qgcPal.windowShade
129
            }
130 131 132
        }
    }
}