summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mkspecs/android-g++/qmake.conf4
-rw-r--r--mkspecs/features/no_debug_info.prf8
-rw-r--r--qmake/doc/src/qmake-manual.qdoc64
-rw-r--r--src/gui/opengl/qopenglpaintengine.cpp33
-rw-r--r--src/network/socket/qabstractsocket.cpp3
-rw-r--r--src/network/socket/qnativesocketengine_winrt.cpp3
-rw-r--r--src/plugins/platforms/android/qandroidplatformscreen.cpp15
-rw-r--r--src/widgets/itemviews/qcolumnview.cpp7
-rw-r--r--src/widgets/styles/qmacstyle_mac.mm2
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()
});