From: Hannah von Reth Date: Thu, 18 Jun 2020 14:12:35 +0000 (+0200) Subject: VFS: Tell the vfs plugin whether we have multiple accounts X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~21^2~468^2~93 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f932dfc64801f255ada8715b6911cc7dff6ce004;p=nextcloud-desktop.git VFS: Tell the vfs plugin whether we have multiple accounts This allows us to decide on the presentation of the account --- diff --git a/src/common/vfs.h b/src/common/vfs.h index ab39ea8fc..b77eae161 100644 --- a/src/common/vfs.h +++ b/src/common/vfs.h @@ -62,6 +62,11 @@ struct OCSYNC_EXPORT VfsSetupParams QString providerName; QString providerVersion; + /** when registering with the system we might use + * a different presentaton to identify the accounts + */ + bool multipleAccountsRegistered = false; + /** Whether native shell integration shall be enabled * * For some plugins that doesn't work well in tests. diff --git a/src/gui/accountmanager.cpp b/src/gui/accountmanager.cpp index 98357e3d3..7d7b397ac 100644 --- a/src/gui/accountmanager.cpp +++ b/src/gui/accountmanager.cpp @@ -420,6 +420,11 @@ void AccountManager::shutdown() } } +QList AccountManager::accounts() const +{ + return _accounts; +} + bool AccountManager::isAccountIdAvailable(const QString &id) const { if (_additionalBlockedAccountIds.contains(id)) diff --git a/src/gui/accountmanager.h b/src/gui/accountmanager.h index d96ad2e4a..356ba0e6f 100644 --- a/src/gui/accountmanager.h +++ b/src/gui/accountmanager.h @@ -58,7 +58,7 @@ public: * Return a list of all accounts. * (this is a list of QSharedPointer for internal reasons, one should normally not keep a copy of them) */ - QList accounts() { return _accounts; } + QList accounts() const; /** * Return the account state pointer for an account identified by its display name diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp index e513bce40..187377eab 100644 --- a/src/gui/folder.cpp +++ b/src/gui/folder.cpp @@ -16,6 +16,7 @@ #include "config.h" #include "account.h" +#include "accountmanager.h" #include "accountstate.h" #include "folder.h" #include "folderman.h" @@ -489,6 +490,7 @@ void Folder::startVfs() vfsParams.journal = &_journal; vfsParams.providerName = Theme::instance()->appNameGUI(); vfsParams.providerVersion = Theme::instance()->version(); + vfsParams.multipleAccountsRegistered = AccountManager::instance()->accounts().size() > 1; connect(_vfs.data(), &Vfs::beginHydrating, this, &Folder::slotHydrationStarts); connect(_vfs.data(), &Vfs::doneHydrating, this, &Folder::slotHydrationDone); diff --git a/test/stubfolderman.cpp b/test/stubfolderman.cpp index 0ee32d731..3df56d1d1 100644 --- a/test/stubfolderman.cpp +++ b/test/stubfolderman.cpp @@ -8,6 +8,7 @@ void OCC::AccountManager::save(bool) { } void OCC::AccountManager::saveAccountState(AccountState *) { } void OCC::AccountManager::deleteAccount(AccountState *) { } void OCC::AccountManager::accountRemoved(OCC::AccountState*) { } +QList OCC::AccountManager::accounts() const { return QList(); } OCC::AccountStatePtr OCC::AccountManager::account(const QString &){ return AccountStatePtr(); } void OCC::AccountManager::removeAccountFolders(OCC::AccountState*) { } const QMetaObject OCC::AccountManager::staticMetaObject = QObject::staticMetaObject; diff --git a/test/stubremotewipe.cpp b/test/stubremotewipe.cpp index d74dde2da..e434424fd 100644 --- a/test/stubremotewipe.cpp +++ b/test/stubremotewipe.cpp @@ -9,6 +9,7 @@ void OCC::AccountManager::save(bool) { } OCC::AccountState *OCC::AccountManager::addAccount(const AccountPtr& ac) { return new OCC::AccountState(ac); } void OCC::AccountManager::deleteAccount(AccountState *) { } void OCC::AccountManager::accountRemoved(OCC::AccountState*) { } +QList OCC::AccountManager::accounts() const { return QList(); } OCC::AccountStatePtr OCC::AccountManager::account(const QString &){ return AccountStatePtr(); } const QMetaObject OCC::AccountManager::staticMetaObject = QObject::staticMetaObject;