X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fnetwork.h;h=4a432d841b002969026fb15e1cc2c86a62f317d2;hb=731ec69d4608ba95e3ae4f154b8ca1852e1db2e5;hp=5d272c5a90068b19cba87c46b105859674a000c3;hpb=c2718511214289f58a02207f7988876c420e8c7e;p=quassel.git diff --git a/src/common/network.h b/src/common/network.h index 5d272c5a..4a432d84 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 @@ -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); @@ -207,8 +210,6 @@ public slots: inline void addIrcUser(const QString &hostmask) { newIrcUser(hostmask); } inline void addIrcChannel(const QString &channel) { newIrcChannel(channel); } - void removeIrcUser(const QString &nick); - void removeIrcChannel(const QString &channel); //init geters QVariantMap initSupports() const; @@ -237,13 +238,9 @@ public slots: void emitConnectionError(const QString &); private slots: - void ircUserDestroyed(); - void channelDestroyed(); void removeIrcUser(IrcUser *ircuser); void removeIrcChannel(IrcChannel *ircChannel); void removeChansAndUsers(); - void ircUserInitDone(); - void ircChannelInitDone(); signals: void aboutToBeDestroyed(); @@ -281,20 +278,13 @@ signals: void ircChannelAdded(const QString &channelname); void ircChannelAdded(IrcChannel *); - void ircUserRemoved(const QString &nick); - void ircChannelRemoved(const QString &channel); - - // needed for client sync progress - void ircUserRemoved(QObject *); - void ircChannelRemoved(QObject *); - - void ircUserInitDone(IrcUser *); - void ircChannelInitDone(IrcChannel *); - 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; @@ -338,6 +328,11 @@ private: static QTextCodec *_defaultCodecForServer; static QTextCodec *_defaultCodecForEncoding; static QTextCodec *_defaultCodecForDecoding; + + bool _autoAwayActive; // when this is active handle305 and handle306 don't trigger any output + + friend class IrcUser; + friend class IrcChannel; }; //! Stores all editable information about a network (as opposed to runtime state). @@ -375,6 +370,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