44 lines
814 B
C++
44 lines
814 B
C++
#ifndef GSCEDITOR_H
|
|
#define GSCEDITOR_H
|
|
|
|
#include <QTextEdit>
|
|
#include <QCompleter>
|
|
|
|
class GSCEditor : public QTextEdit
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
GSCEditor(QWidget *aParent = nullptr);
|
|
~GSCEditor();
|
|
|
|
void setCompleter(QCompleter *aCompleter);
|
|
QCompleter* completer() const;
|
|
|
|
void setSaveableText(const QString &aText);
|
|
|
|
bool saved() const;
|
|
void save();
|
|
void saveAs();
|
|
|
|
protected:
|
|
void keyPressEvent(QKeyEvent* aEvent) override;
|
|
void focusInEvent(QFocusEvent* aEvent) override;
|
|
|
|
signals:
|
|
void saveStatusChanged(bool aSaved);
|
|
|
|
private slots:
|
|
void checkPlainTextChanged();
|
|
void insertCompletion(const QString& aCompletion);
|
|
|
|
private:
|
|
QString mTextUnderCursor() const;
|
|
QString mLastText;
|
|
bool mSaved;
|
|
|
|
QCompleter *mCompleter;
|
|
};
|
|
|
|
#endif // GSCEDITOR_H
|