X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=main%2Fmain_gui.cpp;h=f48f615c4abca5172c3134c5f812a636c607e132;hp=7dc2d53f4d0e2cb6f545b850f907015212ea5b14;hb=8fc3a498f754f34b21d2a163e2a28323dae384cb;hpb=117a8a4d7ced61a3e374f20c74bea1834386a1d7 diff --git a/main/main_gui.cpp b/main/main_gui.cpp index 7dc2d53f..f48f615c 100644 --- a/main/main_gui.cpp +++ b/main/main_gui.cpp @@ -20,11 +20,15 @@ #include +#include #include +#include "style.h" #include "global.h" #include "guiproxy.h" +#include "coreconnectdlg.h" #include "util.h" +#include "chatwidget.h" #include "mainwin.h" @@ -40,10 +44,49 @@ int main(int argc, char **argv) { global = new Global(); guiProxy = new GUIProxy(); + Style::init(); + MainWin mainWin; + mainWin.init(); int exitCode = app.exec(); delete guiProxy; delete global; + return exitCode; +} + +void MainWin::syncToCore() { + Q_ASSERT(!global->getData("CoreReady").toBool()); + // ok, we are running as standalone GUI + coreConnectDlg = new CoreConnectDlg(this); + if(coreConnectDlg->exec() != QDialog::Accepted) { + //qApp->quit(); + exit(1); + } + VarMap state = coreConnectDlg->getCoreState().toMap(); + delete coreConnectDlg; + VarMap data = state["CoreData"].toMap(); + QString key; + foreach(key, data.keys()) { + global->updateData(key, data[key]); + } + if(!global->getData("CoreReady").toBool()) { + QMessageBox::critical(this, tr("Fatal Error"), tr("Could not synchronize with Quassel Core!
Quassel GUI will be aborted."), QMessageBox::Abort); + //qApp->quit(); + exit(1); + } + /* + foreach(QString net, state["CoreBackLog"].toMap().keys()) { + QByteArray logbuf = state["CoreBackLog"].toMap()[net].toByteArray(); + QDataStream in(&logbuf, QIODevice::ReadOnly); in.setVersion(QDataStream::Qt_4_2); + while(!in.atEnd()) { + Message msg; in >> msg; + coreBackLog[net].append(msg); + } + qDebug() << net << coreBackLog[net].count(); + } + */ + coreBuffers.clear(); + foreach(QVariant v, state["CoreBuffers"].toList()) { coreBuffers.append(v.value()); } } GUIProxy::GUIProxy() {