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 { }
     }