Преглед на файлове

VFS: Tell the vfs plugin whether we have multiple accounts

This allows us to decide on the presentation of the account
Hannah von Reth преди 5 години
родител
ревизия
f932dfc648
променени са 6 файла, в които са добавени 15 реда и са изтрити 1 реда
  1. 5 0
      src/common/vfs.h
  2. 5 0
      src/gui/accountmanager.cpp
  3. 1 1
      src/gui/accountmanager.h
  4. 2 0
      src/gui/folder.cpp
  5. 1 0
      test/stubfolderman.cpp
  6. 1 0
      test/stubremotewipe.cpp

+ 5 - 0
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.

+ 5 - 0
src/gui/accountmanager.cpp

@@ -420,6 +420,11 @@ void AccountManager::shutdown()
     }
 }
 
+QList<AccountStatePtr> AccountManager::accounts() const
+{
+     return _accounts;
+}
+
 bool AccountManager::isAccountIdAvailable(const QString &id) const
 {
     if (_additionalBlockedAccountIds.contains(id))

+ 1 - 1
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<AccountStatePtr> accounts() { return _accounts; }
+    QList<AccountStatePtr> accounts() const;
 
     /**
      * Return the account state pointer for an account identified by its display name

+ 2 - 0
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);

+ 1 - 0
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::AccountStatePtr> OCC::AccountManager::accounts() const { return QList<OCC::AccountStatePtr>(); }
 OCC::AccountStatePtr OCC::AccountManager::account(const QString &){ return AccountStatePtr(); }
 void OCC::AccountManager::removeAccountFolders(OCC::AccountState*) { }
 const QMetaObject OCC::AccountManager::staticMetaObject = QObject::staticMetaObject;

+ 1 - 0
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::AccountStatePtr> OCC::AccountManager::accounts() const { return QList<OCC::AccountStatePtr>(); }
 OCC::AccountStatePtr OCC::AccountManager::account(const QString &){ return AccountStatePtr(); }
 const QMetaObject OCC::AccountManager::staticMetaObject = QObject::staticMetaObject;