X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fnetwork.h;h=255d3ec42e86146356e7f58d13ff72db962f13b7;hp=6a58d841ad62317e4d47cd1c13730d8c5730150a;hb=c5cbe5eb77fce2ab954a98399a1450803108217b;hpb=d1b6499b0b848d4287efae89107576548533502c diff --git a/src/common/network.h b/src/common/network.h index 6a58d841..255d3ec4 100644 --- a/src/common/network.h +++ b/src/common/network.h @@ -37,6 +37,9 @@ class SignalProxy; class IrcUser; class IrcChannel; +// defined below! +struct NetworkInfo; + // TODO: ConnectionInfo to propagate and sync the current state of NetworkConnection, encodings etcpp class Network : public SyncableObject { @@ -48,11 +51,11 @@ class Network : public SyncableObject { 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) + Q_PROPERTY(bool isConnected READ isConnected WRITE setConnected STORED false) public: Network(const NetworkId &networkid, QObject *parent = 0); - //virtual ~Network(); + // ~Network(); NetworkId networkId() const; @@ -64,6 +67,8 @@ public: bool isChannelName(const QString &channelname) const; + bool isConnected() const; + QString prefixToMode(const QString &prefix); QString prefixToMode(const QCharRef &prefix); QString modeToPrefix(const QString &mode); @@ -77,6 +82,9 @@ public: QStringList channels() const; QList serverList() const; + NetworkInfo networkInfo() const; + void setNetworkInfo(const NetworkInfo &); + QString prefixes(); QString prefixModes(); @@ -92,8 +100,8 @@ public: IrcChannel *newIrcChannel(const QString &channelname); IrcChannel *newIrcChannel(const QByteArray &channelname); - IrcChannel *ircChannel(QString channelname); - IrcChannel *ircChannel(const QByteArray &channelname); + IrcChannel *ircChannel(QString channelname) const; + IrcChannel *ircChannel(const QByteArray &channelname) const; QList ircChannels() const; quint32 ircChannelCount() const; @@ -108,6 +116,7 @@ public: public slots: void setNetworkName(const QString &networkName); void setCurrentServer(const QString ¤tServer); + void setConnected(bool isConnected); void setMyNick(const QString &mynick); void setIdentity(IdentityId); @@ -152,6 +161,7 @@ private slots: signals: void networkNameSet(const QString &networkName); void currentServerSet(const QString ¤tServer); + void connectedSet(bool isConnected); void myNickSet(const QString &mynick); void identitySet(IdentityId); @@ -186,6 +196,7 @@ private: QString _myNick; QString _networkName; QString _currentServer; + bool _connected; QString _prefixes; QString _prefixModes; @@ -196,8 +207,7 @@ private: QList _serverList; //QVariantMap networkSettings; - //QVariantMap identity; - + QPointer _proxy; void determinePrefixes(); @@ -206,4 +216,16 @@ private: }; +//! Stores all editable information about a network (as opposed to runtime state). +struct NetworkInfo { + NetworkId networkId; + IdentityId identity; + QString networkName; + QByteArray codecForEncoding; + QByteArray codecForDecoding; + QList serverList; + +}; + + #endif