X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fnetwork.h;h=17853722570ddccc06d818c5a2ea829576e418e4;hb=4ec0f5fc03c28c7bc810d88ecfdf6b07efc9afcd;hp=d94502ee0730b1b5ecbf7b4225817b55c8e67fc3;hpb=257ca0d5f944a8f63d002e1dcaaa3902258d85e0;p=quassel.git diff --git a/src/common/network.h b/src/common/network.h index d94502ee..17853722 100644 --- a/src/common/network.h +++ b/src/common/network.h @@ -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 #include @@ -88,7 +88,7 @@ public: D_CHANMODE = 0x08 }; - + Network(const NetworkId &networkid, QObject *parent = 0); ~Network(); @@ -113,11 +113,11 @@ 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 ¤tServer() const { return _currentServer; } inline const QString &myNick() const { return _myNick; } - inline const int latency() const { return _latency; } + inline int latency() const { return _latency; } inline IrcUser *me() const { return ircUser(myNick()); } inline IdentityId identity() const { return _identity; } QStringList nicks() const; @@ -143,14 +143,14 @@ public: bool supports(const QString ¶m) const { return _supports.contains(param); } QString support(const QString ¶m) 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 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 ¤tServer); @@ -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 _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