/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef IRCLISTHELPER_H
-#define IRCLISTHELPER_H
+#pragma once
+
+#include "common-export.h"
+
+#include <utility>
#include "syncableobject.h"
#include "types.h"
* when RPL_LISTEND is received the clients will be informed, that they can pull the data
* 3.) client pulls the data by calling requestChannelList again. receiving the data in receiveChannelList
*/
-class IrcListHelper : public SyncableObject {
- Q_OBJECT
+class COMMON_EXPORT IrcListHelper : public SyncableObject
+{
+ Q_OBJECT
+ SYNCABLE_OBJECT
public:
- inline IrcListHelper(QObject *parent = 0) : SyncableObject(parent) { setInitialized(); };
+ inline IrcListHelper(QObject* parent = nullptr)
+ : SyncableObject(parent)
+ {
+ setInitialized();
+ };
- struct ChannelDescription {
- QString channelName;
- quint32 userCount;
- QString topic;
- ChannelDescription(const QString &channelName_, quint32 userCount_, const QString &topic_) : channelName(channelName_), userCount(userCount_), topic(topic_) {};
- };
+ struct ChannelDescription
+ {
+ QString channelName;
+ quint32 userCount;
+ QString topic;
+ ChannelDescription(QString channelName_, quint32 userCount_, QString topic_)
+ : channelName(std::move(channelName_))
+ , userCount(userCount_)
+ , topic(std::move(topic_)){};
+ };
public slots:
- inline virtual QVariantList requestChannelList(const NetworkId &netId, const QStringList &channelFilters) { emit channelListRequested(netId, channelFilters); return QVariantList(); }
- inline virtual void receiveChannelList(const NetworkId &, const QStringList &, const QVariantList &) {};
- inline virtual void reportFinishedList(const NetworkId &netId) { emit finishedListReported(netId); }
- inline virtual void reportError(const QString &error) { emit errorReported(error); }
-
-signals:
- void channelListRequested(const NetworkId &netId, const QStringList &channelFilters);
- void finishedListReported(const NetworkId &netId);
- void errorReported(const QString &error);
+ inline virtual QVariantList requestChannelList(const NetworkId& netId, const QStringList& channelFilters)
+ {
+ REQUEST(ARG(netId), ARG(channelFilters));
+ return QVariantList();
+ }
+ inline virtual void receiveChannelList(const NetworkId&, const QStringList&, const QVariantList&){};
+ inline virtual void reportFinishedList(const NetworkId& netId) { SYNC(ARG(netId)) }
+ inline virtual void reportError(const QString& error) { SYNC(ARG(error)) }
};
-
-#endif //IRCLISTHELPER_H