Hide share button for deleted and ignored files in tray activity
authorClaudio Cambra <claudio.cambra@gmail.com>
Thu, 16 Dec 2021 11:22:04 +0000 (12:22 +0100)
committerClaudio Cambra (Rebase PR Action) <claudio.cambra@gmail.com>
Mon, 20 Dec 2021 16:07:11 +0000 (16:07 +0000)
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
src/gui/tray/ActivityItem.qml
src/gui/tray/activitylistmodel.cpp
src/gui/tray/activitylistmodel.h

index ed85ed9ea79a6a4e11034be4382ca9dbcac6d567..5928346cb02604a470ac32494ffe288eb68e7f2b 100644 (file)
@@ -152,7 +152,7 @@ MouseArea {
                 Layout.alignment: Qt.AlignRight
                 flat: true
                 hoverEnabled: true
-                visible: displayActions && (path !== "")
+                visible: isShareable
                 display: AbstractButton.IconOnly
                 icon.source: "qrc:///client/theme/share.svg"
                 icon.color: "transparent"
index 3d126244df10e05d036cb5648af9ad46fa756ab6..770074d7d7f7265349ed09cdc57f75b9cb5acfbb 100644 (file)
@@ -68,6 +68,7 @@ QHash<int, QByteArray> ActivityListModel::roleNames() const
     roles[ObjectTypeRole] = "objectType";
     roles[PointInTimeRole] = "dateTime";
     roles[DisplayActions] = "displayActions";
+    roles[ShareableRole] = "isShareable";
     return roles;
 }
 
@@ -262,6 +263,8 @@ QVariant ActivityListModel::data(const QModelIndex &index, int role) const
         return (ast && ast->isConnected());
     case DisplayActions:
         return _displayActions;
+    case ShareableRole:
+        return !data(index, PathRole).toString().isEmpty() && _displayActions && a._fileAction != "file_deleted" && a._status != SyncFileItem::FileIgnored;
     default:
         return QVariant();
     }
index 379fc9ba86fcc91edc7355b110ee70aaabedcdce..89667d1ddeb0fa15d93c4583535fe35aea6b3c98 100644 (file)
@@ -60,6 +60,7 @@ public:
         AccountConnectedRole,
         SyncFileStatusRole,
         DisplayActions,
+        ShareableRole,
     };
     Q_ENUM(DataRole)