X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=main%2Fmain_gui.cpp;h=b6e15b09374be6cec53e3ed14d121f933e93ff70;hb=c69e4d8146bb92a61cc5d43cbb71cb1912567bee;hp=bf6ed14677a1448b5ec5f9c9de107b514c0cafcf;hpb=04e21ce26ebabdde9586ca9d2a3168431e448df5;p=quassel.git diff --git a/main/main_gui.cpp b/main/main_gui.cpp index bf6ed146..b6e15b09 100644 --- a/main/main_gui.cpp +++ b/main/main_gui.cpp @@ -20,10 +20,12 @@ #include +#include #include -#include "quassel.h" +#include "global.h" #include "guiproxy.h" +#include "coreconnectdlg.h" #include "util.h" #include "mainwin.h" @@ -35,6 +37,8 @@ int main(int argc, char **argv) { QApplication::setOrganizationName("The Quassel Team"); Global::runMode = Global::GUIOnly; + Global::quasselDir = QDir::homePath() + "/.quassel"; + global = new Global(); guiProxy = new GUIProxy(); @@ -44,6 +48,37 @@ int main(int argc, char **argv) { delete global; } +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(); + } +} + GUIProxy::GUIProxy() { if(guiProxy) qFatal("Trying to instantiate more than one CoreProxy object!"); @@ -61,9 +96,6 @@ GUIProxy::GUIProxy() { void GUIProxy::connectToCore(QString host, quint16 port) { socket.connectToHost(host, port); - //VarMap initmsg; - //initmsg["GUIProtocol"] = GUI_PROTOCOL; - //send(GS_CLIENT_INIT, QVariant(initmsg)); } void GUIProxy::disconnectFromCore() { @@ -72,6 +104,7 @@ void GUIProxy::disconnectFromCore() { void GUIProxy::serverError(QAbstractSocket::SocketError) { emit coreConnectionError(socket.errorString()); + //qFatal(QString("Connection error: %1").arg(socket.errorString()).toAscii()); } void GUIProxy::serverHasData() {