X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fnetworkinfo.cpp;h=62dacace1d6c379e340d543b9a04ecf5f5d4f601;hp=89e88ccdaf86630959027cd79f54c0a0f50973b6;hb=e008cd12ef319c4b5f9fe5a8cc1524829551771d;hpb=4b45582f5d766e7324fe6d2abd260548ef0b9584 diff --git a/src/common/networkinfo.cpp b/src/common/networkinfo.cpp index 89e88ccd..62dacace 100644 --- a/src/common/networkinfo.cpp +++ b/src/common/networkinfo.cpp @@ -24,6 +24,7 @@ #include "ircchannel.h" #include +#include #include "util.h" @@ -39,7 +40,9 @@ NetworkInfo::NetworkInfo(const uint &networkid, QObject *parent) _currentServer(QString()), _prefixes(QString()), _prefixModes(QString()), - _proxy(NULL) + _proxy(0), + _codecForEncoding(0), + _codecForDecoding(0) { setObjectName(QString::number(networkid)); } @@ -244,6 +247,41 @@ QList NetworkInfo::ircChannels() const { return _ircChannels.values(); } +QTextCodec *NetworkInfo::codecForEncoding() const { + return _codecForEncoding; +} + +void NetworkInfo::setCodecForEncoding(const QString &name) { + setCodecForEncoding(QTextCodec::codecForName(name.toAscii())); +} + +void NetworkInfo::setCodecForEncoding(QTextCodec *codec) { + _codecForEncoding = codec; +} + +QTextCodec *NetworkInfo::codecForDecoding() const { + return _codecForDecoding; +} + +void NetworkInfo::setCodecForDecoding(const QString &name) { + setCodecForDecoding(QTextCodec::codecForName(name.toAscii())); +} + +void NetworkInfo::setCodecForDecoding(QTextCodec *codec) { + _codecForDecoding = codec; +} + +QString NetworkInfo::decodeString(const QByteArray &text) const { + return ::decodeString(text, _codecForDecoding); +} + +QByteArray NetworkInfo::encodeString(const QString string) const { + if(_codecForEncoding) { + return _codecForEncoding->fromUnicode(string); + } + return string.toAscii(); +} + // ==================== // Public Slots: // ====================