/***************************************************************************
- * Copyright (C) 2005-07 by The Quassel Team *
+ * Copyright (C) 2005-07 by the Quassel IRC Team *
* 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 *
#include <QtGui>
#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";
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();
autoConnectToggled(true);
*/
} else {
- if(!curacc.isEmpty()) {
+ if(!lastacc.isEmpty()) {
//if(doAutoConnect) { qDebug() << "auto";
// AccountSettings s;
// int idx = ui.accountList->findText(s.autoConnectAccount());
// doConnect();
// }
//} else {
- int idx = ui.accountList->findText(curacc);
+ int idx = ui.accountList->findText(lastacc);
ui.accountList->setCurrentIndex(idx);
//}
}
void CoreConnectDlg::doConnect() {
accountChanged(); // save current account info
-
QVariantMap conninfo;
ui.stackedWidget->setCurrentIndex(1);
if(ui.internalCore->isChecked()) {
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);
+}