X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fnetwork.h;h=6358baed22d366cb29611b26cd7289355aa50088;hp=25b02bc7bd9f1208a7eda2a262743e83d969a843;hb=8f237cecca9a6353bc4d150b4b55719a6bf37476;hpb=c85f07cd06593a778046d30809480c9db49c4802 diff --git a/src/common/network.h b/src/common/network.h index 25b02bc7..6358baed 100644 --- a/src/common/network.h +++ b/src/common/network.h @@ -55,6 +55,15 @@ class Network : public SyncableObject { Q_PROPERTY(bool isConnected READ isConnected WRITE setConnected STORED false) //Q_PROPERTY(Network::ConnectionState connectionState READ connectionState WRITE setConnectionState STORED false) Q_PROPERTY(int connectionState READ connectionState WRITE setConnectionState STORED false) + Q_PROPERTY(bool useRandomServer READ useRandomServer WRITE setUseRandomServer STORED false) + Q_PROPERTY(QStringList perform READ perform WRITE setPerform STORED false) + Q_PROPERTY(bool useAutoIdentify READ useAutoIdentify WRITE setUseAutoIdentify STORED false) + Q_PROPERTY(QString autoIdentifyService READ autoIdentifyService WRITE setAutoIdentifyService STORED false) + Q_PROPERTY(QString autoIdentifyPassword READ autoIdentifyPassword WRITE setAutoIdentifyPassword STORED false) + Q_PROPERTY(bool useAutoReconnect READ useAutoReconnect WRITE setUseAutoReconnect STORED false) + Q_PROPERTY(quint32 autoReconnectInterval READ autoReconnectInterval WRITE setAutoReconnectInterval STORED false) + Q_PROPERTY(qint16 autoReconnectRetries READ autoReconnectRetries WRITE setAutoReconnectRetries STORED false) + Q_PROPERTY(bool rejoinChannels READ rejoinChannels WRITE setRejoinChannels STORED false) public: enum ConnectionState { Disconnected, Connecting, Initializing, Initialized, Disconnecting }; @@ -88,6 +97,15 @@ public: QStringList nicks() const; QStringList channels() const; QVariantList serverList() const; + bool useRandomServer() const; + QStringList perform() const; + bool useAutoIdentify() const; + QString autoIdentifyService() const; + QString autoIdentifyPassword() const; + bool useAutoReconnect() const; + quint32 autoReconnectInterval() const; + qint16 autoReconnectRetries() const; // -1 => unlimited + bool rejoinChannels() const; NetworkInfo networkInfo() const; void setNetworkInfo(const NetworkInfo &); @@ -120,6 +138,11 @@ public: QString decodeString(const QByteArray &text) const; QByteArray encodeString(const QString string) const; + static QByteArray defaultCodecForEncoding(); + static QByteArray defaultCodecForDecoding(); + static void setDefaultCodecForEncoding(const QByteArray &name); + static void setDefaultCodecForDecoding(const QByteArray &name); + public slots: void setNetworkName(const QString &networkName); void setCurrentServer(const QString ¤tServer); @@ -130,6 +153,15 @@ public slots: void setIdentity(IdentityId); void setServerList(const QVariantList &serverList); + void setUseRandomServer(bool); + void setPerform(const QStringList &); + void setUseAutoIdentify(bool); + void setAutoIdentifyService(const QString &); + void setAutoIdentifyPassword(const QString &); + void setUseAutoReconnect(bool); + void setAutoReconnectInterval(quint32); + void setAutoReconnectRetries(qint16); + void setRejoinChannels(bool); void setCodecForEncoding(const QByteArray &codecName); void setCodecForDecoding(const QByteArray &codecName); @@ -138,7 +170,8 @@ public slots: void removeSupport(const QString ¶m); inline void addIrcUser(const QString &hostmask) { newIrcUser(hostmask); } - void removeIrcUser(QString nick); + void removeIrcUser(const QString &nick); + void removeIrcChannel(const QString &channel); //init geters QVariantMap initSupports() const; @@ -164,13 +197,15 @@ 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(); void networkNameSet(const QString &networkName); void currentServerSet(const QString ¤tServer); void connectedSet(bool isConnected); @@ -181,9 +216,18 @@ signals: void identitySet(IdentityId); void serverListSet(QVariantList serverList); - - void codecForEncodingSet(const QString &codecName); - void codecForDecodingSet(const QString &codecName); + void useRandomServerSet(bool); + void performSet(const QStringList &); + void useAutoIdentifySet(bool); + void autoIdentifyServiceSet(const QString &); + void autoIdentifyPasswordSet(const QString &); + void useAutoReconnectSet(bool); + void autoReconnectIntervalSet(quint32); + void autoReconnectRetriesSet(qint16); + void rejoinChannelsSet(bool); + + void codecForEncodingSet(const QByteArray &codecName); + void codecForDecodingSet(const QByteArray &codecName); void supportAdded(const QString ¶m, const QString &value); void supportRemoved(const QString ¶m); @@ -194,6 +238,7 @@ signals: void ircChannelAdded(IrcChannel *); void ircUserRemoved(const QString &nick); + void ircChannelRemoved(const QString &channel); // needed for client sync progress void ircUserRemoved(QObject *); @@ -223,8 +268,17 @@ private: QHash _supports; // stores results from RPL_ISUPPORT QVariantList _serverList; + bool _useRandomServer; QStringList _perform; - //QVariantMap networkSettings; + + bool _useAutoIdentify; + QString _autoIdentifyService; + QString _autoIdentifyPassword; + + bool _useAutoReconnect; + quint32 _autoReconnectInterval; + qint16 _autoReconnectRetries; + bool _rejoinChannels; QPointer _proxy; void determinePrefixes(); @@ -232,6 +286,8 @@ private: QTextCodec *_codecForEncoding; QTextCodec *_codecForDecoding; + static QTextCodec *_defaultCodecForEncoding; + static QTextCodec *_defaultCodecForDecoding; }; //! Stores all editable information about a network (as opposed to runtime state). @@ -239,9 +295,25 @@ struct NetworkInfo { NetworkId networkId; QString networkName; IdentityId identity; + + bool useCustomEncodings; QByteArray codecForEncoding; QByteArray codecForDecoding; + + // Server entry: QString "Host", uint "Port", QString "Password", bool "UseSSL" QVariantList serverList; + bool useRandomServer; + + QStringList perform; + + bool useAutoIdentify; + QString autoIdentifyService; + QString autoIdentifyPassword; + + bool useAutoReconnect; + quint32 autoReconnectInterval; + qint16 autoReconnectRetries; // -1 => Unlimited + bool rejoinChannels; bool operator==(const NetworkInfo &other) const; bool operator!=(const NetworkInfo &other) const;