]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Implemented account removal
authorDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Sat, 11 Jan 2020 14:32:59 +0000 (15:32 +0100)
committerDominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
Sat, 11 Jan 2020 14:32:59 +0000 (15:32 +0100)
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
src/gui/tray/UserLine.qml
src/gui/tray/UserModel.cpp
src/gui/tray/UserModel.h

index afccfeb402684d06f54429d6b8c28be24c7cf7cc..1bfd65c5598aa0217d8ddbf91b0e8e7579146b65 100644 (file)
@@ -113,6 +113,9 @@ MenuItem {
 \r
                     MenuItem {\r
                         text: "Remove Account"\r
+                        onClicked: {\r
+                            userModelBackend.removeAccount(index)\r
+                        }\r
                     }\r
                 }\r
             }\r
index 9c4f4a58515c0beddf82e6b982c655e3ece7db08..86ff62f9927d0008f5584691f7bc4df16219db68 100644 (file)
@@ -109,10 +109,15 @@ bool User::isCurrentUser() const
 
 bool User::isConnected() const
 {
-    bool test = (_account->connectionStatus() == AccountState::ConnectionStatus::Connected);
     return (_account->connectionStatus() == AccountState::ConnectionStatus::Connected);
 }
 
+void User::removeAccount() const
+{
+    AccountManager::instance()->deleteAccount(_account.data());
+    AccountManager::instance()->save();
+}
+
 /*-------------------------------------------------------------------------------------*/
 
 UserModel *UserModel::_instance = nullptr;
@@ -239,6 +244,11 @@ Q_INVOKABLE void UserModel::logout(const int &id)
 Q_INVOKABLE void UserModel::removeAccount(const int &id)
 {
     _users[id].logout();
+    _users[id].removeAccount();
+    if (_users.count() > 1) {
+        id == 0 ? switchCurrentUser(1) : switchCurrentUser(0);
+    }
+    _users.removeAt(id);
 }
 
 int UserModel::rowCount(const QModelIndex &parent) const
index 49d9a3abb7546f2588e468b96b14c957f13538d2..5a2e9cadf1630eee9b68604f0423a27c79be0d9d 100644 (file)
@@ -33,6 +33,7 @@ public:
     QString id() const;
     void login() const;
     void logout() const;
+    void removeAccount() const;
 
 private:
     AccountStatePtr _account;