import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.3 import "." Popup { id: myDialogPopup property bool dismissible: true implicitHeight: parent.height implicitWidth: parent.width property string dialogTitle: "" property string dialogText: "" property int dialogWidth: 900 property int dialogHeight: 300 property Item dialogContentItem: MyText { fontSize: 16 text: dialogText horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter Layout.fillWidth: true wrap: true } property bool okClicked: false closePolicy: myDialogPopup.dismissible ? Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent : Popup.NoAutoClose background: Rectangle { color: "black" opacity: 0.8 } contentItem: Item { Rectangle { implicitWidth: dialogWidth implicitHeight: dialogHeight anchors.centerIn: parent radius: 24 color: Style.backgroundColor border.color: Style.fontColorDimmed border.width: 2 ColumnLayout { anchors.fill: parent anchors.margins: 12 MyText { Layout.leftMargin: 16 Layout.rightMargin: 16 text: dialogTitle } Rectangle { color: Style.fontColorDimmed height: 1 Layout.fillWidth: true } Item { Layout.fillHeight: true Layout.fillWidth: true } ColumnLayout { id: dialogContent } Item { Layout.fillHeight: true Layout.fillWidth: true } RowLayout { visible: myDialogPopup.dismissible Layout.fillWidth: true Layout.leftMargin: 24 Layout.rightMargin: 24 Layout.bottomMargin: 12 Item { Layout.fillWidth: true } MyPushButton { implicitWidth: 200 text: "Ok" onClicked: { okClicked = true myDialogPopup.close() } } Item { Layout.fillWidth: true } } } } } Component.onCompleted: { dialogContentItem.parent = dialogContent } }