X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoresession.cpp;h=dcc5641f1d60e373e6b2c65f42e67a14e74baaa3;hp=602ce78ea08303a075b0245e150255cd2f0432bb;hb=e3198912416b2e4ed3708d66953fd6f4928a2382;hpb=894d66d1d86ccebf9df99e03bc3c174959e7ce76 diff --git a/src/core/coresession.cpp b/src/core/coresession.cpp index 602ce78e..dcc5641f 100644 --- a/src/core/coresession.cpp +++ b/src/core/coresession.cpp @@ -1,11 +1,11 @@ /*************************************************************************** - * Copyright (C) 2005-07 by The Quassel IRC Development Team * + * Copyright (C) 2005-07 by the Quassel IRC Team * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * + * (at your option) version 3. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -24,7 +24,6 @@ #include "signalproxy.h" #include "storage.h" -#include "synchronizer.h" #include "networkinfo.h" #include "ircuser.h" #include "ircchannel.h" @@ -38,7 +37,7 @@ CoreSession::CoreSession(UserId uid, Storage *_storage, QObject *parent) _signalProxy(new SignalProxy(SignalProxy::Server, 0, this)), storage(_storage) { - + QSettings s; s.beginGroup(QString("SessionData/%1").arg(user)); mutex.lock(); @@ -52,7 +51,6 @@ CoreSession::CoreSession(UserId uid, Storage *_storage, QObject *parent) p->attachSlot(SIGNAL(requestNetworkStates()), this, SLOT(serverStateRequested())); p->attachSlot(SIGNAL(requestConnect(QString)), this, SLOT(connectToNetwork(QString))); p->attachSlot(SIGNAL(sendInput(BufferInfo, QString)), this, SLOT(msgFromGui(BufferInfo, QString))); - p->attachSlot(SIGNAL(importOldBacklog()), storage, SLOT(importOldBacklog())); p->attachSlot(SIGNAL(requestBacklog(BufferInfo, QVariant, QVariant)), this, SLOT(sendBacklog(BufferInfo, QVariant, QVariant))); p->attachSignal(this, SIGNAL(displayMsg(Message))); p->attachSignal(this, SIGNAL(displayStatusMsg(QString, QString))); @@ -104,6 +102,10 @@ QVariant CoreSession::retrieveSessionData(const QString &key, const QVariant &de // FIXME switch to NetworkIDs void CoreSession::connectToNetwork(QString network) { uint networkid = getNetworkId(network); + if(networkid == 0) { + qWarning() << "unable to connect to Network" << network << "(User:" << userId() << "): unable to determine NetworkId"; + return; + } if(!servers.contains(networkid)) { Server *server = new Server(userId(), networkid, network); servers[networkid] = server; @@ -146,8 +148,9 @@ void CoreSession::serverConnected(uint networkid) { } void CoreSession::serverDisconnected(uint networkid) { - servers.remove(networkid); - delete servers[networkid]; + Q_ASSERT(servers.contains(networkid)); + servers.take(networkid)->deleteLater(); + Q_ASSERT(!servers.contains(networkid)); } void CoreSession::msgFromGui(BufferInfo bufid, QString msg) {