X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreirclisthelper.h;h=d6b3a2d573e0187a761f67cc880cd3cd530be4b0;hp=84303ad61e36fd27e99c0233a2ad40bf4dab0a7a;hb=b3a8232d4959903591c309d765da9c271d0a761f;hpb=fe4b38e66592f11fdf4c4651863968983daecd2d diff --git a/src/core/coreirclisthelper.h b/src/core/coreirclisthelper.h index 84303ad6..d6b3a2d5 100644 --- a/src/core/coreirclisthelper.h +++ b/src/core/coreirclisthelper.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -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