From 2a9db76ee1d3b96e83f7c5815c568848c2f9a616 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Tue, 12 May 2015 11:55:18 -0700 Subject: [PATCH] More work on QGCView --- qgroundcontrol.qrc | 1 + .../PX4/AirframeComponent.qml | 16 +++----- src/QmlControls/QGCView.qml | 38 ++++++++++++++--- src/QmlControls/QGCViewMessage.qml | 41 +++++++++++++++++++ src/QmlControls/QGCViewPanel.qml | 3 +- src/QmlControls/qmldir | 1 + 6 files changed, 84 insertions(+), 16 deletions(-) create mode 100644 src/QmlControls/QGCViewMessage.qml diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index a8df5dd55..8283130f4 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -36,6 +36,7 @@ src/QmlControls/QGCView.qml src/QmlControls/QGCViewPanel.qml src/QmlControls/QGCViewDialog.qml + src/QmlControls/QGCViewMessage.qml src/QmlControls/ParameterEditor.qml diff --git a/src/AutoPilotPlugins/PX4/AirframeComponent.qml b/src/AutoPilotPlugins/PX4/AirframeComponent.qml index 8cc945559..06518c170 100644 --- a/src/AutoPilotPlugins/PX4/AirframeComponent.qml +++ b/src/AutoPilotPlugins/PX4/AirframeComponent.qml @@ -64,8 +64,12 @@ QGCView { Component { id: customConfigDialogComponent - QGCViewDialog { - id: customConfigDialog + QGCViewMessage { + id: customConfigDialog + + message: "Your vehicle is using a custom airframe configuration. " + + "This configuration can only be modified through the Parameter Editor.\n\n" + + "If you want to Reset your airframe configuration and select a standard configuration, click 'Reset' above." Fact { id: sys_autostart; name: "SYS_AUTOSTART" } @@ -73,14 +77,6 @@ QGCView { sys_autostart.value = 0 customConfigDialog.hideDialog() } - - QGCLabel { - anchors.fill: parent - wrapMode: Text.WordWrap - text: "Your vehicle is using a custom airframe configuration. " + - "This configuration can only be modified through the Parameter Editor.\n\n" + - "If you want to Reset your airframe configuration and select a standard configuration, click 'Reset' above." - } } } diff --git a/src/QmlControls/QGCView.qml b/src/QmlControls/QGCView.qml index 001c2e59e..6a61211c8 100644 --- a/src/QmlControls/QGCView.qml +++ b/src/QmlControls/QGCView.qml @@ -44,11 +44,9 @@ Item { /// to go. signal completed - function __showDialog(component, title, charWidth, buttons) { + function __setupDialogButtons(buttons) { __acceptButton.visible = false __rejectButton.visible = false - __dialogCharWidth = charWidth - __dialogTitle = title // Accept role buttons if (buttons & StandardButton.Ok) { @@ -106,12 +104,31 @@ Item { __rejectButton.text = "Abort" __rejectButton.visible = true } + } + + function __showDialog(component, title, charWidth, buttons) { + __dialogCharWidth = charWidth + __dialogTitle = title + + __setupDialogButtons(buttons) __dialogComponent = component __viewPanel.enabled = false __dialogOverlay.visible = true } + function __showMessage(title, message, buttons) { + __dialogCharWidth = 50 + __dialogTitle = title + __messageDialogText = message + + __setupDialogButtons(buttons) + + __dialogComponent = __messageDialog + __viewPanel.enabled = false + __dialogOverlay.visible = true + } + function __hideDialog() { __dialogComponent = null __viewPanel.enabled = true @@ -130,6 +147,8 @@ Item { /// The title for the dialog panel property string __dialogTitle + property string __messageDialogText + property Component __dialogComponent Component.onCompleted: completed() @@ -137,8 +156,9 @@ Item { Connections { target: __viewPanel.item - onShowDialog: __showDialog(component, title, charWidth, buttons) - onHideDialog: __hideDialog() + onShowDialog: __showDialog(component, title, charWidth, buttons) + onShowMessage: __showMessage(title, message, buttons) + onHideDialog: __hideDialog() } Connections { @@ -230,4 +250,12 @@ Item { } } // Rectangle - Dialog panel } // Item - Dialog overlay + + Component { + id: __messageDialog + + QGCViewMessage { + message: __messageDialogText + } + } } \ No newline at end of file diff --git a/src/QmlControls/QGCViewMessage.qml b/src/QmlControls/QGCViewMessage.qml new file mode 100644 index 000000000..303436df4 --- /dev/null +++ b/src/QmlControls/QGCViewMessage.qml @@ -0,0 +1,41 @@ +/*===================================================================== + + QGroundControl Open Source Ground Control Station + + (c) 2009 - 2015 QGROUNDCONTROL PROJECT + + 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 . + + ======================================================================*/ + +/// @file +/// @author Don Gagne + +import QtQuick 2.3 +import QtQuick.Controls 1.3 + +import QGroundControl.Controls 1.0 +import QGroundControl.Palette 1.0 + +QGCViewDialog { + property string message + + QGCLabel { + anchors.fill: parent + wrapMode: Text.WordWrap + text: message + } +} diff --git a/src/QmlControls/QGCViewPanel.qml b/src/QmlControls/QGCViewPanel.qml index 3bf89d9e8..de4a49bc4 100644 --- a/src/QmlControls/QGCViewPanel.qml +++ b/src/QmlControls/QGCViewPanel.qml @@ -31,10 +31,11 @@ import QGroundControl.Palette 1.0 import QGroundControl.Controls 1.0 Rectangle { - QGCPalette { id: qgcPal; colorGroupEnabled: enabled } + property QGCPalette qgcPal: QGCPalette { colorGroupEnabled: enabled } signal showDialog(Component component, string title, int charWidth, int buttons) signal hideDialog + signal showMessage(string title, string message, int buttons) color: qgcPal.window } diff --git a/src/QmlControls/qmldir b/src/QmlControls/qmldir index 5c30f2a0d..c158fd07b 100644 --- a/src/QmlControls/qmldir +++ b/src/QmlControls/qmldir @@ -20,4 +20,5 @@ ViewWidget 1.0 ViewWidget.qml QGCView 1.0 QGCView.qml QGCViewPanel 1.0 QGCViewPanel.qml QGCViewDialog 1.0 QGCViewDialog.qml +QGCViewMessage 1.0 QGCViewMessage.qml -- 2.22.0