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();
QList<IrcChannel *> ircChannels() const;
quint32 ircChannelCount() const;
+ inline QHash<QString, QString> persistentChannels() const { return _persistentChannels; }
+
QByteArray codecForServer() const;
QByteArray codecForEncoding() const;
QByteArray codecForDecoding() const;
inline void addIrcUser(const QString &hostmask) { newIrcUser(hostmask); }
void removeIrcUser(const QString &nick);
void removeIrcChannel(const QString &channel);
-
+
+ void addPersistentChannel(const QString &channel, const QString &key = QString());
+ void removePersistentChannel(const QString &channel);
+ void setPersistentChannelKey(const QString &channel, const QString &key);
+
//init geters
QVariantMap initSupports() const;
QVariantList initServerList() const;
QStringList initIrcUsers() const;
QStringList initIrcChannels() const;
+ QStringList initPersistentChannels() const;
//init seters
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);
+ void initSetPersistentChannels(const QStringList &channels);
IrcUser *updateNickFromMask(const QString &mask);
void autoIdentifyPasswordSet(const QString &);
void useAutoReconnectSet(bool);
void autoReconnectIntervalSet(quint32);
- void autoReconnectRetriesSet(qint16);
+ void autoReconnectRetriesSet(quint16);
void unlimitedReconnectRetriesSet(bool);
void rejoinChannelsSet(bool);
void ircUserRemoved(const QString &nick);
void ircChannelRemoved(const QString &channel);
+ void persistentChannelAdded(const QString &channel, const QString &key);
+ void persistentChannelRemoved(const QString &channel);
+ void persistentChannelKeySet(const QString &channel, const QString &key);
+
// needed for client sync progress
void ircUserRemoved(QObject *);
void ircChannelRemoved(QObject *);
QHash<QString, IrcUser *> _ircUsers; // stores all known nicks for the server
QHash<QString, IrcChannel *> _ircChannels; // stores all known channels
QHash<QString, QString> _supports; // stores results from RPL_ISUPPORT
+ QHash<QString, QString> _persistentChannels; // stores persistent channels and their passwords, if any
QVariantList _serverList;
bool _useRandomServer;
QDataStream &operator<<(QDataStream &out, const NetworkInfo &info);
QDataStream &operator>>(QDataStream &in, NetworkInfo &info);
+QDebug operator<<(QDebug dbg, const NetworkInfo &i);
Q_DECLARE_METATYPE(NetworkInfo);