summaryrefslogtreecommitdiff
path: root/Fields/Text.qml
diff options
context:
space:
mode:
Diffstat (limited to 'Fields/Text.qml')
-rw-r--r--Fields/Text.qml50
1 files changed, 50 insertions, 0 deletions
diff --git a/Fields/Text.qml b/Fields/Text.qml
new file mode 100644
index 0000000..49d7ad2
--- /dev/null
+++ b/Fields/Text.qml
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: Unlicense
+
+import QtQuick 2.12
+import QtQuick.Controls 2.13
+
+Label {
+ id: control
+
+ property var definition
+ property alias value: control.text
+
+ Keys.onPressed: {
+ if (event.text === definition.key) {
+ popup.open()
+ event.accepted = true
+ }
+ }
+
+ function set(val) { value = val || '' }
+
+ elide: Text.ElideRight
+
+ Popup {
+ id: popup
+
+ width: control.width
+ height: control.height
+ padding: 0
+
+ onOpened: {
+ input.text = value
+ input.forceActiveFocus()
+ }
+
+ TextInput {
+ id: input
+
+ clip: true
+ padding: 2
+ topPadding: 0
+ bottomPadding: 0
+ width: parent.width
+
+ onAccepted: {
+ value = input.text.trim()
+ popup.close()
+ }
+ }
+ }
+}