From e932c37528ca431d34a1e76d18c570033b226f13 Mon Sep 17 00:00:00 2001
From: Fadi SHEHADEH <fadi.shehadeh@savoirfairelinux.com>
Date: Fri, 17 Feb 2023 13:33:45 -0500
Subject: [PATCH] settingsview: updated lineEdits

- replaced line edits with ModalTextEdit components

Change-Id: I0e386b443d6d46dcc412e36a6956add595337b58
---
 src/app/commoncomponents/EditedPopup.qml      |  2 +-
 src/app/commoncomponents/PasswordDialog.qml   | 36 ++++++++-----------
 src/app/commoncomponents/ResponsiveImage.qml  |  2 --
 .../mainview/components/JamiIdentifier.qml    |  3 ++
 .../components/AccountProfile.qml             |  2 ++
 .../AdvancedConnectivitySettings.qml          | 20 +++++------
 .../AdvancedJamiSecuritySettings.qml          |  4 +--
 .../components/AdvancedNameServerSettings.qml |  4 +--
 .../components/AdvancedOpenDHTSettings.qml    |  8 ++---
 .../AdvancedPublicAddressSettings.qml         |  4 +--
 .../AdvancedSIPSecuritySettings.qml           |  8 ++---
 .../components/AdvancedVoiceMailSettings.qml  |  4 +--
 .../components/JamiUserIdentity.qml           |  1 +
 .../components/LinkDeviceDialog.qml           | 11 ++----
 .../components/RevokeDevicePasswordDialog.qml |  8 ++---
 .../components/SIPUserIdentity.qml            | 17 +++++----
 .../components/SettingsMaterialLineEdit.qml   | 31 +++++++---------
 17 files changed, 73 insertions(+), 92 deletions(-)

diff --git a/src/app/commoncomponents/EditedPopup.qml b/src/app/commoncomponents/EditedPopup.qml
index a6fde017a..9b5c1469b 100644
--- a/src/app/commoncomponents/EditedPopup.qml
+++ b/src/app/commoncomponents/EditedPopup.qml
@@ -95,4 +95,4 @@ BaseModalDialog {
             onClicked: close()
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/app/commoncomponents/PasswordDialog.qml b/src/app/commoncomponents/PasswordDialog.qml
index b0451b584..2526b829d 100644
--- a/src/app/commoncomponents/PasswordDialog.qml
+++ b/src/app/commoncomponents/PasswordDialog.qml
@@ -85,15 +85,15 @@ BaseModalDialog {
         function validatePassword() {
             switch (purpose) {
             case PasswordDialog.ExportAccount:
-                btnConfirm.enabled = currentPasswordEdit.length > 0
+                btnConfirm.enabled = currentPasswordEdit.dynamicText.length > 0
                 break
             case PasswordDialog.SetPassword:
                 btnConfirm.enabled = passwordEdit.length > 0 &&
-                        passwordEdit.text === confirmPasswordEdit.text
+                        passwordEdit.dynamicText === confirmPasswordEdit.dynamicText
                 break
             default:
-                btnConfirm.enabled = currentPasswordEdit.length > 0 &&
-                        passwordEdit.text === confirmPasswordEdit.text
+                btnConfirm.enabled = currentPasswordEdit.dynamicText.length > 0 &&
+                        passwordEdit.dynamicText === confirmPasswordEdit.dynamicText
             }
         }
 
@@ -103,7 +103,7 @@ BaseModalDialog {
                 success = AccountAdapter.exportToFile(
                             LRCInstance.currentAccountId,
                             path,
-                            currentPasswordEdit.text)
+                            currentPasswordEdit.dynamicText)
             }
             reportStatus(success)
 
@@ -113,8 +113,8 @@ BaseModalDialog {
         function savePasswordQML() {
             var success = AccountAdapter.savePassword(
                         LRCInstance.currentAccountId,
-                        currentPasswordEdit.text,
-                        passwordEdit.text)
+                        currentPasswordEdit.dynamicText,
+                        passwordEdit.dynamicText)
             reportStatus(success)
             close()
         }
@@ -136,7 +136,7 @@ BaseModalDialog {
             }
         }
 
