Load Qt's default translations if available, fixes BR #400
[quassel.git] / src / common / network.h
index 1371231..1785372 100644 (file)
@@ -18,8 +18,8 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef NETWORK_H_
-#define NETWORK_H_
+#ifndef NETWORK_H
+#define NETWORK_H
 
 #include <QString>
 #include <QStringList>
@@ -88,7 +88,7 @@ public:
     D_CHANMODE = 0x08
   };
 
-  
+
   Network(const NetworkId &networkid, QObject *parent = 0);
   ~Network();
 
@@ -113,7 +113,7 @@ public:
 
   ChannelModeType channelModeType(const QString &mode);
   inline ChannelModeType channelModeType(const QCharRef &mode) { return channelModeType(QString(mode)); }
-  
+
   inline const QString &networkName() const { return _networkName; }
   inline const QString &currentServer() const { return _currentServer; }
   inline const QString &myNick() const { return _myNick; }
@@ -143,14 +143,14 @@ public:
   bool supports(const QString &param) const { return _supports.contains(param); }
   QString support(const QString &param) const;
 
-  IrcUser *newIrcUser(const QString &hostmask);
+  IrcUser *newIrcUser(const QString &hostmask, const QVariantMap &initData = QVariantMap());
   inline IrcUser *newIrcUser(const QByteArray &hostmask) { return newIrcUser(decodeServerString(hostmask)); }
   IrcUser *ircUser(QString nickname) const;
   inline IrcUser *ircUser(const QByteArray &nickname) const { return ircUser(decodeServerString(nickname)); }
   inline QList<IrcUser *> ircUsers() const { return _ircUsers.values(); }
   inline quint32 ircUserCount() const { return _ircUsers.count(); }
 
-  IrcChannel *newIrcChannel(const QString &channelname);
+  IrcChannel *newIrcChannel(const QString &channelname, const QVariantMap &initData = QVariantMap());
   inline IrcChannel *newIrcChannel(const QByteArray &channelname) { return newIrcChannel(decodeServerString(channelname)); }
   IrcChannel *ircChannel(QString channelname) const;
   inline IrcChannel *ircChannel(const QByteArray &channelname) const { return ircChannel(decodeServerString(channelname)); }
@@ -176,6 +176,9 @@ public:
   static void setDefaultCodecForEncoding(const QByteArray &name);
   static void setDefaultCodecForDecoding(const QByteArray &name);
 
+  bool autoAwayActive() const { return _autoAwayActive; }
+  void setAutoAwayActive(bool active) { _autoAwayActive = active; }
+
 public slots:
   void setNetworkName(const QString &networkName);
   void setCurrentServer(const QString &currentServer);
@@ -216,14 +219,14 @@ public slots:
   virtual QVariantMap initIrcUsersAndChannels() const;
 //   QStringList initIrcUsers() const;
 //   QStringList initIrcChannels() const;
-  
+
   //init seters
   void initSetSupports(const QVariantMap &supports);
   inline void initSetServerList(const QVariantList &serverList) { setServerList(serverList); }
   virtual void initSetIrcUsersAndChannels(const QVariantMap &usersAndChannels);
 //   void initSetIrcUsers(const QStringList &hostmasks);
 //   void initSetIrcChannels(const QStringList &channels);
-  
+
   IrcUser *updateNickFromMask(const QString &mask);
 
   // these slots are to keep the hashlists of all users and the
@@ -232,6 +235,7 @@ public slots:
 
   virtual inline void requestConnect() const { emit connectRequested(); }
   virtual inline void requestDisconnect() const { emit disconnectRequested(); }
+  virtual inline void requestSetNetworkInfo(const NetworkInfo &info) { emit setNetworkInfoRequested(info); }
 
   void emitConnectionError(const QString &);
 
@@ -292,6 +296,10 @@ signals:
 
   void connectRequested(NetworkId id = 0) const;
   void disconnectRequested(NetworkId id = 0) const;
+  void setNetworkInfoRequested(const NetworkInfo &) const;
+
+protected:
+  inline virtual IrcChannel *ircChannelFactory(const QString &channelname) { return new IrcChannel(channelname, this); }
 
 private:
   QPointer<SignalProxy> _proxy;
@@ -336,6 +344,8 @@ private:
   static QTextCodec *_defaultCodecForServer;
   static QTextCodec *_defaultCodecForEncoding;
   static QTextCodec *_defaultCodecForDecoding;
+
+  bool _autoAwayActive; // when this is active handle305 and handle306 don't trigger any output
 };
 
 //! Stores all editable information about a network (as opposed to runtime state).
@@ -373,6 +383,6 @@ QDataStream &operator<<(QDataStream &out, const NetworkInfo &info);
 QDataStream &operator>>(QDataStream &in, NetworkInfo &info);
 QDebug operator<<(QDebug dbg, const NetworkInfo &i);
 
-Q_DECLARE_METATYPE(NetworkInfo);
+Q_DECLARE_METATYPE(NetworkInfo)
 
 #endif