Chatterino
ReplyThreadPopup.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "ForwardDecl.hpp"
5 
6 #include <boost/signals2.hpp>
7 #include <pajlada/signals/scoped-connection.hpp>
8 #include <pajlada/signals/signal.hpp>
9 
10 namespace chatterino {
11 
12 class MessageThread;
13 class Split;
14 class SplitInput;
15 
16 class ReplyThreadPopup final : public DraggablePopup
17 {
18  Q_OBJECT
19 
20 public:
21  ReplyThreadPopup(bool closeAutomatically, QWidget *parent, Split *split);
22 
23  void setThread(std::shared_ptr<MessageThread> thread);
24  void giveFocus(Qt::FocusReason reason);
25 
26 protected:
27  void focusInEvent(QFocusEvent *event) override;
28 
29 private:
30  void addMessagesFromThread();
31  void updateInputUI();
32 
33  // The message reply thread
34  std::shared_ptr<MessageThread> thread_;
35  // The channel that the reply thread is in
36  ChannelPtr channel_;
37  Split *split_;
38 
39  struct {
40  ChannelView *threadView = nullptr;
41  SplitInput *replyInput = nullptr;
42  } ui_;
43 
44  std::unique_ptr<pajlada::Signals::ScopedConnection> messageConnection_;
45  std::vector<boost::signals2::scoped_connection> bSignals_;
46 };
47 
48 } // namespace chatterino
ChannelView * threadView
Definition: ReplyThreadPopup.hpp:40
Definition: SplitInput.hpp:38
void focusInEvent(QFocusEvent *event) override
Definition: ReplyThreadPopup.cpp:200
Definition: Application.cpp:48
void setThread(std::shared_ptr< MessageThread > thread)
Definition: ReplyThreadPopup.cpp:99
ReplyThreadPopup(bool closeAutomatically, QWidget *parent, Split *split)
Definition: ReplyThreadPopup.cpp:19
Definition: Split.hpp:36
void giveFocus(Qt::FocusReason reason)
Definition: ReplyThreadPopup.cpp:195
Definition: ReplyThreadPopup.hpp:16
Definition: DraggablePopup.hpp:12
SplitInput * replyInput
Definition: ReplyThreadPopup.hpp:41
Definition: ChannelView.hpp:61
std::shared_ptr< Channel > ChannelPtr
Definition: Channel.hpp:125
virtual bool event(QEvent *event) override
Definition: BaseWindow.cpp:333