diff options
-rw-r--r-- | mkspecs/android-g++/qmake.conf | 4 | ||||
-rw-r--r-- | mkspecs/features/no_debug_info.prf | 8 | ||||
-rw-r--r-- | qmake/doc/src/qmake-manual.qdoc | 64 | ||||
-rw-r--r-- | src/gui/opengl/qopenglpaintengine.cpp | 33 | ||||
-rw-r--r-- | src/network/socket/qabstractsocket.cpp | 3 | ||||
-rw-r--r-- | src/network/socket/qnativesocketengine_winrt.cpp | 3 | ||||
-rw-r--r-- | src/plugins/platforms/android/qandroidplatformscreen.cpp | 15 | ||||
-rw-r--r-- | src/widgets/itemviews/qcolumnview.cpp | 7 | ||||
-rw-r--r-- | src/widgets/styles/qmacstyle_mac.mm | 2 |
9 files changed, 105 insertions, 34 deletions
diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf index e510c2d93c..b0fea50206 100644 --- a/mkspecs/android-g++/qmake.conf +++ b/mkspecs/android-g++/qmake.conf @@ -102,9 +102,9 @@ ANDROID_SOURCES_CXX_STL_INCDIR = $$NDK_ROOT/sources/cxx-stl/gnu-libstdc++/$$NDK_ QMAKE_CC = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX-gcc equals(ANDROID_TARGET_ARCH, armeabi-v7a): \ - QMAKE_CFLAGS = -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -Wa,--noexecstack + QMAKE_CFLAGS = -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -Wa,--noexecstack -fno-builtin-memmove else: equals(ANDROID_TARGET_ARCH, armeabi): \ - QMAKE_CFLAGS = -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -Wa,--noexecstack + QMAKE_CFLAGS = -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -Wa,--noexecstack -fno-builtin-memmove else: equals(ANDROID_TARGET_ARCH, x86): \ QMAKE_CFLAGS = -ffunction-sections -funwind-tables -O2 -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300 -DANDROID -Wa,--noexecstack else: equals(ANDROID_TARGET_ARCH, mips): \ diff --git a/mkspecs/features/no_debug_info.prf b/mkspecs/features/no_debug_info.prf index e05410d491..1307679a39 100644 --- a/mkspecs/features/no_debug_info.prf +++ b/mkspecs/features/no_debug_info.prf @@ -7,8 +7,8 @@ win32-msvc2*|wince*msvc* { QMAKE_CXXFLAGS_DEBUG -= -Zi QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -Zi } else { - QMAKE_CFLAGS -= -g -ggdb3 - QMAKE_CXXFLAGS -= -g -ggdb3 - QMAKE_LFLAGS -= -g -ggdb3 - QMAKE_LIBFLAGS -= -g -ggdb3 + QMAKE_CFLAGS -= -g -ggdb3 -gstabs + QMAKE_CXXFLAGS -= -g -ggdb3 -gstabs + QMAKE_LFLAGS -= -g -ggdb3 -gstabs + QMAKE_LIBFLAGS -= -g -ggdb3 -gstabs } diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc index cdac770c9d..ed76e9cc61 100644 --- a/qmake/doc/src/qmake-manual.qdoc +++ b/qmake/doc/src/qmake-manual.qdoc @@ -1195,6 +1195,12 @@ Please see \l{Setting the Application Icon}{the application icon documentation} for more information. + \target IDLSOURCES + \section1 IDLSOURCES + + This variable is used only on Windows for the Visual Studio project generation to + put the specified files in the Generated Files folder. + \target INCLUDEPATH \section1 INCLUDEPATH @@ -1304,6 +1310,12 @@ handled internally by qmake and rarely needs to be modified. + \target MSVCPROJ_* + \section1 MSVCPROJ_* + + These variables are handled internally by qmake and should not be modified + or utilized. + \target MOC_DIR \section1 MOC_DIR @@ -2110,6 +2122,38 @@ variable is typically handled by qmake or \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified. + \target QMAKE_TARGET_COMPANY + \section1 QMAKE_TARGET_COMPANY + + Windows only. Specifies the company for the project target, this is used where + applicable for putting the company name in the application's properties. This is + only utilized if the VERSION or RC_ICONS variable is set and the RC_FILE and RES_FILE + variables are not set. + + \target QMAKE_TARGET_DESCRIPTION + \section1 QMAKE_TARGET_DESCRIPTION + + Windows only. Specifies the description for the project target, this is used where + applicable for putting the description in the application's properties. This is only + utilized if the VERSION or RC_ICONS variable is set and the RC_FILE and RES_FILE variables + are not set. + + \target QMAKE_TARGET_COPYRIGHT + \section1 QMAKE_TARGET_COPYRIGHT + + Windows only. Specifies the copyright information for the project target, this is used where + applicable for putting the copyright information in the application's properties. This is only + utilized if the VERSION or RC_ICONS variable is set and the RC_FILE and RES_FILE variables + are not set. + + \target QMAKE_TARGET_PRODUCT + \section1 QMAKE_TARGET_PRODUCT + + Windows only. Specifies the product for the project target, this is used where + applicable for putting the product in the application's properties. This is only utilized if + the VERSION or RC_ICONS variable is set and the RC_FILE and RES_FILE variables + are not set. + \section1 QT Specifies the Qt modules that are used by your project. @@ -2209,6 +2253,26 @@ qmake or \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified. + \target RC_CODEPAGE + \section1 RC_CODEPAGE + + Windows only. Specifies the codepage that should be specified in a generated rc file. This is + only utilized if the VERSION or RC_ICONS variable is set and the RC_FILE and RES_FILE variables + are not set. + + \target RC_ICONS + \section1 RC_ICONS + + Windows only. Specifies the icons that should be included into a generated rc file, this + is only utilized if the RC_FILE and RES_FILE variable are not set. + + \target RC_LANG + \section1 RC_LANG + + Windows only. Specifies the language that should be specified in a generated rc file. This is + only utilized if the VERSION or RC_ICONS variable is set and the RC_FILE and RES_FILE variables + are not set. + \section1 RC_INCLUDEPATH Specifies include paths that are passed to the Windows Resource Compiler. diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp index b18d2cc42a..834aed9142 100644 --- a/src/gui/opengl/qopenglpaintengine.cpp +++ b/src/gui/opengl/qopenglpaintengine.cpp @@ -199,15 +199,14 @@ void QOpenGL2PaintEngineExPrivate::updateBrushTexture() // for opacity to the cache. GLuint texId = QOpenGL2GradientCache::cacheForContext(ctx)->getBuffer(*g, 1.0); - funcs.glActiveTexture(GL_TEXTURE0 + QT_BRUSH_TEXTURE_UNIT); - funcs.glBindTexture(GL_TEXTURE_2D, texId); - GLenum wrapMode = GL_CLAMP_TO_EDGE; if (g->spread() == QGradient::RepeatSpread || g->type() == QGradient::ConicalGradient) wrapMode = GL_REPEAT; else if (g->spread() == QGradient::ReflectSpread) wrapMode = GL_MIRRORED_REPEAT; + funcs.glActiveTexture(GL_TEXTURE0 + QT_BRUSH_TEXTURE_UNIT); + funcs.glBindTexture(GL_TEXTURE_2D, texId); updateTextureFilter(wrapMode, q->state()->renderHints & QPainter::SmoothPixmapTransform); } else if (style == Qt::TexturePattern) { @@ -228,6 +227,7 @@ void QOpenGL2PaintEngineExPrivate::updateBrushTexture() funcs.glActiveTexture(GL_TEXTURE0 + QT_BRUSH_TEXTURE_UNIT); QOpenGLTextureCache::cacheForContext(ctx)->bindTexture(ctx, currentBrushImage); updateTextureFilter(wrapMode, q->state()->renderHints & QPainter::SmoothPixmapTransform); + textureInvertedY = false; } brushTextureDirty = false; @@ -1384,16 +1384,14 @@ void QOpenGL2PaintEngineEx::drawPixmap(const QRectF& dest, const QPixmap & pixma d->funcs.glActiveTexture(GL_TEXTURE0 + QT_IMAGE_TEXTURE_UNIT); GLuint id = QOpenGLTextureCache::cacheForContext(ctx)->bindTexture(ctx, pixmap); - - QOpenGLRect srcRect(src.left(), src.top(), src.right(), src.bottom()); + d->updateTextureFilter(GL_CLAMP_TO_EDGE, state()->renderHints & QPainter::SmoothPixmapTransform, id); bool isBitmap = pixmap.isQBitmap(); bool isOpaque = !isBitmap && !pixmap.hasAlpha(); - d->updateTextureFilter(GL_CLAMP_TO_EDGE, - state()->renderHints & QPainter::SmoothPixmapTransform, id); - d->shaderManager->setSrcPixelType(isBitmap ? QOpenGLEngineShaderManager::PatternSrc : QOpenGLEngineShaderManager::ImageSrc); + + QOpenGLRect srcRect(src.left(), src.top(), src.right(), src.bottom()); d->drawTexture(dest, srcRect, pixmap.size(), isOpaque, isBitmap); } @@ -1432,9 +1430,7 @@ void QOpenGL2PaintEngineEx::drawImage(const QRectF& dest, const QImage& image, c d->funcs.glActiveTexture(GL_TEXTURE0 + QT_IMAGE_TEXTURE_UNIT); GLuint id = QOpenGLTextureCache::cacheForContext(ctx)->bindTexture(ctx, image, bindOption); - - d->updateTextureFilter(GL_CLAMP_TO_EDGE, - state()->renderHints & QPainter::SmoothPixmapTransform, id); + d->updateTextureFilter(GL_CLAMP_TO_EDGE, state()->renderHints & QPainter::SmoothPixmapTransform, id); d->drawTexture(dest, src, image.size(), !image.hasAlphaChannel()); } @@ -1477,13 +1473,13 @@ bool QOpenGL2PaintEngineEx::drawTexture(const QRectF &dest, GLuint textureId, co d->funcs.glActiveTexture(GL_TEXTURE0 + QT_IMAGE_TEXTURE_UNIT); d->funcs.glBindTexture(GL_TEXTURE_2D, textureId); + d->updateTextureFilter(GL_CLAMP_TO_EDGE, state()->renderHints & QPainter::SmoothPixmapTransform, textureId); - QOpenGLRect srcRect(src.left(), src.bottom(), src.right(), src.top()); - - d->updateTextureFilter(GL_CLAMP_TO_EDGE, - state()->renderHints & QPainter::SmoothPixmapTransform, textureId); d->shaderManager->setSrcPixelType(QOpenGLEngineShaderManager::ImageSrc); + + QOpenGLRect srcRect(src.left(), src.bottom(), src.right(), src.top()); d->drawTexture(dest, srcRect, size, false); + return true; } @@ -1954,16 +1950,15 @@ void QOpenGL2PaintEngineExPrivate::drawPixmapFragments(const QPainter::PixmapFra allOpaque &= (opacity >= 0.99f); } + transferMode(ImageOpacityArrayDrawingMode); + funcs.glActiveTexture(GL_TEXTURE0 + QT_IMAGE_TEXTURE_UNIT); GLuint id = QOpenGLTextureCache::cacheForContext(ctx)->bindTexture(ctx, pixmap); - transferMode(ImageOpacityArrayDrawingMode); + updateTextureFilter(GL_CLAMP_TO_EDGE, q->state()->renderHints & QPainter::SmoothPixmapTransform, id); bool isBitmap = pixmap.isQBitmap(); bool isOpaque = !isBitmap && (!pixmap.hasAlpha() || (hints & QPainter::OpaqueHint)) && allOpaque; - updateTextureFilter(GL_CLAMP_TO_EDGE, - q->state()->renderHints & QPainter::SmoothPixmapTransform, id); - // Setup for texture drawing currentBrush = noBrush; shaderManager->setSrcPixelType(isBitmap ? QOpenGLEngineShaderManager::PatternSrc diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp index e843597a96..604214ce8e 100644 --- a/src/network/socket/qabstractsocket.cpp +++ b/src/network/socket/qabstractsocket.cpp @@ -1882,6 +1882,9 @@ bool QAbstractSocket::setSocketDescriptor(qintptr socketDescriptor, SocketState \since 4.6 Sets the given \a option to the value described by \a value. + \note On Windows Runtime, QAbstractSocket::KeepAliveOption must be set + before the socket is connected. + \sa socketOption() */ void QAbstractSocket::setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value) diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp index cacfe11fea..e60840d651 100644 --- a/src/network/socket/qnativesocketengine_winrt.cpp +++ b/src/network/socket/qnativesocketengine_winrt.cpp @@ -998,7 +998,8 @@ bool QNativeSocketEnginePrivate::setOption(QAbstractSocketEngine::SocketOption o return true; } case QAbstractSocketEngine::KeepAliveOption: { - if (socketType == QAbstractSocket::UdpSocket) + if (socketType == QAbstractSocket::UdpSocket + || socketState != QAbstractSocket::UnconnectedState) return false; boolean keepAlive = v; diff --git a/src/plugins/platforms/android/qandroidplatformscreen.cpp b/src/plugins/platforms/android/qandroidplatformscreen.cpp index 684ae64703..b70f936be1 100644 --- a/src/plugins/platforms/android/qandroidplatformscreen.cpp +++ b/src/plugins/platforms/android/qandroidplatformscreen.cpp @@ -284,9 +284,9 @@ void QAndroidPlatformScreen::doRedraw() if (m_dirtyRect.isEmpty()) return; - // Stop if there no visible raster windows. This is important because if we only have - // RasterGLSurface windows that have renderToTexture children (i.e. they need the - // OpenGL path) then we must bail out right now. + // Stop if there are no visible raster windows. If we only have RasterGLSurface + // windows that have renderToTexture children (i.e. they need the OpenGL path) then + // we do not need an overlay surface. bool hasVisibleRasterWindows = false; foreach (QAndroidPlatformWindow *window, m_windowStack) { if (window->window()->isVisible() && window->isRaster() && !qt_window_private(window->window())->compositing) { @@ -294,9 +294,13 @@ void QAndroidPlatformScreen::doRedraw() break; } } - if (!hasVisibleRasterWindows) + if (!hasVisibleRasterWindows) { + if (m_id != -1) { + QtAndroid::destroySurface(m_id); + m_id = -1; + } return; - + } QMutexLocker lock(&m_surfaceMutex); if (m_id == -1 && m_rasterSurfaces) { m_id = QtAndroid::createSurface(this, m_availableGeometry, true, m_depth); @@ -339,6 +343,7 @@ void QAndroidPlatformScreen::doRedraw() QRegion visibleRegion(m_dirtyRect); foreach (QAndroidPlatformWindow *window, m_windowStack) { if (!window->window()->isVisible() + || qt_window_private(window->window())->compositing || !window->isRaster()) continue; diff --git a/src/widgets/itemviews/qcolumnview.cpp b/src/widgets/itemviews/qcolumnview.cpp index 1c60d50922..3234e1e832 100644 --- a/src/widgets/itemviews/qcolumnview.cpp +++ b/src/widgets/itemviews/qcolumnview.cpp @@ -976,8 +976,11 @@ void QColumnViewPrivate::_q_changeCurrentColumn() QAbstractItemView *view = columns.at(i); view->setSelectionModel(replacementSelectionModel); view->setFocusPolicy(Qt::NoFocus); - if (columns.size() > i + 1) - view->setCurrentIndex(columns.at(i+1)->rootIndex()); + if (columns.size() > i + 1) { + const QModelIndex newRootIndex = columns.at(i + 1)->rootIndex(); + if (newRootIndex.isValid()) + view->setCurrentIndex(newRootIndex); + } break; } } diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm index 00112a5c6d..5c17cdf489 100644 --- a/src/widgets/styles/qmacstyle_mac.mm +++ b/src/widgets/styles/qmacstyle_mac.mm @@ -5572,7 +5572,7 @@ void QMacStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex CGContextTranslateCTM(ctx, 0, rect.size.height); CGContextScaleCTM(ctx, 1, -1); } - [sl.cell drawBarInside:tdi.bounds flipped:NO]; + [sl.cell drawBarInside:NSRectFromCGRect(tdi.bounds) flipped:NO]; // No need to restore the CTM later, the context has been saved // and will be restored at the end of drawNSViewInRect() }); |