#pragma once #include "ForwardDecl.hpp" #include "widgets/DraggablePopup.hpp" #include #include #include class QCheckBox; namespace chatterino { class MessageThread; class Split; class SplitInput; class ReplyThreadPopup final : public DraggablePopup { Q_OBJECT public: ReplyThreadPopup(bool closeAutomatically, QWidget *parent, Split *split); void setThread(std::shared_ptr thread); void giveFocus(Qt::FocusReason reason); protected: void focusInEvent(QFocusEvent *event) override; private: void addMessagesFromThread(); void updateInputUI(); // The message reply thread std::shared_ptr thread_; // The channel that the reply thread is in ChannelPtr channel_; // The channel for the `threadView` ChannelPtr virtualChannel_; Split *split_; struct { ChannelView *threadView = nullptr; SplitInput *replyInput = nullptr; QCheckBox *notificationCheckbox = nullptr; } ui_; std::unique_ptr messageConnection_; std::vector bSignals_; boost::signals2::scoped_connection replySubscriptionSignal_; }; } // namespace chatterino