Revision control
++ // Copyright (C) 2017 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
++
++ import QtQuick
++
++ //![0]
++ Rectangle {
++ id: container
++ //![0]
++
++ //![1]
++ property string inputText: textInput.text
++ signal closed
++
++ function show(text) {
++ dialogText.text = text;
++ container.opacity = 1;
++ textInput.opacity = 0;
++ }
++
++ function showWithInput(text) {
++ show(text);
++ textInput.opacity = 1;
++ textInput.focus = true;
++ textInput.text = ""
++ }
++
++ function hide() {
++ textInput.focus = false;
++ container.opacity = 0;
++ container.closed();
++ }
++ //![1]
++
++ width: dialogText.width + textInput.width + 20
++ height: dialogText.height + 20
++ opacity: 0
++ visible: opacity > 0
++
++ Text {
++ id: dialogText
++ anchors { verticalCenter: parent.verticalCenter; left: parent.left; leftMargin: 10 }
++ text: ""
++ }
++
++ //![2]
++ TextInput {
++ id: textInput
++ anchors { verticalCenter: parent.verticalCenter; left: dialogText.right }
++ width: 80
++ text: ""
++
++ onAccepted: container.hide() // close dialog when Enter is pressed
++ }
++ //![2]
++
++ MouseArea {
++ anchors.fill: parent
++
++ onClicked: {
++ if (textInput.text == "" && textInput.opacity > 0)
++ Qt.inputMethod.show();
++ else
++ hide();
++ }
++ }
++
++ //![3]
++ }
++ //![3]