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 <gabriel.dedietrich@digia.com>
This commit is contained in:
Morten Johan Sørvig 2013-12-18 12:21:21 +01:00 committed by The Qt Project
parent ce9ece3b56
commit c8d696eee7
9 changed files with 60 additions and 60 deletions

View File

@ -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))
{
}

View File

@ -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;
}

View File

@ -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()) {

View File

@ -207,12 +207,12 @@ void *QCocoaNativeInterface::nsOpenGLContextForContext(QOpenGLContext* context)
void QCocoaNativeInterface::addToMimeList(void *macPasteboardMime)
{
qt_mac_addToGlobalMimeList(reinterpret_cast<QMacPasteboardMime *>(macPasteboardMime));
qt_mac_addToGlobalMimeList(reinterpret_cast<QMacInternalPasteboardMime *>(macPasteboardMime));
}
void QCocoaNativeInterface::removeFromMimeList(void *macPasteboardMime)
{
qt_mac_removeFromGlobalMimeList(reinterpret_cast<QMacPasteboardMime *>(macPasteboardMime));
qt_mac_removeFromGlobalMimeList(reinterpret_cast<QMacInternalPasteboardMime *>(macPasteboardMime));
}
void QCocoaNativeInterface::registerDraggedTypes(const QStringList &types)

View File

@ -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;
};

View File

@ -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<QMacPasteboardMime*> availableConverters = QMacPasteboardMime::all(mime_type);
QList<QMacInternalPasteboardMime*> 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<QMacPasteboardMime *>::Iterator it = availableConverters.begin(); it != availableConverters.end(); ++it) {
QMacPasteboardMime *c = (*it);
for (QList<QMacInternalPasteboardMime *>::Iterator it = availableConverters.begin(); it != availableConverters.end(); ++it) {
QMacInternalPasteboardMime *c = (*it);
QString flavor(c->flavorFor(mimeType));
if (!flavor.isEmpty()) {
QVariant mimeData = static_cast<QMacMimeData*>(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<QMacPasteboardMime *> mimes = QMacPasteboardMime::all(mime_type);
const QList<QMacInternalPasteboardMime *> 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.

View File

@ -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<QMacPasteboardMime*> all(uchar);
static QMacPasteboardMime *convertor(uchar, const QString &mime, QString flav);
static QList<QMacInternalPasteboardMime*> 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();

View File

@ -62,11 +62,11 @@ QT_BEGIN_NAMESPACE
extern CGImageRef qt_mac_createCGImageFromQImage(const QImage &img, const QImage **imagePtr = 0); // qpaintengine_mac.cpp
typedef QList<QMacPasteboardMime*> MimeList;
typedef QList<QMacInternalPasteboardMime*> 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<QByteArray> 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<QByteArray> 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<QByteArray> 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<QByteArray> 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<QByteArray> 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<QByteArray> 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<QByteArray> 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<QByteArray> 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*> QMacPasteboardMime::all(uchar t)
QList<QMacInternalPasteboardMime*> QMacInternalPasteboardMime::all(uchar t)
{
MimeList ret;
MimeList *mimes = globalMimeList();

View File

@ -178,7 +178,7 @@ public:
}
};
class QMacPasteboardMime;
class QMacInternalPasteboardMime;
class QMimeData;