void CoreAccountSettingsPage::load() { model()->update(Client::coreAccountModel()); SettingsPage::load(); CoreAccountSettings s; if (Quassel::runMode() != Quassel::Monolithic) { // make sure we don't have selected the internal account as autoconnect account if (s.autoConnectOnStartup() && s.autoConnectToFixedAccount()) { CoreAccount acc = model()->account(s.autoConnectAccount()); if (acc.isInternal()) ui.autoConnectOnStartup->setChecked(false); } } ui.accountView->setCurrentIndex(filteredModel()->index(0, 0)); ui.accountView->selectionModel()->select(filteredModel()->index(0, 0), QItemSelectionModel::Select); QModelIndex idx = filteredModel()->mapFromSource(model()->accountIndex(s.autoConnectAccount())); ui.autoConnectAccount->setCurrentIndex(idx.isValid() ? idx.row() : 0); ui.autoConnectAccount->setProperty("storedValue", ui.autoConnectAccount->currentIndex()); setWidgetStates(); // Mark as no changes made, we just loaded settings setChangedState(false); }
bool CoreConnection::connectToCore(AccountId accId) { if (isConnected()) return false; CoreAccountSettings s; // FIXME: Don't force connection to internal core in mono client if (Quassel::runMode() == Quassel::Monolithic) { _account = accountModel()->account(accountModel()->internalAccount()); Q_ASSERT(_account.isValid()); } else { if (!accId.isValid()) { // check our settings and figure out what to do if (!s.autoConnectOnStartup()) return false; if (s.autoConnectToFixedAccount()) accId = s.autoConnectAccount(); else accId = s.lastAccount(); if (!accId.isValid()) return false; } _account = accountModel()->account(accId); if (!_account.accountId().isValid()) { return false; } if (Quassel::runMode() != Quassel::Monolithic) { if (_account.isInternal()) return false; } } s.setLastAccount(accId); connectToCurrentAccount(); return true; }