modernize: Prefer default member init over ctor init
[quassel.git] / src / qtui / channellistdlg.h
index 84e5b7a..cfa45a3 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 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  *
@@ -15,7 +15,7 @@
  *   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
 
 #include <QSortFilterProxyModel>
 
-class ChannelListDlg : public QDialog {
-  Q_OBJECT
+class QSpacerItem;
+
+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);
+
 private:
-  void showFilterLine(bool show);
-  void enableQuery(bool enable);
+    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;
+    Ui::ChannelListDlg ui;
 
-  bool _listFinished;
-  NetworkId _netId;
-  IrcListModel _ircListModel;
-  QSortFilterProxyModel _sortFilter;
+    bool _listFinished{true};
+    NetworkId _netId;
+    IrcListModel _ircListModel;
+    QSortFilterProxyModel _sortFilter;
+    QSpacerItem *_simpleModeSpacer{nullptr};
+    bool _advancedMode{false};
 };
 
+
 #endif //CHANNELLIST_H