/***************************************************************************
- * Copyright (C) 2005-2016 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
Q_OBJECT
public:
- ChannelListDlg(QWidget *parent = 0);
+ ChannelListDlg(QWidget *parent = nullptr);
void setNetwork(NetworkId netId);
-protected slots:
+ /**
+ * Set the channel search string, enabling advanced mode if needed
+ *
+ * Sets the channel name search text to the specified string, enabling advanced mode. If search
+ * string is empty, advanced mode will be automatically hidden.
+ *
+ * @param channelFilters Partial channel name to search for, or empty to not filter by name
+ */
+ void setChannelFilters(const QString &channelFilters);
+
+public slots:
+ /**
+ * Request a channel listing using any parameters set in the UI
+ */
void requestSearch();
+
+protected slots:
void receiveChannelList(const NetworkId &netId, const QStringList &channelFilters, const QList<IrcListHelper::ChannelDescription> &channelList);
void reportFinishedList();
void joinChannel(const QModelIndex &);
void enableQuery(bool enable);
void setAdvancedMode(bool advanced);
+ /**
+ * Update the focus of input widgets according to dialog state
+ */
+ void updateInputFocus();
+
Ui::ChannelListDlg ui;
- bool _listFinished;
+ bool _listFinished{true};
NetworkId _netId;
IrcListModel _ircListModel;
QSortFilterProxyModel _sortFilter;
- QSpacerItem *_simpleModeSpacer;
- bool _advancedMode;
+ QSpacerItem *_simpleModeSpacer{nullptr};
+ bool _advancedMode{false};
};