Add username autocompletion popup menu (#2866)

This commit is contained in:
Tal Neoran
2021-06-19 19:29:17 +03:00
committed by GitHub
parent d21858b97f
commit f605221042
12 changed files with 193 additions and 123 deletions
@@ -0,0 +1,43 @@
#pragma once
#include <functional>
#include "common/Channel.hpp"
#include "widgets/BasePopup.hpp"
#include "widgets/listview/GenericListModel.hpp"
namespace chatterino {
class GenericListView;
class InputCompletionPopup : public BasePopup
{
using ActionCallback = std::function<void(const QString &)>;
constexpr static int maxEntryCount = 200;
public:
InputCompletionPopup(QWidget *parent = nullptr);
void updateEmotes(const QString &text, ChannelPtr channel);
void updateUsers(const QString &text, ChannelPtr channel);
virtual bool eventFilter(QObject *, QEvent *event) override;
void setInputAction(ActionCallback callback);
protected:
void showEvent(QShowEvent *event) override;
void hideEvent(QHideEvent *event) override;
private:
void initLayout();
struct {
GenericListView *listView;
} ui_;
GenericListModel model_;
ActionCallback callback_;
QTimer redrawTimer_;
};
} // namespace chatterino