X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fcoreconnectdlg.cpp;h=c3c73d5237dc9555cb378e397378fe1bcd9ed823;hb=5df99c1ab83baf3a6caef7e49177f84bd48d127e;hp=4d0740c5385ede94414faefa8d82ec19ba9783ce;hpb=9fd4619e9aca7d53d7c5df156a0b25956a1bf682;p=quassel.git diff --git a/src/qtui/coreconnectdlg.cpp b/src/qtui/coreconnectdlg.cpp index 4d0740c5..c3c73d52 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,10 +55,12 @@ 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; + QString lastacc = s.lastAccount(); ui.accountList->addItems(s.knownAccounts()); - curacc = s.lastAccount(); if(!ui.accountList->count()) { //if(doAutoConnect) reject(); @@ -87,7 +90,7 @@ CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool /*doAutoConnect*/) : QDialo autoConnectToggled(true); */ } else { - if(!curacc.isEmpty()) { + if(!lastacc.isEmpty()) { //if(doAutoConnect) { qDebug() << "auto"; // AccountSettings s; // int idx = ui.accountList->findText(s.autoConnectAccount()); @@ -97,7 +100,7 @@ CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool /*doAutoConnect*/) : QDialo // doConnect(); // } //} else { - int idx = ui.accountList->findText(curacc); + int idx = ui.accountList->findText(lastacc); ui.accountList->setCurrentIndex(idx); //} } @@ -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); +}