Simplify activity list delegates by making them ItemDelegates, clean up
authorClaudio Cambra <claudio.cambra@gmail.com>
Thu, 28 Jul 2022 12:35:46 +0000 (14:35 +0200)
committerClaudio Cambra <claudio.cambra@gmail.com>
Wed, 7 Sep 2022 16:19:49 +0000 (18:19 +0200)
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
src/gui/tray/ActivityItem.qml

index e952c194e408fdf200ce903ef2e7779cfc487fc1..9dbc41cd3c0edb951ad95b80686caa0b07170303 100644 (file)
@@ -5,7 +5,7 @@ import QtQuick.Layouts 1.15
 import Style 1.0
 import com.nextcloud.desktopclient 1.0
 
-MouseArea {
+ItemDelegate {
     id: root
 
     property Flickable flickable
@@ -21,37 +21,27 @@ MouseArea {
                                                        : Qt.darker(UserModel.currentUser.headerColor, 1.5)
 
     enabled: (model.path !== "" || model.link !== "" || model.isCurrentUserFileActivity === true)
-    hoverEnabled: true
-
-    // We center the children vertically in the middle of this MouseArea to create the padding.
-    height: contentLayout.implicitHeight + (Style.standardSpacing * 2)
+    padding: Style.standardSpacing
 
     Accessible.role: Accessible.ListItem
     Accessible.name: (model.path !== "" && model.displayPath !== "") ? qsTr("Open %1 locally").arg(model.displayPath) : model.message
     Accessible.onPressAction: root.clicked()
 
-    function toggleReplyOptions() {
-        isTalkReplyOptionVisible = !isTalkReplyOptionVisible
-    }
-
-    Rectangle {
-        id: activityHover
-        anchors.fill: parent
-        color: (parent.containsMouse ? Style.lightHover : "transparent")
+    background: Rectangle {
+        color: root.hovered ? Style.lightHover : "transparent"
     }
 
     NCToolTip {
-        visible: root.containsMouse && !activityContent.childHovered && model.displayLocation !== ""
+        visible: root.hovered && !activityContent.childHovered && model.displayLocation !== ""
         text: qsTr("In %1").arg(model.displayLocation)
     }
 
-    ColumnLayout {
+    contentItem: ColumnLayout {
         id: contentLayout
         anchors.left: root.left
         anchors.right: root.right
         anchors.rightMargin: Style.standardSpacing
         anchors.leftMargin: Style.standardSpacing
-        anchors.verticalCenter: parent.verticalCenter
 
         spacing: Style.activityContentSpace
 
@@ -111,7 +101,7 @@ MouseArea {
             adjustedHeaderColor: root.adjustedHeaderColor
 
             onTriggerAction: activityModel.slotTriggerAction(model.index, actionIndex)
-            onShowReplyField: root.toggleReplyOptions()
+            onShowReplyField: root.isTalkReplyOptionVisible = true
         }
     }
 }