X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=main%2Fglobal.cpp;h=3317cfdae71ea21d6baf2bfbcf8901b954c4ed24;hp=25eba7ec6167dae7f0d2cc9d87255ad78cb51b98;hb=8fc3a498f754f34b21d2a163e2a28323dae384cb;hpb=1c7d9f13b744cd517c0769f453fd8dc3106cd94c diff --git a/main/global.cpp b/main/global.cpp index 25eba7ec..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 @@ -32,6 +33,10 @@ Global::Global() { if(global) qFatal("Trying to instantiate more than one Global object!"); qInstallMsgHandler(messageHandler); qRegisterMetaType("Message"); + qRegisterMetaTypeStreamOperators("Message"); + qRegisterMetaType("BufferId"); + qRegisterMetaTypeStreamOperators("BufferId"); + //initIconMap(); } @@ -93,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 @@ -109,3 +143,4 @@ void Global::initIconMap() { Global *global = 0; Global::RunMode Global::runMode; +QString Global::quasselDir;