Protect function drops the selected sent text to make it easier to replace the next frames
This commit is contained in:
parent
b216063f60
commit
7aff060ec7
@ -176,6 +176,17 @@ void TransmitTextEdit::on_selectionChanged(){
|
|||||||
|
|
||||||
auto protect = cursorShouldBeProtected(c);
|
auto protect = cursorShouldBeProtected(c);
|
||||||
|
|
||||||
|
if(protect){
|
||||||
|
blockSignals(true);
|
||||||
|
{
|
||||||
|
int end = c.selectionEnd();
|
||||||
|
c.setPosition(m_sent);
|
||||||
|
c.setPosition(end, QTextCursor::KeepAnchor);
|
||||||
|
setTextCursor(c);
|
||||||
|
}
|
||||||
|
blockSignals(false);
|
||||||
|
}
|
||||||
|
|
||||||
setProtected(protect);
|
setProtected(protect);
|
||||||
|
|
||||||
// TODO: when protected and text is selected, remove protected region from selection
|
// TODO: when protected and text is selected, remove protected region from selection
|
||||||
@ -382,10 +393,16 @@ bool TransmitTextEdit::eventFilter(QObject */*o*/, QEvent *e){
|
|||||||
|
|
||||||
// 2. if on the edge, do not filter if not a backspace
|
// 2. if on the edge, do not filter if not a backspace
|
||||||
int start = qMin(c.selectionStart(), c.selectionEnd());
|
int start = qMin(c.selectionStart(), c.selectionEnd());
|
||||||
|
int end = qMax(c.selectionStart(), c.selectionEnd());
|
||||||
if(start == m_sent && k->key() != Qt::Key_Backspace){
|
if(start == m_sent && k->key() != Qt::Key_Backspace){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 3. if on the edge, do not filter if a backspace and there is text selected
|
||||||
|
if(start == m_sent && start != end && k->key() == Qt::Key_Backspace){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user