From 7514ebbe1a54be25a8b5d63eb9bc9f71fc637196 Mon Sep 17 00:00:00 2001 From: Tsu Jan Date: Sun, 20 Dec 2020 20:57:26 +0330 Subject: [PATCH] Added a QTermWidget method to disable bracketed paste mode Will be followed and used by a QTerminal patch. --- lib/TerminalDisplay.cpp | 3 ++- lib/TerminalDisplay.h | 4 ++++ lib/qtermwidget.cpp | 10 ++++++++++ lib/qtermwidget.h | 4 ++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/TerminalDisplay.cpp b/lib/TerminalDisplay.cpp index ce149bd..f32682a 100644 --- a/lib/TerminalDisplay.cpp +++ b/lib/TerminalDisplay.cpp @@ -333,6 +333,7 @@ TerminalDisplay::TerminalDisplay(QWidget *parent) ,_terminalSizeStartup(true) ,_bidiEnabled(false) ,_mouseMarks(false) +,_disabledBracketedPasteMode(false) ,_actSel(0) ,_wordSelectionMode(false) ,_lineSelectionMode(false) @@ -2672,7 +2673,7 @@ void TerminalDisplay::emitSelection(bool useXselection,bool appendReturn) void TerminalDisplay::bracketText(QString& text) { - if (bracketedPasteMode()) + if (bracketedPasteMode() && !_disabledBracketedPasteMode) { text.prepend(QLatin1String("\033[200~")); text.append(QLatin1String("\033[201~")); diff --git a/lib/TerminalDisplay.h b/lib/TerminalDisplay.h index 9c47c17..40ce3e0 100644 --- a/lib/TerminalDisplay.h +++ b/lib/TerminalDisplay.h @@ -418,6 +418,9 @@ public: // of the character at that point. void getCharacterPosition(const QPoint& widgetPoint,int& line,int& column) const; + void disableBracketedPasteMode(bool disable) { _disabledBracketedPasteMode = disable; } + bool bracketedPasteModeIsDisabled() const { return _disabledBracketedPasteMode; } + public slots: /** @@ -753,6 +756,7 @@ private: bool _bidiEnabled; bool _mouseMarks; bool _bracketedPasteMode; + bool _disabledBracketedPasteMode; QPoint _iPntSel; // initial selection point QPoint _pntSel; // current selection point diff --git a/lib/qtermwidget.cpp b/lib/qtermwidget.cpp index 7254f8b..594a44a 100644 --- a/lib/qtermwidget.cpp +++ b/lib/qtermwidget.cpp @@ -533,6 +533,16 @@ void QTermWidget::bracketText(QString& text) m_impl->m_terminalDisplay->bracketText(text); } +void QTermWidget::disableBracketedPasteMode(bool disable) +{ + m_impl->m_terminalDisplay->disableBracketedPasteMode(disable); +} + +bool QTermWidget::bracketedPasteModeIsDisabled() const +{ + return m_impl->m_terminalDisplay->bracketedPasteModeIsDisabled(); +} + void QTermWidget::copyClipboard() { m_impl->m_terminalDisplay->copyClipboard(); diff --git a/lib/qtermwidget.h b/lib/qtermwidget.h index 8bc2f09..ec12aac 100644 --- a/lib/qtermwidget.h +++ b/lib/qtermwidget.h @@ -226,6 +226,10 @@ public: /** change and wrap text corresponding to paste mode **/ void bracketText(QString& text); + /** forcefully disable bracketed paste mode **/ + void disableBracketedPasteMode(bool disable); + bool bracketedPasteModeIsDisabled() const; + /** Set the empty space outside the terminal */ void setMargin(int);