diff options
Diffstat (limited to 'qt/ScintillaEditBase/ScintillaQt.cpp')
| -rw-r--r-- | qt/ScintillaEditBase/ScintillaQt.cpp | 38 | 
1 files changed, 11 insertions, 27 deletions
| diff --git a/qt/ScintillaEditBase/ScintillaQt.cpp b/qt/ScintillaEditBase/ScintillaQt.cpp index e4bbb5c1d..3b7db8002 100644 --- a/qt/ScintillaEditBase/ScintillaQt.cpp +++ b/qt/ScintillaEditBase/ScintillaQt.cpp @@ -25,7 +25,6 @@  #include <QScrollBar>  #include <QTimer>  #include <QTextCodec> -#include <QThread>  #ifdef SCI_NAMESPACE  using namespace Scintilla; @@ -307,36 +306,21 @@ void ScintillaQt::ReconfigureScrollBars()  	}  } -static bool clipboardAccessFailed; -static void ClipboardMessageHandler(QtMsgType, const QMessageLogContext &, const QString &) -{ -	clipboardAccessFailed = true; -} -  void ScintillaQt::CopyToModeClipboard(const SelectionText &selectedText, QClipboard::Mode clipboardMode_)  { -	// Try up to 8 times, with an initial delay of 1 ms and an exponential -	// back off for a maximum total delay of 127 ms (1+2+4+8+16+32+64). -	QString text = StringFromSelectedText(selectedText); -	for (int attempt = 0; attempt < 8; attempt++) { -		if (attempt > 0) -			QThread::msleep(1 << (attempt-1)); - -		QMimeData *mimeData = new QMimeData; -		mimeData->setText(text); -		if (selectedText.rectangular) -			AddRectangularToMime(mimeData, text); +	QClipboard *clipboard = QApplication::clipboard(); +	clipboard->clear(clipboardMode_); +	QString su = StringFromSelectedText(selectedText); +	QMimeData *mimeData = new QMimeData(); +	mimeData->setText(su); +	if (selectedText.rectangular) { +		AddRectangularToMime(mimeData, su); +	} -		// Allow client code to add additional data (e.g rich text). -		emit aboutToCopy(mimeData); +	// Allow client code to add additional data (e.g rich text). +	emit aboutToCopy(mimeData); -		clipboardAccessFailed = false; -		QtMessageHandler handler = qInstallMessageHandler(ClipboardMessageHandler); -		QApplication::clipboard()->setMimeData(mimeData, clipboardMode_); -		qInstallMessageHandler(handler); -		if (!clipboardAccessFailed) -			return; -	} +	clipboard->setMimeData(mimeData, clipboardMode_);  }  void ScintillaQt::Copy() | 
