Chatterino
EmotePopup.hpp
Go to the documentation of this file.
1 #pragma once
2 
5 #include "widgets/BasePopup.hpp"
6 #include "widgets/Notebook.hpp"
7 
8 #include <pajlada/signals/signal.hpp>
9 
10 #include <QLineEdit>
11 
12 namespace chatterino {
13 
14 struct Link;
15 class ChannelView;
16 class Channel;
17 using ChannelPtr = std::shared_ptr<Channel>;
18 
19 class EmotePopup : public BasePopup
20 {
21 public:
22  EmotePopup(QWidget *parent = nullptr);
23 
24  void loadChannel(ChannelPtr channel);
25 
26  virtual void closeEvent(QCloseEvent *event) override;
27 
28  pajlada::Signals::Signal<Link> linkClicked;
29 
30 private:
31  ChannelView *globalEmotesView_{};
32  ChannelView *channelEmotesView_{};
33  ChannelView *subEmotesView_{};
34  ChannelView *viewEmojis_{};
39  ChannelView *searchView_{};
40 
41  ChannelPtr channel_;
42  TwitchChannel *twitchChannel_{};
43 
44  QLineEdit *search_;
45  Notebook *notebook_;
46 
47  void loadEmojis(ChannelView &view, EmojiMap &emojiMap);
48  void loadEmojis(Channel &channel, EmojiMap &emojiMap, const QString &title);
49  void filterTwitchEmotes(std::shared_ptr<Channel> searchChannel,
50  const QString &searchText);
51  void filterEmotes(const QString &text);
52  EmoteMap *filterEmoteMap(const QString &text,
53  std::shared_ptr<const EmoteMap> emotes);
54  void addShortcuts() override;
55 };
56 
57 } // namespace chatterino
Definition: TwitchChannel.hpp:60
Definition: EmotePopup.hpp:19
EmotePopup(QWidget *parent=nullptr)
Definition: EmotePopup.cpp:158
Definition: Application.cpp:48
Definition: BasePopup.hpp:10
Definition: Emote.hpp:40
Definition: Channel.hpp:30
virtual void closeEvent(QCloseEvent *event) override
Definition: EmotePopup.cpp:543
Definition: Notebook.hpp:22
Definition: ChannelView.hpp:61
std::shared_ptr< Channel > ChannelPtr
Definition: Channel.hpp:125
pajlada::Signals::Signal< Link > linkClicked
Definition: EmotePopup.hpp:28
void loadChannel(ChannelPtr channel)
Definition: EmotePopup.cpp:328
virtual bool event(QEvent *event) override
Definition: BaseWindow.cpp:333