X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fnetwork.cpp;h=f1cff6cf41475b2e9f7c0e1d5b1039437c8709f3;hp=982011becaa5c5ce711243f6d6b658bcd3550769;hb=c5cbe5eb77fce2ab954a98399a1450803108217b;hpb=6f2f1723f5bb3d26908f6dd297890f6fba43793b diff --git a/src/common/network.cpp b/src/common/network.cpp index 982011be..f1cff6cf 100644 --- a/src/common/network.cpp +++ b/src/common/network.cpp @@ -48,13 +48,15 @@ Network::Network(const NetworkId &networkid, QObject *parent) : SyncableObject(p } // I think this is unnecessary since IrcUsers have us as their daddy :) -//Network::~Network() { -// QHashIterator ircuser(_ircUsers); -// while (ircuser.hasNext()) { -// ircuser.next(); -// delete ircuser.value(); -// } -//} +/* +Network::~Network() { + QHashIterator ircuser(_ircUsers); + while (ircuser.hasNext()) { + ircuser.next(); + delete ircuser.value(); + } +} +*/ NetworkId Network::networkId() const { return _networkId; @@ -91,6 +93,26 @@ bool Network::isConnected() const { return _connected; } +NetworkInfo Network::networkInfo() const { + NetworkInfo info; + info.networkName = networkName(); + info.networkId = networkId(); + info.identity = identity(); + info.codecForEncoding = codecForEncoding(); + info.codecForDecoding = codecForDecoding(); + info.serverList = serverList(); + return info; +} + +void Network::setNetworkInfo(const NetworkInfo &info) { + // we don't set our ID! + if(!info.networkName.isEmpty()) setNetworkName(info.networkName); + if(info.identity > 0) setIdentity(info.identity); + if(!info.codecForEncoding.isEmpty()) setCodecForEncoding(QTextCodec::codecForName(info.codecForEncoding)); + if(!info.codecForDecoding.isEmpty()) setCodecForDecoding(QTextCodec::codecForName(info.codecForDecoding)); + if(info.serverList.count()) setServerList(info.serverList); +} + QString Network::prefixToMode(const QString &prefix) { if(prefixes().contains(prefix)) return QString(prefixModes()[prefixes().indexOf(prefix)]); @@ -261,7 +283,7 @@ IrcChannel *Network::newIrcChannel(const QByteArray &channelname) { return newIrcChannel(decodeString(channelname)); } -IrcChannel *Network::ircChannel(QString channelname) { +IrcChannel *Network::ircChannel(QString channelname) const { channelname = channelname.toLower(); if(_ircChannels.contains(channelname)) return _ircChannels[channelname]; @@ -269,7 +291,7 @@ IrcChannel *Network::ircChannel(QString channelname) { return 0; } -IrcChannel *Network::ircChannel(const QByteArray &channelname) { +IrcChannel *Network::ircChannel(const QByteArray &channelname) const { return ircChannel(decodeString(channelname)); } @@ -293,6 +315,7 @@ void Network::setCodecForEncoding(const QByteArray &name) { void Network::setCodecForEncoding(QTextCodec *codec) { _codecForEncoding = codec; + emit codecForEncodingSet(codecForEncoding()); } QByteArray Network::codecForDecoding() const { @@ -306,6 +329,7 @@ void Network::setCodecForDecoding(const QByteArray &name) { void Network::setCodecForDecoding(QTextCodec *codec) { _codecForDecoding = codec; + emit codecForDecodingSet(codecForDecoding()); } QString Network::decodeString(const QByteArray &text) const {