diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-12-24 00:56:59 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-12-24 00:56:59 +0100 |
commit | f0fbff4c905fd3e21d7aefedd45d98cc9dd54018 (patch) | |
tree | c61f47f858a9ac6183676bd7aee378a6a2b84a19 /src/plugins | |
parent | d776937df91e46536f404c6868d64016b6038d7b (diff) | |
parent | 0e1ce36ae67de940b2d499ec7f23e520dce0f112 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2defae1904154283446b069d151c3ef57302ec7b
Diffstat (limited to 'src/plugins')
23 files changed, 121 insertions, 123 deletions
diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp index e85949afb6..6ea34b17f5 100644 --- a/src/plugins/bearer/connman/qconnmanengine.cpp +++ b/src/plugins/bearer/connman/qconnmanengine.cpp @@ -150,20 +150,7 @@ void QConnmanEngine::connectToId(const QString &id) if(!serv.isValid()) { emit connectionError(id, QBearerEngineImpl::InterfaceLookupError); } else { - if(serv.getType() != "cellular") { - - serv.connect(); - } else { - QOfonoManagerInterface ofonoManager(0); - QString modemPath = ofonoManager.currentModem().path(); - QOfonoDataConnectionManagerInterface dc(modemPath,0); - foreach (const QDBusObjectPath &dcPath,dc.getPrimaryContexts()) { - if(dcPath.path().contains(servicePath.section("_",-1))) { - QOfonoConnectionContextInterface primaryContext(dcPath.path(),0); - primaryContext.setActive(true); - } - } - } + serv.connect(); } } @@ -175,19 +162,7 @@ void QConnmanEngine::disconnectFromId(const QString &id) if(!serv.isValid()) { emit connectionError(id, DisconnectionError); } else { - if(serv.getType() != "cellular") { - serv.disconnect(); - } else { - QOfonoManagerInterface ofonoManager(0); - QString modemPath = ofonoManager.currentModem().path(); - QOfonoDataConnectionManagerInterface dc(modemPath,0); - foreach (const QDBusObjectPath &dcPath,dc.getPrimaryContexts()) { - if(dcPath.path().contains(servicePath.section("_",-1))) { - QOfonoConnectionContextInterface primaryContext(dcPath.path(),0); - primaryContext.setActive(false); - } - } - } + serv.disconnect(); } } @@ -292,7 +267,8 @@ QNetworkConfigurationManager::Capabilities QConnmanEngine::capabilities() const { return QNetworkConfigurationManager::ForcedRoaming | QNetworkConfigurationManager::DataStatistics | - QNetworkConfigurationManager::CanStartAndStopInterfaces; + QNetworkConfigurationManager::CanStartAndStopInterfaces | + QNetworkConfigurationManager::NetworkSessionRequired; } QNetworkSessionPrivate *QConnmanEngine::createSessionBackend() @@ -374,7 +350,7 @@ void QConnmanEngine::configurationChange(const QString &id) QMutexLocker locker(&mutex); if (accessPointConfigurations.contains(id)) { - + bool changed = false; QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); QString servicePath = serviceFromId(id); @@ -392,17 +368,21 @@ void QConnmanEngine::configurationChange(const QString &id) if (ptr->name != networkName) { ptr->name = networkName; + changed = true; } if (ptr->state != curState) { ptr->state = curState; + changed = true; } ptr->mutex.unlock(); - locker.unlock(); - emit configurationChanged(ptr); - locker.relock(); + if (changed) { + locker.unlock(); + emit configurationChanged(ptr); + locker.relock(); + } } locker.unlock(); @@ -515,6 +495,7 @@ void QConnmanEngine::removeConfiguration(const QString &id) serviceNetworks.removeOne(service); QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.take(id); + foundConfigurations.removeOne(ptr.data()); locker.unlock(); emit configurationRemoved(ptr); locker.relock(); diff --git a/src/plugins/generic/tslib/qtslib.cpp b/src/plugins/generic/tslib/qtslib.cpp index 6986fd5dfa..773939b485 100644 --- a/src/plugins/generic/tslib/qtslib.cpp +++ b/src/plugins/generic/tslib/qtslib.cpp @@ -64,7 +64,10 @@ QTsLibMouseHandler::QTsLibMouseHandler(const QString &key, qDebug() << "QTsLibMouseHandler" << key << specification; setObjectName(QLatin1String("TSLib Mouse Handler")); - QByteArray device = "/dev/input/event1"; + QByteArray device = qgetenv("TSLIB_TSDEVICE"); + if (device.isEmpty()) + device = QByteArrayLiteral("/dev/input/event1"); + if (specification.startsWith("/dev/")) device = specification.toLocal8Bit(); diff --git a/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm b/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm index 8e20a96a48..66c7727f15 100644 --- a/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm +++ b/src/plugins/platforms/cocoa/qcocoaaccessibilityelement.mm @@ -240,7 +240,10 @@ // misc - (BOOL)accessibilityIsIgnored { - return QCocoaAccessible::shouldBeIgnored(QAccessible::accessibleInterface(axid)); + QAccessibleInterface *iface = QAccessible::accessibleInterface(axid); + if (!iface || !iface->isValid()) + return true; + return QCocoaAccessible::shouldBeIgnored(iface); } - (id)accessibilityHitTest:(NSPoint)point { 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<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) diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index a2ef43db67..ad11a525ad 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -942,10 +942,11 @@ void QCocoaWindow::setNSWindow(NSWindow *window) [window setReleasedWhenClosed : NO]; - [[NSNotificationCenter defaultCenter] addObserver:m_contentView - selector:@selector(windowNotification:) - name:nil // Get all notifications - object:m_nsWindow]; + if (m_qtView) + [[NSNotificationCenter defaultCenter] addObserver:m_qtView + selector:@selector(windowNotification:) + name:nil // Get all notifications + object:m_nsWindow]; [m_contentView setPostsFrameChangedNotifications: NO]; [window setContentView:m_contentView]; 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<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. 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<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(); 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<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(); 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; diff --git a/src/plugins/platforms/ios/qiosinputcontext.mm b/src/plugins/platforms/ios/qiosinputcontext.mm index ea6a0bd4a6..39a22f367e 100644 --- a/src/plugins/platforms/ios/qiosinputcontext.mm +++ b/src/plugins/platforms/ios/qiosinputcontext.mm @@ -150,7 +150,7 @@ m_keyboardEndRect = [self getKeyboardRect:notification]; if (!m_duration) { m_duration = [notification.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; - m_curve = [notification.userInfo[UIKeyboardAnimationCurveUserInfoKey] integerValue] << 16; + m_curve = UIViewAnimationCurve([notification.userInfo[UIKeyboardAnimationCurveUserInfoKey] integerValue] << 16); } m_context->scrollRootView(); } diff --git a/src/plugins/platforms/ios/qiosintegration.mm b/src/plugins/platforms/ios/qiosintegration.mm index 5c8f67bda2..660da6397f 100644 --- a/src/plugins/platforms/ios/qiosintegration.mm +++ b/src/plugins/platforms/ios/qiosintegration.mm @@ -110,6 +110,8 @@ bool QIOSIntegration::hasCapability(Capability cap) const return true; case MultipleWindows: return true; + case WindowManagement: + return false; case ApplicationState: return true; default: diff --git a/src/plugins/platforms/kms/qkmscursor.h b/src/plugins/platforms/kms/qkmscursor.h index ee65b01e36..91ac10aae5 100644 --- a/src/plugins/platforms/kms/qkmscursor.h +++ b/src/plugins/platforms/kms/qkmscursor.h @@ -47,8 +47,8 @@ QT_BEGIN_NAMESPACE class QKmsScreen; -class gbm_device; -class gbm_bo; +struct gbm_device; +struct gbm_bo; class QKmsCursor : public QPlatformCursor { diff --git a/src/plugins/platforms/kms/qkmsdevice.h b/src/plugins/platforms/kms/qkmsdevice.h index 33bb4e814e..906e00aa13 100644 --- a/src/plugins/platforms/kms/qkmsdevice.h +++ b/src/plugins/platforms/kms/qkmsdevice.h @@ -53,7 +53,7 @@ extern "C" { QT_BEGIN_NAMESPACE -class gbm_device; +struct gbm_device; class QKmsIntegration; class QKmsDevice : public QObject diff --git a/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp b/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp index 977df8abd0..53f48d5480 100644 --- a/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp +++ b/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp @@ -57,7 +57,6 @@ QLinuxFbIntegration::QLinuxFbIntegration(const QStringList ¶mList) : m_fontDb(new QGenericUnixFontDatabase()) { m_primaryScreen = new QLinuxFbScreen(paramList); - screenAdded(m_primaryScreen); } QLinuxFbIntegration::~QLinuxFbIntegration() @@ -67,7 +66,9 @@ QLinuxFbIntegration::~QLinuxFbIntegration() void QLinuxFbIntegration::initialize() { - if (!m_primaryScreen->initialize()) + if (m_primaryScreen->initialize()) + screenAdded(m_primaryScreen); + else qWarning("linuxfb: Failed to initialize screen"); } diff --git a/src/plugins/platforms/linuxfb/qlinuxfbintegration.h b/src/plugins/platforms/linuxfb/qlinuxfbintegration.h index a213f83c6f..965a6e4642 100644 --- a/src/plugins/platforms/linuxfb/qlinuxfbintegration.h +++ b/src/plugins/platforms/linuxfb/qlinuxfbintegration.h @@ -70,6 +70,7 @@ public: private: QLinuxFbScreen *m_primaryScreen; QPlatformFontDatabase *m_fontDb; + }; QT_END_NAMESPACE diff --git a/src/plugins/platforms/qnx/qqnxwindow.cpp b/src/plugins/platforms/qnx/qqnxwindow.cpp index ee539e9aed..9f8c93cce1 100644 --- a/src/plugins/platforms/qnx/qqnxwindow.cpp +++ b/src/plugins/platforms/qnx/qqnxwindow.cpp @@ -323,6 +323,26 @@ void QQnxWindow::setBufferSize(const QSize &size) } } + // Set the transparency. According to QNX technical support, setting the window + // transparency property should always be done *after* creating the window + // buffers in order to guarantee the property is paid attention to. + if (window()->requestedFormat().alphaBufferSize() == 0) { + // To avoid overhead in the composition manager, disable blending + // when the underlying window buffer doesn't have an alpha channel. + val[0] = SCREEN_TRANSPARENCY_NONE; + } else { + // Normal alpha blending. This doesn't commit us to translucency; the + // normal backfill during the painting will contain a fully opaque + // alpha channel unless the user explicitly intervenes to make something + // transparent. + val[0] = SCREEN_TRANSPARENCY_SOURCE_OVER; + } + + errno = 0; + result = screen_set_window_property_iv(m_window, SCREEN_PROPERTY_TRANSPARENCY, val); + if (result != 0) + qFatal("QQnxWindow: failed to set window transparency, errno=%d", errno); + // Cache new buffer size m_bufferSize = nonEmptySize; resetBuffers(); @@ -551,17 +571,6 @@ void QQnxWindow::initWindow() if (result != 0) qFatal("QQnxWindow: failed to set window alpha mode, errno=%d", errno); - // Blend the window with Source Over Porter-Duff behavior onto whatever's - // behind it. - // - // If the desired use-case is opaque, the Widget painting framework will - // already fill in the alpha channel with full opacity. - errno = 0; - val = SCREEN_TRANSPARENCY_SOURCE_OVER; - result = screen_set_window_property_iv(m_window, SCREEN_PROPERTY_TRANSPARENCY, &val); - if (result != 0) - qFatal("QQnxWindow: failed to set window transparency, errno=%d", errno); - // Set the window swap interval errno = 0; val = 1; diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp index e19e8d350f..2b6a6255b8 100644 --- a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp +++ b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp @@ -627,7 +627,6 @@ static inline QFontDatabase::WritingSystem writingSystemFromCharSet(uchar charSe case EASTEUROPE_CHARSET: case BALTIC_CHARSET: case TURKISH_CHARSET: - case OEM_CHARSET: return QFontDatabase::Latin; case GREEK_CHARSET: return QFontDatabase::Greek; @@ -652,8 +651,6 @@ static inline QFontDatabase::WritingSystem writingSystemFromCharSet(uchar charSe return QFontDatabase::Vietnamese; case SYMBOL_CHARSET: return QFontDatabase::Symbol; - // ### case MAC_CHARSET: - // ### case DEFAULT_CHARSET: default: break; } diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp index 8d14adf828..51f79736f2 100644 --- a/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp +++ b/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp @@ -81,7 +81,6 @@ static inline QFontDatabase::WritingSystem writingSystemFromCharSet(uchar charSe case EASTEUROPE_CHARSET: case BALTIC_CHARSET: case TURKISH_CHARSET: - case OEM_CHARSET: return QFontDatabase::Latin; case GREEK_CHARSET: return QFontDatabase::Greek; @@ -106,8 +105,6 @@ static inline QFontDatabase::WritingSystem writingSystemFromCharSet(uchar charSe return QFontDatabase::Vietnamese; case SYMBOL_CHARSET: return QFontDatabase::Symbol; - // ### case MAC_CHARSET: - // ### case DEFAULT_CHARSET: default: break; } diff --git a/src/plugins/platforms/windows/qwindowskeymapper.cpp b/src/plugins/platforms/windows/qwindowskeymapper.cpp index 2743ef029d..1baea6faff 100644 --- a/src/plugins/platforms/windows/qwindowskeymapper.cpp +++ b/src/plugins/platforms/windows/qwindowskeymapper.cpp @@ -743,8 +743,11 @@ bool QWindowsKeyMapper::translateKeyEvent(QWindow *widget, HWND hwnd, return true; } - // Add this key to the keymap if it is not present yet. - updateKeyMap(msg); + // WM_CHAR messages already contain the character in question so there is + // no need to fiddle with our key map. In any other case add this key to the + // keymap if it is not present yet. + if (msg.message != WM_CHAR) + updateKeyMap(msg); MSG peekedMsg; // consume dead chars?(for example, typing '`','a' resulting in a-accent). |