From 1a373d510aa67099c99a93e4edb0442f9511219c Mon Sep 17 00:00:00 2001 From: deepin-ci-robot Date: Thu, 28 Aug 2025 02:49:07 +0000 Subject: [PATCH] sync: from linuxdeepin/dtkdeclarative Synchronize source files from linuxdeepin/dtkdeclarative. Source-pull-request: https://github.com/linuxdeepin/dtkdeclarative/pull/522 --- qt6/src/qml/TextField.qml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/qt6/src/qml/TextField.qml b/qt6/src/qml/TextField.qml index ac72129a..1d83fcfd 100644 --- a/qt6/src/qml/TextField.qml +++ b/qt6/src/qml/TextField.qml @@ -12,6 +12,8 @@ T.TextField { property D.Palette placeholderTextPalette: DS.Style.edit.placeholderText placeholderTextColor: D.ColorSelector.placeholderTextPalette property alias backgroundColor: panel.backgroundColor + property bool canCopy: control.selectedText.length && control.echoMode === TextInput.Normal + property bool canCut: !control.readonly && control.selectedText.length && control.echoMode === TextInput.Normal // alert control properties property alias alertText: panel.alertText property alias alertDuration: panel.alertDuration @@ -77,14 +79,14 @@ T.TextField { { text: qsTr("Copy") onTriggered: control.copy() - enabled: control.selectedText.length && control.echoMode === TextInput.Normal + enabled: canCopy } MenuItem { text: qsTr("Cut") onTriggered: control.cut() - enabled: !control.readonly && control.selectedText.length && control.echoMode === TextInput.Normal + enabled: canCut } MenuItem @@ -116,4 +118,18 @@ T.TextField { } } + Keys.enabled: !canCopy || !canCut + Keys.onPressed: function(event) { + if (event.matches(StandardKey.Copy)) { + if (!canCopy) { + event.accepted = true + return + } + } else if (event.matches(StandardKey.Cut)) { + if (!canCut) { + event.accepted = true + return + } + } + } }