diff --git a/src/QmlControls/QGCPopupDialog.qml b/src/QmlControls/QGCPopupDialog.qml index fa7f8cb01a74da890194b441ab4e02437b14b14e..3d604a1c4b38a8052ba95d9fc8c24956d1ef1bf5 100644 --- a/src/QmlControls/QGCPopupDialog.qml +++ b/src/QmlControls/QGCPopupDialog.qml @@ -7,9 +7,13 @@ * ****************************************************************************/ -import QtQuick 2.12 +import QtQuick 2.12 +import QtQuick.Dialogs 1.3 Item { + property string title + property var buttons: StandardButton.Ok + width: childrenRect.width height: childrenRect.height diff --git a/src/QmlControls/QGCPopupDialogContainer.qml b/src/QmlControls/QGCPopupDialogContainer.qml index 754973efee0804825117f62614f317c5dbb2a82d..72ae0143ea6acb762fdc76563acb22161630f581 100644 --- a/src/QmlControls/QGCPopupDialogContainer.qml +++ b/src/QmlControls/QGCPopupDialogContainer.qml @@ -18,7 +18,10 @@ import QGroundControl.Palette 1.0 import QGroundControl.ScreenTools 1.0 Popup { - id: root + property var dialogComponent + property var dialogProperties + + id: popupRoot anchors.centerIn: parent width: mainFlickable.width + (padding * 2) height: mainFlickable.height + (padding * 2) @@ -26,68 +29,66 @@ Popup { modal: true focus: true - property var pal: QGroundControl.globalPalette - property real frameSize: ScreenTools.defaultFontPixelWidth + property var _pal: QGroundControl.globalPalette + property real _frameSize: ScreenTools.defaultFontPixelWidth + property string _dialogTitle + property real _contentMargin: ScreenTools.defaultFontPixelHeight / 2 + property real _popupDoubleInset: ScreenTools.defaultFontPixelHeight * 2 + property real _maxAvailableWidth: parent.width - _popupDoubleInset + property real _maxAvailableHeight: parent.height - _popupDoubleInset background: Item { - Rectangle { anchors.left: parent.left anchors.top: parent.top - width: frameSize - height: frameSize - color: pal.text + width: _frameSize + height: _frameSize + color: _pal.text visible: enabled } Rectangle { anchors.right: parent.right anchors.top: parent.top - width: frameSize - height: frameSize - color: pal.text + width: _frameSize + height: _frameSize + color: _pal.text visible: enabled } Rectangle { anchors.left: parent.left anchors.bottom: parent.bottom - width: frameSize - height: frameSize - color: pal.text + width: _frameSize + height: _frameSize + color: _pal.text visible: enabled } Rectangle { anchors.right: parent.right anchors.bottom: parent.bottom - width: frameSize - height: frameSize - color: pal.text + width: _frameSize + height: _frameSize + color: _pal.text visible: enabled } Rectangle { - anchors.margins: root.padding + anchors.margins: popupRoot.padding anchors.fill: parent - color: pal.window + color: _pal.window } } - property string title - property var buttons - property var dialogComponent - - property real _contentMargin: ScreenTools.defaultFontPixelHeight / 2 - property real _popupDoubleInset: ScreenTools.defaultFontPixelHeight * 2 - property real _maxAvailableWidth: parent.width - _popupDoubleInset - property real _maxAvailableHeight: parent.height - _popupDoubleInset - - Component.onCompleted: setupDialogButtons() + Component.onCompleted: { + _dialogTitle = dialogComponentLoader.item.title + setupDialogButtons(dialogComponentLoader.item.buttons) + } QGCPalette { id: qgcPal; colorGroupEnabled: parent.enabled } - function setupDialogButtons() { + function setupDialogButtons(buttons) { acceptButton.visible = false rejectButton.visible = false // Accept role buttons @@ -210,8 +211,10 @@ Popup { x: _contentMargin sourceComponent: dialogComponent focus: true - property bool acceptAllowed: acceptButton.visible - property bool rejectAllowed: rejectButton.visible + + property var dialogProperties: popupRoot.dialogProperties + property bool acceptAllowed: acceptButton.visible + property bool rejectAllowed: rejectButton.visible } } } diff --git a/src/ui/MainRootWindow.qml b/src/ui/MainRootWindow.qml index 90382f08d903ddbaf137b857389c6ea51fc5e271..96c78f323aa3ebb44622d60ac787fb6a9522767b 100644 --- a/src/ui/MainRootWindow.qml +++ b/src/ui/MainRootWindow.qml @@ -229,13 +229,13 @@ ApplicationWindow { } } - function showPopupDialog(component, title, buttons) { - var popup = popupDialogContainterComponent.createObject(mainWindow, { "title": title, "buttons": buttons, "dialogComponent": component}) - popup.open() + function showPopupDialog(component, properties) { + var dialog = popupDialogContainerComponent.createObject(mainWindow, { dialogComponent: component, dialogProperties: properties }) + dialog.open() } Component { - id: popupDialogContainterComponent + id: popupDialogContainerComponent QGCPopupDialogContainer { } }