summaryrefslogtreecommitdiff
path: root/src/texteditor.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-06-15 21:00:04 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-07-02 10:10:17 -0400
commitc79cf72d2250631110e8605ced6f34dda0378dc0 (patch)
tree9f7e18acc0d0d24f146bb845ce0590fed35fd84a /src/texteditor.h
parentfc8d5c1708aa126bb3301079d15787943a0f47c9 (diff)
line numbers, which required inheriting from QPlainTextEdit instead
Diffstat (limited to 'src/texteditor.h')
-rw-r--r--src/texteditor.h33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/texteditor.h b/src/texteditor.h
index c196b7a4..af542341 100644
--- a/src/texteditor.h
+++ b/src/texteditor.h
@@ -23,12 +23,33 @@ private:
};
-class TextEditor : public QObject
+class TextEditorLineNumbers : public QWidget
+{
+public:
+ TextEditorLineNumbers(TextEditor& editor);
+ QSize sizeHint() const override;
+ int areaWidth() const;
+
+protected:
+ void paintEvent(QPaintEvent *event) override;
+
+private:
+ TextEditor& m_editor;
+
+ void updateAreaWidth();
+ void updateArea(const QRect &rect, int dy);
+};
+
+
+class TextEditor : public QPlainTextEdit
{
Q_OBJECT
+ friend class TextEditorLineNumbers;
public:
- TextEditor(QPlainTextEdit* edit);
+ TextEditor(QWidget* parent=nullptr);
+
+ void setupToolbar();
bool load(const QString& filename);
bool save();
@@ -45,9 +66,12 @@ signals:
void modified(bool b);
void wordWrapChanged(bool b);
+protected:
+ void resizeEvent(QResizeEvent* e) override;
+
private:
- QPlainTextEdit* m_edit;
TextEditorToolbar m_toolbar;
+ TextEditorLineNumbers* m_lineNumbers;
QString m_filename;
QString m_encoding;
bool m_dirty;
@@ -55,8 +79,9 @@ private:
void onModified(bool b);
void dirty(bool b);
- void setupToolbar();
QWidget* wrapEditWidget();
+
+ void paintLineNumbers(QPaintEvent* e);
};
#endif // MO_TEXTEDITOR_H