From 5487a9ab4397a95ee89bbad1f525b261c202947b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Mon, 5 Dec 2022 11:45:21 -0500
Subject: [PATCH] newswarmpage: clear fields on visibility changed

This avoid to get previous text when creating a second swarm

Change-Id: I86bb907cc30133432601cb59d9384758971fb331
---
 src/app/commoncomponents/EditableLineEdit.qml |  2 +
 src/app/mainview/components/NewSwarmPage.qml  |  5 ++
 tests/qml/src/tst_NewSwarmPage.qml            | 72 +++++++++++++++++++
 3 files changed, 79 insertions(+)
 create mode 100644 tests/qml/src/tst_NewSwarmPage.qml

diff --git a/src/app/commoncomponents/EditableLineEdit.qml b/src/app/commoncomponents/EditableLineEdit.qml
index b0509d0f0..4b122d7c2 100644
--- a/src/app/commoncomponents/EditableLineEdit.qml
+++ b/src/app/commoncomponents/EditableLineEdit.qml
@@ -36,6 +36,7 @@ Item {
     property color borderColor: lineEdit.borderColor
     property alias underlined: lineEdit.underlined
     property alias wrapMode: lineEdit.wrapMode
+    property alias lineEdit: lineEdit
     property alias padding: lineEdit.padding
     property alias echoMode: lineEdit.echoMode
     property string inactiveColor: JamiTheme.tintedBlue
@@ -79,6 +80,7 @@ Item {
 
     function clear() {
         lineEdit.clear()
+        lineEdit.focus = false
     }
 
     function toggleEchoMode(){
diff --git a/src/app/mainview/components/NewSwarmPage.qml b/src/app/mainview/components/NewSwarmPage.qml
index 6e31a24bd..97d2524d1 100644
--- a/src/app/mainview/components/NewSwarmPage.qml
+++ b/src/app/mainview/components/NewSwarmPage.qml
@@ -37,6 +37,8 @@ Rectangle {
 
     onVisibleChanged: {
         UtilsAdapter.setTempCreationImageFromString()
+        title.clear()
+        description.clear()
     }
 
     property var members: []
@@ -115,6 +117,7 @@ Rectangle {
 
     ColumnLayout {
         id: mainLayout
+        objectName: "mainLayout"
         anchors.centerIn: root
 
         PhotoboothView {
@@ -133,6 +136,7 @@ Rectangle {
 
         EditableLineEdit {
             id: title
+            objectName: "titleLineEdit"
             Layout.alignment: Qt.AlignCenter
             Layout.topMargin: JamiTheme.preferredMarginSize
             Layout.preferredWidth: JamiTheme.preferredFieldWidth
@@ -166,6 +170,7 @@ Rectangle {
 
         EditableLineEdit {
             id: description
+            objectName: "descriptionLineEdit"
             Layout.alignment: Qt.AlignCenter
             Layout.topMargin: JamiTheme.preferredMarginSize
             Layout.preferredWidth: JamiTheme.preferredFieldWidth
diff --git a/tests/qml/src/tst_NewSwarmPage.qml b/tests/qml/src/tst_NewSwarmPage.qml
new file mode 100644
index 000000000..3655ce059
--- /dev/null
+++ b/tests/qml/src/tst_NewSwarmPage.qml
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2022 Savoir-faire Linux Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Layouts
+
+import QtTest
+
+import net.jami.Models 1.1
+import net.jami.Constants 1.1
+
+import "../../../src/app/mainview/components"
+
+ColumnLayout {
+    id: root
+
+    spacing: 0
+
+    width: 300
+    height: 300
+
+    NewSwarmPage {
+        id: uut
+
+        Layout.alignment: Qt.AlignHCenter
+        Layout.preferredWidth: root.width
+        Layout.maximumWidth: JamiTheme.chatViewMaximumWidth
+        Layout.preferredHeight: root.height
+
+        TestCase {
+            name: "Check Focus for NewSwarmPage"
+            when: windowShown
+
+            function test_focus_new_swarm_page() {
+                // Add animated image file
+                var title = findChild(uut, "titleLineEdit")
+                var description = findChild(uut, "descriptionLineEdit")
+
+                // Fill Title & Description
+                title.text = "Title"
+                description.text = "description"
+                compare(title.text, "Title")
+                compare(description.text, "description")
+
+                // Hide & Show window
+                uut.visible = false
+                uut.visible = true
+
+                compare(title.focus, false)
+                compare(title.text, "")
+                compare(description.focus, false)
+                compare(description.text, "")
+
+            }
+        }
+    }
+}
-- 
GitLab