src: Yearly copyright bump
[quassel.git] / src / qtui / channellistdlg.h
index dddd88e..285a11f 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 by the Quassel Project                          *
+ *   Copyright (C) 2005-2019 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 CHANNELLISTDLG_H
 #define CHANNELLISTDLG_H
 
-#include "ui_channellistdlg.h"
+#include <QSortFilterProxyModel>
 
 #include "irclisthelper.h"
 #include "irclistmodel.h"
 #include "types.h"
 
-#include <QSortFilterProxyModel>
+#include "ui_channellistdlg.h"
 
 class QSpacerItem;
 
-class ChannelListDlg : public QDialog {
-  Q_OBJECT
+class ChannelListDlg : public QDialog
+{
+    Q_OBJECT
 
 public:
-  ChannelListDlg(QWidget *parent = 0);
+    ChannelListDlg(QWidget* parent = nullptr);
+
+    void setNetwork(NetworkId netId);
 
-  void setNetwork(NetworkId netId);
+    /**
+     * 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 requestSearch();
-  void receiveChannelList(const NetworkId &netId, const QStringList &channelFilters, const QList<IrcListHelper::ChannelDescription> &channelList);
-  void reportFinishedList();
-  void joinChannel(const QModelIndex &);
+    void receiveChannelList(const NetworkId& netId,
+                            const QStringList& channelFilters,
+                            const QList<IrcListHelper::ChannelDescription>& channelList);
+    void reportFinishedList();
+    void joinChannel(const QModelIndex&);
 
 private slots:
-  inline void toggleMode() { setAdvancedMode(!_advancedMode); }
-  void showError(const QString &error);
+    inline void toggleMode() { setAdvancedMode(!_advancedMode); }
+    void showError(const QString& error);
 
 private:
-  void showFilterLine(bool show);
-  void showErrors(bool show);
-  void enableQuery(bool enable);
-  void setAdvancedMode(bool advanced);
-
-  Ui::ChannelListDlg ui;
-
-  bool _listFinished;
-  NetworkId _netId;
-  IrcListModel _ircListModel;
-  QSortFilterProxyModel _sortFilter;
-  QSpacerItem *_simpleModeSpacer;
-  bool _advancedMode;
+    void showFilterLine(bool show);
+    void showErrors(bool show);
+    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{true};
+    NetworkId _netId;
+    IrcListModel _ircListModel;
+    QSortFilterProxyModel _sortFilter;
+    QSpacerItem* _simpleModeSpacer{nullptr};
+    bool _advancedMode{false};
 };
 
-#endif //CHANNELLIST_H
+#endif  // CHANNELLIST_H