Add a function to know the user id matching a given account
authorKevin Ottens <kevin.ottens@nextcloud.com>
Wed, 7 Oct 2020 10:27:32 +0000 (12:27 +0200)
committerKevin Ottens <kevin.ottens@nextcloud.com>
Thu, 22 Oct 2020 14:40:46 +0000 (16:40 +0200)
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
src/gui/tray/UserModel.cpp
src/gui/tray/UserModel.h

index 1a76a50c62c33b9e229ff0d81d7959bb221ddbe4..5f59e807463eabb9ff78fadcc12cd9dffc049662 100644 (file)
@@ -810,6 +810,20 @@ User *UserModel::currentUser() const
     return _users[currentUserId()];
 }
 
+int UserModel::findUserIdForAccount(AccountState *account) const
+{
+    const auto it = std::find_if(std::cbegin(_users), std::cend(_users), [=](const User *user) {
+        return user->account()->id() == account->account()->id();
+    });
+
+    if (it == std::cend(_users)) {
+        return -1;
+    }
+
+    const auto id = std::distance(std::cbegin(_users), it);
+    return id;
+}
+
 /*-------------------------------------------------------------------------------------*/
 
 ImageProvider::ImageProvider()
index 09b42b175625e74ffc8f6434d224caaabf6053b5..7c7d110967440732340c743e5c1b6dc25f5f649e 100644 (file)
@@ -107,6 +107,8 @@ public:
 
     User *currentUser() const;
 
+    int findUserIdForAccount(AccountState *account) const;
+
     Q_INVOKABLE void fetchCurrentActivityModel();
     Q_INVOKABLE void openCurrentAccountLocalFolder();
     Q_INVOKABLE void openCurrentAccountTalk();