Chatterino
SelectChannelDialog.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Application.hpp"
4 #include "common/Channel.hpp"
5 #include "widgets/BaseWindow.hpp"
6 
7 #include <pajlada/signals/signal.hpp>
8 
9 #include <QLabel>
10 #include <QRadioButton>
11 
12 #include <QLineEdit>
13 
14 namespace chatterino {
15 
16 class Notebook;
17 class EditableModelView;
18 
19 class SelectChannelDialog final : public BaseWindow
20 {
21 public:
22  SelectChannelDialog(QWidget *parent = nullptr);
23 
24  void setSelectedChannel(IndirectChannel selectedChannel_);
26  bool hasSeletedChannel() const;
27 
28  pajlada::Signals::NoArgSignal closed;
29 
30 protected:
31  virtual void closeEvent(QCloseEvent *) override;
32  virtual void themeChangedEvent() override;
33 
34 private:
35  class EventFilter : public QObject
36  {
37  public:
38  SelectChannelDialog *dialog;
39 
40  protected:
41  virtual bool eventFilter(QObject *watched, QEvent *event) override;
42  };
43 
44  struct {
46  struct {
47  QRadioButton *channel;
48  QLineEdit *channelName;
49  QRadioButton *whispers;
50  QRadioButton *mentions;
51  QRadioButton *watching;
52  QRadioButton *live;
53  } twitch;
54  struct {
55  QLineEdit *channel;
57  } irc;
58  } ui_;
59 
60  EventFilter tabFilter_;
61 
62  ChannelPtr selectedChannel_;
63  bool hasSelectedChannel_ = false;
64 
65  void ok();
66  friend class EventFilter;
67 
68  void addShortcuts() override;
69 };
70 
71 } // namespace chatterino
QLineEdit * channelName
Definition: SelectChannelDialog.hpp:48
QRadioButton * whispers
Definition: SelectChannelDialog.hpp:49
virtual void themeChangedEvent() override
Definition: SelectChannelDialog.cpp:485
Definition: BaseWindow.hpp:20
Definition: Application.cpp:48
Definition: SelectChannelDialog.hpp:19
IndirectChannel getSelectedChannel() const
Definition: SelectChannelDialog.cpp:339
QRadioButton * live
Definition: SelectChannelDialog.hpp:52
friend class EventFilter
Definition: SelectChannelDialog.hpp:66
virtual void closeEvent(QCloseEvent *) override
Definition: SelectChannelDialog.cpp:480
SelectChannelDialog(QWidget *parent=nullptr)
Definition: SelectChannelDialog.cpp:32
Definition: EditableModelView.hpp:13
EditableModelView * servers
Definition: SelectChannelDialog.hpp:56
QRadioButton * watching
Definition: SelectChannelDialog.hpp:51
bool hasSeletedChannel() const
Definition: SelectChannelDialog.cpp:398
pajlada::Signals::NoArgSignal closed
Definition: SelectChannelDialog.hpp:28
Definition: Notebook.hpp:22
void setSelectedChannel(IndirectChannel selectedChannel_)
Definition: SelectChannelDialog.cpp:269
QRadioButton * channel
Definition: SelectChannelDialog.hpp:47
Definition: Channel.hpp:127
std::shared_ptr< Channel > ChannelPtr
Definition: Channel.hpp:125
QLineEdit * channel
Definition: SelectChannelDialog.hpp:55
struct chatterino::SelectChannelDialog::@39::@41 irc
struct chatterino::SelectChannelDialog::@39::@40 twitch
QRadioButton * mentions
Definition: SelectChannelDialog.hpp:50
Notebook * notebook
Definition: SelectChannelDialog.hpp:45
virtual bool event(QEvent *event) override
Definition: BaseWindow.cpp:333