X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fnetwork.h;h=6a58d841ad62317e4d47cd1c13730d8c5730150a;hp=93d9d515a401fda318d1c212850f457ada9278c3;hb=d1b6499b0b848d4287efae89107576548533502c;hpb=f37791b92e3bf6e78b93036c0669926eeba3347b diff --git a/src/common/network.h b/src/common/network.h index 93d9d515..6a58d841 100644 --- a/src/common/network.h +++ b/src/common/network.h @@ -21,12 +21,14 @@ #ifndef _NETWORK_H_ #define _NETWORK_H_ +#include #include #include #include #include #include #include +#include #include "types.h" #include "syncableobject.h" @@ -35,6 +37,7 @@ class SignalProxy; class IrcUser; class IrcChannel; +// TODO: ConnectionInfo to propagate and sync the current state of NetworkConnection, encodings etcpp class Network : public SyncableObject { Q_OBJECT @@ -42,19 +45,22 @@ class Network : public SyncableObject { Q_PROPERTY(QString networkName READ networkName WRITE setNetworkName STORED false) Q_PROPERTY(QString currentServer READ currentServer WRITE setCurrentServer STORED false) Q_PROPERTY(QString myNick READ myNick WRITE setMyNick STORED false) + Q_PROPERTY(QByteArray codecForEncoding READ codecForEncoding WRITE setCodecForEncoding STORED false) + Q_PROPERTY(QByteArray codecForDecoding READ codecForDecoding WRITE setCodecForDecoding STORED false) + Q_PROPERTY(IdentityId identityId READ identity WRITE setIdentity STORED false) + // Q_PROPERTY(bool isConnected READ isConnected STORED false) public: - Network(const uint &networkid, QObject *parent = 0); + Network(const NetworkId &networkid, QObject *parent = 0); //virtual ~Network(); NetworkId networkId() const; - bool initialized() const; SignalProxy *proxy() const; void setProxy(SignalProxy *proxy); bool isMyNick(const QString &nick) const; - bool isMyNick(IrcUser *ircuser) const; + bool isMe(IrcUser *ircuser) const; bool isChannelName(const QString &channelname) const; @@ -66,8 +72,10 @@ public: QString networkName() const; QString currentServer() const; QString myNick() const; + IdentityId identity() const; QStringList nicks() const; QStringList channels() const; + QList serverList() const; QString prefixes(); QString prefixModes(); @@ -80,19 +88,18 @@ public: IrcUser *ircUser(QString nickname) const; IrcUser *ircUser(const QByteArray &nickname) const; QList ircUsers() const; + quint32 ircUserCount() const; IrcChannel *newIrcChannel(const QString &channelname); IrcChannel *newIrcChannel(const QByteArray &channelname); IrcChannel *ircChannel(QString channelname); IrcChannel *ircChannel(const QByteArray &channelname); - QList ircChannels() const; + quint32 ircChannelCount() const; - QTextCodec *codecForEncoding() const; - QTextCodec *codecForDecoding() const; - void setCodecForEncoding(const QString &codecName); + QByteArray codecForEncoding() const; + QByteArray codecForDecoding() const; void setCodecForEncoding(QTextCodec *codec); - void setCodecForDecoding(const QString &codecName); void setCodecForDecoding(QTextCodec *codec); QString decodeString(const QByteArray &text) const; @@ -102,6 +109,12 @@ public slots: void setNetworkName(const QString &networkName); void setCurrentServer(const QString ¤tServer); void setMyNick(const QString &mynick); + void setIdentity(IdentityId); + + void setServerList(const QList &serverList); + + void setCodecForEncoding(const QByteArray &codecName); + void setCodecForDecoding(const QByteArray &codecName); void addSupport(const QString ¶m, const QString &value = QString()); void removeSupport(const QString ¶m); @@ -111,11 +124,13 @@ public slots: //init geters QVariantMap initSupports() const; + QVariantList initServerList() const; QStringList initIrcUsers() const; QStringList initIrcChannels() const; //init seters void initSetSupports(const QVariantMap &supports); + void initSetServerList(const QVariantList &serverList); void initSetIrcUsers(const QStringList &hostmasks); void initSetChannels(const QStringList &channels); @@ -124,34 +139,50 @@ 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(); + + void requestConnect(); private slots: void ircUserDestroyed(); void channelDestroyed(); void removeIrcUser(IrcUser *ircuser); - + void ircUserInitDone(); + void ircChannelInitDone(); + signals: void networkNameSet(const QString &networkName); void currentServerSet(const QString ¤tServer); void myNickSet(const QString &mynick); + void identitySet(IdentityId); + + void serverListSet(const QList &serverList); + + void codecForEncodingSet(const QString &codecName); + void codecForDecodingSet(const QString &codecName); void supportAdded(const QString ¶m, const QString &value); void supportRemoved(const QString ¶m); - - void ircUserAdded(QString hostmask); - void ircChannelAdded(QString channelname); - void ircUserRemoved(QString nick); - - void initDone(); - void ircUserInitDone(); - void ircChannelInitDone(); - + void ircUserAdded(const QString &hostmask); + void ircUserAdded(IrcUser *); + void ircChannelAdded(const QString &channelname); + void ircChannelAdded(IrcChannel *); + + void ircUserRemoved(const QString &nick); + + // needed for client sync progress + void ircUserRemoved(QObject *); + void ircChannelRemoved(QObject *); + + void ircUserInitDone(IrcUser *); + void ircChannelInitDone(IrcChannel *); + + void connectRequested(NetworkId = 0); + private: - uint _networkId; - bool _initialized; - + NetworkId _networkId; + IdentityId _identity; + QString _myNick; QString _networkName; QString _currentServer; @@ -163,6 +194,7 @@ private: QHash _ircChannels; // stores all known channels QHash _supports; // stores results from RPL_ISUPPORT + QList _serverList; //QVariantMap networkSettings; //QVariantMap identity;