X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcoreconfigwizard.cpp;h=a4cfe166a28e31445940e6f0da1b1bb546964b0d;hp=d2ce4b814027b9cbf4850f102075bceb0afe6cbb;hb=f77a0b720ed58a2b68876b9320742b81b6df871f;hpb=61aac1868f15babb7086d8bc6bbcff530346f438 diff --git a/src/qtui/coreconfigwizard.cpp b/src/qtui/coreconfigwizard.cpp index d2ce4b81..a4cfe166 100644 --- a/src/qtui/coreconfigwizard.cpp +++ b/src/qtui/coreconfigwizard.cpp @@ -27,6 +27,8 @@ #include "coreconfigwizard.h" #include "coreconnection.h" +#include "client.h" + CoreConfigWizard::CoreConfigWizard(CoreConnection *connection, const QList &backends, const QList &authenticators, QWidget *parent) : QWizard(parent), _connection(connection) @@ -35,18 +37,18 @@ CoreConfigWizard::CoreConfigWizard(CoreConnection *connection, const QList CoreConfigWizard::backends() const return _backends; } + QHash CoreConfigWizard::authenticators() const { - return _authenticators; + return _authenticators; } -void CoreConfigWizard::prepareCoreSetup(const QString &backend, const QVariantMap &properties, const QString &authBackend, const QVariantMap &authProperties) + +void CoreConfigWizard::prepareCoreSetup(const QString &backend, const QVariantMap &properties, const QString &authenticator, const QVariantMap &authProperties) { // Prevent the user from changing any settings he already specified... foreach(int idx, visitedPages()) page(idx)->setEnabled(false); - coreConnection()->setupCore(Protocol::SetupData(field("adminUser.user").toString(), field("adminUser.password").toString(), backend, authBackend, properties, authProperties)); + // FIXME? We need to be able to set up older cores that don't have auth backend support. + // So if the core doesn't support that feature, don't pass those parameters. + if (!(Client::coreFeatures() & Quassel::Authenticators)) { + coreConnection()->setupCore(Protocol::SetupData(field("adminUser.user").toString(), field("adminUser.password").toString(), backend, properties)); + } + else { + coreConnection()->setupCore(Protocol::SetupData(field("adminUser.user").toString(), field("adminUser.password").toString(), backend, properties, authenticator, authProperties)); + } } @@ -184,7 +195,13 @@ AdminUserPage::AdminUserPage(QWidget *parent) : QWizardPage(parent) int AdminUserPage::nextId() const { - return CoreConfigWizard::AuthenticationSelectionPage; + // If the core doesn't support auth backends, skip that page! + if (!(Client::coreFeatures() & Quassel::Authenticators)) { + return CoreConfigWizard::StorageSelectionPage; + } + else { + return CoreConfigWizard::AuthenticationSelectionPage; + } } @@ -261,31 +278,6 @@ QVariantMap AuthenticationSelectionPage::connectionProperties() const properties[key] = def; } } - qDebug() << properties; - -// QVariantMap properties = _backends[backend].toMap()["ConnectionProperties"].toMap(); -// if(!properties.isEmpty() && _connectionBox) { -// QVariantMap::iterator propertyIter = properties.begin(); -// while(propertyIter != properties.constEnd()) { -// QWidget *widget = _connectionBox->findChild(propertyIter.key()); -// switch(propertyIter.value().type()) { -// case QVariant::Int: -// { -// QSpinBox *spinbox = qobject_cast(widget); -// Q_ASSERT(spinbox); -// propertyIter.value() = QVariant(spinbox->value()); -// } -// break; -// default: -// { -// QLineEdit *lineEdit = qobject_cast(widget); -// Q_ASSERT(lineEdit); -// propertyIter.value() = QVariant(lineEdit->text()); -// } -// } -// propertyIter++; -// } -// } return properties; } @@ -510,23 +502,23 @@ void SyncPage::initializePage() complete = false; hasError = false; - // Fill in sync info about the storage layer. + // Fill in sync info about the storage layer. StorageSelectionPage *storagePage = qobject_cast(wizard()->page(CoreConfigWizard::StorageSelectionPage)); QString backend = storagePage->selectedBackend(); QVariantMap properties = storagePage->connectionProperties(); - Q_ASSERT(!backend.isEmpty()); + Q_ASSERT(!backend.isEmpty()); ui.backend->setText(backend); - - // Fill in synci nfo about the authentication layer. - AuthenticationSelectionPage *authPage = qobject_cast(wizard()->page(CoreConfigWizard::AuthenticationSelectionPage)); - QString authBackend = authPage->selectedBackend(); + + // Fill in sync info about the authentication layer. + AuthenticationSelectionPage *authPage = qobject_cast(wizard()->page(CoreConfigWizard::AuthenticationSelectionPage)); + QString authenticator = authPage->selectedBackend(); QVariantMap authProperties = authPage->connectionProperties(); - Q_ASSERT(!authBackend.isEmpty()); - ui.authBackend->setText(authBackend); + Q_ASSERT(!authenticator.isEmpty()); + ui.authenticator->setText(authenticator); ui.user->setText(wizard()->field("adminUser.user").toString()); - emit setupCore(backend, properties, authBackend, authProperties); + emit setupCore(backend, properties, authenticator, authProperties); }