X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcoreconfigwizard.cpp;h=837b08442a69e70c18888879da658ef997804d32;hp=0d5c9778a1f96cf925f5e4684633fd8e5e7bf7b4;hb=5ba28fb36a747bd9a2c05a58f0533d1e38c2a0de;hpb=7b4bac1b744a407d51f0ece67e0d531206ddad0b diff --git a/src/qtui/coreconfigwizard.cpp b/src/qtui/coreconfigwizard.cpp index 0d5c9778..837b0844 100644 --- a/src/qtui/coreconfigwizard.cpp +++ b/src/qtui/coreconfigwizard.cpp @@ -24,15 +24,24 @@ #include #include "coreconfigwizard.h" +#include "coreconnection.h" #include "iconloader.h" -CoreConfigWizard::CoreConfigWizard(const QList &backends, QWidget *parent) : QWizard(parent) { - foreach(QVariant v, backends) _backends[v.toMap()["DisplayName"].toString()] = v; +CoreConfigWizard::CoreConfigWizard(CoreConnection *connection, const QList &backends, QWidget *parent) + : QWizard(parent), + _connection(connection) +{ + setModal(true); + setAttribute(Qt::WA_DeleteOnClose); + + foreach(const QVariant &v, backends) + _backends[v.toMap()["DisplayName"].toString()] = v; + setPage(IntroPage, new CoreConfigWizardPages::IntroPage(this)); setPage(AdminUserPage, new CoreConfigWizardPages::AdminUserPage(this)); setPage(StorageSelectionPage, new CoreConfigWizardPages::StorageSelectionPage(_backends, this)); syncPage = new CoreConfigWizardPages::SyncPage(this); - connect(syncPage, SIGNAL(setupCore(const QString &, const QVariantMap &)), this, SLOT(prepareCoreSetup(const QString &, const QVariantMap &))); + connect(syncPage, SIGNAL(setupCore(const QString &, const QVariantMap &)), SLOT(prepareCoreSetup(const QString &, const QVariantMap &))); setPage(SyncPage, syncPage); syncRelayPage = new CoreConfigWizardPages::SyncRelayPage(this); connect(syncRelayPage, SIGNAL(startOver()), this, SLOT(startOver())); @@ -59,6 +68,12 @@ CoreConfigWizard::CoreConfigWizard(const QList &backends, QWidget *par setWindowTitle(tr("Core Configuration Wizard")); setPixmap(QWizard::LogoPixmap, DesktopIcon("quassel")); + + connect(connection, SIGNAL(coreSetupSuccess()), SLOT(coreSetupSuccess())); + connect(connection, SIGNAL(coreSetupFailed(QString)), SLOT(coreSetupFailed(QString))); + //connect(connection, SIGNAL(loginSuccess()), SLOT(loginSuccess())); + connect(connection, SIGNAL(synchronized()), SLOT(syncFinished())); + connect(this, SIGNAL(rejected()), connection, SLOT(disconnectFromCore())); } QHash CoreConfigWizard::backends() const { @@ -75,18 +90,14 @@ void CoreConfigWizard::prepareCoreSetup(const QString &backend, const QVariantMa foo["AdminPasswd"] = field("adminUser.password").toString(); foo["Backend"] = backend; foo["ConnectionProperties"] = properties; - emit setupCore(foo); + coreConnection()->doCoreSetup(foo); } void CoreConfigWizard::coreSetupSuccess() { syncPage->setStatus(tr("Your core has been successfully configured. Logging you in...")); syncPage->setError(false); syncRelayPage->setMode(CoreConfigWizardPages::SyncRelayPage::Error); - QVariantMap loginData; - loginData["User"] = field("adminUser.user"); - loginData["Password"] = field("adminUser.password"); - loginData["RememberPasswd"] = field("adminUser.rememberPasswd"); - emit loginToCore(loginData); + coreConnection()->loginToCore(field("adminUser.user").toString(), field("adminUser.password").toString(), field("adminUser.rememberPasswd").toBool()); } void CoreConfigWizard::coreSetupFailed(const QString &error) { @@ -112,8 +123,7 @@ void CoreConfigWizard::loginSuccess() { } void CoreConfigWizard::syncFinished() { - // TODO: display identities and networks settings if appropriate! - // accept(); + accept(); } namespace CoreConfigWizardPages { @@ -201,22 +211,22 @@ QVariantMap StorageSelectionPage::connectionProperties() const { QWidget *widget = _connectionBox->findChild(key); QVariant def; if(defaults.contains(key)) { - def = defaults[key]; + def = defaults[key]; } switch(def.type()) { case QVariant::Int: - { - QSpinBox *spinbox = qobject_cast(widget); - Q_ASSERT(spinbox); - def = QVariant(spinbox->value()); - } - break; + { + QSpinBox *spinbox = qobject_cast(widget); + Q_ASSERT(spinbox); + def = QVariant(spinbox->value()); + } + break; default: - { - QLineEdit *lineEdit = qobject_cast(widget); - Q_ASSERT(lineEdit); - def = QVariant(lineEdit->text()); - } + { + QLineEdit *lineEdit = qobject_cast(widget); + Q_ASSERT(lineEdit); + def = QVariant(lineEdit->text()); + } } properties[key] = def; } @@ -271,25 +281,25 @@ void StorageSelectionPage::on_backendList_currentIndexChanged() { QWidget *widget = 0; QVariant def; if(defaults.contains(key)) { - def = defaults[key]; + def = defaults[key]; } switch(def.type()) { case QVariant::Int: - { - QSpinBox *spinbox = new QSpinBox(propertyBox); - spinbox->setMaximum(64000); - spinbox->setValue(def.toInt()); - widget = spinbox; - } - break; + { + QSpinBox *spinbox = new QSpinBox(propertyBox); + spinbox->setMaximum(64000); + spinbox->setValue(def.toInt()); + widget = spinbox; + } + break; default: - { - QLineEdit *lineEdit = new QLineEdit(def.toString(), propertyBox); - if(key.toLower().contains("password")) { - lineEdit->setEchoMode(QLineEdit::Password); - } - widget = lineEdit; - } + { + QLineEdit *lineEdit = new QLineEdit(def.toString(), propertyBox); + if(key.toLower().contains("password")) { + lineEdit->setEchoMode(QLineEdit::Password); + } + widget = lineEdit; + } } widget->setObjectName(key); formlayout->addRow(key + ":", widget);