mirror-chatterino2/src/widgets/resizingtextedit.hpp

34 lines
703 B
C++
Raw Normal View History

#pragma once
2017-01-21 05:14:27 +01:00
2017-07-09 00:09:02 +02:00
#include <QCompleter>
2017-01-29 13:23:22 +01:00
#include <QKeyEvent>
2017-01-21 05:14:27 +01:00
#include <QTextEdit>
2017-01-29 13:23:22 +01:00
#include <boost/signals2.hpp>
2017-01-21 05:14:27 +01:00
class ResizingTextEdit : public QTextEdit
{
public:
2017-07-09 00:09:02 +02:00
ResizingTextEdit();
2017-01-21 05:14:27 +01:00
2017-07-09 00:09:02 +02:00
QSize sizeHint() const override;
2017-01-29 13:23:22 +01:00
2017-07-09 00:09:02 +02:00
bool hasHeightForWidth() const override;
2017-01-21 05:14:27 +01:00
2017-07-09 00:09:02 +02:00
boost::signals2::signal<void(QKeyEvent *)> keyPressed;
2017-01-29 13:23:22 +01:00
2017-07-09 00:09:02 +02:00
void setCompleter(QCompleter *c);
QCompleter *getCompleter() const;
protected:
int heightForWidth(int) const override;
void keyPressEvent(QKeyEvent *event) override;
2017-01-29 13:23:22 +01:00
2017-07-09 00:09:02 +02:00
private:
QCompleter *completer = nullptr;
QString textUnderCursor() const;
bool nextCompletion = false;
2017-01-29 13:23:22 +01:00
2017-07-09 00:09:02 +02:00
private slots:
void insertCompletion(const QString &completion);
2017-01-21 05:14:27 +01:00
};