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);