-        MaterialLineEdit {
+        PasswordTextEdit {
             id: currentPasswordEdit
 
             Layout.alignment: Qt.AlignHCenter
@@ -145,15 +145,13 @@ BaseModalDialog {
 
             visible: purpose === PasswordDialog.ChangePassword ||
                      purpose === PasswordDialog.ExportAccount
-            echoMode: TextInput.Password
             placeholderText: JamiStrings.enterCurrentPassword
 
-            onVisibleChanged: clear()
+            onDynamicTextChanged: popupContentColumnLayout.validatePassword()
 
-            onTextChanged: popupContentColumnLayout.validatePassword()
         }
 
-        MaterialLineEdit {
+        PasswordTextEdit {
             id: passwordEdit
 
             Layout.alignment: Qt.AlignHCenter
@@ -162,15 +160,13 @@ BaseModalDialog {
 
             visible: purpose === PasswordDialog.ChangePassword ||
                      purpose === PasswordDialog.SetPassword
-            echoMode: TextInput.Password
-            placeholderText: JamiStrings.enterNewPassword
 
-            onVisibleChanged: clear()
+            placeholderText: JamiStrings.enterNewPassword
 
-            onTextChanged: popupContentColumnLayout.validatePassword()
+            onDynamicTextChanged: popupContentColumnLayout.validatePassword()
         }
 
-        MaterialLineEdit {
+        PasswordTextEdit {
             id: confirmPasswordEdit
 
             Layout.alignment: Qt.AlignHCenter
@@ -179,12 +175,10 @@ BaseModalDialog {
 
             visible: purpose === PasswordDialog.ChangePassword ||
                      purpose === PasswordDialog.SetPassword
-            echoMode: TextInput.Password
-            placeholderText: JamiStrings.confirmNewPassword
 
-            onVisibleChanged: clear()
+            placeholderText: JamiStrings.confirmNewPassword
 
-            onTextChanged: popupContentColumnLayout.validatePassword()
+            onDynamicTextChanged: popupContentColumnLayout.validatePassword()
         }
 
         RowLayout {
diff --git a/src/app/commoncomponents/ResponsiveImage.qml b/src/app/commoncomponents/ResponsiveImage.qml
index 212207947..d2a1f2c55 100644
--- a/src/app/commoncomponents/ResponsiveImage.qml
+++ b/src/app/commoncomponents/ResponsiveImage.qml
@@ -89,6 +89,4 @@ Item {
 
         }
     }
-
-
 }
diff --git a/src/app/mainview/components/JamiIdentifier.qml b/src/app/mainview/components/JamiIdentifier.qml
index c1f329072..c622d6962 100644
--- a/src/app/mainview/components/JamiIdentifier.qml
+++ b/src/app/mainview/components/JamiIdentifier.qml
@@ -149,6 +149,9 @@ Item {
             Layout.leftMargin: JamiTheme.preferredMarginSize
             Layout.rightMargin: JamiTheme.preferredMarginSize
             fontPointSize: JamiTheme.textFontSize + 1
+            staticText: hasRegisteredName ? registeredName : infohash
+            editMode: false
+            isPersistent: false
 
             onAccepted: {
                 if (dynamicText === '') {
diff --git a/src/app/settingsview/components/AccountProfile.qml b/src/app/settingsview/components/AccountProfile.qml
index d96b6c771..5ad133f26 100644
--- a/src/app/settingsview/components/AccountProfile.qml
+++ b/src/app/settingsview/components/AccountProfile.qml
@@ -26,6 +26,8 @@ import net.jami.Constants 1.1
 import "../../commoncomponents"
 
 ColumnLayout {
+
+    spacing: 8
     id: root
 
     Connections {
diff --git a/src/app/settingsview/components/AdvancedConnectivitySettings.qml b/src/app/settingsview/components/AdvancedConnectivitySettings.qml
index c957d8400..cdaba5fcd 100644
--- a/src/app/settingsview/components/AdvancedConnectivitySettings.qml
+++ b/src/app/settingsview/components/AdvancedConnectivitySettings.qml
@@ -122,12 +122,12 @@ ColumnLayout {
 
             enabled: checkBoxTurnEnable.checked
 
-            textField: CurrentAccount.server_TURN
+            staticText: CurrentAccount.server_TURN
 
             itemWidth: root.itemWidth
             titleField: JamiStrings.turnAdress
 
-            onEditFinished: CurrentAccount.server_TURN = textField
+            onEditFinished: CurrentAccount.server_TURN = dynamicText
         }
 
         SettingsMaterialLineEdit {
@@ -138,12 +138,12 @@ ColumnLayout {
 
             enabled: checkBoxTurnEnable.checked
 
-            textField: CurrentAccount.username_TURN
+            staticText: CurrentAccount.username_TURN
 
             itemWidth: root.itemWidth
             titleField: JamiStrings.turnUsername
 
-            onEditFinished: CurrentAccount.username_TURN = textField
+            onEditFinished: CurrentAccount.username_TURN = dynamicText
         }
 
         SettingsMaterialLineEdit {
@@ -154,12 +154,12 @@ ColumnLayout {
 
             enabled: checkBoxTurnEnable.checked
 
-            textField: CurrentAccount.password_TURN
+            staticText: CurrentAccount.password_TURN
 
             itemWidth: root.itemWidth
             titleField: JamiStrings.turnPassword
 
-            onEditFinished: CurrentAccount.password_TURN = textField
+            onEditFinished: CurrentAccount.password_TURN = dynamicText
         }
 
         SettingsMaterialLineEdit {
@@ -170,12 +170,12 @@ ColumnLayout {
 
             enabled: checkBoxTurnEnable.checked
 
-            textField: CurrentAccount.realm_TURN
+            staticText: CurrentAccount.realm_TURN
 
             itemWidth: root.itemWidth
             titleField: JamiStrings.turnRealm
 
-            onEditFinished: CurrentAccount.realm_TURN = textField
+            onEditFinished: CurrentAccount.realm_TURN = dynamicText
         }
 
         ToggleSwitch {
@@ -201,12 +201,12 @@ ColumnLayout {
             enabled: checkBoxSTUNEnable.checked
             visible: isSIP
 
-            textField: CurrentAccount.server_STUN
+            staticText: CurrentAccount.server_STUN
 
             itemWidth: root.itemWidth
             titleField: JamiStrings.stunAdress
 
-            onEditFinished: CurrentAccount.server_STUN = textField
+            onEditFinished: CurrentAccount.server_STUN = dynamicText
         }
     }
 }
diff --git a/src/app/settingsview/components/AdvancedJamiSecuritySettings.qml b/src/app/settingsview/components/AdvancedJamiSecuritySettings.qml
index e3046345a..8a417c8b2 100644
--- a/src/app/settingsview/components/AdvancedJamiSecuritySettings.qml
+++ b/src/app/settingsview/components/AdvancedJamiSecuritySettings.qml
@@ -131,9 +131,9 @@ ColumnLayout {
             itemWidth: root.itemWidth
             titleField: JamiStrings.privateKeyPassword
 
-            textField: CurrentAccount.password_TLS
+            staticText: CurrentAccount.password_TLS
 
-            onEditFinished: CurrentAccount.password_TLS = textField
+            onEditFinished: CurrentAccount.password_TLS = dynamicText
         }
     }
 }
diff --git a/src/app/settingsview/components/AdvancedNameServerSettings.qml b/src/app/settingsview/components/AdvancedNameServerSettings.qml
index 8d0fba558..b0a373697 100644
--- a/src/app/settingsview/components/AdvancedNameServerSettings.qml
+++ b/src/app/settingsview/components/AdvancedNameServerSettings.qml
@@ -55,8 +55,8 @@ ColumnLayout {
         itemWidth: root.itemWidth
         titleField: JamiStrings.address
 
-        textField: CurrentAccount.uri_RingNS
+        staticText: CurrentAccount.uri_RingNS
 
-        onEditFinished: CurrentAccount.uri_RingNS = textField
+        onEditFinished: CurrentAccount.uri_RingNS = dynamicText
     }
 }
diff --git a/src/app/settingsview/components/AdvancedOpenDHTSettings.qml b/src/app/settingsview/components/AdvancedOpenDHTSettings.qml
index fdc171596..c59562d4c 100644
--- a/src/app/settingsview/components/AdvancedOpenDHTSettings.qml
+++ b/src/app/settingsview/components/AdvancedOpenDHTSettings.qml
@@ -82,12 +82,12 @@ ColumnLayout {
 
             enabled: checkBoxEnableProxy.checked
 
-            textField: CurrentAccount.proxyServer
+            staticText: CurrentAccount.proxyServer
 
             itemWidth: root.itemWidth
             titleField: JamiStrings.proxyAddress
 
-            onEditFinished: CurrentAccount.proxyServer = textField
+            onEditFinished: CurrentAccount.proxyServer = dynamicText
         }
 
         SettingsMaterialLineEdit {
@@ -96,12 +96,12 @@ ColumnLayout {
             Layout.fillWidth: true
             Layout.preferredHeight: JamiTheme.preferredFieldHeight
 
-            textField: CurrentAccount.hostname
+            staticText: CurrentAccount.hostname
 
             itemWidth: root.itemWidth
             titleField: JamiStrings.bootstrap
 
-            onEditFinished: CurrentAccount.hostname = textField
+            onEditFinished: CurrentAccount.hostname = dynamicText
         }
     }
 }
diff --git a/src/app/settingsview/components/AdvancedPublicAddressSettings.qml b/src/app/settingsview/components/AdvancedPublicAddressSettings.qml
index dcee4745a..54024707e 100644
--- a/src/app/settingsview/components/AdvancedPublicAddressSettings.qml
+++ b/src/app/settingsview/components/AdvancedPublicAddressSettings.qml
@@ -83,9 +83,9 @@ ColumnLayout {
             itemWidth: root.itemWidth
             titleField: JamiStrings.address
 
-            textField: CurrentAccount.publishedAddress
+            staticText: CurrentAccount.publishedAddress
 
-            onEditFinished: CurrentAccount.publishedAddress = textField
+            onEditFinished: CurrentAccount.publishedAddress = dynamicText
         }
 
         SettingSpinBox {
diff --git a/src/app/settingsview/components/AdvancedSIPSecuritySettings.qml b/src/app/settingsview/components/AdvancedSIPSecuritySettings.qml
index 906324753..b3ef0beb5 100644
--- a/src/app/settingsview/components/AdvancedSIPSecuritySettings.qml
+++ b/src/app/settingsview/components/AdvancedSIPSecuritySettings.qml
@@ -189,9 +189,9 @@ ColumnLayout {
             itemWidth: root.itemWidth
             titleField: JamiStrings.privateKeyPassword
 
-            textField: CurrentAccount.password_TLS
+            staticText: CurrentAccount.password_TLS
 
-            onEditFinished: CurrentAccount.password_TLS = textField
+            onEditFinished: CurrentAccount.password_TLS = dynamicText
         }
 
         ToggleSwitch {
@@ -270,9 +270,9 @@ ColumnLayout {
             itemWidth: root.itemWidth
             titleField: JamiStrings.tlsServerName
 
-            textField: CurrentAccount.serverName_TLS
+            staticText: CurrentAccount.serverName_TLS
 
-            onEditFinished: CurrentAccount.serverName_TLS = textField
+            onEditFinished: CurrentAccount.serverName_TLS = dynamicText
         }
 
         SettingSpinBox {
diff --git a/src/app/settingsview/components/AdvancedVoiceMailSettings.qml b/src/app/settingsview/components/AdvancedVoiceMailSettings.qml
index 7f171ea65..941398d96 100644
--- a/src/app/settingsview/components/AdvancedVoiceMailSettings.qml
+++ b/src/app/settingsview/components/AdvancedVoiceMailSettings.qml
@@ -50,8 +50,8 @@ ColumnLayout {
         itemWidth: root.itemWidth
         titleField: JamiStrings.voiceMailDialCode
 
-        textField: CurrentAccount.mailbox
+        staticText: CurrentAccount.mailbox
 
-        onEditFinished: CurrentAccount.mailbox = textField
+        onEditFinished: CurrentAccount.mailbox = dynamicText
     }
 }
diff --git a/src/app/settingsview/components/JamiUserIdentity.qml b/src/app/settingsview/components/JamiUserIdentity.qml
index a3acde950..fcdbfd6b4 100644
--- a/src/app/settingsview/components/JamiUserIdentity.qml
+++ b/src/app/settingsview/components/JamiUserIdentity.qml
@@ -127,6 +127,7 @@ ColumnLayout {
             text: CurrentAccount.registeredName
             readOnly: CurrentAccount.registeredName !== ""
             font.bold: CurrentAccount.registeredName !== ""
+
             loseFocusWhenEnterPressed: btnRegisterName.visible
 
             onEditingFinished: {
diff --git a/src/app/settingsview/components/LinkDeviceDialog.qml b/src/app/settingsview/components/LinkDeviceDialog.qml
index cae0ded44..aaf57ceee 100644
--- a/src/app/settingsview/components/LinkDeviceDialog.qml
+++ b/src/app/settingsview/components/LinkDeviceDialog.qml
@@ -100,7 +100,6 @@ BaseModalDialog {
         onVisibleChanged: {
             if (visible) {
                 infoLabel.text = JamiStrings.pinTimerInfos
-                passwordEdit.clear()
 
                 if(CurrentAccount.hasArchivePassword) {
                     stackedWidget.currentIndex = enterPasswordPage.pageIndex
@@ -133,21 +132,17 @@ BaseModalDialog {
                     verticalAlignment: Text.AlignVCenter
                 }
 
-                MaterialLineEdit {
+                PasswordTextEdit {
                     id: passwordEdit
 
                     Layout.alignment: Qt.AlignCenter
                     Layout.preferredWidth: JamiTheme.preferredFieldWidth
                     Layout.preferredHeight: 48
 
-                    echoMode: TextInput.Password
-                    horizontalAlignment: Text.AlignLeft
-                    verticalAlignment: Text.AlignVCenter
-
                     placeholderText: JamiStrings.enterCurrentPassword
 
-                    onTextChanged: {
-                        btnConfirm.enabled = text.length > 0
+                    onDynamicTextChanged: {
+                        btnConfirm.enabled = dynamicText.length > 0
                     }
 
                     onAccepted: btnConfirm.clicked()
diff --git a/src/app/settingsview/components/RevokeDevicePasswordDialog.qml b/src/app/settingsview/components/RevokeDevicePasswordDialog.qml
index c32f0742b..ad108cebe 100644
--- a/src/app/settingsview/components/RevokeDevicePasswordDialog.qml
+++ b/src/app/settingsview/components/RevokeDevicePasswordDialog.qml
@@ -58,21 +58,17 @@ BaseModalDialog {
             verticalAlignment: Text.AlignVCenter
         }
 
-        MaterialLineEdit {
+        PasswordTextEdit {
             id: passwordEdit
 
             Layout.alignment: Qt.AlignHCenter
             Layout.preferredWidth: JamiTheme.preferredFieldWidth
             Layout.preferredHeight: visible ? 48 : 0
 
-            echoMode: TextInput.Password
             placeholderText: JamiStrings.enterCurrentPassword
 
-            onVisibleChanged: passwordEdit.clear()
+            onDynamicTextChanged: btnRemove.enabled = dynamicText.length > 0
 
-            onTextChanged: {
-                btnRemove.enabled = text.length > 0
-            }
         }
 
         RowLayout {
diff --git a/src/app/settingsview/components/SIPUserIdentity.qml b/src/app/settingsview/components/SIPUserIdentity.qml
index 8109f776d..ef6a155b8 100644
--- a/src/app/settingsview/components/SIPUserIdentity.qml
+++ b/src/app/settingsview/components/SIPUserIdentity.qml
@@ -36,12 +36,12 @@ ColumnLayout {
         Layout.fillWidth: true
         Layout.preferredHeight: JamiTheme.preferredFieldHeight
 
-        textField: CurrentAccount.username
+        staticText: CurrentAccount.username
 
         titleField: JamiStrings.username
         itemWidth: root.itemWidth
 
-        onEditFinished: CurrentAccount.username = textField
+        onEditFinished: CurrentAccount.username = dynamicText
     }
 
     SettingsMaterialLineEdit {
@@ -50,12 +50,12 @@ ColumnLayout {
         Layout.fillWidth: true
         Layout.preferredHeight: JamiTheme.preferredFieldHeight
 
-        textField: CurrentAccount.hostname
+        staticText: CurrentAccount.hostname
 
         titleField: JamiStrings.server
         itemWidth: root.itemWidth
 
-        onEditFinished: CurrentAccount.hostname = textField
+        onEditFinished: CurrentAccount.hostname = dynamicText
     }
 
     SettingsMaterialLineEdit {
@@ -64,18 +64,18 @@ ColumnLayout {
         Layout.fillWidth: true
         Layout.preferredHeight: JamiTheme.preferredFieldHeight
 
-        textField: CurrentAccount.routeset
+        staticText: CurrentAccount.routeset
 
         titleField: JamiStrings.proxy
         itemWidth: root.itemWidth
 
-        onEditFinished: CurrentAccount.routeset = textField
+        onEditFinished: CurrentAccount.routeset = dynamicText
     }
 
     SettingsMaterialLineEdit {
         id: passSIPlineEdit
 
-        textField: CurrentAccount.password
+        staticText: CurrentAccount.password
 
         Layout.fillWidth: true
         Layout.preferredHeight: JamiTheme.preferredFieldHeight
@@ -83,8 +83,7 @@ ColumnLayout {
         titleField: JamiStrings.password
 
         itemWidth: root.itemWidth
-        echoMode: TextInput.Password
 
-        onEditFinished: CurrentAccount.password = textField
+        onEditFinished: CurrentAccount.password = dynamicText
     }
 }
diff --git a/src/app/settingsview/components/SettingsMaterialLineEdit.qml b/src/app/settingsview/components/SettingsMaterialLineEdit.qml
index b00c5fd39..4f767fb92 100644
--- a/src/app/settingsview/components/SettingsMaterialLineEdit.qml
+++ b/src/app/settingsview/components/SettingsMaterialLineEdit.qml
@@ -29,12 +29,12 @@ RowLayout {
     id: root
 
     property alias titleField: title.text
-    property alias textField: materialLineEdit.text
-    property alias enabled: materialLineEdit.enabled
+    property alias staticText: modalTextEdit.staticText
+    property alias placeholderText: modalTextEdit.placeholderText
+    property alias enabled: modalTextEdit.enabled
+    property alias dynamicText: modalTextEdit.dynamicText
 
     property int itemWidth
-    property int wrapMode: Text.NoWrap
-    property int echoMode: TextInput.Normal
 
     signal editFinished
 
@@ -54,24 +54,17 @@ RowLayout {
         elide: Text.ElideRight
     }
 
-    MaterialLineEdit {
-        id: materialLineEdit
-
+    ModalTextEdit {
+        id: modalTextEdit
         Layout.alignment: Qt.AlignCenter
         Layout.preferredWidth: itemWidth
-        Layout.preferredHeight: root.height
-
-        font.pointSize: JamiTheme.settingsFontSize
-        font.kerning: true
-
-        padding: 8
-        horizontalAlignment: Text.AlignLeft
-        verticalAlignment: Text.AlignVCenter
+        Layout.maximumHeight: 40
+        staticText: staticText
+        placeholderText: ""
 
-        loseFocusWhenEnterPressed: true
-        wrapMode: root.wrapMode
-        echoMode: root.echoMode
+        onAccepted: {
+            editFinished()
+        }
 
-        onEditingFinished: editFinished()
     }
 }
-- 
GitLab