From 28c2f8cb6930d718ff93f8dc49b1fa0f96a0e9bc Mon Sep 17 00:00:00 2001
From: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com>
Date: Fri, 29 Jul 2022 13:44:05 -0300
Subject: [PATCH] callbuttons: move mosaic to layout settings

GitLab: #729

Change-Id: I795468a898cd8882dc33e096d3df1919977631c1
---
 src/app/mainview/components/CallActionBar.qml | 32 +++++++-------
 .../components/CallButtonDelegate.qml         |  9 +++-
 src/app/mainview/components/MainOverlay.qml   | 43 -------------------
 3 files changed, 25 insertions(+), 59 deletions(-)

diff --git a/src/app/mainview/components/CallActionBar.qml b/src/app/mainview/components/CallActionBar.qml
index 86c48d889..b1fe1b218 100644
--- a/src/app/mainview/components/CallActionBar.qml
+++ b/src/app/mainview/components/CallActionBar.qml
@@ -152,27 +152,29 @@ Control {
             property int popupMode: CallActionBar.ActionPopupMode.ListElement
             property var listModel: ListModel {
                 id: layoutModel
-
-                Component.onCompleted: {
-                    layoutModel.append({"Name": layoutManager.isCallFullscreen ?
-                                                JamiStrings.exitFullScreen :
-                                                JamiStrings.viewFullScreen,
-                                        "IconSource": layoutManager.isCallFullscreen ?
-                                                      JamiResources.close_fullscreen_24dp_svg :
-                                                      JamiResources.open_in_full_24dp_svg})
-                    layoutModel.append({})
-                }
             }
             function accept(index) {
                 switch(layoutModel.get(index).Name) {
-                  case JamiStrings.exitFullScreen:
-                        layoutModel.get(index).Name = JamiStrings.viewFullScreen
-                        root.fullScreenClicked()
-                        break
                   case JamiStrings.viewFullScreen:
-                        layoutModel.get(index).Name = JamiStrings.exitFullScreen
                         root.fullScreenClicked()
+                        layoutModel.get(index).ActiveSetting = layoutManager.isCallFullscreen
                         break
+                  case JamiStrings.mosaic:
+                        if (!isGrid)
+                            CallAdapter.showGridConferenceLayout()
+                        break
+                }
+            }
+            onTriggered: {
+                layoutModel.clear()
+                layoutModel.append({"Name": JamiStrings.viewFullScreen,
+                                    "IconSource": JamiResources.open_in_full_24dp_svg,
+                                    "ActiveSetting": layoutManager.isCallFullscreen})
+                if (isConference) {
+                    layoutModel.append({})
+                    layoutModel.append({"Name": JamiStrings.mosaic,
+                                        "IconSource": JamiResources.mosaic_black_24dp_svg,
+                                        "ActiveSetting": isGrid})
                 }
             }
         },
diff --git a/src/app/mainview/components/CallButtonDelegate.qml b/src/app/mainview/components/CallButtonDelegate.qml
index ec383fda0..4b8e22684 100644
--- a/src/app/mainview/components/CallButtonDelegate.qml
+++ b/src/app/mainview/components/CallButtonDelegate.qml
@@ -235,12 +235,19 @@ ItemDelegate {
                     color: "white"
                     visible: text
                 }
+                ResponsiveImage {
+                    Layout.leftMargin: 6
+                    source: JamiResources.check_black_24dp_svg
+                    color: "white"
+                    visible: delegateText.visible && ActiveSetting
+                }
                 Rectangle {
                     id: buttonDiv
                     visible: !delegateText.visible
                     Layout.fillWidth: true
                     height: 1
-                    color: "white"
+                    border.width : 0
+                    color: JamiTheme.separationLine
                 }
             }
         }
diff --git a/src/app/mainview/components/MainOverlay.qml b/src/app/mainview/components/MainOverlay.qml
index 8bc74514b..721fd535a 100644
--- a/src/app/mainview/components/MainOverlay.qml
+++ b/src/app/mainview/components/MainOverlay.qml
@@ -139,49 +139,6 @@ Item {
                 elide: Qt.ElideRight
             }
 
-            PushButton {
-                id: mosaicButton
-
-                Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
-                Layout.preferredWidth: JamiTheme.mosaicButtonPreferredWidth
-                Layout.preferredHeight: 30
-                Layout.rightMargin: 5
-
-                visible: isConference && !isGrid
-
-                preferredMargin: JamiTheme.mosaicButtonPreferredMargin
-                radius: JamiTheme.mosaicButtonRadius
-                opacity: JamiTheme.mosaicButtonOpacity
-
-                buttonText: JamiStrings.mosaic
-                buttonTextColor: JamiTheme.whiteColor
-                buttonTextHeight: JamiTheme.mosaicButtonTextPreferredHeight
-                buttonTextFont.weight: Font.DemiBold
-                buttonTextFont.pointSize: JamiTheme.mosaicButtonTextPointSize
-                textHAlign: Text.AlignLeft
-
-                imageColor: JamiTheme.whiteColor
-                imageContainerHeight: 20
-                imageContainerWidth: 20
-                source: JamiResources.mosaic_black_24dp_svg
-
-                normalColor: JamiTheme.mosaicButtonNormalColor
-                onButtonTextWidthChanged: {
-                    if (buttonTextWidth > JamiTheme.mosaicButtonTextPreferredWidth) {
-                        if (mosaicButton.Layout.preferredWidth + buttonTextWidth
-                                - JamiTheme.mosaicButtonTextPreferredWidth
-                                > JamiTheme.mosaicButtonMaxWidth) {
-                            mosaicButton.Layout.preferredWidth = JamiTheme.mosaicButtonMaxWidth
-                            buttonTextEnableElide = true
-                        } else
-                            mosaicButton.Layout.preferredWidth += buttonTextWidth
-                                    - JamiTheme.mosaicButtonTextPreferredWidth
-                    }
-                }
-
-                onClicked: CallAdapter.showGridConferenceLayout()
-            }
-
             Text {
                 id: callTimerText
 
-- 
GitLab