Fixed Bug #20 (Handle Numeric Reply 433 ERR_NICKNAMEINUSE properly)
[quassel.git] / main / global.cpp
index 7a47771..3317cfd 100644 (file)
 #include "global.h"
 #include "logger.h"
 #include "core.h"
+#include "message.h"
+#include "util.h"
 
-#include <QString>
-#include <QStringList>
+#include <QtCore>
 #include <QDomDocument>
 
 extern void messageHandler(QtMsgType type, const char *msg);
@@ -31,6 +32,11 @@ extern void messageHandler(QtMsgType type, const char *msg);
 Global::Global() {
   if(global) qFatal("Trying to instantiate more than one Global object!");
   qInstallMsgHandler(messageHandler);
+  qRegisterMetaType<Message>("Message");
+  qRegisterMetaTypeStreamOperators<Message>("Message");
+  qRegisterMetaType<BufferId>("BufferId");
+  qRegisterMetaTypeStreamOperators<BufferId>("BufferId");
+
   //initIconMap();
 }
 
@@ -92,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
@@ -108,3 +143,4 @@ void Global::initIconMap() {
 
 Global *global = 0;
 Global::RunMode Global::runMode;
+QString Global::quasselDir;