From 0b68fc019bbeedb8b6b59bbbdf31f66596b6d5ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Wed, 2 Jan 2013 20:11:41 +0100 Subject: Cocoa: Correct mime handler prioritization. According to the documentation recently added mime type converters should take precedence over previously added converters. Make it so. Task-number: QTBUG-25951 Change-Id: Ic23ca7cbb93a98711d762b1ef0e0dd2aa1ceaeda Reviewed-by: Gabriel de Dietrich --- src/plugins/platforms/cocoa/qmacmime.mm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/plugins/platforms/cocoa') diff --git a/src/plugins/platforms/cocoa/qmacmime.mm b/src/plugins/platforms/cocoa/qmacmime.mm index 339559b6a6..89539de331 100644 --- a/src/plugins/platforms/cocoa/qmacmime.mm +++ b/src/plugins/platforms/cocoa/qmacmime.mm @@ -68,7 +68,10 @@ Q_GLOBAL_STATIC(QStringList, globalDraggedTypesList) void qt_mac_addToGlobalMimeList(QMacPasteboardMime *macMime) { - globalMimeList()->append(macMime); + // globalMimeList is in decreasing priority order. Recently added + // converters take prioity over previously added converters: prepend + // to the list. + globalMimeList()->prepend(macMime); } void qt_mac_removeFromGlobalMimeList(QMacPasteboardMime *macMime) @@ -810,6 +813,10 @@ QList QMacPasteboardMimeVCard::convertFromMime(const QString &mime, void QMacPasteboardMime::initializeMimeTypes() { if (globalMimeList()->isEmpty()) { + // Create QMacPasteboardMimeAny first to put it at the end of globalMimeList + // with lowest priority. (the constructor prepends to the list) + new QMacPasteboardMimeAny; + //standard types that we wrap new QMacPasteboardMimeTiff; new QMacPasteboardMimeUnicodeText; @@ -819,8 +826,6 @@ void QMacPasteboardMime::initializeMimeTypes() new QMacPasteboardMimeUrl; new QMacPasteboardMimeTypeName; new QMacPasteboardMimeVCard; - //make sure our "non-standard" types are always last! --Sam - new QMacPasteboardMimeAny; } } -- cgit v1.2.3