Chatterino
InputCompletionPopup.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <functional>
4 #include "common/Channel.hpp"
5 #include "widgets/BasePopup.hpp"
7 
8 namespace chatterino {
9 
10 class GenericListView;
11 
13 {
14  using ActionCallback = std::function<void(const QString &)>;
15 
16  constexpr static int maxEntryCount = 200;
17 
18 public:
19  InputCompletionPopup(QWidget *parent = nullptr);
20 
21  void updateEmotes(const QString &text, ChannelPtr channel);
22  void updateUsers(const QString &text, ChannelPtr channel);
23  virtual bool eventFilter(QObject *, QEvent *event) override;
24 
25  void setInputAction(ActionCallback callback);
26 
27 protected:
28  void showEvent(QShowEvent *event) override;
29  void hideEvent(QHideEvent *event) override;
30 
31 private:
32  void initLayout();
33 
34  struct {
36  } ui_;
37 
38  GenericListModel model_;
39  ActionCallback callback_;
40  QTimer redrawTimer_;
41 };
42 
43 } // namespace chatterino
GenericListView * listView
Definition: InputCompletionPopup.hpp:35
void showEvent(QShowEvent *event) override
Definition: InputCompletionPopup.cpp:194
InputCompletionPopup(QWidget *parent=nullptr)
Definition: InputCompletionPopup.cpp:45
virtual bool eventFilter(QObject *, QEvent *event) override
Definition: InputCompletionPopup.cpp:184
Definition: Application.cpp:48
Definition: GenericListModel.hpp:9
Definition: BasePopup.hpp:10
void updateEmotes(const QString &text, ChannelPtr channel)
Definition: InputCompletionPopup.cpp:75
void hideEvent(QHideEvent *event) override
Definition: InputCompletionPopup.cpp:199
Definition: GenericListView.hpp:13
Definition: InputCompletionPopup.hpp:12
void setInputAction(ActionCallback callback)
Definition: InputCompletionPopup.cpp:189
std::shared_ptr< Channel > ChannelPtr
Definition: Channel.hpp:125
void updateUsers(const QString &text, ChannelPtr channel)
Definition: InputCompletionPopup.cpp:161
virtual bool event(QEvent *event) override
Definition: BaseWindow.cpp:333