X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fcoreconnectdlg.cpp;h=16d4552c4fc616de23a5dbd126cb002d2cba04e8;hb=99c92e21b3b9eb5ed661632cdfb69aabfc6b2deb;hp=4d0740c5385ede94414faefa8d82ec19ba9783ce;hpb=9fd4619e9aca7d53d7c5df156a0b25956a1bf682;p=quassel.git diff --git a/src/qtui/coreconnectdlg.cpp b/src/qtui/coreconnectdlg.cpp index 4d0740c5..16d4552c 100644 --- a/src/qtui/coreconnectdlg.cpp +++ b/src/qtui/coreconnectdlg.cpp @@ -20,9 +20,10 @@ #include #include "coreconnectdlg.h" -#include "global.h" #include "client.h" #include "clientsettings.h" +#include "configwizard.h" +#include "global.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()); @@ -208,7 +211,6 @@ void CoreConnectDlg::doAutoConnect() { void CoreConnectDlg::doConnect() { accountChanged(); // save current account info - QVariantMap conninfo; ui.stackedWidget->setCurrentIndex(1); if(ui.internalCore->isChecked()) { @@ -311,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); +}