diff options
author | Debao Zhang <dbzhang800@gmail.com> | 2012-02-24 10:51:18 -0800 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-27 20:52:45 +0100 |
commit | 63017136a1a6625c3528f9b237468a55b7fab12c (patch) | |
tree | 399d8fd90b8f030befcc1f7788852ad24ded73f2 /src | |
parent | e76d72aec544878d976423e2136e7787aba980ab (diff) |
QClipboard: Fix autotest fails
tst_qclipboard.cpp still has Q_WS_WIN which must be clear away. After
clean up, auto test will fail under windows: When setMimeData() is
called, dataChanged() signal will be emited twice.
The solution for QTBUG-24184 has partially solved the problem, but it
still there. Make sure emitChanged() only called by QPlatformClipboard
will give our more control for this.
Task-number: QTBUG-24484
Change-Id: I23566c6d3b32828b6865234c311af3635fe9e299
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/kernel/qclipboard_qpa.cpp | 2 | ||||
-rw-r--r-- | src/gui/kernel/qplatformclipboard_qpa.cpp | 2 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowsclipboard.cpp | 3 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbclipboard.cpp | 1 | ||||
-rw-r--r-- | src/plugins/platforms/xlib/qxlibclipboard.cpp | 1 |
5 files changed, 5 insertions, 4 deletions
diff --git a/src/gui/kernel/qclipboard_qpa.cpp b/src/gui/kernel/qclipboard_qpa.cpp index b33ccd42a2..0d97fdd0be 100644 --- a/src/gui/kernel/qclipboard_qpa.cpp +++ b/src/gui/kernel/qclipboard_qpa.cpp @@ -76,8 +76,6 @@ void QClipboard::setMimeData(QMimeData* src, Mode mode) if (!clipboard->supportsMode(mode)) return; clipboard->setMimeData(src,mode); - - emitChanged(mode); } bool QClipboard::supportsMode(Mode mode) const diff --git a/src/gui/kernel/qplatformclipboard_qpa.cpp b/src/gui/kernel/qplatformclipboard_qpa.cpp index 9e0c60b3f6..bc08a73a7f 100644 --- a/src/gui/kernel/qplatformclipboard_qpa.cpp +++ b/src/gui/kernel/qplatformclipboard_qpa.cpp @@ -96,6 +96,8 @@ void QPlatformClipboard::setMimeData(QMimeData *data, QClipboard::Mode mode) //we know its clipboard Q_UNUSED(mode); q_clipboardData()->setSource(data); + + emitChanged(mode); } bool QPlatformClipboard::supportsMode(QClipboard::Mode mode) const diff --git a/src/plugins/platforms/windows/qwindowsclipboard.cpp b/src/plugins/platforms/windows/qwindowsclipboard.cpp index 4f083e93d2..cd555d71a1 100644 --- a/src/plugins/platforms/windows/qwindowsclipboard.cpp +++ b/src/plugins/platforms/windows/qwindowsclipboard.cpp @@ -287,8 +287,7 @@ bool QWindowsClipboard::clipboardViewerWndProc(HWND hwnd, UINT message, WPARAM w const bool owned = ownsClipboard(); if (QWindowsContext::verboseOLE) qDebug("Clipboard changed owned %d", owned); - if (!owned) // changed is emitted by QClipboard in that case. - emitChanged(QClipboard::Clipboard); + emitChanged(QClipboard::Clipboard); // clean up the clipboard object if we no longer own the clipboard if (!owned && m_data) releaseIData(); diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp index bad80568e3..f8d35ed4da 100644 --- a/src/plugins/platforms/xcb/qxcbclipboard.cpp +++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp @@ -295,6 +295,7 @@ void QXcbClipboard::setMimeData(QMimeData *data, QClipboard::Mode mode) qWarning("QClipboard::setData: Cannot set X11 selection owner"); } + emitChanged(mode); } bool QXcbClipboard::supportsMode(QClipboard::Mode mode) const diff --git a/src/plugins/platforms/xlib/qxlibclipboard.cpp b/src/plugins/platforms/xlib/qxlibclipboard.cpp index 920b4a4cff..69a0f20777 100644 --- a/src/plugins/platforms/xlib/qxlibclipboard.cpp +++ b/src/plugins/platforms/xlib/qxlibclipboard.cpp @@ -223,6 +223,7 @@ void QXlibClipboard::setMimeData(QMimeData *data, QClipboard::Mode mode) qWarning("QClipboard::setData: Cannot set X11 selection owner"); } + emitChanged(mode); } bool QXlibClipboard::supportsMode(QClipboard::Mode mode) const |