From: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com> Date: Sat, 11 Jan 2020 14:32:59 +0000 (+0100) Subject: Implemented account removal X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~222^2^2~413^2~69 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3da982f0739175b1bc022c89231eab24db1f96f1;p=nextcloud-desktop.git Implemented account removal Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com> --- diff --git a/src/gui/tray/UserLine.qml b/src/gui/tray/UserLine.qml index afccfeb40..1bfd65c55 100644 --- a/src/gui/tray/UserLine.qml +++ b/src/gui/tray/UserLine.qml @@ -113,6 +113,9 @@ MenuItem { MenuItem { text: "Remove Account" + onClicked: { + userModelBackend.removeAccount(index) + } } } } diff --git a/src/gui/tray/UserModel.cpp b/src/gui/tray/UserModel.cpp index 9c4f4a585..86ff62f99 100644 --- a/src/gui/tray/UserModel.cpp +++ b/src/gui/tray/UserModel.cpp @@ -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 diff --git a/src/gui/tray/UserModel.h b/src/gui/tray/UserModel.h index 49d9a3abb..5a2e9cadf 100644 --- a/src/gui/tray/UserModel.h +++ b/src/gui/tray/UserModel.h @@ -33,6 +33,7 @@ public: QString id() const; void login() const; void logout() const; + void removeAccount() const; private: AccountStatePtr _account;