#include "util.h"
#include "coreusersettings.h"
+#include "logger.h"
CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent)
: QObject(parent),
_user(uid),
_signalProxy(new SignalProxy(SignalProxy::Server, 0, this)),
+ _aliasManager(this),
_bufferSyncer(new BufferSyncer(this)),
_backlogManager(new CoreBacklogManager(this)),
_bufferViewManager(new CoreBufferViewManager(_signalProxy, this)),
_ircListHelper(new CoreIrcListHelper(this)),
+ _coreInfo(this),
scriptEngine(new QScriptEngine(this))
{
p->synchronize(_bufferSyncer);
- // init BacklogManager;
+ // init alias manager
+ p->synchronize(&aliasManager());
+
+ // init BacklogManager
p->synchronize(_backlogManager);
- // init IrcListHelper;
+ // init IrcListHelper
p->synchronize(ircListHelper());
+ // init CoreInfo
+ p->synchronize(&_coreInfo);
+
// Restore session state
if(restoreState) restoreSessionState();
foreach(IdentityId id, s.identityIds()) {
Identity *i = new Identity(s.identity(id), this);
if(!i->isValid()) {
- qWarning() << QString("Invalid identity! Removing...");
+ quWarning() << "Invalid identity! Removing...";
s.removeIdentity(id);
delete i;
continue;
}
if(_identities.contains(i->id())) {
- qWarning() << "Duplicate identity, ignoring!";
+ quWarning() << "Duplicate identity, ignoring!";
delete i;
continue;
}
void CoreSession::connectToNetwork(NetworkId id) {
CoreNetwork *net = network(id);
if(!net) {
- qWarning() << "Connect to unknown network requested! net:" << id << "user:" << user();
+ quWarning() << "Connect to unknown network requested! net:" << id << "user:" << user();
return;
}
void CoreSession::addClient(QObject *dev) { // this is QObject* so we can use it in signal connections
QIODevice *device = qobject_cast<QIODevice *>(dev);
if(!device) {
- qWarning() << "Invoking CoreSession::addClient with a QObject that is not a QIODevice!";
+ quError() << "Invoking CoreSession::addClient with a QObject that is not a QIODevice!";
} else {
signalProxy()->addPeer(device);
QVariantMap reply;
// no checks for validity check - privateslot...
QTcpSocket *socket = qobject_cast<QTcpSocket *>(iodev);
if(socket)
- qDebug() << qPrintable(tr("Client %1 disconnected (UserId: %2).").arg(socket->peerAddress().toString()).arg(user().toInt()));
+ quInfo() << qPrintable(tr("Client")) << qPrintable(socket->peerAddress().toString()) << qPrintable(tr("disconnected (UserId: %1).").arg(user().toInt()));
else
- qDebug() << "Local client disconnedted.";
+ quInfo() << "Local client disconnedted.";
disconnect(socket, 0, this, 0);
socket->deleteLater();
}
if(conn) {
conn->userInput(bufinfo, msg);
} else {
- qWarning() << "Trying to send to unconnected network:" << msg;
+ quWarning() << "Trying to send to unconnected network:" << msg;
}
}
void CoreSession::updateIdentity(const Identity &id) {
if(!_identities.contains(id.id())) {
- qWarning() << "Update request for unknown identity received!";
+ quWarning() << "Update request for unknown identity received!";
return;
}
_identities[id.id()]->update(id);
Core::createNetwork(user(), info);
if(!info.networkId.isValid()) {
- qWarning() << qPrintable(tr("CoreSession::createNetwork(): Got invalid networkId from Core when trying to create network %1!").arg(info.networkName));
+ quWarning() << qPrintable(tr("CoreSession::createNetwork(): Got invalid networkId from Core when trying to create network %1!").arg(info.networkName));
return;
}
signalProxy()->synchronize(net);
emit networkCreated(id);
} else {
- qWarning() << qPrintable(tr("CoreSession::createNetwork(): Trying to create a network that already exists, updating instead!"));
+ quWarning() << qPrintable(tr("CoreSession::createNetwork(): Trying to create a network that already exists, updating instead!"));
updateNetwork(info);
}
}
// FIXME: move to CoreNetwork
void CoreSession::updateNetwork(const NetworkInfo &info) {
if(!_networks.contains(info.networkId)) {
- qWarning() << "Update request for unknown network received!";
+ quWarning() << "Update request for unknown network received!";
return;
}
_networks[info.networkId]->setNetworkInfo(info);
// this can happen if the network was reconnecting while being removed
_connections.take(id)->deleteLater();
}
+ QList<BufferId> removedBuffers = Core::requestBufferIdsForNetwork(user(), id);
Network *net = _networks.take(id);
if(net && Core::removeNetwork(user(), id)) {
+ foreach(BufferId bufferId, removedBuffers) {
+ _bufferSyncer->removeBuffer(bufferId);
+ }
emit networkRemoved(id);
net->deleteLater();
}
void CoreSession::removeBufferRequested(BufferId bufferId) {
BufferInfo bufferInfo = Core::getBufferInfo(user(), bufferId);
if(!bufferInfo.isValid()) {
- qWarning() << "CoreSession::removeBufferRequested(): invalid BufferId:" << bufferId << "for User:" << user();
+ quWarning() << "CoreSession::removeBufferRequested(): invalid BufferId:" << bufferId << "for User:" << user();
return;
}
if(bufferInfo.type() == BufferInfo::StatusBuffer) {
- qWarning() << "CoreSession::removeBufferRequested(): Status Buffers cannot be removed!";
+ quWarning() << "CoreSession::removeBufferRequested(): Status Buffers cannot be removed!";
return;
}
if(bufferInfo.type() == BufferInfo::ChannelBuffer) {
CoreNetwork *net = network(bufferInfo.networkId());
if(!net) {
- qWarning() << "CoreSession::removeBufferRequested(): Received BufferInfo with unknown networkId!";
+ quWarning() << "CoreSession::removeBufferRequested(): Received BufferInfo with unknown networkId!";
return;
}
IrcChannel *chan = net->ircChannel(bufferInfo.bufferName());
if(chan) {
- qWarning() << "CoreSession::removeBufferRequested(): Unable to remove Buffer for joined Channel:" << bufferInfo.bufferName();
+ quWarning() << "CoreSession::removeBufferRequested(): Unable to remove Buffer for joined Channel:" << bufferInfo.bufferName();
return;
}
}