QPlainTextEdit notify/hook when selection is about to be removed
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I have a QPlainTextEdit, and I need to get a notification whenever it has selected text which is about to be removed (the reason being I want to backup it).
So I need to be notified when the text is about to be changed, but not changed yet (so no textChanged() signal as it is sent after the change). I could then check if there is a selection and back it up. Unfortunately, there isn't a textChanging(), only a textChanged() signal.
What should I hook in this case?
c++ qt qplaintextedit
add a comment |
I have a QPlainTextEdit, and I need to get a notification whenever it has selected text which is about to be removed (the reason being I want to backup it).
So I need to be notified when the text is about to be changed, but not changed yet (so no textChanged() signal as it is sent after the change). I could then check if there is a selection and back it up. Unfortunately, there isn't a textChanging(), only a textChanged() signal.
What should I hook in this case?
c++ qt qplaintextedit
1
Look atQTextDocumentfor ideas. I didn't notice an obvious solution, but if the text isn't too large, you could simply take a clone of the document when ever it is changed, and then usecontentsChangesignal to discover what code deleted and where, and fetch it from the "backup". Or you could maybe justundo()the change, copy the removed text, andredo(). I'd write an answer, but I don't know if this will actually work, so just a comment...
– hyde
Jan 3 at 20:29
Thank you, I'll look into it but probably tomorrow as it's getting late in my timezone.
– sashoalm
Jan 3 at 20:50
add a comment |
I have a QPlainTextEdit, and I need to get a notification whenever it has selected text which is about to be removed (the reason being I want to backup it).
So I need to be notified when the text is about to be changed, but not changed yet (so no textChanged() signal as it is sent after the change). I could then check if there is a selection and back it up. Unfortunately, there isn't a textChanging(), only a textChanged() signal.
What should I hook in this case?
c++ qt qplaintextedit
I have a QPlainTextEdit, and I need to get a notification whenever it has selected text which is about to be removed (the reason being I want to backup it).
So I need to be notified when the text is about to be changed, but not changed yet (so no textChanged() signal as it is sent after the change). I could then check if there is a selection and back it up. Unfortunately, there isn't a textChanging(), only a textChanged() signal.
What should I hook in this case?
c++ qt qplaintextedit
c++ qt qplaintextedit
asked Jan 3 at 20:20
sashoalmsashoalm
30.9k68254535
30.9k68254535
1
Look atQTextDocumentfor ideas. I didn't notice an obvious solution, but if the text isn't too large, you could simply take a clone of the document when ever it is changed, and then usecontentsChangesignal to discover what code deleted and where, and fetch it from the "backup". Or you could maybe justundo()the change, copy the removed text, andredo(). I'd write an answer, but I don't know if this will actually work, so just a comment...
– hyde
Jan 3 at 20:29
Thank you, I'll look into it but probably tomorrow as it's getting late in my timezone.
– sashoalm
Jan 3 at 20:50
add a comment |
1
Look atQTextDocumentfor ideas. I didn't notice an obvious solution, but if the text isn't too large, you could simply take a clone of the document when ever it is changed, and then usecontentsChangesignal to discover what code deleted and where, and fetch it from the "backup". Or you could maybe justundo()the change, copy the removed text, andredo(). I'd write an answer, but I don't know if this will actually work, so just a comment...
– hyde
Jan 3 at 20:29
Thank you, I'll look into it but probably tomorrow as it's getting late in my timezone.
– sashoalm
Jan 3 at 20:50
1
1
Look at
QTextDocument for ideas. I didn't notice an obvious solution, but if the text isn't too large, you could simply take a clone of the document when ever it is changed, and then use contentsChange signal to discover what code deleted and where, and fetch it from the "backup". Or you could maybe just undo() the change, copy the removed text, and redo(). I'd write an answer, but I don't know if this will actually work, so just a comment...– hyde
Jan 3 at 20:29
Look at
QTextDocument for ideas. I didn't notice an obvious solution, but if the text isn't too large, you could simply take a clone of the document when ever it is changed, and then use contentsChange signal to discover what code deleted and where, and fetch it from the "backup". Or you could maybe just undo() the change, copy the removed text, and redo(). I'd write an answer, but I don't know if this will actually work, so just a comment...– hyde
Jan 3 at 20:29
Thank you, I'll look into it but probably tomorrow as it's getting late in my timezone.
– sashoalm
Jan 3 at 20:50
Thank you, I'll look into it but probably tomorrow as it's getting late in my timezone.
– sashoalm
Jan 3 at 20:50
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54029243%2fqplaintextedit-notify-hook-when-selection-is-about-to-be-removed%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54029243%2fqplaintextedit-notify-hook-when-selection-is-about-to-be-removed%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Look at
QTextDocumentfor ideas. I didn't notice an obvious solution, but if the text isn't too large, you could simply take a clone of the document when ever it is changed, and then usecontentsChangesignal to discover what code deleted and where, and fetch it from the "backup". Or you could maybe justundo()the change, copy the removed text, andredo(). I'd write an answer, but I don't know if this will actually work, so just a comment...– hyde
Jan 3 at 20:29
Thank you, I'll look into it but probably tomorrow as it's getting late in my timezone.
– sashoalm
Jan 3 at 20:50