#include <iostream>
+#include <QtGui>
#include <QApplication>
+#include "style.h"
#include "global.h"
#include "guiproxy.h"
+#include "coreconnectdlg.h"
#include "util.h"
+#include "chatwidget.h"
#include "mainwin.h"
Global::quasselDir = QDir::homePath() + "/.quassel";
global = new Global();
- guiProxy = new GUIProxy();
+ guiProxy = new GuiProxy();
+
+ Style::init();
MainWin mainWin;
+ mainWin.init();
int exitCode = app.exec();
delete guiProxy;
delete global;
+ return exitCode;
}
-GUIProxy::GUIProxy() {
+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("<b>Could not synchronize with Quassel Core!</b><br>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<BufferId>()); }
+}
+
+/*
+
+GuiProxy::GuiProxy() {
if(guiProxy) qFatal("Trying to instantiate more than one CoreProxy object!");
blockSize = 0;
}
-void GUIProxy::connectToCore(QString host, quint16 port) {
+void GuiProxy::connectToCore(QString host, quint16 port) {
socket.connectToHost(host, port);
}
-void GUIProxy::disconnectFromCore() {
+void GuiProxy::disconnectFromCore() {
socket.close();
}
-void GUIProxy::serverError(QAbstractSocket::SocketError) {
+void GuiProxy::serverError(QAbstractSocket::SocketError) {
emit coreConnectionError(socket.errorString());
//qFatal(QString("Connection error: %1").arg(socket.errorString()).toAscii());
}
-void GUIProxy::serverHasData() {
+void GuiProxy::serverHasData() {
QVariant item;
while(readDataFromDevice(&socket, blockSize, item)) {
emit recvPartialItem(1,1);
emit recvPartialItem(socket.bytesAvailable(), blockSize);
}
}
-
-void GUIProxy::send(GUISignal sig, QVariant arg1, QVariant arg2, QVariant arg3) {
+*/
+/*
+void GuiProxy::send(GuiSignal sig, QVariant arg1, QVariant arg2, QVariant arg3) {
QList<QVariant> sigdata;
sigdata.append(sig); sigdata.append(arg1); sigdata.append(arg2); sigdata.append(arg3);
//qDebug() << "Sending signal: " << sigdata;
writeDataToDevice(&socket, QVariant(sigdata));
}
+*/
-void GUIProxy::updateCoreData(QString key) {
+void GuiProxy::updateCoreData(QString key) {
QVariant data = global->getData(key);
send(GS_UPDATE_GLOBAL_DATA, key, data);
}