#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);
//}
}
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);
+}