Fix license headers: Quassel IRC Team -> Quassel Project, 2007 -> 2008
[quassel.git] / src / common / networkinfo.h
index 6f2ab48..eb2b287 100644 (file)
@@ -1,11 +1,11 @@
 /***************************************************************************
- *   Copyright (C) 2005/06 by The Quassel Team                             *
+ *   Copyright (C) 2005-08 by the Quassel Project                          *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   it under the terms of the GNU General Public License as published by  *
  *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
+ *   (at your option) version 3.                                           *
  *                                                                         *
  *   This program is distributed in the hope that it will be useful,       *
  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
@@ -28,8 +28,9 @@
 #include <QVariantMap>
 #include <QPointer>
 
+#include "types.h"
+
 class SignalProxy;
-class Synchronizer;
 class IrcUser;
 class IrcChannel;
 
@@ -42,12 +43,14 @@ class NetworkInfo : public QObject {
   Q_PROPERTY(QString myNick READ myNick WRITE setMyNick STORED false)
 
 public:
-  NetworkInfo(const uint &networkid, SignalProxy *proxy, QObject *parent = 0);
-  //  virtual ~NetworkInfo();
+  NetworkInfo(const uint &networkid, QObject *parent = 0);
+  //virtual ~NetworkInfo();
 
-  uint networkId() const;
+  NetworkId networkId() const;
   bool initialized() const;
-  Synchronizer *synchronizer();
+
+  SignalProxy *proxy() const;
+  void setProxy(SignalProxy *proxy);
 
   bool isMyNick(const QString &nick) const;
   bool isMyNick(IrcUser *ircuser) const;
@@ -58,7 +61,7 @@ public:
   QString prefixToMode(const QCharRef &prefix);
   QString modeToPrefix(const QString &mode);
   QString modeToPrefix(const QCharRef &mode);
-  
+
   QString networkName() const;
   QString currentServer() const;
   QString myNick() const;
@@ -70,15 +73,30 @@ public:
 
   bool supports(const QString &param) const;
   QString support(const QString &param) const;
-  
+
   IrcUser *newIrcUser(const QString &hostmask);
-  IrcUser *ircUser(const QString &nickname) const;
+  IrcUser *newIrcUser(const QByteArray &hostmask);
+  IrcUser *ircUser(QString nickname) const;
+  IrcUser *ircUser(const QByteArray &nickname) const;
   QList<IrcUser *> ircUsers() const;
-  
+
   IrcChannel *newIrcChannel(const QString &channelname);
-  IrcChannel *ircChannel(const QString &channelname);
+  IrcChannel *newIrcChannel(const QByteArray &channelname);
+  IrcChannel *ircChannel(QString channelname);
+  IrcChannel *ircChannel(const QByteArray &channelname);
+  
   QList<IrcChannel *> ircChannels() const;
 
+  QTextCodec *codecForEncoding() const;
+  QTextCodec *codecForDecoding() const;
+  void setCodecForEncoding(const QString &codecName);
+  void setCodecForEncoding(QTextCodec *codec);
+  void setCodecForDecoding(const QString &codecName);
+  void setCodecForDecoding(QTextCodec *codec);
+
+  QString decodeString(const QByteArray &text) const;
+  QByteArray encodeString(const QString string) const;
+
 public slots:
   void setNetworkName(const QString &networkName);
   void setCurrentServer(const QString &currentServer);
@@ -88,6 +106,7 @@ public slots:
   void removeSupport(const QString &param);
 
   inline void addIrcUser(const QString &hostmask) { newIrcUser(hostmask); }
+  void removeIrcUser(QString nick);
   
   //init geters
   QVariantMap initSupports() const;
@@ -104,23 +123,26 @@ public slots:
   // these slots are to keep the hashlists of all users and the
   // channel lists up to date
   void ircUserNickChanged(QString newnick);
+  void setInitialized();
 
+private slots:
   void ircUserDestroyed();
   void channelDestroyed();
-
-  void setInitialized();
+  void removeIrcUser(IrcUser *ircuser);
   
 signals:
   void networkNameSet(const QString &networkName);
   void currentServerSet(const QString &currentServer);
   void myNickSet(const QString &mynick);
 
-  void supportAdded(const QString &param, const QString &value = QString());
+  void supportAdded(const QString &param, const QString &value);
   void supportRemoved(const QString &param);
   
   void ircUserAdded(QString hostmask);
   void ircChannelAdded(QString channelname);
 
+  void ircUserRemoved(QString nick);
+  
   void initDone();
   void ircUserInitDone();
   void ircChannelInitDone();
@@ -143,9 +165,12 @@ private:
   //QVariantMap networkSettings;
   //QVariantMap identity;
   
-  QPointer<Synchronizer> _synchronizer;
-  
+  QPointer<SignalProxy> _proxy;
   void determinePrefixes();
+
+  QTextCodec *_codecForEncoding;
+  QTextCodec *_codecForDecoding;
+
 };
 
 #endif