Q_ASSERT(accountState->account());
QObject::connect(accountState->account().data(), &Account::wantsAccountSaved, this, &AccountManager::saveAccount);
+ QObject::connect(accountState->account().data(), &Account::capabilitiesChanged, this, &AccountManager::capabilitiesChanged);
AccountStatePtr ptr(accountState);
_accounts << ptr;
void accountSyncConnectionRemoved(OCC::AccountState *account);
void removeAccountFolders(OCC::AccountState *account);
void forceLegacyImportChanged();
+ void capabilitiesChanged();
private:
// saving and loading Account to settings
// accountAdded means the wizard was finished and the wizard might change some options.
connect(AccountManager::instance(), &AccountManager::accountAdded, this, &GeneralSettings::loadMiscSettings);
+#if defined(BUILD_UPDATER)
+ loadUpdateChannelsList();
+#endif
+
customizeStyle();
}
_ui->stopExistingFolderNowBigSyncCheckBox->setChecked(_ui->existingFolderLimitCheckBox->isChecked() && cfgFile.stopSyncingExistingFoldersOverLimit());
_ui->newExternalStorage->setChecked(cfgFile.confirmExternalStorage());
_ui->monoIconsCheckBox->setChecked(cfgFile.monoIcons());
+}
#if defined(BUILD_UPDATER)
- const auto validUpdateChannels = cfgFile.validUpdateChannels();
- _ui->updateChannel->clear();
- _ui->updateChannel->addItems(validUpdateChannels);
- const auto currentUpdateChannelIndex = validUpdateChannels.indexOf(cfgFile.currentUpdateChannel());
- _ui->updateChannel->setCurrentIndex(currentUpdateChannelIndex != -1? currentUpdateChannelIndex : 0);
- connect(_ui->updateChannel, &QComboBox::currentTextChanged, this, &GeneralSettings::slotUpdateChannelChanged);
-#endif
+void GeneralSettings::loadUpdateChannelsList() {
+ ConfigFile cfgFile;
+ if (_currentUpdateChannelList != cfgFile.validUpdateChannels()) {
+ _currentUpdateChannelList = cfgFile.validUpdateChannels();
+ _ui->updateChannel->clear();
+ _ui->updateChannel->addItems(_currentUpdateChannelList);
+ const auto currentUpdateChannelIndex = _currentUpdateChannelList.indexOf(cfgFile.currentUpdateChannel());
+ _ui->updateChannel->setCurrentIndex(currentUpdateChannelIndex != -1? currentUpdateChannelIndex : 0);
+ connect(_ui->updateChannel, &QComboBox::currentTextChanged, this, &GeneralSettings::slotUpdateChannelChanged);
+ }
}
-#if defined(BUILD_UPDATER)
void GeneralSettings::slotUpdateInfo()
{
ConfigFile config;
namespace OCC {
class IgnoreListEditor;
class SyncLogDialog;
+class AccountState;
namespace Ui {
class GeneralSettings;
public slots:
void slotStyleChanged();
+#if defined(BUILD_UPDATER)
+ void loadUpdateChannelsList();
+#endif
private slots:
void saveMiscSettings();
Ui::GeneralSettings *_ui;
QPointer<IgnoreListEditor> _ignoreEditor;
bool _currentlyLoading = false;
+ QStringList _currentUpdateChannelList;
};
// Connect styleChanged events to our widgets, so they can adapt (Dark-/Light-Mode switching)
connect(this, &SettingsDialog::styleChanged, generalSettings, &GeneralSettings::slotStyleChanged);
+ connect(AccountManager::instance(), &AccountManager::accountAdded, generalSettings, &GeneralSettings::loadUpdateChannelsList);
+ connect(AccountManager::instance(), &AccountManager::capabilitiesChanged, generalSettings, &GeneralSettings::loadUpdateChannelsList);
QAction *networkAction = createColorAwareAction(QLatin1String(":/client/theme/network.svg"), tr("Network"));
_actionGroup->addAction(networkAction);
_actionGroupWidgets.insert(generalAction, generalSettings);
_actionGroupWidgets.insert(networkAction, networkSettings);
- foreach(auto ai, AccountManager::instance()->accounts()) {
- accountAdded(ai.data());
+ foreach(auto account, AccountManager::instance()->accounts()) {
+ accountAdded(account.data());
}
QTimer::singleShot(1, this, &SettingsDialog::showFirstPage);