X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcoreconnectdlg.cpp;h=643b0fff5f14ba10e519fc29509b2338fbdce74b;hp=d2c8d06d114196b84121c9bcbc75c40642b792d1;hb=1989f165c2b754a42d3f06dfb5c33afd6111d820;hpb=c0ca17fde48836a5d2e7ea9ceaaabcdd7225d9b8 diff --git a/src/qtui/coreconnectdlg.cpp b/src/qtui/coreconnectdlg.cpp index d2c8d06d..643b0fff 100644 --- a/src/qtui/coreconnectdlg.cpp +++ b/src/qtui/coreconnectdlg.cpp @@ -1,11 +1,11 @@ /*************************************************************************** - * Copyright (C) 2005-07 by The Quassel Team * + * Copyright (C) 2005-08 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * + * (at your option) version 3. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -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(); @@ -68,7 +71,7 @@ CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool /*doAutoConnect*/) : QDialo if(!newacc.isEmpty()) { ui.accountList->addItem(newacc); ui.hostEdit->setText("localhost"); - ui.port->setValue(DEFAULT_PORT); + ui.port->setValue(Global::defaultPort); ui.internalCore->setChecked(false); setAccountEditEnabled(true); } @@ -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); //} } @@ -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); +}