From cbf6678499517c431953d7ca959bac3273e013b5 Mon Sep 17 00:00:00 2001 From: Neil Date: Mon, 29 Feb 2016 13:42:44 +1100 Subject: Backed out changeset: 8bc19ede3b51 Was incompatible with Qt 4.7 and 4.8. --- doc/ScintillaHistory.html | 2 +- qt/ScintillaEditBase/ScintillaQt.cpp | 38 +++++++++++------------------------- 2 files changed, 12 insertions(+), 28 deletions(-) diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 758877d9c..b3b417d19 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -540,7 +540,7 @@ IME target range displayed on Qt for OS X.
  • - On Qt and Windows, make clipboard operations more robust by retrying if they fail + On Windows, make clipboard operations more robust by retrying OpenClipboard if it fails as this may occur when another application has opened the clipboard.
  • 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 #include #include -#include #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() -- cgit v1.2.3