Display input once user clicked on Reply.
authorCamila <hello@camila.codes>
Thu, 24 Mar 2022 19:17:11 +0000 (20:17 +0100)
committerCamila <hello@camila.codes>
Mon, 28 Mar 2022 14:04:54 +0000 (16:04 +0200)
Signed-off-by: Camila <hello@camila.codes>
src/gui/tray/ActivityItem.qml
src/gui/tray/ActivityItemContent.qml
src/gui/tray/activitylistmodel.cpp
src/gui/tray/activitylistmodel.h

index b9bc78b26e541c481389274c305650dcc083fa85..e7bff5fe3b18fea52bf72bbddbef4f3cd4d865a9 100644 (file)
@@ -15,6 +15,16 @@ MouseArea {
     property bool isChatActivity: model.objectType === "chat" || model.objectType === "room" || model.objectType === "call"
     property bool isTalkReplyPossible: model.conversationToken !== ""
 
+    property bool displayTalkReplyOptions: false
+    Connections {
+        target: activityModel
+        function onDisplayTalkReplyOptions(activityIndex) {
+            if (model.index === activityIndex) {
+                displayTalkReplyOptions = true;
+            }
+        }
+    }
+
     signal fileActivityButtonClicked(string absolutePath)
 
     enabled: (model.path !== "" || model.link !== "" || model.isCurrentUserFileActivity === true)
@@ -73,13 +83,12 @@ MouseArea {
         ActivityItemActions {
             id: activityActions
 
-            visible: !root.isFileActivityList && model.linksForActionButtons.length > 0
+            visible: !root.isFileActivityList && model.linksForActionButtons.length > 0 && !displayTalkReplyOptions
 
             Layout.preferredHeight: Style.trayWindowHeaderHeight * 0.85
             Layout.fillWidth: true
             Layout.leftMargin: 40
             Layout.bottomMargin: model.links.length > 1 ? 5 : 0
-            Layout.topMargin: isTalkReplyPossible? 48 : 0
 
             displayActions: model.displayActions
             objectType: model.objectType
index 4d779a52472b2e93ff92ddc2572d170a0093c617..8c091c3249e72f6375a9003d20b7d06a09a5264a 100644 (file)
@@ -133,7 +133,8 @@ RowLayout {
 
         Loader {
             id: talkReplyTextFieldLoader
-            active: isChatActivity && isTalkReplyPossible
+            active: isChatActivity && isTalkReplyPossible && displayTalkReplyOptions
+            visible: displayTalkReplyOptions
 
             anchors.top: activityTextDateTime.bottom
             anchors.topMargin: 10
index dc5363cfdc0407f9f056b6460633accf1389e40f..c92dfdb7eb76713b560629e08ae2515e0945f670 100644 (file)
@@ -611,6 +611,12 @@ void ActivityListModel::slotTriggerAction(const int activityIndex, const int act
 
     const auto action = activity._links[actionIndex];
 
+    // TODO this will change with https://github.com/nextcloud/desktop/issues/4159
+    if (action._verb == "WEB" && action._label == tr("View chat")) {
+        emit displayTalkReplyOptions(activityIndex);
+        return;
+    }
+
     if (action._verb == "WEB") {
         Utility::openBrowser(QUrl(action._link));
         return;
@@ -832,7 +838,4 @@ QString ActivityListModel::talkReplyMessageSent(const int activityIndex) const
 
     return _finalList[activityIndex]._talkNotificationData.messageSent;
 }
-
-
 }
-
index 19e54ac9fe4c93c9c8c50777bc0c127600fe34f2..f786ba856e8384a50df058f291c6d4c04ce57541 100644 (file)
@@ -120,7 +120,7 @@ signals:
     void activityJobStatusCode(int statusCode);
     void sendNotificationRequest(const QString &accountName, const QString &link, const QByteArray &verb, int row);
     void messageSent();
-
+    void displayTalkReplyOptions(const int activityIndex);
 
 protected:
     void setup();