#include "bufferinfo.h"
#include "buffersyncer.h"
#include "clientbacklogmanager.h"
+#include "clientirclisthelper.h"
#include "bufferviewmanager.h"
#include "global.h"
#include "identity.h"
_bufferSyncer(0),
_backlogManager(new ClientBacklogManager(this)),
_bufferViewManager(0),
+ _ircListHelper(new ClientIrcListHelper(this)),
_connectedToCore(false),
_syncedToCore(false)
{
_monitorBuffer = new Buffer(BufferInfo(), this);
+ _signalProxy->synchronize(_ircListHelper);
+
connect(_backlogManager, SIGNAL(backlog(BufferId, const QVariantList &)),
this, SLOT(receiveBacklog(BufferId, const QVariantList &)));
}
void Client::init() {
_currentCoreAccount = 0;
_networkModel = new NetworkModel(this);
+
connect(this, SIGNAL(bufferUpdated(BufferInfo)),
_networkModel, SLOT(bufferUpdated(BufferInfo)));
connect(this, SIGNAL(networkRemoved(NetworkId)),
}
void Client::coreNetworkRemoved(NetworkId id) {
- if(!_networks.contains(id)) return;
+ if(!_networks.contains(id))
+ return;
Network *net = _networks.take(id);
emit networkRemoved(net->networkId());
net->deleteLater();
emit coreConnectionStateChanged(true);
}
+void Client::setSecuredConnection() {
+ emit securedConnection();
+}
+
void Client::disconnectFromCore() {
if(!isConnected())
return;
+ _connectedToCore = false;
if(socket) {
socket->close();
socket->deleteLater();
}
- _connectedToCore = false;
_syncedToCore = false;
- setCurrentCoreAccount(0);
emit disconnected();
emit coreConnectionStateChanged(false);
// Clear internal data. Hopefully nothing relies on it at this point.
+ setCurrentCoreAccount(0);
+
if(_bufferSyncer) {
_bufferSyncer->deleteLater();
_bufferSyncer = 0;
_bufferViewManager->deleteLater();
_bufferViewManager = 0;
}
-
+
_networkModel->clear();
QHash<BufferId, Buffer *>::iterator bufferIter = _buffers.begin();
void Client::receiveBacklog(BufferId bufferId, const QVariantList &msgs) {
Buffer *buffer_ = buffer(bufferId);
if(!buffer_) {
- qWarning() << "Client::recvBacklogData(): received Backlog for unknown Buffer:" << bufferId;
+ qWarning() << "Client::receiveBacklog(): received Backlog for unknown Buffer:" << bufferId;
return;
}
if(buffer->layoutMsg()) {
layoutQueue.append(buffer); // Buffer has more messages in its queue --> Round Robin
return;
- }
+ }
if(layoutQueue.isEmpty())
layoutTimer->stop();
}
void Client::bufferRemoved(BufferId bufferId) {
- // first remove the buffer from has. this prohibits further lastSeenUpdates
+ // first remove the buffer from hash. this prohibits further lastSeenUpdates
Buffer *buff = 0;
if(_buffers.contains(bufferId)) {
buff = _buffers.take(bufferId);
+ layoutQueue.removeAll(buff);
disconnect(buff, 0, this, 0);
}