JS8Call-Improved master
Loading...
Searching...
No Matches
TransmitTextSourceMirror.h
1#ifndef TRANSMITTEXTSOURCEMIRROR_H
2#define TRANSMITTEXTSOURCEMIRROR_H
3
4#include "TransmitTextEdit.h"
5
6class QTextDocument;
7
9 public:
10 struct CursorState {
11 int anchor = 0;
12 int position = 0;
13 };
14
15 explicit source_mirror(TransmitTextEdit *owner);
16
17 QString plainText() const;
18 CursorState captureCursorState() const;
19 void restoreCursorState(const CursorState &state) const;
20 void replaceVisiblePlainText(const QString &text, bool keepCursor) const;
21 void syncDocument(const QString &text);
22 void replaceUnsentText(int sent, const QString &text);
23 void applyChange(int pos, int rem, const QString &insertedText);
24 void syncDisplayFromSource(const CursorState &state,
25 bool keepCursor) const;
26 void updateSentCache() const;
27
28 QTextDocument *document() const;
29
30 void beginSuppression();
31 void endSuppression();
32 bool isSuppressing() const;
33
34 void beginSyncFromSource();
35 void endSyncFromSource();
36 bool isSyncingFromSource() const;
37
38 void beginInternalMutation();
39 void endInternalMutation();
40 bool isInternalMutationActive() const;
41
42 private:
43 TransmitTextEdit *owner_;
44 QTextDocument *document_ = nullptr;
45 int suppressionDepth_ = 0;
46 int syncDepth_ = 0;
47 int internalMutationDepth_ = 0;
48};
49
50#endif // TRANSMITTEXTSOURCEMIRROR_H
Definition TransmitTextSourceMirror.h:8
Definition TransmitTextSourceMirror.h:10