Added rpl::event_stream for document contents changes in InputField.
This commit is contained in:
parent
568f14594f
commit
24d69ee679
2 changed files with 12 additions and 0 deletions
|
|
@ -2210,6 +2210,7 @@ void InputField::onDocumentContentsChange(
|
||||||
_correcting = false;
|
_correcting = false;
|
||||||
QTextCursor(document->docHandle(), 0).endEditBlock();
|
QTextCursor(document->docHandle(), 0).endEditBlock();
|
||||||
handleContentsChanged();
|
handleContentsChanged();
|
||||||
|
_documentContentsChanges.fire({position, charsRemoved, charsAdded});
|
||||||
});
|
});
|
||||||
|
|
||||||
chopByMaxLength(insertPosition, insertLength);
|
chopByMaxLength(insertPosition, insertLength);
|
||||||
|
|
|
||||||
|
|
@ -315,6 +315,15 @@ public:
|
||||||
int scrollTopMax() const;
|
int scrollTopMax() const;
|
||||||
void scrollTo(int top);
|
void scrollTo(int top);
|
||||||
|
|
||||||
|
struct DocumentChangeInfo {
|
||||||
|
int position = 0;
|
||||||
|
int added = 0;
|
||||||
|
int removed = 0;
|
||||||
|
};
|
||||||
|
auto documentContentsChanges() {
|
||||||
|
return _documentContentsChanges.events();
|
||||||
|
}
|
||||||
|
|
||||||
~InputField();
|
~InputField();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
@ -514,6 +523,8 @@ private:
|
||||||
InstantReplaces _mutableInstantReplaces;
|
InstantReplaces _mutableInstantReplaces;
|
||||||
bool _instantReplacesEnabled = true;
|
bool _instantReplacesEnabled = true;
|
||||||
|
|
||||||
|
rpl::event_stream<DocumentChangeInfo> _documentContentsChanges;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class MaskedInputField : public RpWidgetWrap<QLineEdit> {
|
class MaskedInputField : public RpWidgetWrap<QLineEdit> {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue