From 5104798b8c2aa8f2bc9814f53bd0dddfa2a91915 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 12 May 2020 14:56:01 +0200 Subject: [PATCH] Check for selection support of clipboard Setting the data on a non-supported MIME data will fail and get deleted. Checking beforehand gets rid of a warning printed by QClipboard. Change-Id: I5b5a371ce5b904f61a1aed5ea21a98908155357b Reviewed-by: hjk --- src/plugins/debugger/debuggertooltipmanager.cpp | 3 ++- src/plugins/debugger/stackhandler.cpp | 3 ++- src/plugins/debugger/watchhandler.cpp | 3 ++- src/plugins/perfprofiler/perfprofilerstatisticsview.cpp | 3 ++- src/plugins/qmlprofiler/qmlprofilerstatisticsview.cpp | 6 ++++-- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/plugins/debugger/debuggertooltipmanager.cpp b/src/plugins/debugger/debuggertooltipmanager.cpp index 49aa316571d..58ec3663ab6 100644 --- a/src/plugins/debugger/debuggertooltipmanager.cpp +++ b/src/plugins/debugger/debuggertooltipmanager.cpp @@ -586,7 +586,8 @@ DebuggerToolTipWidget::DebuggerToolTipWidget() << item->name << '\t' << item->value << '\t' << item->type << '\n'; }); QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(text, QClipboard::Selection); + if (clipboard->supportsSelection()) + clipboard->setText(text, QClipboard::Selection); clipboard->setText(text, QClipboard::Clipboard); }); diff --git a/src/plugins/debugger/stackhandler.cpp b/src/plugins/debugger/stackhandler.cpp index 51d27228d18..d1af61e2c73 100644 --- a/src/plugins/debugger/stackhandler.cpp +++ b/src/plugins/debugger/stackhandler.cpp @@ -479,7 +479,8 @@ void StackHandler::copyContentsToClipboard() }); QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(str, QClipboard::Selection); + if (clipboard->supportsSelection()) + clipboard->setText(str, QClipboard::Selection); clipboard->setText(str, QClipboard::Clipboard); } diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index beab34f8f3b..bd473776ef1 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -1596,7 +1596,8 @@ static QString removeWatchActionText(QString exp) static void copyToClipboard(const QString &clipboardText) { QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(clipboardText, QClipboard::Selection); + if (clipboard->supportsSelection()) + clipboard->setText(clipboardText, QClipboard::Selection); clipboard->setText(clipboardText, QClipboard::Clipboard); } diff --git a/src/plugins/perfprofiler/perfprofilerstatisticsview.cpp b/src/plugins/perfprofiler/perfprofilerstatisticsview.cpp index d023444b2e0..78e9b57e7ef 100644 --- a/src/plugins/perfprofiler/perfprofilerstatisticsview.cpp +++ b/src/plugins/perfprofiler/perfprofilerstatisticsview.cpp @@ -204,7 +204,8 @@ QString StatisticsView::rowToString(int row) const static void sendToClipboard(const QString &str) { QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(str, QClipboard::Selection); + if (clipboard->supportsSelection()) + clipboard->setText(str, QClipboard::Selection); clipboard->setText(str, QClipboard::Clipboard); } diff --git a/src/plugins/qmlprofiler/qmlprofilerstatisticsview.cpp b/src/plugins/qmlprofiler/qmlprofilerstatisticsview.cpp index d11c97e0854..81d57358756 100644 --- a/src/plugins/qmlprofiler/qmlprofilerstatisticsview.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerstatisticsview.cpp @@ -360,7 +360,8 @@ void QmlProfilerStatisticsMainView::copyTableToClipboard() const str += textForItem(itemModel->index(i, 0)); QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(str, QClipboard::Selection); + if (clipboard->supportsSelection()) + clipboard->setText(str, QClipboard::Selection); clipboard->setText(str, QClipboard::Clipboard); } @@ -368,7 +369,8 @@ void QmlProfilerStatisticsMainView::copyRowToClipboard() const { QString str = textForItem(selectedModelIndex()); QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(str, QClipboard::Selection); + if (clipboard->supportsSelection()) + clipboard->setText(str, QClipboard::Selection); clipboard->setText(str, QClipboard::Clipboard); }