Add method to get user pointer in UserModel by AccountState pointer
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 5 Jul 2023 13:35:33 +0000 (21:35 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 4 Aug 2023 09:40:39 +0000 (17:40 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/tray/usermodel.cpp
src/gui/tray/usermodel.h

index e9a5ed73ae43312cb6656d2b5eff57dac6c8abec..2d4bef2fb98bac4efdea855636e7aecece2c17dd 100644 (file)
@@ -1526,6 +1526,21 @@ User *UserModel::currentUser() const
     return _users[currentUserId()];
 }
 
+User *UserModel::findUserForAccount(AccountState *account) const
+{
+    Q_ASSERT(account);
+
+    const auto it = std::find_if(_users.cbegin(), _users.cend(), [account](const User *user) {
+        return user->account()->id() == account->account()->id();
+    });
+
+    if (it == _users.cend()) {
+        return nullptr;
+    }
+
+    return *it;
+}
+
 int UserModel::findUserIdForAccount(AccountState *account) const
 {
     const auto it = std::find_if(std::cbegin(_users), std::cend(_users), [=](const User *user) {
index bfeaff46d2487027e4885ff7dc67fcf0636f2914..b39a49b5d8060d786f25f8e9ebd0b41f066d7edf 100644 (file)
@@ -210,8 +210,8 @@ public:
     [[nodiscard]]  QImage avatarById(const int id) const;
 
     [[nodiscard]] User *currentUser() const;
-
-    int findUserIdForAccount(AccountState *account) const;
+    [[nodiscard]] User *findUserForAccount(AccountState *account) const;
+    [[nodiscard]] int findUserIdForAccount(AccountState *account) const;
 
     Q_INVOKABLE int numUsers();
     Q_INVOKABLE QString currentUserServer();