This might fix the dreaded auto-rejoin bug. I can only guess, but maybe the cached list
in CoreNetwork and the list in the database get out of sync in some circumstances. This
gets rid of the (unneeded) caching; please let me know if the rejoin bug is still present.
// rejoin channels we've been in
if(rejoinChannels()) {
QStringList channels, keys;
- foreach(QString chan, persistentChannels()) {
+ foreach(QString chan, coreSession()->persistentChannels(networkId()).keys()) {
QString key = channelKey(chan);
if(!key.isEmpty()) {
channels.prepend(chan);
QByteArray userEncode(const QString &userNick, const QString &string) const;
inline QString channelKey(const QString &channel) const { return _channelKeys.value(channel.toLower(), QString()); }
- inline QStringList persistentChannels() const { return _channelKeys.keys(); }
inline bool isAutoWhoInProgress(const QString &channel) const { return _autoWhoInProgress.value(channel.toLower(), 0); }