X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fcoreconnectdlg.cpp;h=2f51fddf022e458348ba285e29df79b82669921f;hb=97d674034551438238c568e8b42efb08e1ba7354;hp=d2c8d06d114196b84121c9bcbc75c40642b792d1;hpb=849a08cae7c2e3c40c7da34c7cee1e10057f551e;p=quassel.git diff --git a/src/qtui/coreconnectdlg.cpp b/src/qtui/coreconnectdlg.cpp index d2c8d06d..2f51fddf 100644 --- a/src/qtui/coreconnectdlg.cpp +++ b/src/qtui/coreconnectdlg.cpp @@ -23,6 +23,7 @@ #include "global.h" #include "client.h" #include "clientsettings.h" +#include "configwizard.h" CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool /*doAutoConnect*/) : QDialog(parent) { ui.setupUi(this); //qDebug() << "new dlg"; @@ -54,6 +55,8 @@ CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool /*doAutoConnect*/) : QDialo connect(Client::instance(), SIGNAL(coreConnectionProgress(uint, uint)), this, SLOT(updateProgressBar(uint, uint))); connect(Client::instance(), SIGNAL(coreConnectionError(QString)), this, SLOT(coreConnectionError(QString))); connect(Client::instance(), SIGNAL(connected()), this, SLOT(coreConnected())); + + connect(Client::instance(), SIGNAL(showConfigWizard(const QVariantMap &)), this, SLOT(showConfigWizard(const QVariantMap &))); AccountSettings s; ui.accountList->addItems(s.knownAccounts()); @@ -310,3 +313,24 @@ void CoreConnectDlg::recvCoreState(QVariant state) { QVariant CoreConnectDlg::getCoreState() { return coreState; } + +void CoreConnectDlg::showConfigWizard(const QVariantMap &coredata) { + QStringList storageProviders = coredata["StorageProviders"].toStringList(); + ConfigWizard *wizard = new ConfigWizard(storageProviders, this); + wizard->exec(); + QVariantMap reply; + reply["GuiProtocol"] = GUI_PROTOCOL; + reply["HasSettings"] = true; + reply["User"] = wizard->field("adminuser.name").toString(); + reply["Password"] = wizard->field("adminuser.password").toString(); + QString sp = storageProviders.value(wizard->field("storage.provider").toInt()); + reply["Type"] = sp; + if (sp.compare("Sqlite", Qt::CaseInsensitive)) { + reply["Host"] = wizard->field("storage.host").toString(); + reply["Port"] = wizard->field("storage.port").toString(); + reply["Database"] = wizard->field("storage.database").toString(); + reply["User"] = wizard->field("storage.user").toString(); + reply["Password"] = wizard->field("storage.password").toString(); + } + Client::instance()->setCoreConfiguration(reply); +}