connect(_tray.data(), &QSystemTrayIcon::activated,
this, &ownCloudGui::slotTrayClicked);
- connect(_tray.data(), &Systray::pauseSync,
- this, &ownCloudGui::slotPauseAllFolders);
-
- connect(_tray.data(), &Systray::resumeSync,
- this, &ownCloudGui::slotUnpauseAllFolders);
-
connect(_tray.data(), &Systray::openHelp,
this, &ownCloudGui::slotHelp);
}
}
-void ownCloudGui::slotUnpauseAllFolders()
-{
- setPauseOnAllFoldersHelper(false);
-}
-
-void ownCloudGui::slotPauseAllFolders()
-{
- setPauseOnAllFoldersHelper(true);
-}
-
void ownCloudGui::slotNewAccountWizard()
{
OwncloudSetupWizard::runWizard(qApp, SLOT(slotownCloudWizardDone(int)));
}
-void ownCloudGui::setPauseOnAllFoldersHelper(bool pause)
-{
- QList<AccountState *> accounts;
- if (auto account = qvariant_cast<AccountStatePtr>(sender()->property(propertyAccountC))) {
- accounts.append(account.data());
- } else {
- foreach (auto a, AccountManager::instance()->accounts()) {
- accounts.append(a.data());
- }
- }
- foreach (Folder *f, FolderMan::instance()->map()) {
- if (accounts.contains(f->accountState())) {
- f->setSyncPaused(pause);
- if (pause) {
- f->slotTerminateSync();
- }
- }
- }
-}
-
void ownCloudGui::slotShowGuiMessage(const QString &title, const QString &message)
{
auto *msgBox = new QMessageBox;
private slots:
void slotLogin();
void slotLogout();
- void slotUnpauseAllFolders();
- void slotPauseAllFolders();
void slotNewAccountWizard();
private:
- void setPauseOnAllFoldersHelper(bool pause);
-
QPointer<Systray> _tray;
QPointer<SettingsDialog> _settingsDialog;
QPointer<LogBrowser> _logBrowser;
UserAppsModel::instance()->buildAppList();
}
+void Systray::slotUnpauseAllFolders()
+{
+ setPauseOnAllFoldersHelper(false);
+}
+
+void Systray::slotPauseAllFolders()
+{
+ setPauseOnAllFoldersHelper(true);
+}
+
+void Systray::setPauseOnAllFoldersHelper(bool pause)
+{
+ // For some reason we get the raw pointer from Folder::accountState()
+ // that's why we need a list of raw pointers for the call to contains
+ // later on...
+ const auto accounts = [=] {
+ const auto ptrList = AccountManager::instance()->accounts();
+ auto result = QList<AccountState *>();
+ result.reserve(ptrList.size());
+ std::transform(std::cbegin(ptrList), std::cend(ptrList), std::back_inserter(result), [](const AccountStatePtr &account) {
+ return account.data();
+ });
+ return result;
+ }();
+ const auto folders = FolderMan::instance()->map();
+ for (auto f : folders) {
+ if (accounts.contains(f->accountState())) {
+ f->setSyncPaused(pause);
+ if (pause) {
+ f->slotTerminateSync();
+ }
+ }
+ }
+}
+
bool Systray::isOpen()
{
return _isOpen;
{
if (_syncIsPaused) {
_syncIsPaused = false;
- emit resumeSync();
+ slotUnpauseAllFolders();
} else {
_syncIsPaused = true;
- emit pauseSync();
+ slotPauseAllFolders();
}
}
void openSettings();
void openHelp();
void shutdown();
- void pauseSync();
- void resumeSync();
Q_INVOKABLE void hideWindow();
Q_INVOKABLE void showWindow();
public slots:
void slotNewUserSelected();
+private slots:
+ void slotUnpauseAllFolders();
+ void slotPauseAllFolders();
+
private:
+ void setPauseOnAllFoldersHelper(bool pause);
+
static Systray *_instance;
Systray();