From 5db04d7ed4d126578c7490b3ce398492345bd2ba Mon Sep 17 00:00:00 2001 From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com> Date: Thu, 3 Jun 2021 15:33:24 -0400 Subject: [PATCH] misc: inconsistency adjustment for readonly lineEdit 1. Make version number in AboutPopUp selectable 2. Remove "Copy"/"Paste" options in the context menu when the lineEdit is readonly 3. Make texts in UserProfile selectable Change-Id: I53b7566841d84cb8ad27298f995f99a2de6384f0 --- src/commoncomponents/LineEditContextMenu.qml | 7 ++- src/commoncomponents/MaterialLineEdit.qml | 1 + src/constant/JamiStrings.qml | 1 + src/mainview/components/AboutPopUp.qml | 22 ++++---- src/mainview/components/UserProfile.qml | 50 +++++++++++++++---- .../components/JamiUserIdentity.qml | 16 ++---- 6 files changed, 61 insertions(+), 36 deletions(-) diff --git a/src/commoncomponents/LineEditContextMenu.qml b/src/commoncomponents/LineEditContextMenu.qml index 1a1f6ff74..c3a90bad7 100644 --- a/src/commoncomponents/LineEditContextMenu.qml +++ b/src/commoncomponents/LineEditContextMenu.qml @@ -33,6 +33,7 @@ ContextMenuAutoLoader { property var lineEditObj property var selectionStart property var selectionEnd + property bool selectOnly: false property list<GeneralMenuItem> menuItems: [ GeneralMenuItem { @@ -47,7 +48,7 @@ ContextMenuAutoLoader { GeneralMenuItem { id: cut - canTrigger: lineEditObj.selectedText.length + canTrigger: lineEditObj.selectedText.length && !selectOnly itemName: JamiStrings.cut onClicked: { @@ -57,6 +58,7 @@ ContextMenuAutoLoader { GeneralMenuItem { id: paste + canTrigger: !selectOnly itemName: JamiStrings.paste onClicked: { lineEditObj.paste() @@ -65,6 +67,9 @@ ContextMenuAutoLoader { ] function openMenuAt(mouseEvent) { + if (lineEditObj.selectedText.length === 0 && selectOnly) + return + x = mouseEvent.x y = mouseEvent.y diff --git a/src/commoncomponents/MaterialLineEdit.qml b/src/commoncomponents/MaterialLineEdit.qml index 2b482d345..45adb3047 100644 --- a/src/commoncomponents/MaterialLineEdit.qml +++ b/src/commoncomponents/MaterialLineEdit.qml @@ -85,6 +85,7 @@ TextField { id: lineEditContextMenu lineEditObj: root + selectOnly: readOnly } Image { diff --git a/src/constant/JamiStrings.qml b/src/constant/JamiStrings.qml index 31a3ff71d..da316f3b5 100644 --- a/src/constant/JamiStrings.qml +++ b/src/constant/JamiStrings.qml @@ -414,6 +414,7 @@ Item { property string saveProfile: qsTr("Save profile") property string enterRVName: qsTr("Enter the rendezvous point's name") property string generatingRV: qsTr("Creating rendezvous point…") + property string information: qsTr("Information") // RevokeDevicePasswordDialog property string confirmRemovalRequest: qsTr("Enter the account password to confirm the removal of this device") diff --git a/src/mainview/components/AboutPopUp.qml b/src/mainview/components/AboutPopUp.qml index 0919791f4..57e60590b 100644 --- a/src/mainview/components/AboutPopUp.qml +++ b/src/mainview/components/AboutPopUp.qml @@ -69,29 +69,28 @@ ModalPopup { smooth: true antialiasing: true - source: JamiTheme.darkTheme? "qrc:/images/logo-jami-standard-coul-white.svg" : "qrc:/images/logo-jami-standard-coul.svg" + source: JamiTheme.darkTheme? + "qrc:/images/logo-jami-standard-coul-white.svg" : + "qrc:/images/logo-jami-standard-coul.svg" } - Label { + MaterialLineEdit { id: jamiVersionText Layout.alignment: Qt.AlignCenter Layout.preferredWidth: contentRect.width - Layout.preferredHeight: textMetricsjamiVersionText.boundingRect.height font.pointSize: JamiTheme.textFontSize - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter + padding: 0 + readOnly: true + selectByMouse: true - text: textMetricsjamiVersionText.text + text: JamiStrings.version + ": " + UtilsAdapter.getVersionStr() color: JamiTheme.textColor - TextMetrics { - id: textMetricsjamiVersionText - font: jamiVersionText.font - text: JamiStrings.version + ": " + UtilsAdapter.getVersionStr() - } + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter } Label { @@ -133,7 +132,6 @@ ModalPopup { horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter - // TextMetrics does not work for multi-line. text: JamiStrings.declaration } diff --git a/src/mainview/components/UserProfile.qml b/src/mainview/components/UserProfile.qml index 0e0f6b874..26712f53f 100644 --- a/src/mainview/components/UserProfile.qml +++ b/src/mainview/components/UserProfile.qml @@ -71,21 +71,31 @@ BaseDialog { } // Visible when user alias is not empty or equals to id. - Text { + MaterialLineEdit { id: contactAlias Layout.alignment: Qt.AlignLeft font.pointSize: JamiTheme.titleFontSize - text: textMetricsContactAliasText.elidedText + font.kerning: true color: JamiTheme.textColor visible: aliasText ? (aliasText === idText ? false : true) : false + padding: 0 + readOnly: true + selectByMouse: true + + wrapMode: Text.NoWrap + text: textMetricsContactAliasText.elidedText + + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + TextMetrics { id: textMetricsContactAliasText font: contactAlias.font text: aliasText - elideWidth: userProfileContentRect.width-200 + elideWidth: userProfileContentRect.width - 200 elide: Qt.ElideMiddle } } @@ -98,7 +108,7 @@ BaseDialog { Text { Layout.alignment: Qt.AlignRight font.pointSize: JamiTheme.menuFontSize - text: qsTr("Information") + text: JamiStrings.information color: JamiTheme.textColor } @@ -113,16 +123,26 @@ BaseDialog { } // Visible when user name is not empty or equals to alias. - Text { + MaterialLineEdit { id: contactDisplayName Layout.alignment: Qt.AlignLeft font.pointSize: JamiTheme.textFontSize - text: textMetricsContactDisplayNameText.elidedText + font.kerning: true color: JamiTheme.textColor visible: registeredNameText ? (registeredNameText === idText ? false : true) : false + padding: 0 + readOnly: true + selectByMouse: true + + wrapMode: Text.NoWrap + text: textMetricsContactDisplayNameText.elidedText + + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + TextMetrics { id: textMetricsContactDisplayNameText font: contactDisplayName.font @@ -139,22 +159,30 @@ BaseDialog { color: JamiTheme.faddedFontColor } - TextEdit { + MaterialLineEdit { id: contactId Layout.alignment: Qt.AlignLeft - selectByMouse: true - readOnly: true font.pointSize: JamiTheme.textFontSize - text: textMetricsContactIdText.elidedText + font.kerning: true color: JamiTheme.textColor + padding: 0 + readOnly: true + selectByMouse: true + + wrapMode: Text.NoWrap + text: textMetricsContactIdText.elidedText + + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + TextMetrics { id: textMetricsContactIdText font: contactId.font text: idText - elideWidth: userProfileContentRect.width-200 + elideWidth: userProfileContentRect.width - 200 elide: Qt.ElideMiddle } } diff --git a/src/settingsview/components/JamiUserIdentity.qml b/src/settingsview/components/JamiUserIdentity.qml index b4ec1dd9d..dfecc5ef5 100644 --- a/src/settingsview/components/JamiUserIdentity.qml +++ b/src/settingsview/components/JamiUserIdentity.qml @@ -77,14 +77,13 @@ ColumnLayout { verticalAlignment: Text.AlignVCenter } - TextField { + MaterialLineEdit { id: currentRingID - property var backgroundColor: "transparent" - property var borderColor: "transparent" - anchors.verticalCenter: parent.verticalCenter + width: parent.width - idLabel.width + - JamiTheme.preferredMarginSize height: JamiTheme.preferredFieldHeight font.pointSize: JamiTheme.textFontSize @@ -95,20 +94,13 @@ ColumnLayout { readOnly: true selectByMouse: true + wrapMode: Text.NoWrap text: currentRingIDText.elidedText color: JamiTheme.textColor horizontalAlignment: Text.AlignRight verticalAlignment: Text.AlignVCenter - background: Rectangle { - anchors.fill: parent - radius: 0 - border.color: currentRingID.borderColor - border.width: 0 - color: currentRingID.backgroundColor - } - TextMetrics { id: currentRingIDText -- GitLab