X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreirclisthelper.h;h=c42d6a0832d8f20ad1c6680c82d492275a9331a1;hp=84303ad61e36fd27e99c0233a2ad40bf4dab0a7a;hb=02455427bfd88584a81f94b1b234fe21ad3e09cd;hpb=733eedc159bd22a9f5e307e2db3d075eedc3b7a9 diff --git a/src/core/coreirclisthelper.h b/src/core/coreirclisthelper.h index 84303ad6..c42d6a08 100644 --- a/src/core/coreirclisthelper.h +++ b/src/core/coreirclisthelper.h @@ -25,6 +25,8 @@ #include "coresession.h" +class QTimerEvent; + class CoreIrcListHelper : public IrcListHelper { Q_OBJECT @@ -35,17 +37,26 @@ public: inline CoreSession *coreSession() const { return _coreSession; } + inline bool requestInProgress(const NetworkId &netId) const { return _channelLists.contains(netId); } + public slots: virtual QVariantList requestChannelList(const NetworkId &netId, const QStringList &channelFilters); bool addChannel(const NetworkId &netId, const QString &channelName, quint32 userCount, const QString &topic); bool endOfChannelList(const NetworkId &netId); +protected: + void timerEvent(QTimerEvent *event); + +private: + bool dispatchQuery(const NetworkId &netId, const QString &query); + private: CoreSession *_coreSession; QHash _queuedQuery; QHash > _channelLists; QHash _finishedChannelLists; + QHash _queryTimeout; }; #endif //COREIRCLISTHELPER_H