aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquicktextedit_p.h
diff options
context:
space:
mode:
authorPierre Rossi <pierre.rossi@digia.com>2013-03-18 16:25:59 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-20 08:31:56 +0100
commitf513e88403b66c4a5efe4c62c160dfce151efb33 (patch)
treef091c015be4781a9d65bb702c4263cd09cd6adb0 /src/quick/items/qquicktextedit_p.h
parent471645f6dba6a21b85cb6788f0a0a07b6d5a804a (diff)
Optimize QQuickTextEdit for larger documents.
The rationale is to not end up re-processing the whole document on each update Since we know where the editing takes place, we can break down the text edit's contents in several text nodes and only re-create the affected text nodes upon editing. This requires ripping out the SelectionEngine helper class from QQuickTextNode so that QQuickTextEdit can tap into its functionality directly. A positive side-effect of this exercise is that it should be much harder to to come across GlyphNodes packing more than 16300 glyphs or so. Task-number: QTBUG-29596 Change-Id: Id29b0709baa43f5b29c44ab02398ba996be3e28a Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Diffstat (limited to 'src/quick/items/qquicktextedit_p.h')
-rw-r--r--src/quick/items/qquicktextedit_p.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/quick/items/qquicktextedit_p.h b/src/quick/items/qquicktextedit_p.h
index 8a2d9b1e92..4e09eafcac 100644
--- a/src/quick/items/qquicktextedit_p.h
+++ b/src/quick/items/qquicktextedit_p.h
@@ -313,17 +313,19 @@ public Q_SLOTS:
private Q_SLOTS:
void q_textChanged();
- void updateSelectionMarkers();
+ void q_contentsChange(int, int, int);
+ void updateSelection();
void moveCursorDelegate();
void createCursor();
void q_canPasteChanged();
- void updateDocument();
+ void updateWholeDocument();
void updateCursor();
void q_updateAlignment();
void updateSize();
void triggerPreprocess();
private:
+ void markDirtyNodesForRange(int start, int end, int charDelta);
void updateTotalLines();
protected: