Commit 3f8dc069 authored by Don Gagne's avatar Don Gagne

QGCViewDialog controls can now call QGCView.showDialog to stack dialogs

parent ba088926
......@@ -97,6 +97,7 @@
<file alias="QGroundControl/Controls/QGCToolBarButton.qml">src/QmlControls/QGCToolBarButton.qml</file>
<file alias="QGroundControl/Controls/QGCView.qml">src/QmlControls/QGCView.qml</file>
<file alias="QGroundControl/Controls/QGCViewDialog.qml">src/QmlControls/QGCViewDialog.qml</file>
<file alias="QGroundControl/Controls/QGCViewDialogContainer.qml">src/QmlControls/QGCViewDialogContainer.qml</file>
<file alias="QGroundControl/Controls/QGCViewMessage.qml">src/QmlControls/QGCViewMessage.qml</file>
<file alias="QGroundControl/Controls/QGCViewPanel.qml">src/QmlControls/QGCViewPanel.qml</file>
<file alias="QGroundControl/Controls/qmldir">src/QmlControls/QGroundControl.Controls.qmldir</file>
......
This diff is collapsed.
......@@ -7,22 +7,21 @@
*
****************************************************************************/
/// @file
/// @author Don Gagne <don@thegagnes.com>
import QtQuick 2.3
import QtQuick 2.3
import QtQuick.Controls 1.2
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
import QGroundControl.FactSystem 1.0
import QGroundControl.FactControls 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
import QGroundControl.FactSystem 1.0
import QGroundControl.FactControls 1.0
import QGroundControl.ScreenTools 1.0
FactPanel {
property var qgcTextFieldforwardKeysTo: this ///< Causes all QGCTextFields to forward keys here if they have focus
property real defaultTextWidth: ScreenTools.defaultFontPixelWidth
property real defaultTextHeight: ScreenTools.defaultFontPixelHeight
QGCPalette { id: __qgcPal; colorGroupEnabled: enabled }
signal hideDialog
......
/****************************************************************************
*
* (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.
*
****************************************************************************/
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Dialogs 1.2
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
import QGroundControl.ScreenTools 1.0
Item {
id: _root
z: 5000
property alias dialogWidth: _dialogPanel.width
property alias dialogTitle: titleLabel.text
property alias dialogComponent: _dialogComponentLoader.sourceComponent
property var viewPanel
property real _defaultTextHeight: _textMeasure.contentHeight
property real _defaultTextWidth: _textMeasure.contentWidth
function setupDialogButtons(buttons) {
_acceptButton.visible = false
_rejectButton.visible = false
// Accept role buttons
if (buttons & StandardButton.Ok) {
_acceptButton.text = qsTr("Ok")
_acceptButton.visible = true
} else if (buttons & StandardButton.Open) {
_acceptButton.text = qsTr("Open")
_acceptButton.visible = true
} else if (buttons & StandardButton.Save) {
_acceptButton.text = qsTr("Save")
_acceptButton.visible = true
} else if (buttons & StandardButton.Apply) {
_acceptButton.text = qsTr("Apply")
_acceptButton.visible = true
} else if (buttons & StandardButton.Open) {
_acceptButton.text = qsTr("Open")
_acceptButton.visible = true
} else if (buttons & StandardButton.SaveAll) {
_acceptButton.text = qsTr("Save All")
_acceptButton.visible = true
} else if (buttons & StandardButton.Yes) {
_acceptButton.text = qsTr("Yes")
_acceptButton.visible = true
} else if (buttons & StandardButton.YesToAll) {
_acceptButton.text = qsTr("Yes to All")
_acceptButton.visible = true
} else if (buttons & StandardButton.Retry) {
_acceptButton.text = qsTr("Retry")
_acceptButton.visible = true
} else if (buttons & StandardButton.Reset) {
_acceptButton.text = qsTr("Reset")
_acceptButton.visible = true
} else if (buttons & StandardButton.RestoreToDefaults) {
_acceptButton.text = qsTr("Restore to Defaults")
_acceptButton.visible = true
} else if (buttons & StandardButton.Ignore) {
_acceptButton.text = qsTr("Ignore")
_acceptButton.visible = true
}
// Reject role buttons
if (buttons & StandardButton.Cancel) {
_rejectButton.text = qsTr("Cancel")
_rejectButton.visible = true
} else if (buttons & StandardButton.Close) {
_rejectButton.text = qsTr("Close")
_rejectButton.visible = true
} else if (buttons & StandardButton.No) {
_rejectButton.text = qsTr("No")
_rejectButton.visible = true
} else if (buttons & StandardButton.NoToAll) {
_rejectButton.text = qsTr("No to All")
_rejectButton.visible = true
} else if (buttons & StandardButton.Abort) {
_rejectButton.text = qsTr("Abort")
_rejectButton.visible = true
}
}
Connections {
target: _dialogComponentLoader.item
onHideDialog: {
viewPanel.enabled = true
_root.destroy()
}
}
QGCPalette { id: _qgcPal; colorGroupEnabled: true }
QGCLabel { id: _textMeasure; text: "X"; visible: false }
Rectangle {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: _dialogPanel.left
opacity: 0.5
color: _qgcPal.window
z: 5000
}
// This is the main dialog panel which is anchored to the right edge
Rectangle {
id: _dialogPanel
height: ScreenTools.availableHeight ? ScreenTools.availableHeight : parent.height
anchors.bottom: parent.bottom
anchors.right: parent.right
color: _qgcPal.windowShadeDark
Rectangle {
id: _header
width: parent.width
height: _acceptButton.visible ? _acceptButton.height : _rejectButton.height
color: _qgcPal.windowShade
function _hidePanel() {
_fullPanel.visible = false
}
QGCLabel {
id: titleLabel
x: _defaultTextWidth
height: parent.height
verticalAlignment: Text.AlignVCenter
}
QGCButton {
id: _rejectButton
anchors.right: _acceptButton.visible ? _acceptButton.left : parent.right
anchors.bottom: parent.bottom
onClicked: {
enabled = false // prevent multiple clicks
_dialogComponentLoader.item.reject()
if (!viewPanel.enabled) {
// Dialog was not closed, re-enable button
enabled = true
}
}
}
QGCButton {
id: _acceptButton
anchors.right: parent.right
primary: true
onClicked: {
enabled = false // prevent multiple clicks
_dialogComponentLoader.item.accept()
if (!viewPanel.enabled) {
// Dialog was not closed, re-enable button
enabled = true
}
}
}
}
Item {
id: _spacer
width: 10
height: 10
anchors.top: _header.bottom
}
Loader {
id: _dialogComponentLoader
anchors.margins: 5
anchors.left: parent.left
anchors.right: parent.right
anchors.top: _spacer.bottom
anchors.bottom: parent.bottom
sourceComponent: _dialogComponent
property bool acceptAllowed: _acceptButton.visible
property bool rejectAllowed: _rejectButton.visible
}
} // Rectangle - Dialog panel
}
......@@ -57,6 +57,7 @@ QGCTextField 1.0 QGCTextField.qml
QGCToolBarButton 1.0 QGCToolBarButton.qml
QGCView 1.0 QGCView.qml
QGCViewDialog 1.0 QGCViewDialog.qml
QGCViewDialogContainer 1.0 QGCViewDialogContainer.qml
QGCViewMessage 1.0 QGCViewMessage.qml
QGCViewPanel 1.0 QGCViewPanel.qml
RoundButton 1.0 RoundButton.qml
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment