#ifndef GSCEDITOR_H #define GSCEDITOR_H #include #include 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