summaryrefslogtreecommitdiffstats
path: root/tests/manual/textrendering/codeeditor/codeeditor.h
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2023-02-08 13:26:22 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2023-02-09 00:23:34 +0100
commit48a1a5564f89e1e8f0b6f4a28398e4ae0b3f751c (patch)
tree9eb617d59bc9aa66b80fc82eb0aa04cacc166b53 /tests/manual/textrendering/codeeditor/codeeditor.h
parent3fe0bf6e1bd3713543a5b763d3bfcee0c03faf4c (diff)
Examples: move widgets/codeeditor into manual tests
It's not a very well written example, using (largely unneed) hacks to implement what it does. It's also misleading - the syntaxhighlighter example is a better showcase for building a useful code editor. Move it to manual tests. Fixes: QTBUG-111025 Pick-to: 6.5 Change-Id: I405d41688235bf3e9a08373e716769f26d02fec6 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'tests/manual/textrendering/codeeditor/codeeditor.h')
-rw-r--r--tests/manual/textrendering/codeeditor/codeeditor.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/manual/textrendering/codeeditor/codeeditor.h b/tests/manual/textrendering/codeeditor/codeeditor.h
new file mode 100644
index 00000000000..e8e6a583f0e
--- /dev/null
+++ b/tests/manual/textrendering/codeeditor/codeeditor.h
@@ -0,0 +1,68 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+#ifndef CODEEDITOR_H
+#define CODEEDITOR_H
+
+#include <QPlainTextEdit>
+
+QT_BEGIN_NAMESPACE
+class QPaintEvent;
+class QResizeEvent;
+class QSize;
+class QWidget;
+QT_END_NAMESPACE
+
+class LineNumberArea;
+
+//![codeeditordefinition]
+
+class CodeEditor : public QPlainTextEdit
+{
+ Q_OBJECT
+
+public:
+ CodeEditor(QWidget *parent = nullptr);
+
+ void lineNumberAreaPaintEvent(QPaintEvent *event);
+ int lineNumberAreaWidth();
+
+protected:
+ void resizeEvent(QResizeEvent *event) override;
+
+private slots:
+ void updateLineNumberAreaWidth(int newBlockCount);
+ void highlightCurrentLine();
+ void updateLineNumberArea(const QRect &rect, int dy);
+
+private:
+ QWidget *lineNumberArea;
+};
+
+//![codeeditordefinition]
+//![extraarea]
+
+class LineNumberArea : public QWidget
+{
+public:
+ LineNumberArea(CodeEditor *editor) : QWidget(editor), codeEditor(editor)
+ {}
+
+ QSize sizeHint() const override
+ {
+ return QSize(codeEditor->lineNumberAreaWidth(), 0);
+ }
+
+protected:
+ void paintEvent(QPaintEvent *event) override
+ {
+ codeEditor->lineNumberAreaPaintEvent(event);
+ }
+
+private:
+ CodeEditor *codeEditor;
+};
+
+//![extraarea]
+
+#endif