X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=main%2Fglobal.cpp;h=3317cfdae71ea21d6baf2bfbcf8901b954c4ed24;hp=4121806f5410664cefa18f11e17cbf41db332bed;hb=ddc5208315db8ca9ca19f6a59ee7caefe631ffc7;hpb=fd718b6209f1ad2bcd199c44c2dae3b0cb0f633b diff --git a/main/global.cpp b/main/global.cpp index 4121806f..3317cfda 100644 --- a/main/global.cpp +++ b/main/global.cpp @@ -22,6 +22,7 @@ #include "logger.h" #include "core.h" #include "message.h" +#include "util.h" #include #include @@ -33,6 +34,9 @@ Global::Global() { qInstallMsgHandler(messageHandler); qRegisterMetaType("Message"); qRegisterMetaTypeStreamOperators("Message"); + qRegisterMetaType("BufferId"); + qRegisterMetaTypeStreamOperators("BufferId"); + //initIconMap(); } @@ -94,6 +98,35 @@ void Global::initIconMap() { */ } +/**************************************************************************************/ + + + +BufferId::BufferId(uint _id, QString _net, QString _buf, uint _gid) : id(_id), gid(_gid), net(_net), buf(_buf) { + + +} + +QString BufferId::buffer() { + if(isChannelName(buf)) return buf; + else return nickFromMask(buf); +} + +QDataStream &operator<<(QDataStream &out, const BufferId &bufferId) { + out << bufferId.id << bufferId.gid << bufferId.net.toUtf8() << bufferId.buf.toUtf8(); +} + +QDataStream &operator>>(QDataStream &in, BufferId &bufferId) { + QByteArray n, b; + BufferId i; + in >> bufferId.id >> bufferId.gid >> n >> b; + bufferId.net = QString::fromUtf8(n); + bufferId.buf = QString::fromUtf8(b); +} + +uint qHash(const BufferId &bid) { + return qHash(bid.id); +} /** * Retrieves an icon determined by its symbolic name. The mapping shall later