Sanguine_Studio/app/gsceditor.h
2025-12-14 21:37:14 -05:00

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