#include "signalproxy.h"
#include "util.h"
+#include <stdio.h>
+#include <stdlib.h>
+
QPointer<Client> Client::instanceptr = 0;
AccountId Client::_currentCoreAccount = 0;
/*** core connection stuff ***/
-void Client::setConnectedToCore(QIODevice *socket, AccountId id) {
- // if the socket is an orphan, the signalProxy adopts it.
- // -> we don't need to care about it anymore
- socket->setParent(0);
- signalProxy()->addPeer(socket);
+void Client::setConnectedToCore(AccountId id, QIODevice *socket) {
+ if(socket) { // external core
+ // if the socket is an orphan, the signalProxy adopts it.
+ // -> we don't need to care about it anymore
+ socket->setParent(0);
+ signalProxy()->addPeer(socket);
+ }
_connectedToCore = true;
setCurrentCoreAccount(id);
}
-void Client::setConnectedToInternalCore() {
- _connectedToCore = true;
- setCurrentCoreAccount(AccountId());
-}
-
void Client::setSyncedToCore() {
// create buffersyncer
Q_ASSERT(!_bufferSyncer);
connect(bufferSyncer(), SIGNAL(lastSeenMsgSet(BufferId, MsgId)), _networkModel, SLOT(setLastSeenMsgId(BufferId, MsgId)));
connect(bufferSyncer(), SIGNAL(bufferRemoved(BufferId)), this, SLOT(bufferRemoved(BufferId)));
connect(bufferSyncer(), SIGNAL(bufferRenamed(BufferId, QString)), this, SLOT(bufferRenamed(BufferId, QString)));
+ connect(bufferSyncer(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog()));
+ connect(networkModel(), SIGNAL(setLastSeenMsg(BufferId, MsgId)), bufferSyncer(), SLOT(requestSetLastSeenMsg(BufferId, const MsgId &)));
signalProxy()->synchronize(bufferSyncer());
// create a new BufferViewManager
+ Q_ASSERT(!_bufferViewManager);
_bufferViewManager = new BufferViewManager(signalProxy(), this);
+ connect(bufferViewManager(), SIGNAL(initDone()), this, SLOT(requestInitialBacklog()));
_syncedToCore = true;
emit connected();
emit coreConnectionStateChanged(true);
}
+void Client::requestInitialBacklog() {
+ if(bufferViewManager()->isInitialized() && bufferSyncer()->isInitialized())
+ Client::backlogManager()->requestInitialBacklog();
+}
+
void Client::setSecuredConnection() {
emit securedConnection();
}
}
void Client::logMessage(QtMsgType type, const char *msg) {
- QString prefix;
- switch (type) {
- case QtDebugMsg:
- prefix = "Debug";
- break;
- case QtWarningMsg:
- prefix = "Warning";
- break;
- case QtCriticalMsg:
- prefix = "Critical";
- break;
- case QtFatalMsg:
+ fprintf(stderr, "%s\n", msg);
+ fflush(stderr);
+ if(type == QtFatalMsg) {
Quassel::logFatalMessage(msg);
- return;
+ } else {
+ QString msgString = QString("%1\n").arg(msg);
+ instance()->_debugLog << msgString;
+ emit instance()->logUpdated(msgString);
}
- instance()->_debugLog << prefix << ": " << msg << "\n";
- emit instance()->logUpdated();
}