From c8d696eee7d26cb78a75f1476b7ac1b0c2c8f3c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Wed, 18 Dec 2013 12:21:21 +0100 Subject: Fix static builds on Mac. QMacPasteboardMime is a public class in Qt 4. Qt 5 has two copies, one public QtMacExtras and an internal one in the cocoa plugin. This causes a symbol collision when building statically. Rename the internal copy to QMacInternalPasteboardMime. Task-number: QTBUG-35310 Change-Id: I891787b451a0b342ed85aa7196e606bc11623e21 Reviewed-by: Gabriel de Dietrich --- src/plugins/platforms/cocoa/qcocoaclipboard.mm | 4 +- src/plugins/platforms/cocoa/qcocoadrag.mm | 8 +-- src/plugins/platforms/cocoa/qcocoaintegration.mm | 4 +- .../platforms/cocoa/qcocoanativeinterface.mm | 4 +- src/plugins/platforms/cocoa/qmacclipboard.h | 4 +- src/plugins/platforms/cocoa/qmacclipboard.mm | 20 ++++---- src/plugins/platforms/cocoa/qmacmime.h | 14 ++--- src/plugins/platforms/cocoa/qmacmime.mm | 60 +++++++++++----------- src/plugins/platforms/cocoa/qt_mac_p.h | 2 +- 9 files changed, 60 insertions(+), 60 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoaclipboard.mm b/src/plugins/platforms/cocoa/qcocoaclipboard.mm index daeebcb078..a49ff902a5 100644 --- a/src/plugins/platforms/cocoa/qcocoaclipboard.mm +++ b/src/plugins/platforms/cocoa/qcocoaclipboard.mm @@ -46,8 +46,8 @@ QT_BEGIN_NAMESPACE QCocoaClipboard::QCocoaClipboard() - :m_clipboard(new QMacPasteboard(kPasteboardClipboard, QMacPasteboardMime::MIME_CLIP)) - ,m_find(new QMacPasteboard(kPasteboardFind, QMacPasteboardMime::MIME_CLIP)) + :m_clipboard(new QMacPasteboard(kPasteboardClipboard, QMacInternalPasteboardMime::MIME_CLIP)) + ,m_find(new QMacPasteboard(kPasteboardFind, QMacInternalPasteboardMime::MIME_CLIP)) { } diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm index a22830f64e..5d7f53ee5d 100644 --- a/src/plugins/platforms/cocoa/qcocoadrag.mm +++ b/src/plugins/platforms/cocoa/qcocoadrag.mm @@ -131,7 +131,7 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o) NSImage *nsimage = qt_mac_create_nsimage(pm); - QMacPasteboard dragBoard((CFStringRef) NSDragPboard, QMacPasteboardMime::MIME_DND); + QMacPasteboard dragBoard((CFStringRef) NSDragPboard, QMacInternalPasteboardMime::MIME_DND); m_drag->mimeData()->setData(QLatin1String("application/x-qt-mime-type-name"), QByteArray("dummy")); dragBoard.setMimeData(m_drag->mimeData()); @@ -181,7 +181,7 @@ QStringList QCocoaDropData::formats_sys() const qDebug("DnD: Cannot get PasteBoard!"); return formats; } - formats = QMacPasteboard(board, QMacPasteboardMime::MIME_DND).formats(); + formats = QMacPasteboard(board, QMacInternalPasteboardMime::MIME_DND).formats(); return formats; } @@ -193,7 +193,7 @@ QVariant QCocoaDropData::retrieveData_sys(const QString &mimeType, QVariant::Typ qDebug("DnD: Cannot get PasteBoard!"); return data; } - data = QMacPasteboard(board, QMacPasteboardMime::MIME_DND).retrieveData(mimeType, type); + data = QMacPasteboard(board, QMacInternalPasteboardMime::MIME_DND).retrieveData(mimeType, type); CFRelease(board); return data; } @@ -206,7 +206,7 @@ bool QCocoaDropData::hasFormat_sys(const QString &mimeType) const qDebug("DnD: Cannot get PasteBoard!"); return has; } - has = QMacPasteboard(board, QMacPasteboardMime::MIME_DND).hasFormat(mimeType); + has = QMacPasteboard(board, QMacInternalPasteboardMime::MIME_DND).hasFormat(mimeType); CFRelease(board); return has; } diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm index 0af635be6f..5f01274d98 100644 --- a/src/plugins/platforms/cocoa/qcocoaintegration.mm +++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm @@ -268,7 +268,7 @@ QCocoaIntegration::QCocoaIntegration() updateScreens(); - QMacPasteboardMime::initializeMimeTypes(); + QMacInternalPasteboardMime::initializeMimeTypes(); } QCocoaIntegration::~QCocoaIntegration() @@ -288,7 +288,7 @@ QCocoaIntegration::~QCocoaIntegration() // Deleting the clipboard integration flushes promised pastes using // the mime converters - the ordering here is important. delete mCocoaClipboard; - QMacPasteboardMime::destroyMimeTypes(); + QMacInternalPasteboardMime::destroyMimeTypes(); // Delete screens in reverse order to avoid crash in case of multiple screens while (!mScreens.isEmpty()) { diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm index 972c171f69..795d1a8149 100644 --- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm +++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm @@ -207,12 +207,12 @@ void *QCocoaNativeInterface::nsOpenGLContextForContext(QOpenGLContext* context) void QCocoaNativeInterface::addToMimeList(void *macPasteboardMime) { - qt_mac_addToGlobalMimeList(reinterpret_cast(macPasteboardMime)); + qt_mac_addToGlobalMimeList(reinterpret_cast(macPasteboardMime)); } void QCocoaNativeInterface::removeFromMimeList(void *macPasteboardMime) { - qt_mac_removeFromGlobalMimeList(reinterpret_cast(macPasteboardMime)); + qt_mac_removeFromGlobalMimeList(reinterpret_cast(macPasteboardMime)); } void QCocoaNativeInterface::registerDraggedTypes(const QStringList &types) diff --git a/src/plugins/platforms/cocoa/qmacclipboard.h b/src/plugins/platforms/cocoa/qmacclipboard.h index 4eeeecc0c0..d8e588e36b 100644 --- a/src/plugins/platforms/cocoa/qmacclipboard.h +++ b/src/plugins/platforms/cocoa/qmacclipboard.h @@ -55,9 +55,9 @@ class QMacPasteboard { struct Promise { Promise() : itemId(0), convertor(0) { } - Promise(int itemId, QMacPasteboardMime *c, QString m, QVariant d, int o=0) : itemId(itemId), offset(o), convertor(c), mime(m), data(d) { } + Promise(int itemId, QMacInternalPasteboardMime *c, QString m, QVariant d, int o=0) : itemId(itemId), offset(o), convertor(c), mime(m), data(d) { } int itemId, offset; - QMacPasteboardMime *convertor; + QMacInternalPasteboardMime *convertor; QString mime; QVariant data; }; diff --git a/src/plugins/platforms/cocoa/qmacclipboard.mm b/src/plugins/platforms/cocoa/qmacclipboard.mm index b5c50d676f..9ccf41fbf4 100644 --- a/src/plugins/platforms/cocoa/qmacclipboard.mm +++ b/src/plugins/platforms/cocoa/qmacclipboard.mm @@ -68,7 +68,7 @@ QT_BEGIN_NAMESPACE QMacPasteboard::QMacPasteboard(PasteboardRef p, uchar mt) { mac_mime_source = false; - mime_type = mt ? mt : uchar(QMacPasteboardMime::MIME_ALL); + mime_type = mt ? mt : uchar(QMacInternalPasteboardMime::MIME_ALL); paste = p; CFRetain(paste); } @@ -76,7 +76,7 @@ QMacPasteboard::QMacPasteboard(PasteboardRef p, uchar mt) QMacPasteboard::QMacPasteboard(uchar mt) { mac_mime_source = false; - mime_type = mt ? mt : uchar(QMacPasteboardMime::MIME_ALL); + mime_type = mt ? mt : uchar(QMacInternalPasteboardMime::MIME_ALL); paste = 0; OSStatus err = PasteboardCreate(0, &paste); if (err == noErr) { @@ -89,7 +89,7 @@ QMacPasteboard::QMacPasteboard(uchar mt) QMacPasteboard::QMacPasteboard(CFStringRef name, uchar mt) { mac_mime_source = false; - mime_type = mt ? mt : uchar(QMacPasteboardMime::MIME_ALL); + mime_type = mt ? mt : uchar(QMacInternalPasteboardMime::MIME_ALL); paste = 0; OSStatus err = PasteboardCreate(name, &paste); if (err == noErr) { @@ -287,7 +287,7 @@ QMacPasteboard::setMimeData(QMimeData *mime_src) delete mime; mime = mime_src; - QList availableConverters = QMacPasteboardMime::all(mime_type); + QList availableConverters = QMacInternalPasteboardMime::all(mime_type); if (mime != 0) { clear_helper(); QStringList formats = mime_src->formats(); @@ -304,8 +304,8 @@ QMacPasteboard::setMimeData(QMimeData *mime_src) } for (int f = 0; f < formats.size(); ++f) { QString mimeType = formats.at(f); - for (QList::Iterator it = availableConverters.begin(); it != availableConverters.end(); ++it) { - QMacPasteboardMime *c = (*it); + for (QList::Iterator it = availableConverters.begin(); it != availableConverters.end(); ++it) { + QMacInternalPasteboardMime *c = (*it); QString flavor(c->flavorFor(mimeType)); if (!flavor.isEmpty()) { QVariant mimeData = static_cast(mime_src)->variantData(mimeType); @@ -358,7 +358,7 @@ QMacPasteboard::formats() const #ifdef DEBUG_PASTEBOARD qDebug(" -%s", qPrintable(QString(flavor))); #endif - QString mimeType = QMacPasteboardMime::flavorToMime(mime_type, flavor); + QString mimeType = QMacInternalPasteboardMime::flavorToMime(mime_type, flavor); if (!mimeType.isEmpty() && !ret.contains(mimeType)) { #ifdef DEBUG_PASTEBOARD qDebug(" -<%d> %s [%s]", ret.size(), qPrintable(mimeType), qPrintable(QString(flavor))); @@ -401,7 +401,7 @@ QMacPasteboard::hasFormat(const QString &format) const #ifdef DEBUG_PASTEBOARD qDebug(" -%s [0x%x]", qPrintable(QString(flavor)), mime_type); #endif - QString mimeType = QMacPasteboardMime::flavorToMime(mime_type, flavor); + QString mimeType = QMacInternalPasteboardMime::flavorToMime(mime_type, flavor); #ifdef DEBUG_PASTEBOARD if (!mimeType.isEmpty()) qDebug(" - %s", qPrintable(mimeType)); @@ -428,9 +428,9 @@ QMacPasteboard::retrieveData(const QString &format, QVariant::Type) const #ifdef DEBUG_PASTEBOARD qDebug("Pasteboard: retrieveData [%s]", qPrintable(format)); #endif - const QList mimes = QMacPasteboardMime::all(mime_type); + const QList mimes = QMacInternalPasteboardMime::all(mime_type); for (int mime = 0; mime < mimes.size(); ++mime) { - QMacPasteboardMime *c = mimes.at(mime); + QMacInternalPasteboardMime *c = mimes.at(mime); QString c_flavor = c->flavorFor(format); if (!c_flavor.isEmpty()) { // Handle text/plain a little differently. Try handling Unicode first. diff --git a/src/plugins/platforms/cocoa/qmacmime.h b/src/plugins/platforms/cocoa/qmacmime.h index d9ef63ae48..0802987fab 100644 --- a/src/plugins/platforms/cocoa/qmacmime.h +++ b/src/plugins/platforms/cocoa/qmacmime.h @@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE // Duplicate of QMacPasteboardMime in QtMacExtras. Keep in sync! -class QMacPasteboardMime { +class QMacInternalPasteboardMime { char type; public: enum QMacPasteboardMimeType { MIME_DND=0x01, @@ -58,14 +58,14 @@ public: MIME_QT3_CONVERTOR=0x08, MIME_ALL=MIME_DND|MIME_CLIP }; - explicit QMacPasteboardMime(char); - virtual ~QMacPasteboardMime(); + explicit QMacInternalPasteboardMime(char); + virtual ~QMacInternalPasteboardMime(); static void initializeMimeTypes(); static void destroyMimeTypes(); - static QList all(uchar); - static QMacPasteboardMime *convertor(uchar, const QString &mime, QString flav); + static QList all(uchar); + static QMacInternalPasteboardMime *convertor(uchar, const QString &mime, QString flav); static QString flavorToMime(uchar, QString flav); virtual QString convertorName() = 0; @@ -78,8 +78,8 @@ public: virtual int count(QMimeData *mimeData); }; -void qt_mac_addToGlobalMimeList(QMacPasteboardMime *macMime); -void qt_mac_removeFromGlobalMimeList(QMacPasteboardMime *macMime); +void qt_mac_addToGlobalMimeList(QMacInternalPasteboardMime *macMime); +void qt_mac_removeFromGlobalMimeList(QMacInternalPasteboardMime *macMime); void qt_mac_registerDraggedTypes(const QStringList &types); const QStringList& qt_mac_enabledDraggedTypes(); diff --git a/src/plugins/platforms/cocoa/qmacmime.mm b/src/plugins/platforms/cocoa/qmacmime.mm index b4634c8ad8..89d1b5f681 100644 --- a/src/plugins/platforms/cocoa/qmacmime.mm +++ b/src/plugins/platforms/cocoa/qmacmime.mm @@ -62,11 +62,11 @@ QT_BEGIN_NAMESPACE extern CGImageRef qt_mac_createCGImageFromQImage(const QImage &img, const QImage **imagePtr = 0); // qpaintengine_mac.cpp -typedef QList MimeList; +typedef QList MimeList; Q_GLOBAL_STATIC(MimeList, globalMimeList) Q_GLOBAL_STATIC(QStringList, globalDraggedTypesList) -void qt_mac_addToGlobalMimeList(QMacPasteboardMime *macMime) +void qt_mac_addToGlobalMimeList(QMacInternalPasteboardMime *macMime) { // globalMimeList is in decreasing priority order. Recently added // converters take prioity over previously added converters: prepend @@ -74,7 +74,7 @@ void qt_mac_addToGlobalMimeList(QMacPasteboardMime *macMime) globalMimeList()->prepend(macMime); } -void qt_mac_removeFromGlobalMimeList(QMacPasteboardMime *macMime) +void qt_mac_removeFromGlobalMimeList(QMacInternalPasteboardMime *macMime) { if (!QGuiApplication::closingDown()) globalMimeList()->removeAll(macMime); @@ -166,7 +166,7 @@ CFStringRef qt_mac_mime_typeUTI = CFSTR("com.pasteboard.trolltech.marker"); Constructs a new conversion object of type \a t, adding it to the globally accessed list of available convertors. */ -QMacPasteboardMime::QMacPasteboardMime(char t) : type(t) +QMacInternalPasteboardMime::QMacInternalPasteboardMime(char t) : type(t) { qt_mac_addToGlobalMimeList(this); } @@ -175,7 +175,7 @@ QMacPasteboardMime::QMacPasteboardMime(char t) : type(t) Destroys a conversion object, removing it from the global list of available convertors. */ -QMacPasteboardMime::~QMacPasteboardMime() +QMacInternalPasteboardMime::~QMacInternalPasteboardMime() { qt_mac_removeFromGlobalMimeList(this); } @@ -183,17 +183,17 @@ QMacPasteboardMime::~QMacPasteboardMime() /*! Returns the item count for the given \a mimeData */ -int QMacPasteboardMime::count(QMimeData *mimeData) +int QMacInternalPasteboardMime::count(QMimeData *mimeData) { Q_UNUSED(mimeData); return 1; } -class QMacPasteboardMimeAny : public QMacPasteboardMime { +class QMacPasteboardMimeAny : public QMacInternalPasteboardMime { private: public: - QMacPasteboardMimeAny() : QMacPasteboardMime(MIME_QT_CONVERTOR|MIME_ALL) { + QMacPasteboardMimeAny() : QMacInternalPasteboardMime(MIME_QT_CONVERTOR|MIME_ALL) { } ~QMacPasteboardMimeAny() { } @@ -255,11 +255,11 @@ QList QMacPasteboardMimeAny::convertFromMime(const QString &mime, QV return ret; } -class QMacPasteboardMimeTypeName : public QMacPasteboardMime { +class QMacPasteboardMimeTypeName : public QMacInternalPasteboardMime { private: public: - QMacPasteboardMimeTypeName() : QMacPasteboardMime(MIME_QT_CONVERTOR|MIME_ALL) { + QMacPasteboardMimeTypeName() : QMacInternalPasteboardMime(MIME_QT_CONVERTOR|MIME_ALL) { } ~QMacPasteboardMimeTypeName() { } @@ -307,9 +307,9 @@ QList QMacPasteboardMimeTypeName::convertFromMime(const QString &, Q return ret; } -class QMacPasteboardMimePlainText : public QMacPasteboardMime { +class QMacPasteboardMimePlainText : public QMacInternalPasteboardMime { public: - QMacPasteboardMimePlainText() : QMacPasteboardMime(MIME_ALL) { } + QMacPasteboardMimePlainText() : QMacInternalPasteboardMime(MIME_ALL) { } QString convertorName(); QString flavorFor(const QString &mime); @@ -369,9 +369,9 @@ QList QMacPasteboardMimePlainText::convertFromMime(const QString &, return ret; } -class QMacPasteboardMimeUnicodeText : public QMacPasteboardMime { +class QMacPasteboardMimeUnicodeText : public QMacInternalPasteboardMime { public: - QMacPasteboardMimeUnicodeText() : QMacPasteboardMime(MIME_ALL) { } + QMacPasteboardMimeUnicodeText() : QMacInternalPasteboardMime(MIME_ALL) { } QString convertorName(); QString flavorFor(const QString &mime); @@ -449,9 +449,9 @@ QList QMacPasteboardMimeUnicodeText::convertFromMime(const QString & return ret; } -class QMacPasteboardMimeHTMLText : public QMacPasteboardMime { +class QMacPasteboardMimeHTMLText : public QMacInternalPasteboardMime { public: - QMacPasteboardMimeHTMLText() : QMacPasteboardMime(MIME_ALL) { } + QMacPasteboardMimeHTMLText() : QMacInternalPasteboardMime(MIME_ALL) { } QString convertorName(); QString flavorFor(const QString &mime); @@ -503,9 +503,9 @@ QList QMacPasteboardMimeHTMLText::convertFromMime(const QString &mim return ret; } -class QMacPasteboardMimeTiff : public QMacPasteboardMime { +class QMacPasteboardMimeTiff : public QMacInternalPasteboardMime { public: - QMacPasteboardMimeTiff() : QMacPasteboardMime(MIME_ALL) { } + QMacPasteboardMimeTiff() : QMacInternalPasteboardMime(MIME_ALL) { } QString convertorName(); QString flavorFor(const QString &mime); @@ -595,9 +595,9 @@ QList QMacPasteboardMimeTiff::convertFromMime(const QString &mime, Q } -class QMacPasteboardMimeFileUri : public QMacPasteboardMime { +class QMacPasteboardMimeFileUri : public QMacInternalPasteboardMime { public: - QMacPasteboardMimeFileUri() : QMacPasteboardMime(MIME_ALL) { } + QMacPasteboardMimeFileUri() : QMacInternalPasteboardMime(MIME_ALL) { } QString convertorName(); QString flavorFor(const QString &mime); @@ -673,9 +673,9 @@ int QMacPasteboardMimeFileUri::count(QMimeData *mimeData) return mimeData->urls().count(); } -class QMacPasteboardMimeUrl : public QMacPasteboardMime { +class QMacPasteboardMimeUrl : public QMacInternalPasteboardMime { public: - QMacPasteboardMimeUrl() : QMacPasteboardMime(MIME_ALL) { } + QMacPasteboardMimeUrl() : QMacInternalPasteboardMime(MIME_ALL) { } QString convertorName(); QString flavorFor(const QString &mime); @@ -747,10 +747,10 @@ QList QMacPasteboardMimeUrl::convertFromMime(const QString &mime, QV return ret; } -class QMacPasteboardMimeVCard : public QMacPasteboardMime +class QMacPasteboardMimeVCard : public QMacInternalPasteboardMime { public: - QMacPasteboardMimeVCard() : QMacPasteboardMime(MIME_ALL){ } + QMacPasteboardMimeVCard() : QMacInternalPasteboardMime(MIME_ALL){ } QString convertorName(); QString flavorFor(const QString &mime); @@ -808,7 +808,7 @@ QList QMacPasteboardMimeVCard::convertFromMime(const QString &mime, This is an internal function. */ -void QMacPasteboardMime::initializeMimeTypes() +void QMacInternalPasteboardMime::initializeMimeTypes() { if (globalMimeList()->isEmpty()) { // Create QMacPasteboardMimeAny first to put it at the end of globalMimeList @@ -830,7 +830,7 @@ void QMacPasteboardMime::initializeMimeTypes() /*! \internal */ -void QMacPasteboardMime::destroyMimeTypes() +void QMacInternalPasteboardMime::destroyMimeTypes() { MimeList *mimes = globalMimeList(); while (!mimes->isEmpty()) @@ -842,8 +842,8 @@ void QMacPasteboardMime::destroyMimeTypes() between the \a mime and \a flav formats. Returns 0 if no such convertor exists. */ -QMacPasteboardMime* -QMacPasteboardMime::convertor(uchar t, const QString &mime, QString flav) +QMacInternalPasteboardMime* +QMacInternalPasteboardMime::convertor(uchar t, const QString &mime, QString flav) { MimeList *mimes = globalMimeList(); for (MimeList::const_iterator it = mimes->constBegin(); it != mimes->constEnd(); ++it) { @@ -868,7 +868,7 @@ QMacPasteboardMime::convertor(uchar t, const QString &mime, QString flav) /*! Returns a MIME type of type \a t for \a flav, or 0 if none exists. */ -QString QMacPasteboardMime::flavorToMime(uchar t, QString flav) +QString QMacInternalPasteboardMime::flavorToMime(uchar t, QString flav) { MimeList *mimes = globalMimeList(); for (MimeList::const_iterator it = mimes->constBegin(); it != mimes->constEnd(); ++it) { @@ -891,7 +891,7 @@ QString QMacPasteboardMime::flavorToMime(uchar t, QString flav) /*! Returns a list of all currently defined QMacPasteboardMime objects of type \a t. */ -QList QMacPasteboardMime::all(uchar t) +QList QMacInternalPasteboardMime::all(uchar t) { MimeList ret; MimeList *mimes = globalMimeList(); diff --git a/src/plugins/platforms/cocoa/qt_mac_p.h b/src/plugins/platforms/cocoa/qt_mac_p.h index 808ca9194b..581157c2e1 100644 --- a/src/plugins/platforms/cocoa/qt_mac_p.h +++ b/src/plugins/platforms/cocoa/qt_mac_p.h @@ -178,7 +178,7 @@ public: } }; -class QMacPasteboardMime; +class QMacInternalPasteboardMime; class QMimeData; -- cgit v1.2.3