CoreConnectDlg::CoreConnectDlg(QWidget* parent) : QDialog(parent) { _settingsPage = new CoreAccountSettingsPage(this); _settingsPage->setStandAlone(true); _settingsPage->load(); CoreAccountSettings s; AccountId lastAccount = s.lastAccount(); if (lastAccount.isValid()) _settingsPage->setSelectedAccount(lastAccount); setWindowTitle(tr("Connect to Core")); setWindowIcon(icon::get("network-disconnect")); auto* layout = new QVBoxLayout(this); layout->addWidget(_settingsPage); auto* buttonBox = new QDialogButtonBox(this); buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); layout->addWidget(buttonBox); connect(_settingsPage, &CoreAccountSettingsPage::connectToCore, this, &QDialog::accept); connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); }
CoreConnectDlg::CoreConnectDlg(QWidget *parent) : QDialog(parent) { _settingsPage = new CoreAccountSettingsPage(this); _settingsPage->setStandAlone(true); _settingsPage->load(); CoreAccountSettings s; AccountId lastAccount = s.lastAccount(); if (lastAccount.isValid()) _settingsPage->setSelectedAccount(lastAccount); setWindowTitle(tr("Connect to Core")); setWindowIcon(QIcon::fromTheme("network-disconnect")); QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(_settingsPage); QDialogButtonBox *buttonBox = new QDialogButtonBox(this); buttonBox->setStandardButtons(QDialogButtonBox::Ok|QDialogButtonBox::Cancel); layout->addWidget(buttonBox); connect(_settingsPage, SIGNAL(connectToCore(AccountId)), SLOT(accept())); connect(buttonBox, SIGNAL(accepted()), SLOT(accept())); connect(buttonBox, SIGNAL(rejected()), SLOT(reject())); }
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; }