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 codecForServer READ codecForServer WRITE setCodecForServer 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(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(quint16 autoReconnectRetries READ autoReconnectRetries WRITE setAutoReconnectRetries STORED false)
+ Q_PROPERTY(bool unlimitedReconnectRetries READ unlimitedReconnectRetries WRITE setUnlimitedReconnectRetries STORED false)
Q_PROPERTY(bool rejoinChannels READ rejoinChannels WRITE setRejoinChannels STORED false)
public:
- enum ConnectionState { Disconnected, Connecting, Initializing, Initialized, Disconnecting };
+ enum ConnectionState { Disconnected, Connecting, Initializing, Initialized, Reconnecting, Disconnecting };
Network(const NetworkId &networkid, QObject *parent = 0);
~Network();
QString networkName() const;
QString currentServer() const;
QString myNick() const;
+ inline IrcUser *me() const { return ircUser(myNick()); }
IdentityId identity() const;
QStringList nicks() const;
QStringList channels() const;
QString autoIdentifyPassword() const;
bool useAutoReconnect() const;
quint32 autoReconnectInterval() const;
- qint16 autoReconnectRetries() const; // -1 => unlimited
+ quint16 autoReconnectRetries() const;
+ bool unlimitedReconnectRetries() const;
bool rejoinChannels() const;
NetworkInfo networkInfo() const;
QList<IrcChannel *> ircChannels() const;
quint32 ircChannelCount() const;
+ QByteArray codecForServer() const;
QByteArray codecForEncoding() const;
QByteArray codecForDecoding() const;
+ void setCodecForServer(QTextCodec *codec);
void setCodecForEncoding(QTextCodec *codec);
void setCodecForDecoding(QTextCodec *codec);
QString decodeString(const QByteArray &text) const;
- QByteArray encodeString(const QString string) const;
+ QByteArray encodeString(const QString &string) const;
+ QString decodeServerString(const QByteArray &text) const;
+ QByteArray encodeServerString(const QString &string) const;
+ static QByteArray defaultCodecForServer();
static QByteArray defaultCodecForEncoding();
static QByteArray defaultCodecForDecoding();
+ static void setDefaultCodecForServer(const QByteArray &name);
static void setDefaultCodecForEncoding(const QByteArray &name);
static void setDefaultCodecForDecoding(const QByteArray &name);
void setAutoIdentifyPassword(const QString &);
void setUseAutoReconnect(bool);
void setAutoReconnectInterval(quint32);
- void setAutoReconnectRetries(qint16);
+ void setAutoReconnectRetries(quint16);
+ void setUnlimitedReconnectRetries(bool);
void setRejoinChannels(bool);
+ void setCodecForServer(const QByteArray &codecName);
void setCodecForEncoding(const QByteArray &codecName);
void setCodecForDecoding(const QByteArray &codecName);
void removeSupport(const QString ¶m);
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;
QVariantList initServerList() const;
void initSetSupports(const QVariantMap &supports);
void initSetServerList(const QVariantList &serverList);
void initSetIrcUsers(const QStringList &hostmasks);
- void initSetChannels(const QStringList &channels);
+ void initSetIrcChannels(const QStringList &channels);
IrcUser *updateNickFromMask(const QString &mask);
void emitConnectionError(const QString &);
private slots:
+ void ircUserDestroyed();
void channelDestroyed();
void removeIrcUser(IrcUser *ircuser);
void removeIrcChannel(IrcChannel *ircChannel);
void autoIdentifyPasswordSet(const QString &);
void useAutoReconnectSet(bool);
void autoReconnectIntervalSet(quint32);
- void autoReconnectRetriesSet(qint16);
+ void autoReconnectRetriesSet(quint16);
+ void unlimitedReconnectRetriesSet(bool);
void rejoinChannelsSet(bool);
+ void codecForServerSet(const QByteArray &codecName);
void codecForEncodingSet(const QByteArray &codecName);
void codecForDecodingSet(const QByteArray &codecName);
void disconnectRequested(NetworkId id = 0) const;
private:
+ QPointer<SignalProxy> _proxy;
+
NetworkId _networkId;
IdentityId _identity;
bool _useAutoReconnect;
quint32 _autoReconnectInterval;
- qint16 _autoReconnectRetries;
+ quint16 _autoReconnectRetries;
+ bool _unlimitedReconnectRetries;
bool _rejoinChannels;
- QPointer<SignalProxy> _proxy;
void determinePrefixes();
+ QTextCodec *_codecForServer;
QTextCodec *_codecForEncoding;
QTextCodec *_codecForDecoding;
+ static QTextCodec *_defaultCodecForServer;
static QTextCodec *_defaultCodecForEncoding;
static QTextCodec *_defaultCodecForDecoding;
};
QString networkName;
IdentityId identity;
- bool useCustomEncodings;
+ bool useCustomEncodings; // not used!
+ QByteArray codecForServer;
QByteArray codecForEncoding;
QByteArray codecForDecoding;
bool useAutoReconnect;
quint32 autoReconnectInterval;
- qint16 autoReconnectRetries; // -1 => Unlimited
+ quint16 autoReconnectRetries;
+ bool unlimitedReconnectRetries;
bool rejoinChannels;
bool operator==(const NetworkInfo &other) const;
QDataStream &operator<<(QDataStream &out, const NetworkInfo &info);
QDataStream &operator>>(QDataStream &in, NetworkInfo &info);
+QDebug operator<<(QDebug dbg, const NetworkInfo &i);
Q_DECLARE_METATYPE(NetworkInfo);