Allow sharing to circles
authorRoeland Jago Douma <roeland@famdouma.nl>
Thu, 5 Mar 2020 09:44:06 +0000 (10:44 +0100)
committerRoeland Jago Douma <roeland@famdouma.nl>
Thu, 5 Mar 2020 09:44:06 +0000 (10:44 +0100)
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
src/gui/sharee.cpp
src/gui/sharee.h
src/gui/sharemanager.h

index b5fc11d3e5c4b7e10b7b0b69edb759cc18f2ed13..035a51411882ab5ee1bedfded699357f1152f356 100644 (file)
@@ -40,6 +40,8 @@ QString Sharee::format() const
         formatted += QLatin1String(" (group)");
     } else if (_type == Type::Federated) {
         formatted += QLatin1String(" (remote)");
+    } else if (_type == Type::Circle) {
+        formatted += QLatin1String(" (circle)");
     }
 
     return formatted;
@@ -92,14 +94,21 @@ void ShareeModel::shareesFetched(const QJsonDocument &reply)
         foreach (auto user, users) {
             newSharees.append(parseSharee(user.toObject()));
         }
+
         auto groups = exact.value("groups").toArray();
         foreach (auto group, groups) {
             newSharees.append(parseSharee(group.toObject()));
         }
+
         auto remotes = exact.value("remotes").toArray();
         foreach (auto remote, remotes) {
             newSharees.append(parseSharee(remote.toObject()));
         }
+
+        auto circles = exact.value("circles").toArray();
+        foreach (auto circle, circles) {
+            newSharees.append(parseSharee(circle.toObject()));
+        }
     }
 
     {
@@ -120,6 +129,12 @@ void ShareeModel::shareesFetched(const QJsonDocument &reply)
             newSharees.append(parseSharee(remote.toObject()));
         }
     }
+    {
+        auto circles = data.value("circles").toArray();
+        foreach (auto circle, circles) {
+            newSharees.append(parseSharee(circle.toObject()));
+        }
+    }
 
     // Filter sharees that we have already shared with
     QVector<QSharedPointer<Sharee>> filteredSharees;
index 6b56642e87bf8aa1682d115c7305717fb9025e7c..690ec0047f755a2ba956209bc809903712464c44 100644 (file)
@@ -40,7 +40,8 @@ public:
     enum Type {
         User = 0,
         Group = 1,
-        Federated = 6
+        Federated = 6,
+        Circle = 7
     };
 
     explicit Sharee(const QString shareWith,
index 08de75f5914d27b87dab059a80ef8f1c85f8f66d..a7a7a718c93204c2ce1b770a802366107bc262eb 100644 (file)
@@ -44,7 +44,8 @@ public:
         TypeUser = Sharee::User,
         TypeGroup = Sharee::Group,
         TypeLink = 3,
-        TypeRemote = Sharee::Federated
+        TypeRemote = Sharee::Federated,
+        TypeCircle = Sharee::Circle
     };
 
     typedef SharePermissions Permissions;