示例#1
0
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);
}
示例#2
0
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()));
}
示例#3
0
void ClientSyncer::useInternalCore() {
  AccountId internalAccountId;

  CoreAccountSettings accountSettings;
  QList<AccountId> knownAccounts = accountSettings.knownAccounts();
  foreach(AccountId id, knownAccounts) {
    if(!id.isValid())
      continue;
    QVariantMap data = accountSettings.retrieveAccountData(id);
    if(data.contains("InternalAccount") && data["InternalAccount"].toBool()) {
      internalAccountId = id;
      break;
    }
  }

  if(!internalAccountId.isValid()) {
    for(AccountId i = 1;; i++) {
      if(!knownAccounts.contains(i)) {
	internalAccountId = i;
	break;
      }
    }
    QVariantMap data;
    data["InternalAccount"] = true;
    accountSettings.storeAccountData(internalAccountId, data);
  }

  coreConnectionInfo["AccountId"] = QVariant::fromValue<AccountId>(internalAccountId);
  emit startInternalCore(this);
  emit connectToInternalCore(Client::instance()->signalProxy());
}
void CoreAccountSettingsPage::setWidgetStates() {
  AccountId accId = selectedAccount();
  bool editable = accId.isValid() && accId != model()->internalAccount();

  ui.editAccountButton->setEnabled(editable);
  ui.deleteAccountButton->setEnabled(editable);
}
void CoreAccountSettingsPage::on_deleteAccountButton_clicked() {
  if(!ui.accountView->selectionModel()->selectedIndexes().count())
    return;

  AccountId id = ui.accountView->selectionModel()->selectedIndexes().at(0).data(CoreAccountModel::AccountIdRole).value<AccountId>();
  if(id.isValid()) {
    model()->removeAccount(id);
    widgetHasChanged();
  }
}
示例#6
0
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;
}
示例#7
0
QList<AccountId> CoreAccountSettings::knownAccounts() {
  QList<AccountId> ids;
  foreach(QString key, localChildGroups()) {
    AccountId acc = key.toInt();
    if(acc.isValid()) ids << acc;
  }