Commit Graph

17303 Commits (a5890fbcd83fb4e25512741fb5e6870cc4f547bb)

Author SHA1 Message Date
Lars Knoll c52bcf7337 Support gradients natively in the PDF generator
Add native support for linear and radial gradients to our
PDF generator. This fixes a couple of issues with both the
quality of the generated PDFs as well as sizes of the files.

Task-number: QTBUG-42758
Change-Id: Ib905457e11e4dc52443c76b3761bca8d1fbe9bfc
Reviewed-by: Stephen Chu <stephen@ju-ju.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-04-09 12:22:13 +00:00
Eirik Aavitsland 68c137cc72 Update bundled libpng to version 1.6.17
Merged in the upstream version, which obsoleted many of the local
patches. The remaining diff to clean 1.6.17 is archived in the
qtpatches.diff file.

Change-Id: I5065435dc5a922d3f4a46eb37a23a4877dde2ee6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-04-09 12:14:28 +00:00
Caroline Chao a11ffc7bc6 testlib: Detect msvc version for blacklisting
Check _MSC_VER to detect the msvc version (2010, 2012 or 2013).

Change-Id: I96a73d316a6124e38b2c48c5752dfc22357f8d00
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-04-09 10:31:43 +00:00
Andrew Knight c32048c62f winrt: Fix platform plugin after ANGLE upgrade
Remove manual EGL window resizing as this is now handled inside ANGLE.

Change-Id: I0d4c4df71114c60f4ce75e9010f40a0fd58dee1a
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-04-09 10:31:20 +00:00
Andrew Knight 310488a196 windows: Fix platform plugin compilation with new angle
The identifiers for configuring a software renderer changed.

Change-Id: I739cedbb0a00bc6be94df716d66cd1520d4f7c9d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-04-09 10:31:16 +00:00
Andrew Knight a218a252c4 Upgrade ANGLE to 2.1~99f075dade7c
This aligns with Chromium branch 2356.

This version brings more complete OpenGL ES 3 support as well as various
bug fixes and performance improvements.

The following changes were made to earlier patches:

-0000-General-fixes-for-ANGLE-2.1
  Removed. All changes are now handled elsewhere.
+0001-ANGLE-Improve-Windows-Phone-support
  Consolidated remaining parts from 0009/0010.
+0002-ANGLE-Fix-compilation-with-MinGW
  Remaining issues from patch 0016.
+0003-ANGLE-Fix-compilation-with-MSVC2010
  Remaining issues from patch 0015.
+0004-ANGLE-Dynamically-load-D3D-compiler-from-list
  Renamed from patch 0008.
+0005-ANGLE-Add-support-for-querying-platform-device
  Renamed from patch 0013.
-0004-Make-it-possible-to-link-ANGLE-statically-for-single
  Removed. Fixed by adding defines to project files.
-0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-or-t
  Renamed to patch 0005.
-0009-ANGLE-Support-WinRT
  Removed. Mostly fixed upstream; remaining parts in patch 0001.
-0010-ANGLE-Enable-D3D11-for-feature-level-9-cards
  Removed. Mostly fixed upstream; remaining parts in patch 0001.
-0012-ANGLE-fix-semantic-index-lookup
  Removed. Fixed upstream.
-0013-ANGLE-Add-support-for-querying-platform-device
  Renamed to patch 0005.
-0014-Let-ANGLE-use-multithreaded-devices-if-necessary
  Removed. No longer needed.
-0015-ANGLE-Fix-angle-d3d11-on-MSVC2010
  Moved remaining parts to patch 0003.
-0016-ANGLE-Fix-compilation-with-MinGW-D3D11
  Moved remaining parts to patch 0002.
-0017-ANGLE-Fix-compilation-with-D3D9
  Removed. Fixed upstream.
-0018-ANGLE-Fix-releasing-textures-after-we-kill-D3D11
  Removed. Fixed upstream.
-0019-ANGLE-Fix-handling-of-shader-source-with-fixed-lengt
  Removed. Fixed upstream.
-0020-ANGLE-Do-not-use-std-strlen
  Removed. Fixed upstream.
-0020-ANGLE-Fix-compilation-with-MSVC2013-Update4
  Removed. Fixed upstream.

[ChangeLog][Third-party libraries] ANGLE was updated to Chromium branch
2356 (2.1~99f075dade7c).

Change-Id: I32ccbfe95e10986bd94be7191dfd53445ea09158
Task-number: QTBUG-44815
Task-number: QTBUG-37660
Task-number: QTBUG-44694
Task-number: QTBUG-42443
Reviewed-by: Andrew Knight <qt@panimo.net>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-09 10:31:12 +00:00
Peng Wu 331ddacfca winrt: set correct virtual keyboard size
This is done by multiplying by the DIP scale factor.

Task-number: QTBUG-44152
Change-Id: I587a66f1a2f7fa3a713c279f5d877e6acb844620
Reviewed-by: Andrew Knight <qt@panimo.net>
2015-04-09 10:30:47 +00:00
Peng Wu 2af77ab826 winrt: remove the dead WP8.0 code from input context
Change-Id: I8db61b4db32052f64833767085f2ebc5f1cc5bcf
Reviewed-by: Andrew Knight <qt@panimo.net>
2015-04-09 10:30:35 +00:00
Friedemann Kleint f932a85bd9 Windows: Fix dialog close button showing despite ~Qt::WindowCloseButtonHint.
Further restrict the condition under which the special window
flags for QTBUG-2027 apply.

Change-Id: I458c7c6bfb06820992b5a21820c0439fd2ce7d9d
Task-number: QTBUG-2027
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-09 10:30:07 +00:00
Paul Olav Tvete f3e405cb3b Fix logicalDotsPerInch when using devicePixelRatio
Qt does not support having different fontMetrics for different screens

Also add environment variable for overriding logicalDpi

Change-Id: I0baf73026d97fec590597ee304ad9fa119d7a328
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-04-09 10:22:51 +00:00
Laszlo Agocs 2314286883 evdevtouch: Add hotplug support
Follow the exact same structure as evdevmouse and keyboard.

We must do monitoring via device discovery just like we do for keyboards and mice.
Otherwise the usage of touchscreens that connect via USB or can be turned on/off
independently from the board becomes troublesome.

Change-Id: I2de3b519e8d617b0612e5df486e481bbc09b9c8c
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
2015-04-09 09:58:15 +00:00
Gatis Paeglis 65d2b6b4df Add missing event types in printXcbEvent
And replace Xlib define GenericEvent with
XCB define XCB_GE_GENERIC.

Change-Id: Ie82cb7f58b18fc0d253e4b7fd65495608df0a7d9
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-04-09 09:05:51 +00:00
Erik Verbruggen 24b3d82eff QStateMachine: move QState::finished() emision into method.
By moving the code for QState::finished() emission into a virtual
method which also receives the QFinalState that caused the emission,
subclasses can hook in and do some extra processing.

Change-Id: Id19947c09e196a0df4edb87d71b74b0600c78867
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-04-09 08:42:06 +00:00
Friedemann Kleint 56d091a4ea QToolButton: Fix popup menu geometry in case of QGraphicsProxyWidget.
QDesktopWidget::availableGeometry(const QWidget *) returns the scene
geometry when the widget is embedded into a QGraphicsProxyWidget.
Work around by using the overload taking a point.

Task-number: QTBUG-38559
Change-Id: Ie630bda57e14648255015587a04e29b0de96bab7
Reviewed-by: Arnaud Bienner <arnaud.bienner@gmail.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-04-09 08:30:12 +00:00
Friedemann Kleint d984b07221 Guard QWidget::setStyleSheet() against invocation from destructor.
Task-number: QTBUG-45178
Change-Id: I3670d9cd9645155318b595d1324a3b3caf2352f6
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-04-09 08:30:02 +00:00
Kai Uwe Broulik 921b22e5ce qiostextresponder: Add support for ReturnKeyType
Change-Id: Ic9212468fb41d8042a345267ae69c95e0d9b4cf2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2015-04-09 08:25:33 +00:00
Kai Uwe Broulik d47294bec7 Add ReturnKeyType enum to Qt namespace
This will allow to utilize the native return keys provided by most mobile
platforms, to indicate what kind of action pressing it will result in,
such as performing a search, a navigation, moving on to the next input
field or just closing the keyboard.

[ChangeLog][QtCore][Global] Added ReturnKeyType enum allowing for fine-grained
control of the platform's on screen keyboard return key

Change-Id: I6a691045ad6970e6893f23773b2449a7bafd98fc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2015-04-09 08:25:20 +00:00
Andy Shaw f0cee4568e Add a null pointer check for parent before derefencing it
Change-Id: I5b411f50acc6719b36cdde9ae2dd766b29e9731c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-09 07:07:55 +00:00
Liang Qi 65fdde30d0 Merge "Merge remote-tracking branch 'origin/5.5' into dev" into refs/staging/dev 2015-04-09 06:35:26 +00:00
Thiago Macieira bc00e6da84 QIconvCodec: fix compilation when NO_BOM is defined.
qiconvcodec.cpp:305:34: error: unused parameter 'cd' [-Werror,-Wunused-parameter]

Change-Id: I27eaacb532114dd188c4ffff13d330b64b4feaa6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-09 06:09:16 +00:00
Liang Qi 4973786f0d Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: I04f9f2749f68c0cb5a427b8d84e43b44bb143e4d
2015-04-08 21:24:26 +02:00
Marc Mutz 91b44afdcb Split qHash()-related code into separate header
The reduces the amount of code the compiler has to parse when all
the header does is implement its own qHash().

I left the implementation in qhash.cpp, as it doesn't influence
qHash*() users.

Change-Id: Id320d690a33769bae78b03ccc3b08f7124123459
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2015-04-08 16:52:15 +00:00
Alex Trotsenko 7c149dd869 Prevent memory overgrowth while reading from a sequential device
After flushing the internal buffer, QIODevice::readAll() attempts
to read the device incrementally. On each iteration, the result buffer
size is increased by a constant value independently from the number of
read bytes. This lead to unreasonable growth of the buffer if these
additional conditions were met:

 - readData() requests new data from the device on every call;
 - highly loaded device provides at least one byte on each request.

Instead of constant resizing, keep the size of free block to avoid a
possible memory exhaustion.

Task-number: QTBUG-44286
Change-Id: I637e2d0e05bd900a1bb9517af2fe7d8038c75a35
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-08 16:35:40 +00:00
Laszlo Agocs db52d55fba Avoid leaking the QPlatformTextureList
Task-number: QTBUG-45395
Change-Id: I8fbdc5136d7d15b9c131d6b91186a1bf2645e4d4
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-04-08 16:26:37 +00:00
Laszlo Agocs cd61b6c969 Add a cast to glTexImage2D to keep QNX happy
The internalformat parameter seems to be GLenum (unsigned int) on QNX
based on the error message in the linked bug report. The standard is
GLint, though. To keep everyone happy, add a cast.

Task-number: QTBUG-45346
Change-Id: I57fece7b381e0d02acc842a21b1edc5451ea0224
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2015-04-08 16:26:20 +00:00
Allan Sandfeld Jensen e63752e6bb Remove table of mostly null pointers
The patch moves the initialization of the format to format blend tables
to runtime, so we only have to explicitly set the values that are
not null. This removes most of the lines in qblendfunctions.cpp.

Change-Id: Ie017f380ff11cfb764a631cfea7626786731b5fb
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-04-08 15:27:53 +00:00
Konstantin Ritt 5b5d25cc41 [QtFontFamily] Get rid of unused member
Change-Id: I8c70995767bfb5fdbd6e9e9464029beeccf41f53
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-04-08 15:17:47 +00:00
Jake Petroules 00540a8345 Remove special handling for (DY)LD_LIBRARY_PATH in QProcess.
This provides the ability to pass a *real* clear environment to a
QProcess, rather than (DY)LD_LIBRARY_PATH always being copied over
from the current environment behind-the-scenes. This is important
to users because passing a truly clear environment is now possible.

[ChangeLog][Important Behavior Changes] (DY)LD_LIBRARY_PATH will
no longer "stick" in the process environment when starting a
QProcess. This means that if a QProcess is started with a clear
environment, it will not specially inherit (DY)LD_LIBRARY_PATH
from the parent process. This should not affect most applications,
but if the old behavior is desired, one can simply pass a clear
QProcessEnvironment with the (DY)LD_LIBRARY_PATH values added, to
the QProcess.

Change-Id: I51d1bc14905c5cc126fb02d91dddc2faade41a3c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-08 15:13:27 +00:00
Friedemann Kleint a21a24ee48 [QFontEngineFT::loadGlyph] Fix reversed condition.
Introduced by 237cb0d082
(Consolidate paths for fetchMetricsOnly cases).

Task-number: QTBUG-45444
Change-Id: Icd642c09490f1cfc5804313d60d467290ae599ba
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-04-08 12:10:12 +00:00
Martin Smith 0b17d23285 qdoc: Data member name changes
In preparation for refactoring the Node class hierarchy,
several data member names and some getter and setter names
in the Node hierarchy have been changed to make them more
readable.

Change-Id: Id76ce21c960e4033673f5cf0684aa70e701957b1
Task-number: QTBUG-45450
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-04-08 11:23:49 +00:00
Kai Koehne a60571b370 QSaveFile: Fix permissions on creation
QSaveFile is intended to be a replacement for QFile, and should use the
same permissions for newly created files. QTemporaryFile however creates
new files with 0600 mask by default.

Fix this by making the mode_t argument QTemporaryFileEngine uses
configurable, and using 0666 for QSaveFile (like we do in QFile).

[ChangeLog][Important behavior changes] Files created by QSaveFile do
now have the same rights as files created by QFile. This also fixes a
regression in QSettings: In the Qt 5.4 series, new files created by
QSettings were only readable by the current user.

Task-number: QTBUG-44086
Change-Id: Ie1cc20e9f25c6e72e1bc9176490c419c27c5fc82
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-08 07:48:17 +00:00
Ursache Vladimir e18111c1a3 Optimize QApplication startup time by caching the Compose file
Please find the explanation at the top of qtablegenerator.cpp.

Change-Id: Ib1a5ee49d382034520ed0871bb524b7931cf330a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-08 07:37:48 +00:00
Liang Qi 4cee9928f2 Merge "Merge remote-tracking branch 'origin/5.5' into dev" into refs/staging/dev 2015-04-08 06:52:22 +00:00
Laszlo Agocs a715c6ceb8 Use the default fbo in Qt sense in blitFramebuffer
QOpenGLFramebufferObject::blitFramebuffer() passes 0 when no FBO is specified.
This goes against the rest of the framework where the default fbo is what
QOpenGLContext::defaultFramebufferObject() returns. This becomes significant
with QOpenGLWidget and on iOS.

Task-number: QTBUG-45328
Change-Id: Iaeb82cd3786ad395116679c9626bdcb10e93b4e3
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-04-08 05:58:27 +00:00
Martin Smith 0d4232f531 qdoc: No longer creates empty subdirectories
qdoc was creating the scripts and used-in-examples subdirectories
whether or not there were any scripts or images used in examples.
Now qdoc creates these subdirectories only if there is something
to put in them.

Change-Id: Ied0e1b38ee28973313c68754c821b34edfd5f505
Task-number: QTBUG-44655
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
2015-04-07 19:36:38 +00:00
Marc Mutz 7064bf2b9b QErrorMessage: sort statements in ctor
This has no influence on text size, but by executing similar functions
temporally close to each other, we should make better use of the i-cache.

It's also more readable.

Change-Id: Ia211e562d798d4f16f3fd17f87f1e2cad2e0359d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-07 18:52:11 +00:00
Marc Mutz b6b17c2040 QErrorMessage: streamline conditionals in done()
...to avoid checking the same conditions a second time.

Saves 32B in text size on my machine, too.

Change-Id: I0368408b9f5feb02e811dc15ade79d9796031896
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-07 18:52:04 +00:00
Marc Mutz bb7b20b446 QErrorMessage: avoid some code duplication
...by using the predicate from nextPending() in the two
showMessage() functions, too, which thus become identical,
when substituting type -> QString().

Also saves around 250B in text size.

Change-Id: Ibf5d081dbec3438b7b1be4e240879e26d0455d6b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-07 18:51:57 +00:00
Marc Mutz 8780381532 QByteArray: begin()/end() are not \internal
Docs copied from corresponding QString functions.

Change-Id: Ia2b0f0521780246d82003a1fda539c132823b294
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-07 16:34:25 +00:00
Marc Mutz dc6e964f63 docs: QString contains characters, not items
Change-Id: I479a731780dfce81e138d1aca950385437266763
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-07 16:34:06 +00:00
Thiago Macieira 22dbf6111d Remove unnecessary QDateTime::detach() function
Last commit changed QDateTime::d to be a QSharedDataPointer that
implicitly detaches on non-const operator->() calls. That means we no
longer need to explicitly call detach().

More than that, we should not do it, so we avoid checking the ref count
and try to detach on every use. To do that, in functions where the d
pointer was accessed more than once, I detach at the top and shadow the
"d" variable with a local plain pointer. We don't compile our sources
with -Wshadow, so this should not be a problem.

Change-Id: Ic5d393bfd36e48a193fcffff13b969c281c36d0c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 14:48:47 +00:00
Topi Reinio 2a6249c00a Doc: Qt Concurrent: Link to essential usage information
Functions under the QtConcurrent namespace used to be documented
as header files, using the \headerfile command. These documents
have been since converted to standard pages using the \page
command, and the reference documentation for these functions
now live in the namespace page only.

However, the former pages contain useful usage information and
code snippets, but they've not been linked to from anywhere.

This change links to these pages from the module landing page,
as well as from the function reference doc.

Change-Id: Ia750d72d12503cec96ee2c9e202dd561e548cb24
Task-number: QTBUG-28977
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
2015-04-07 14:38:29 +00:00
Konstantin Ritt 491b746473 Fix build with -directwrite
There were several issues caught by GCC:
* deleting object of polymorphic class type which has non-virtual
  destructor might cause undefined behaviour
* comparison between signed and unsigned integer expressions
* 'GetUserDefaultLocaleName' was not declared in this scope
  (depends on WINVER >= 0x0600)

Change-Id: I39f2cc0d5e158f4d85377edd55e9f74a512c7303
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-04-07 13:10:38 +00:00
Konstantin Ritt 3a845e4b4f Use QT_WARNING_.. instead of #pragma GCC diagnostic ..
Change-Id: I0bb55a7f1074f3b8d6fb681b1d4dab5105ae7569
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-07 13:09:48 +00:00
Konstantin Ritt 237cb0d082 [QFontEngineFT::loadGlyph] Consolidate paths for fetchMetricsOnly cases
Use GlyphInfo as a temporary buffer for storing the glyph metrics
and go through the same code for fetchMetricsOnly and !fetchMetricsOnly.

Change-Id: If8bb85056e5f09588cc3956b43dc51a54d5aecfe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:09:27 +00:00
Konstantin Ritt 550fb85b65 [QFontEngineFT] Move code around to improve readability (no-op)
Move some variables initialization closer to the usage context.

Change-Id: I0f1de0ddc9f0fbe3ec4a56455ccc14f9e8d94e5a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:09:00 +00:00
Konstantin Ritt 037ad03182 [QFontEngineFT] Avoid double-negation of info.x
Make it consistent with fetchMetricsOnly path.

Change-Id: I6a2d2568d5579255582217515a4e598722547c60
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:08:02 +00:00
Konstantin Ritt 95d034a14f Introduce QQuaternion::fromDirection()
...which constructs a quaternion using specified forward and upward
directions, so that the resulting Z axis "faces" a given forward direction.

Change-Id: Ib77b8ab5c359a4880b0d946face87026acdc6f0b
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Michael Krasnyk <michael.krasnyk@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:07:48 +00:00
Konstantin Ritt 3fb6014ce7 [QFontEngineFT] Guarantee correct metrics for alphamap and its bounding box
...for both cached and non-cached modes, by disabling hinting
for transformed glyphs in loadGlyphFor().

Change-Id: I13766a653ebd72cbed0f5c38ca3536d042aed762
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:07:40 +00:00
Konstantin Ritt 134c6db858 [QFontEngineFT] Consolidate .*lpha.*MapForGlyph() behavior
...and decrease code duplication.

Change-Id: I5eb3c0694dde9030405a3bd3d410ff9784ed7717
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-04-07 13:06:55 +00:00
Marc Mutz 51028d1472 QQueue: unhide QList::swap(int, int)
Task-number: QTBUG-34197
Change-Id: I0b405ab0fabff8852b2705d651848fbff74fc4c2
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-04-07 13:05:50 +00:00
Andy Shaw e7e580412e Windows: Fix -no-widgets build
Change-Id: I0a79a61ffe8b6c6f66895dbeb988e653e11c9661
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-07 11:27:13 +00:00
Marc Mutz 3cb7a1b957 QErrorMessage: add some strategic qMove()s
Saves 56 bytes in text size on my machine.

Change-Id: Ic92943356e0e27620346854e02c129cdfa00f894
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-07 07:45:50 +00:00
Marc Mutz 414dd4bf12 QErrorMessage: replace inefficient QQueue with std::queue
QQueue is-a QList, so it inherits the trait that types larger than
a void* cause a heap-allocation when inserted, which is horribly
inefficient.

Use a std::queue instead, which, by default, is backed by std::deque.

Requires rewriting the API calls, since QQueue uses non-standard
function names.

Text and data size increase negligibly (23 and 8 bytes, respectively),
even though we're instantiating a completely new type (std::deque)
instead of QList<QPair<QString, QString>>, which is probably still
used, despite the inefficiency.

Change-Id: I9bb04a2ec32bb1b9fa2eb83780f0aaa26e872d49
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-07 07:45:39 +00:00
Marc Mutz 2d7128956f QErrorMessage: put local types into the unnamed namespace
Change-Id: I20f8ea7dc95fdecc4bb1190fb8acda19d99cc234
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-07 07:44:29 +00:00
Liang Qi 20cac3d9c9 Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: If9fd98525b6b4ca07e5e006fc98bf372a73b8a21
2015-04-06 19:10:25 +02:00
Thiago Macieira 9eb0b09abc Removed unused code on QT_STRING_UCS4 macro
This isn't defined or used anywhere else.

Change-Id: I9a75ad8521ae4e5cbbe5ffff13d2356883b82dbc
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-04-05 19:40:04 +00:00
Marc Mutz 8ce85d74b6 qppdprintdevice.h: Don't rely on indirect includes
Change-Id: Ib8c2c308cf360b2e3c530ef38249af10ededc44c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-05 17:03:19 +00:00
Marc Mutz 274677a3cb qgtk2dialoghelpers.h: Don't rely on indirect includes
Change-Id: I78e519e32bf3f40e742030926f8dd32a9a7e11a2
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-05 17:03:11 +00:00
Marc Mutz b5a3a02d51 QString::section: scope a variable better
Improves code clarity.

Change-Id: If77eb644b1505c84783c907333526a4f08bb75a9
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-05 17:02:37 +00:00
Marc Mutz f1530d0be1 Optimize QString::section(QString)
The port from split() to splitRef() speeds up typical section()
calls (where the separator is included) by ca. 1/3.

The complete truth includes that section() calls where the
separator is not found seem to have gotten twice slower.
But that's a corner-case.

Change-Id: I7e957cb65fccfd095ac522d523aef3464425e4e4
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-04-05 17:02:30 +00:00
Olivier Goffart f02b849e97 Add Q_DECL_RELAXED_CONSTEXPR to QChar
Change-Id: I7c5a951bcd952ce5c1aaa62e107a800d49038f22
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-04-05 16:58:25 +00:00
Marc Mutz be67eccc26 QChar: plaster API with Q_DECL_NOTHROW
This is mostly straight-forward, but some things are worth noting:

1. Yes, this is necessary. The noexcept operator looks for noexcept tagging,
   not at the contents of the function to determine whether to return true.
   The more conditionally-noexcept functions are used, the more important it
   becomes that low-level classes are correctly marked noexcept. In that, it
   is like constexpr.
2. The decomposition() functions, returning a QString, can throw (bad_alloc).
   Consequently, they're not marked nothrow. they're the only ones.

Change-Id: Iae50283aaa2d0596a265b7e2652c9fb04cedc706
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-05 16:58:14 +00:00
Marc Mutz 947da471f7 QChar: move definitions of inline methods into the class body
This hopefully prevents buggy compilers from choking on the definitions
outside the class as inconsistent, even though they are consistent.

Also helps developers, as the rather lengthy attribute lists for
C++11 functions does not need to be repeated.

This is in preparation of plastering the QChar API with Q_DECL_NOTHROW.

I had to keep operator== and operator< outside the class because
Clang on OS X 10 didn't find it when called with types implicitly
convertible to QChar.

Change-Id: I8bd634bc756d1bf5d208d7a2ce7e7ded73c4ce56
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-05 16:58:04 +00:00
Marc Mutz cc164f9ac7 QVarLengthArray: add {const_,reverse_iterator}, {c,}r{begin,end}()
[ChangeLog][QtCore][QVarLengthArray] Added rbegin(), crbegin(), rend(), crend(),
and reverse_iterator and const_reverse_iterator typedefs.

Task-number: QTBUG-25919
Change-Id: Ifda5d420802a3594c3181f54036279f16a7da16e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-05 16:57:49 +00:00
Marc Mutz f276dd5b7f QVarLengthArray: add relational operators <,<=,>,>=
std::vector has them, too.

[ChangeLog][QtCore][QVarLengthArray] Added relational operators <, <=, >, >= if the element
type supports operator<.

Change-Id: I69e16d361fd4738a56b292ebfa78316d28871eda
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-05 16:57:44 +00:00
Marc Mutz f7b5f0cfd2 QList: add {const_,reverse_iterator}, {c,}r{begin,end}()
[ChangeLog][QtCore][QList] Added rbegin(), crbegin(), rend(), crend(),
and reverse_iterator and const_reverse_iterator typedefs.

Task-number: QTBUG-25919
Change-Id: Icce870c22931e68cdcedd1519651bfa374ac44af
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-05 16:57:41 +00:00
Marc Mutz dfb00bd479 QList: add relational operators <,<=,>,>=
std::vector has them, too.

[ChangeLog][QtCore][QList] Added relational operators <, <=, >, >= if the element
type supports operator<.

Change-Id: Id2bd905e92c0365ad9f439d49908045c8df309c3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-05 16:57:37 +00:00
Alex Trotsenko a03c633e4f Virtualize options setting on TCP server socket
Currently, socket options setting is hardcoded in QTcpServer::listen()
function after the engine initialization and before a binding to the
address. This disallows a socket tuning in further QTcpServer inheritance.

Add a private virtual configureCreatedSocket() method that gives an
ability to set the socket options before listening.

Change-Id: Ice9b477e64f21daee96c0ec6d27a8408f9e1aa93
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-05 15:00:01 +00:00
Olivier Goffart 70d4b35b93 QStyleSheetStyle: do not style the moving tab of a QTabBar
QTabBar uses a palette brush on a child QWidget. But if that
widget get styled, it sets the palette on it overwriting the
existing palette.
Make sure that no stylesheet is applied to it.

[ChangeLog][QtWidgets][QTabBar] Fixed moving tab when a
stylesheet is applied.

Task-number: QTBUG-45173
Task-number: QTBUG-15128
Change-Id: I07aee0f369fa715d852556620c8e74bcffd836da
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2015-04-02 23:24:05 +00:00
Marc Mutz c4ed23b3e0 Optimize QString::section(QReg*Exp*)
Instead of creating lots of temporary QString objects, use QStringRefs.

Together with the two other (micro) optimizations before, this speeds
up section() by up to 2x (section_regex(IPv6)).

No test has become slower.

Change-Id: I514667004f82ddc1518fe3ee699ec5fbf96bb82f
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-04-02 19:30:29 +00:00
Marc Mutz 4bd81e0b82 Add missing QString::prepend(QStringRef)/(const QChar*,int) overloads
QString::append(QStringRef) exists, and so should prepend().
QString::append(const QChar *,int) exists, and so should prepend().

[ChangeLog][QtCore][QString] Added prepend(QStringRef) and prepent(const QChar *, int) overloads.

Change-Id: I3eca41045f7c481be473507e23e92690f3ed7ba3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-04-02 19:30:05 +00:00
Marc Mutz 2a15c83c90 Add QString::insert() overloads for QStringRef, const char*, QByteArray
The corresponding QString::append() overloads exists,
and so should insert().

[ChangeLog][QtCore][QString] Added insert(int, QStringRef),
insert(int, const char*) and insert(int, QByteArray).

Change-Id: I1cf43fe8908319e2a57415945718b72e69ca0fb3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-04-02 19:29:54 +00:00
Marc Mutz e486d69133 QString: preserve embedded NULs when converting from QByteArray
Unearthed an off-by-one error in a QByteArray::fromRawData() call in
tst_qtextdocumentfragment. Fixed by porting to QStringLiteral.

[ChangeLog][Important Behavior Changes] All conversions from QByteArray
to QString now preserve embedded NULs. This is done in order to provide a
faster conversion from QByteArray to QString that does not involve a call to
strlen. If you need the old behavior, convert from QByteArray::constData()
instead. If you are porting from Qt 4, we suggest to make your source compile
with QT_NO_CAST_FROM_BYTEARRAY before porting to Qt 5.

Change-Id: Ibca40f503920fee6f3a5f0d74a04b38b8849796f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-02 19:28:31 +00:00
Marc Mutz 6f145707eb QString::from{Utf8,Latin1,Local8Bit}(QByteArray): preserve nullness of argument
Currently, calling these functions with a null QByteArray will return
a non-null QString because QByteArray::data() never returns nullptr.

This behavior leads to inconsistencies between QString::append overloads,
in particular the QByteArray vs. all others (null + null test always
returns a null QString, except for the QByteArray overload before this
change).

It also is inconsistent with the const char* overloads of these methods,
which explicitly preserve nullness (as verified by test cases).

Fixed by an explicit check for nullness and return of null QString.

Alternative would have been to check for nullness and pass nullptr
instead of ba.data() to the _helper() functions, which do the correct
thing in that case. But since we'd have the check anyway and with the
chosen strategy we can avoid a call to a non-inline method, I opted
against that.

[ChangeLog][QtCore][QString] fromLatin1(), fromAscii(), fromUtf8() and
fromLocal8Bit() now return a null QString when called with a null
QByteArray.

Change-Id: I5f2c0bad27fb73c7d535085af0271823bf6ed1da
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-02 19:28:18 +00:00
Marc Mutz ffedd0cf64 QVector: add {const_,}reverse_iterator, {c,}r{begin,end}()
[ChangeLog][QtCore][QVector] Added rbegin(), crbegin(), rend(), crend(),
and reverse_iterator and const_reverse_iterator typedefs.

Task-number: QTBUG-25919
Change-Id: I8dea52a08e7b1a4442e034c22b83be4d25dc2303
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-02 18:49:28 +00:00
Marc Mutz 34c6fbf846 QVector: add relational operators <,<=,>,>=
std::vector has them, too.

[ChangeLog][QtCore][QVector] Added relational operators <, <=, >, >= if the element
type supports operator<.

Change-Id: I0bcb22dfcc43cb0362f17b4e06154ce18646580a
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-02 18:49:20 +00:00
Pino Toscano da8c3e5807 Hurd: Implement QStorageInfo for Hurd
Make use of the Linux implementation for Hurd as well, as the mntent API
is available there too (including getmntent_r, specific to GNU libc).

Since PATH_MAX is not available on Hurd, and the current bufferSize is
a lot more larger than it is needed, restrict bufferSize to 1024 bytes,
which should be enough to cover 3 paths in mtab and it is usually used
also in other projects.

Change-Id: Ied43be2ab1eb95b48eb9f55a92064e7549efaefd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-02 08:37:21 +00:00
Sérgio Martins 20c651d8b8 Fix QNX and Blackberry -qtnamespace build
Task-number: QTBUG-43569
Change-Id: I81a560d1508de4d808a807f1febdc17619cf4dda
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2015-04-01 10:24:24 +00:00
Daniel Molkentin c1a67e7dc3 Windows: Do not crash if SSL context is gone after root cert lookup
On Windows, we perform an extra certificate lookup for root CAs that
are not in Windows' (minimal) root store. This check can take up to
15 seconds. The SSL context can already be gone once we return. Hence
we now check for a non-null SSL context on Windows before proceeding.

Change-Id: I1951569d9b17da33fa604f7c9d8b33255acf200d
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-04-01 07:33:20 +00:00
Albert Astals Cid 1458d1b31d Use allConfigurations instead of onlineConfigurations in isOnline()
We need it because otherwise code like
  QNetworkConfigurationManager ncm;
  qDebug() << "ONLINE" << ncm->isOnline();
may give the wrong value because the queued signals that have been just connected a few lines above
may not have been processed yet

Change-Id: I959db75ed17497ab91eeba2669ee2c8947244f00
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-04-01 07:22:10 +00:00
Liang Qi 0e6ee136c9 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/testlib/qtestblacklist.cpp
	src/widgets/accessible/qaccessiblewidgets.cpp

Change-Id: If032adb9296428f62384ed835dbf41ee7a0b886c
2015-04-01 09:10:26 +02:00
Alex Trotsenko 633b950bd4 QSslSocket: try to send all data on close()
Takes care about unencrypted data in the socket writeBuffer when
close() flushes the output.

Change-Id: I301f41ea709817e215ee4246a3951e3182d94fbd
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-04-01 06:04:07 +00:00
Alexander Volkov 19a91b4a35 Doc: Fix using Apple-related terminology in Qt Core
Use the name "OS X" instead of "Mac OS X", "Mac OS" and "OSX",
and mention iOS. Replace "Carbon Preferences API" by
"CFPreferences API" in the QSettings documentation.

Change-Id: Ia7f9fb874276c7c445a1649df521b96ff43daa0c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-03-31 12:49:01 +00:00
Andy Shaw 180ee8a8de Explicitly cast to a uint to fix a compile error
When using QtTest inside the notification example for QtAndroidExtras
there as a problem with the compilation as it saw it as being an ambiguous
check. Therefore doing an explicit case to uint ensures it is not a
problem.

Change-Id: Ibc9ce4c64292bf5ae7c501c592d8c42a66934b8b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-03-31 12:03:47 +00:00
Andy Shaw d64f776a9a Windows: Fallback to 0 samples if ARB::choosePixelFormat() fails with 1
This solves a problem when using a Qt application over remote desktop as
if it failed with even 1 sample then it would fallback to GDI which causes
an error if the software OpenGL option is used.

Change-Id: Ib311a7a657f92aab15277461bc8e040bebbe4753
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-31 11:42:08 +00:00
Martin Smith 17294c5e4d doc: Correct error in QProxyStyle() doc.
Constructing the QProxyStle object with a null QStyle
pointer causes the QProxyStyle to use the default native
style.

Change-Id: If624ed7a805aef839ca8a51242d12b2f6d777e83
Task-number: QTBUG-42231
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
2015-03-31 07:13:26 +00:00
Thiago Macieira 00f5d26499 Make Creator happy with qobjectdefs_impl.h parsing
This is just so the Q_COMPILER_xxx macros get defined properly.

Change-Id: Iee8cbc07c4434ce9b560ffff13d066aa0a8671cc
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-03-31 07:05:47 +00:00
Thiago Macieira 26edd5a3b1 Use QStringLiteral where applicable in QtDBus
Move to qdbusutil_p.h the string constants that are used often and in
multiple places; use QStringLiteral in qdbusintegrator.cpp for the
strings that are used often.

Change-Id: I8e1325b9ba015bda91bf01c42175d8032ea32f62
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-03-31 06:50:42 +00:00
Kai Koehne 635f95846e Windows: Fix QT_NO_OPENGL build
Change-Id: Ieb99dce5389c37fb28a28691c75bf879740398e1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-31 06:27:23 +00:00
Ludger Krämer 9ea8082658 fix high memory usage on large download
previously the whole response was cached in a NSMutableData which leads
to high memory usage on large responses (e.g. downloading a large file).
With this patch only the part of the answer that has not yet been read
by the caller is cached.

Task-number: QTBUG-41356
Change-Id: Ic2fe822552620d8835a2c81f8c76dd170fe6ec97
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-03-31 06:24:07 +00:00
Shawn Rutledge 641b8d2b84 xcb: set WM_NAME window property
Some older window managers and utilities still ignore _NET_WM_NAME.

Task-number: QTBUG-42209
Change-Id: Iff93c8188a0a73b04cdf361add153cd818ac670f
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Martin Gräßlin <mgraesslin@kde.org>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-03-31 06:15:09 +00:00
Shawn Rutledge be242ed094 D-Bus system tray: emit activated on middle and right click
The ActivationReason provides the type of click.  If the icon has a
D-Bus menu, then QStatusNotifierItemAdaptor::ContextMenu will not be
called: the tray is responsible for opening the context menu.  But
an application can alternatively do something different with a
right-click by not providing a menu, and instead handling the
QSystemTrayIcon::activated signal with the Context reason.
Simplified the code by emitting the signal directly in
QStatusNotifierItemAdaptor.

Task-number: QTBUG-44929
Change-Id: Ia062a9a2fd99554418d58a1ff6ecd4e862035198
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-03-31 06:14:53 +00:00
Shawn Rutledge 0e55d8dfad D-Bus system tray: emit QPlatformSystemTrayIcon::activated on click
This was incomplete functionality in
38abd65377

Task-number: QTBUG-44929
Change-Id: I7120a3de011c5df57ef5a9fbdfe056eee42d572b
Reviewed-by: Marco Martin <mart@kde.org>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-31 06:14:28 +00:00
Shawn Rutledge 509f77cca2 D-Bus tray icon menus: support submenus
In this case GetLayout will be called with the D-Bus menu ID of the
menu item which contains the submenu.

Task-number: QTBUG-45191
Change-Id: Ia8108272910eac10f040db5865ec4e070da80edb
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-03-30 22:01:16 +00:00
Thiago Macieira ffc74e6d70 Use Q_NULLPTR for the null pointers used in macros
User code should build with -Werror=zero-as-null-pointer-constant

Task-number: QTBUG-45291
Change-Id: Iee8cbc07c4434ce9b560ffff13d0031979b4c2fe
Reviewed-by: Matthew Woehlke <mw_triad@users.sourceforge.net>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-30 21:22:20 +00:00
Glen Mabey 046f325483 Adds qFindFirstSetBit() and qFindLastSetBit().
Two new function families have been added: qFindFirstSetBit() and
qFindLastSetBit() for a variety of integer sizes.  Fast implementations
are included for most platforms.

[ChangeLog][QtCore][QtAlgorithms] Added qFindFirstSetBit() and
qFindLastSetBit().

Change-Id: I89d9d1637ea26070aee5a60be95be1b51bfc84dc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-28 00:05:50 +00:00
Timur Pocheptsov 5e9f7b9579 Cocoa integration - menus and Qt::Tool windows
If an app has only Qt::Tool window(s) at start,
menu is not updated, since Qt::Tool is also
a Qt::Popup (included) and we have a special logic for
Qt::Popup in QCocoaMenuBar::updateMenuBarImmediately.
Using QCocoaApplicationDelegate (ivar 'inLaunch') we
can avoid this problem.

Change-Id: Ie1c4ef241cd19fa0af93c54de2b36e6e932cb77c
Task-number: QTBUG-32539
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-03-27 15:31:40 +00:00
Alexander Volkov 7baaec17ed Fix use of the window geometry specification
Until now we applied the geometry in QWidget::setVisible() by
calling QWidget::move() and QWidget::resize(). But these
methods are unreliable when the window is created but not
visible yet. For example, specifying the window position by
"-geometry +0+0" will take no effect.

Apply the geometry directly to QWindow in QWindow::setVisible().
QWidget will update its geometry after the response of the window
system. Besides it allows to specify the geometry for QML
applications.

Task-number: QTBUG-44713
Change-Id: I9a0e110e81e569c81da802729707fec104fef887
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-03-27 08:00:01 +00:00
Alexander Volkov c0e4f24336 xcb: Determine the window gravity just before the window is shown
It may change after the window has been created.

Change-Id: Ib81a7ad7353b1909cc42684fc70d6b7d2556106f
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-03-27 07:59:38 +00:00
Giuseppe D'Angelo 51af196ba0 QWidgetWindow: use sendEvent to forward events to the wrapped QWidget
The fallback code for unhandled event types in QWidgetWindow::event
directly called event() on the underlying QWidget (i.e. m_widget->event(e)).

The problem with that approach is that it does not activate any
event filters that can have been installed on the top level widget.
Instead, let's use sendEvent to forward the event to the widget.

An extra modification becomes necessary:
the events received when creating/showing/etc. a widget change,
hence the corresponding test needs to be tuned. On the other hand,
apparently this fixes a long time XFAIL in that test.

Task-number: QTBUG-42281
Task-number: QTBUG-26424
Change-Id: I237bbbc301e3e9e10f071589629c71343a600ef9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-26 20:42:54 +00:00
Martin Gräßlin 9f1f8aaa92 Handle SelectionWindowDestroy in QXcbClipboard
This change is related to 6a7ee92b39
which added handling for SelectionClientClose. Further testing showed
that with e.g. Qt 4 applications the SelectionClientClose is not
emitted, but the selection window seems to be destroyed before the
client is destroyed.

Fur a destroyed selection window the same applies: the clipboard
content is no longer valid and we should emit the changed signal.

Change-Id: Id3778a28b9f5601bf2c6e0106981316e0efa6e7c
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
2015-03-26 15:22:44 +00:00
Sérgio Martins f451d48005 Windows: Add support for horizontal scroll on some touchpads.
While most (all?) touchpads send WM_MOUSEWHEEL for vertical scroll
the story is quite different for horizontal scroll. Some of them
send WM_HSCROLL instead of WM_MOUSEHWHEEL.

Some of them even send left/right key event but those are lost cases.

Task-number: QTBUG-45120
Change-Id: I3bf86e25a6f4f3ba03ac7e89a23f4b7bc432f2de
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-26 14:57:45 +00:00
Shawn Rutledge eea5a6ea15 Android MessageDialog: order buttons according to OS X button layout
At least the dismissive action should be on the left, but we can take
the OS X rules as reasonable in cases where a lot of buttons are in use.

Task-number: QTBUG-42808
Change-Id: If45f991a068d47009e02d39fbb3886ff4b31c8e1
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2015-03-26 14:49:31 +00:00
Jan Arve Saether d59638f21d Fixed bug in QLayout::replaceWidget()
If the \a to widget was already part of a layout it would be removed from
the layout. This happened because the function that was supposed to
perform this removal was called after we had done the replacement.
QLayout::addChildWidget() should therefore be called first.  This is also
documented in QLayout::addChildWidget()

Change-Id: Ie718935a14ebad81827fad962920e930263c05b8
Task-number: QTBUG-37724
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2015-03-26 09:26:41 +00:00
Tobias Koenig 7dd5726380 Haiku: Fix clipboard implementation
Fix the behavior of the clipboard implementation
to pass the unit test.

Change-Id: Ia8d5428eebf17a626565e8f4a4d895a67f35b20b
Reviewed-by: Augustin Cavalier <waddlesplash@gmail.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-03-25 13:49:28 +00:00
Venugopal Shivashankar 06ecfb6fde Doc: Added the missing description for WindowShadeButtonHint
Task-number: QTBUG-44017
Change-Id: I024faa6214a041403f23fd91f0c8c38eabeef31e
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-03-25 12:15:40 +00:00
Friedemann Kleint 619a0f14dc Re-add documentation for QStandardPaths::GenericDataLocation.
The text was accidentally removed in
1afe110b8f.

Fixes qdoc warning:
qtbase/src/corelib/io/qstandardpaths.cpp:60: warning: Undocumented enum item GenericDataLocation in QStandardPaths::StandardLocation

Change-Id: I7f236c01d85ebf76b67ab7af7e61b8cbedee4c36
Reviewed-by: David Faure <david.faure@kdab.com>
2015-03-25 09:26:31 +00:00
Topi Reinio b929006513 qdoc: Use the title instead of plain name when listing groups
When listing group nodes, for example, with \annotatedlist command,
QDoc created a link with the plain name (the string that was passed
to \group command as parameter) as the link text.

This change makes QDoc use the group \title, if one exists.

Change-Id: I30b7f9eefc60c12f67b1e579bbc4c5cebe84474b
Task-number: QTBUG-45420
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-04-07 11:49:13 +00:00
Kai Koehne 1db3de6a1e QVLA: Add operator= for initializer lists
Add a dedicated operator=(std::initializer_list) that
first resizes the QCLA, and then replaces the elements
one by one.

This should be usually faster than creating a temporary
QCLA and then copying it, except for the case where the
new array does not fit into the allocated stack - but this
is IMO nothing to optimize for.

Task-number: QTBUG-45041
Change-Id: I147d6d01186b1ca3c635b2c8365d8f6e638ce6fe
GPush-Base: 08de3113051e1289f0de0651ec5647c9ee6feb27
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-04 15:48:13 +00:00
Allan Sandfeld Jensen c51240ca75 Optimize fetching pixel values for SSE2 bilinear sampling
Most of the CPU time was spending in fetching pixel values instead of
calculating the bilinear sample. The access to vectors unions turns
out to be very slow, and should be avoided. This patch removes the
uses of vector,int array union in the bilinear sampling for SSE2.

Change-Id: Ie765a80963c4899db59a583ea9a59d15e05f2b13
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-04 15:42:22 +00:00
Laszlo Agocs 2266f51922 Fix incorrect FBO bindings with QOpenGLWidget
QOpenGLContext::defaultFramebufferObject() knows nothing about QOpenGLWidget
and QQuickWidget. The problem is that this function (and others that rely on it)
is expected to give the widget's backing FBO in paintGL() and friends.

To overcome this, we have to provide a way for such widgets that indicate what is
the expected "default fbo".

Task-number: QTBUG-43269
Change-Id: I43f439f8609382b9f7004707ab0ef9f091952b4f
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-03-30 20:48:07 +00:00
Maks Naumov 2c1d597b65 Fix invalid characters count in QBig5hkscsCodec::convertFromUnicode()
Change-Id: I3b06361f93e7ab6a3336b2c432e0a163a34ccb43
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-03-30 18:03:32 +00:00
Gabriel de Dietrich ea47d152b3 QTabBar: Disable wheel events on Mac
Many people complain about this unexpected behavior. We
may consider introducing a style hint later for those
few people that may want it.

Change-Id: Ifab663b4b5c3a78a3544ab4408cf34f672df8c05
Task-number: QTBUG-8428
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
2015-03-30 17:53:11 +00:00
Gabriel de Dietrich 08cc9b9991 QCocoaMenu: Queue 'activated' signal emission
Allows catching exceptions without quitting the application.
The behavior change should be unnoticeable since we can't
activate the menu item from within the Qt application.

Tested that the keyboard modifiers are still set when we get
to the action signal handler.

Change-Id: I43d0c377834450344bd3a3678e07b6631ba0b768
Task-number: QTBUG-15197
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
2015-03-30 17:52:56 +00:00
Christian Strømme 6b19eec631 Android: Only take ownership of threads we explicitly attach to.
Previously we would take ownership of all threads when attempting to
attach it to the VM, regardless if it was already attached or not, to
avoid expensive re-attachments in our own code. The downside of this
approach is that we might hijack threads the user wants to control
themselves, and the later detach the thread while it still in use, e.g.,
after the QApplication instance is destroyed.

This change does not add any infrastructure to enable more advanced
management of attached threads, so threads might still be hijacked if
the user make a call directly or indirectly through the QJNI API's on
a thread that's not attached.

Task-number: QTBUG-45110
Change-Id: I30f7faa2d8c2c35151e2ac8875ebf839bcd6c7c6
Reviewed-by: Sergey Galin <s.galin@2gis.ru>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-03-30 13:12:51 +00:00
Friedemann Kleint a68b03d6a9 Fix qdoc warning in qopengltexture.cpp.
qtbase/src/gui/opengl/qopengltexture.cpp:3652: warning: Cannot find 'ComparisonFunction' specified with '\enum' in any header file

Change-Id: I92e808310f2d775cda30c1f1b6aaf0ed739b02f1
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-03-30 13:06:35 +00:00
Friedemann Kleint bde0e2d009 Remove compression of posted input method events.
Input method events contain attributes, etc. and cannot
be compressed.

Change-Id: Ib9a2a80f1efec53f9d843684f8227e1f2e245853
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2015-03-30 13:06:29 +00:00
Friedemann Kleint 61101bd958 Windows: Remove duplicated color masks in qt_write/write_dibv5.
They are apparently a relic of some old bitmap header that
did not contain them (superseded by BITMAPV5HEADER).

Task-number: QTBUG-45265
Change-Id: I993dda7d409f7963c9fabd42b0fac5f5586c6248
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
2015-03-30 13:06:23 +00:00
Friedemann Kleint 3203ac3f4e Use QDebugStateSaver to restore space setting in stream operators.
Returning dbg.space() breaks formatting on streams that already
have nospace() set.

Change-Id: I55e38b018679a67eb40be6b4664505483a3a7d8e
Reviewed-by: David Faure <david.faure@kdab.com>
2015-03-30 12:59:58 +00:00
Jørgen Lind c7b003ea3b Use Xlib to resolve font cursor if possible
before fallingback to uploading a bitmap cursor

Task-number: QTBUG-30016
Change-Id: I53eeda6bb5f6cab66e3bc10a2e5382ce55cc1bab
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-03-30 12:55:56 +00:00
Andy Shaw 21d7ec80f0 Windows: Send the input method event when the focus object is valid
Change-Id: I072d4b0bc754f73507c2de96d7e155f13a993594
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-30 12:33:59 +00:00
Laszlo Agocs 6fe60cd9f2 xcb: Fix bgr888 VNC sessions
Introduce a slow path for 24 and 32 bit BGR. We don't care about
performance here but it has to show the correct colors.

Task-number: QTBUG-42776
Change-Id: Ic73e8ca3950b2b956f06643165dcfac51e7540f3
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-03-30 08:41:49 +00:00
Caroline Chao 1a542f2544 testlib: Detect distribution name/release for blacklisting tests
Add possibility to blacklist distributions using the syntax:
"<productType>" and "<productType>-<productVersion>".

productType and productVersion are the values returned by
QSysInfo::productType() and QSysInfo::productVersion() (in lower case).

Change-Id: Iefd948127dd2133c2f2ab7aeb5b0c9749c3df6c5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-03-30 08:41:49 +00:00
Andrew Knight d1ee1c52d1 Fix "'QCss::Property' is not a class or namespace"
As reported by GCC 4.9.2 x86_64-linux-gnu. The error message is correct;
QCss::Property is the name of an enum.

Change-Id: I9fb29d39ac11a644b7b08227f102594b3f3017f0
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Debao Zhang <hello@debao.me>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2015-03-30 06:12:59 +00:00
Timur Pocheptsov 9b134f4e72 Add Q_UNUSED for parameter (OS X)
Ifdefs exclude the code on OS X, but there is still unused parameter
and annoying compiler (either warning or error, depending on ...).

Change-Id: I913c25b4f96ebe275a6b1d15873bccf4aebe9e7a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-04-07 10:39:46 +00:00
Alex Trotsenko add3c14a28 QAbstractSocket: fix some 64-bit issues in debug code
Change-Id: I78b307b2841353f84b033a815035436ec3eef3b0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-07 06:42:42 +00:00
David Faure 5aa40e5b00 QComboBox: also adjust size on model reset, with AdjustToContents
When the size adjust policy is QComboBox::AdjustToContents, the combobox
sizeHint was recalculated on dataChanged, rowsInserted, rowsRemoved,
and setModel, but not when the model was reset. This led to truncated
items in the combobox when models are filled asynchronously.

Task-number: QTBUG-5413
Change-Id: I3456c327d680dfffa58d6dcb26c79456c67b2a32
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-04-04 12:24:44 +00:00
Sérgio Martins ddb0628181 Fix BlackBerry build.
BlackBerry SDK uses gcc 4.6 which supports nullptr, but by default
it uses the dinkum C++ library, which doesn't support nullptr_t.

Change-Id: Ifa95029a9bfa4dc2fc064db5d7a67012e95ac0e2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-04 11:55:23 +00:00
Konstantin Ritt f2486adc1b Build bundled freetype as qt_helper_lib
And thus do not disable warnings for the whole module when
configured with -qt-freetype.

Change-Id: I601a7c2990c8e3377531a28078db73800c138ec1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-27 21:54:22 +00:00
Stephen Kelly ebafb2f14b QItemSelectionModel: Make selectedIndexes a Q_PROPERTY.
With reasoning similar to commit v5.5.0-alpha1~124 (Make the
QItemSelectionModel::selection a property., 2015-02-25), this should
be a property instead of a Q_INVOKABLE so that it can participate in
persistent bindings.

Change-Id: Ib9a7900dfa3acbd6f9f7df7b6f00deb6e05c3937
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2015-03-27 21:13:28 +00:00
Saytgalin Alexander 1bd07b0293 Always release surfaces when application is suspended or hidden.
It is needed to recreate surfaces and to redraw when application is
resumed because on some devices when the application is suspended
Android destroys the surfaces.

Change-Id: I8934e94af038b4ecf116d93aea223ad040b0bff1
Task-number: QTBUG-45019
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Sergey Galin <s.galin@2gis.ru>
2015-04-04 09:12:03 +00:00
Richard Moe Gustavsen d3277bdf02 QComboBox: open popup on touch release if QStyleHints has setFocusOnTouchRelease()
If we give focus to the combobox on touch release, we need to await opening
the popup until touch release as well. Otherwise we might end up showing
a popup for an unfocused combobox.

Especially on iOS, there is a strong coupling between focus object and
popup menus, which means that we effectively require the combobox to gain
focus before it can show the popup.

Change-Id: Ifb7ba091bb39b77f325cdbf61e00ab3e8ff2e522
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-04-04 08:47:06 +00:00
Richard Moe Gustavsen 9cb38baaf8 iOS: check if Qt has an active window before scrolling to cursor
In hybrid applications an external view can be first reponder. And when
that is the case, Qt will have no active windows and focusView will return 0.
We therefore need to protect scrollToCursor from this case, so it doesn't try
to access e.g focusView().window, which will lead to a crash.

Task-number: QTBUG-45182
Change-Id: I87d470631f5beda22fd64fc1f2b0f7259344f830
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-04-04 08:46:57 +00:00
Richard Moe Gustavsen ce4a759c3d iOS: enable changing menu items in QIOSMenu while it's showing
If the menu items change while a menu is showing, the current
implementation would crash. The current code tried to take this
scenario into account by using a copy of the item list inside
the native menus, but failed since the list contained pointers
to menu items. And those items would be deleted in a higher layer
when removed from the owning QMenu, even if the native menu was
visible.

One could argue that the list of items should not change while
the menu is visible, but from testing, other platforms handle
this scenario gracefully. So this patch will ensure we do the
same on iOS.

Task-number: QTBUG-44275
Change-Id: I5508e1d6d47039a9aa948c246b33479bd6801868
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-04-04 08:46:42 +00:00
Alex Trotsenko f40cf77b0f QIODevice: do not change the 'pos' member for sequential devices
Concept of 'current position' exists only for random-access devices.
As documented, for sequential devices QIODevice::pos() must always
return 0. Prevent a modification of the internal 'pos' member in
QIODevice::readAll() method to follow this rule.

Change-Id: Ida2ee6a629ccfc3068d62f95ab1064ada13fdda5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-04 08:40:01 +00:00
Friedemann Kleint 2c6c0e8520 Add QT_Q_FLAG for Qt::MouseEventFlag.
Enable formatting it in debug streaming operators.

Change-Id: I92efb70471653bbd4d91588f333ee132b392bf0c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-03-27 16:54:22 +00:00
Tor Arne Vestbø 94ea7b7132 Add XCTest logger backend to QtTestLib
Will be active when running test apps through Xcode's 'test' action,
and reports QtTestLib test objects and functions to Xcode as XCTest
cases.

This allows running tests on both iOS Simulator and iOS devices from
the command line, through xcodebuild, without relying on any 3rd party
tools. It also integrates Qt test failures and passes into the Xcode
IDE, which may be useful for closer investigation of test failures.

The feature is limited to Xcode 6.x.

Change-Id: I33d39edbabdbaebef48d2d0eb7e08a1ffb72c397
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-03-27 16:53:43 +00:00
Konstantin Ritt 595606fb02 Re-generate the time zones database from CLDR v.27
[ChangeLog][QtCore] QTimeZone data updated to CLDR v.27

Change-Id: Ic25229d86ac4752ed70f5a729fd33c1a837241dc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-27 16:40:28 +00:00
Konstantin Ritt 6acb7fd61d Fix time offset for several time zones
They are in UTC-03:00, not in UTC+03:00 (just a C&P typo).

Change-Id: Ib342b65967404b8756c62953258b17421b9245af
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-27 16:40:25 +00:00
Konstantin Ritt d8a0b97f60 Update CLDR to v27
+ A bunch of fixes in the locale data
+ New scripts from Unicode 7.0
+ New locales
- Some locales disappeared (aa_DJ, aa_ER, st_LS, ss_SZ, swc_CD, tn_BW)
- Some locales lost their contents (i.e. en_Dsrt_US)

[ChangeLog][QtCore] QLocale data updated to CLDR v.27

Change-Id: Iba8c7884f8087e577cbb25a8fc106dd7bd3ebb5d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-27 16:40:16 +00:00
Konstantin Ritt 7946b83ace [QLocaleData] Extract defaultContent locales
This adds some locales missing in the common/main/ directory, namely:
  bss_CM, cch_NG, dv_MV, gaa_GH, gez_ET, ha_Arab_NG, iu_Cans_CA, kaj_NG,
  kcg_NG, kpe_LR, ku_Latn_TR, mi_NZ, ms_Arab_MY, mn_Mong_CN, nds_DE,
  ny_MW, oc_FR, sa_IN, sid_ET, tk_Latn_TM, trv_TW, tt_RU, ug_Arab_CN,
  wa_BE, wo_Latn_SN

See http://www.unicode.org/reports/tr35/tr35-info.html#Default_Content
for more info.

Change-Id: I6b3082d370a21da64fbd5e72ab6344e1d7a6a3c9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-27 16:40:13 +00:00
Konstantin Ritt f50841cc8b Re-generate Unicode data tables
Change-Id: I289537377f37c36f88de9662bbb7ad108bdc9383
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-27 16:40:10 +00:00
Konstantin Ritt dec451cf67 Update Unicode data up to v7.0
* Two newly adopted currency symbols:
  the Azerbaijan manat and the Russia ruble
* Pictographic symbols (including many emoji), geometric symbols,
  arrows, and ornaments originating from the Wingdings and Webdings sets
* Twenty-three new lesser-used and historic scripts
  extending support for written languages of North America, China, India,
  other Asian countries, and Africa
* Letters used in Teuthonista and other transcriptional systems,
  and a new notational set, Duployan

For more details, see http://www.unicode.org/versions/Unicode7.0.0/

The Properties struct's .*Diff members were narrowed down
to signed 15 bits and the unicodeVersion has been expanded to 8 bits.

[ChangeLog][QtCore] Unicode data updated to v.7.0

Change-Id: I93ab6f79fa3b05f61abc7279f1d046834c1c1a0b
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-27 16:40:06 +00:00
Laszlo Agocs 52781f2a7d Make versioned OpenGL functions working with the subclass pattern
QOpenGLFunctions allows both deriving from it and getting an instance
via QOpenGLContext::functions().

Unsurprisingly a large number of users attempt to use the versioned
function wrappers in the same way. Unfortunately this approach was
not that well supported.

Besides some potential base class exporting issues the real blocker for
QOpenGLWidget - or any versionfunction subclass whose associated context
changes during its lifetime - is that the functions instances could
only be initialized once. Unlike instances retrieved via
QOpenGLContext::versionFunctions(), instances created "manually" were not
deinitialized upon the destruction of the associated context because
context did not know about them.

A pattern like

  initializeOpenGLFunctions();
  delete context;
  create new context and make it current
  initializeOpenGLFunctions();

is working fine in QOpenGLFunctions-derived classes but not with the
versioned ones.

To overcome this, start registering such instances to the context too.
QOpenGLContext::destroy() can then reset the internal state so a
subsequent initializeOpenGLFunctions() will reinitialize properly instead
of bailing out mistakenly thinking that everything is ready to use.

Task-number: QTBUG-45199
Change-Id: Ia1420bcccb33c51508698b7a1b036c7544a66e74
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-03-27 16:36:34 +00:00
Laszlo Agocs bc6e92bd2e xcb: Do not crash with VNC
When having a vnc server with pixel format bgr888, we may not have
a working GL integration. (we may not have one regardless of the
pixel format in fact)

We should still keep on attempting to create a regular SHM window
for RasterGLSurface windows too, to keep regular widgets apps working.

Task-number: QTBUG-42776
Change-Id: Idbf8de29694613b240bd27affcc3d80810ce1460
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-03-27 16:36:16 +00:00
Marc Mutz 1b109967c5 QUuid: add missing relational operators
QUuid has ==, !=, <, and >. Add <= and =>, too.

Change-Id: I11a0b8028be766e2d48dc7664d935df4d327b3d3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-04 06:40:27 +00:00
Marc Mutz 09c1bd2eb0 QUuid: add some noexcept
Change-Id: I43647e558a761ff6e7a275e30382919ba038f467
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-04 06:40:00 +00:00
Friedemann Kleint 4347e81161 Windows: Support virtual folders as initial directory for file dialog.
Use the scheme "clsid" to be able to pass them as "clsid:<GUID>"
(with '{', '}' stripped).

Task-number: QTBUG-33962
Change-Id: Ib045fe81518bca6e91588007ce8a245a48479b1f
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Patrick Spendrin <patrick.spendrin@kdab.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-03-27 14:24:03 +00:00
Martin Smith 696a18b063 qdoc: No internal qmlabstract types in the "inherited by" list
This update ensures that there are no internal QML types in a
QML type's "inherited by" list. It also fixes a bug that caused
the "inherited by" lists to be empty when running qdoc in the
single-exec mode.

Change-Id: Iee8b9dbcd56a09b7a49ec8a703b5d861f0b1f0ec
Task-number: QTBUG-44004
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-27 13:55:56 +00:00
Martin Smith 6a5e2f69a8 qdoc: Update for classes in namespaces
The resolving of namespaces across module boundaries
was moving all the nodes for elements contained in the
namespace into the namespace node for the \namespace
command for that namespace. But moving class and
namespace nodes is wrong because they are actually in
different modules where they should also be output.
This update to the fix for the original bug leaves
the class and nested namespace nodes where they are
but adds them as special "orphan" nodes to the
namespace node that has the \namespace command.

These orphan nodes are then included in the namespace
content list when it is written out.

Change-Id: I0eee368ed39f28129b5b43bb4a16963961f53db3
Task-number: QTBUG-44688
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-27 13:55:44 +00:00
Friedemann Kleint 58da6f96a8 qdoc: Add details to messages about not finding files.
Print example directories and files.

Change-Id: I58553f45f87ec2c2036a8c4ddf9ffb54baa75870
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-03-27 13:39:42 +00:00
Peng Wu 341dd4c739 Fix WinRT native file picker empty parameters
Properly handle some empty parameters cases in QWinRTFileDialogHelper
which cause WinRT file engine native API failure.

Task-number: QTBUG-44933
Change-Id: I89de2f98ca501af24c356d5b9bb98abd20b9bbf5
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-03-27 13:18:35 +00:00
Peng Wu d890bc7877 winrt: Fix UDP socket writeDatagram
Remove DataWriter usage and share the write implementation with the rest of the class.

Change-Id: I87734d1bf65ad2e602279317c625885d6f829b6a
Task-number: QTBUG-44051
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-03-27 13:18:27 +00:00
Peng Wu c5fd30b285 Implement flush function in WinRT file engine
This is needed by the abstract file engine.

Change-Id: Ia7ceca1be59f00a90e96e97ccd394634bad8b02f
Task-number: QTBUG-44969
Reviewed-by: Andrew Knight <qt@panimo.net>
2015-03-27 13:18:15 +00:00
Takao Fujiwara c72325d525 ibus: Get display number when screen number is omitted.
QIBusPlatformInputContextPrivate::createConnection() parses DISPLAY
variable and it does not get the display number when the screen number
is omitted. E.g. DISPLAY=":1".

Change-Id: I9f81d8114d4e0f654a27ada67c5dc110eb34cd64
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2015-03-27 13:15:54 +00:00
Joni Poikelin fa3985ab22 Do not emit textEdited on inputMask change
Task-number: QTBUG-1266
Change-Id: Ib2f1db15be876c1d6713bd7c28c2b91006b3b2d4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2015-03-27 12:55:57 +00:00
Tor Arne Vestbø ef9e742711 iOS: Update statusbar style based on MaximizeUsingFullscreenGeometryHint
When Qt::MaximizeUsingFullscreenGeometryHint is enabled for the focus
window we are likely to have window content under the statusbar, in
which case we revert to the default iOS statusbar style which is black
text. If this style doesn't fit the user application, the style can be
set in the Info.plist, or progammatically using native APIs, in
combination with UIViewControllerBasedStatusBarAppearance = NO.

Change-Id: I97576ae091bbfcb8718f980c25e91cc7ca605f03
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2015-03-27 10:24:27 +00:00
Tor Arne Vestbø 013afc77f0 Add Qt::WindowFlag to signal that maximizing should cover full screen geometry
Normally when maximizing a window it will cover the available geometry
of the screen, as represented by QScreen::availableGeometry(), which
typically excludes status/menu bars and application launchers.

On some platforms it may still be possible to place windows in the areas
of the screen that are outside of the available geometry, but this will
result in the window being partially covered by (possibly) transparent
system UIs. The new flag allows the user to specify that when maximizing
the window it should try to cover as much as possible of the screen
geometry (in contrast to going full screen, which would typically
hide any system UIs).

For iOS this is a common use-case, as the status bar is transparent,
and the user-interface guidelines for iOS7 and up recommend taking
advantage of the full screen space, while keeping any user-interaction
elements still inside the available geometry of the screen.

Change-Id: I86d7fc937916d9cae245f7a3f9ae46abd92cdd29
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-03-27 10:24:17 +00:00
Alexander Volkov a73cead0e0 xcb: Speed up screens' initialization
Use RRGetScreenResourcesCurrent to get the screen's outputs.
It is fast but it may return nothing if the configuration is not
initialized wrt to the hardware. Call RRGetScreenResources in this
case to get the up-to-date configuration.

Task-number: QTBUG-40207
Change-Id: I84dc8a45b89d0bf8881a72b02e81f701637cdb6a
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Daniel Vrátil <dvratil@redhat.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-03-27 10:03:02 +00:00
Martin Gräßlin f381ad63a2 Handle SelectionWindowDestroy in QXcbClipboard
This change is related to 6a7ee92b39
which added handling for SelectionClientClose. Further testing showed
that with e.g. Qt 4 applications the SelectionClientClose is not
emitted, but the selection window seems to be destroyed before the
client is destroyed.

Fur a destroyed selection window the same applies: the clipboard
content is no longer valid and we should emit the changed signal.

Change-Id: I173e272dbe912084deed5342d7a4adb55ea1974f
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2015-03-27 07:38:47 +00:00
Marc Mutz 552d97ffcb QDateTime: remove unused parameter from localMSecsToEpochMSecs()
...a namespace-level static function. The ok parameter was never
set by any caller.

Change-Id: I668f78fe198f09fb0a9a52c10c8dea2fab070653
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-26 23:21:36 +00:00
Marc Mutz e9bd162b72 QDate: further optimize toString()
Factor the TextDate and ISODate legs into separate functions
and replace a chain of QString::arg() with QStringBuilder.

Saves 76B in text size.

More importantly, restores (N)RVO for these code paths.

Change-Id: I8b99bb672f5a4b5506d53487eca189d48b4025e9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-26 23:21:31 +00:00
David Faure 211c6f3dc7 QJpegHandler: fix race condition
rgb888ToRgb32ConverterPtr was a static variable, written by one thread
and read by others.
Detected by helgrind, in an app doing image loading in QRunnables.

Change-Id: I06813050b75182cffe26338a3af98eb7d2636abc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-26 22:44:16 +00:00
Konstantin Ritt cd1cdd1516 Fix soft-hyphen appearance at line-break
Replace it with '-' and set dontPrint to true;
later we unset the dontPrint flag if soft-hyphen appears at the
end of a line after line breaking.

Task-number: QTBUG-44234
Change-Id: I05b69bcbbe07e1ee8a5d35d24372356ce8ab9db8
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-03-26 20:00:45 +00:00
Konstantin Ritt cfe3ac9c65 Set dontPrint flag for the respective glyph
The str_pos variable hasn't been incremented prior to string[str_pos].
Ouch!

Change-Id: I54a160c26e23821037bf6ee8aea3e0a94a5e71f9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-03-26 20:00:41 +00:00
Konstantin Ritt a8e3245b50 Better detection of Symbol fonts
> Symbol character sets have a special meaning.
> If the symbol bit (31) is set, and the font file contains a 'cmap'
> subtable for platform of 3 and encoding ID of 1,
> then all of the characters in the Unicode range 0xF000 - 0xF0FF
> (inclusive) will be used to enumerate the symbol character set.

If we detected the font has a symbol character set, report no other
writing systems support.

Change-Id: I1030f3339c166ffd03c7caee1b1b26010dfdc314
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-03-26 20:00:38 +00:00
Konstantin Ritt 951e8a52ae Detect Thai writing system support from the font's Code Page Bitfields
https://msdn.microsoft.com/en-us/library/windows/desktop/dd317754(v=vs.85).aspx

Change-Id: I893746210dc71b9de6f6c064fd9fcaf6340e3c71
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-03-26 20:00:35 +00:00
Marc Mutz 2b3d3cabe1 QUuid: properly scope macros
Limit scope and undef after last use.

Change-Id: I94f0adb2b9fc3ec65dd7a3b5e6f03685bc226d3d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-03 19:44:08 +00:00
Marc Mutz 650de56c7f QUuid: implement op> in terms of op<
More maintainable, and less code.

Change-Id: Ia99e5deefe4c510fe870076a03ec243ba631a7a3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-03 19:43:59 +00:00
Timur Pocheptsov a72b3ab73c QSSLSocketPrivateBackend::transmit - fix Secure Transport version
New SSL backend fails to read data most of the time.

This patch:

1. Removes direct call to _q_SSLRead - it was never executed (intentionally)
   and is completely  horrible and redundant.
2. Changes the reading loop - read not while we have bytesAvailable, but
   until we have errSSLWouldBlock.

Change-Id: I3fc5ff94ded76fcc1748d4979f7af85740b4b6aa
Task-number: QTBUG-45290
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Jeremy Lainé <jeremy.laine@m4x.org>
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
2015-04-01 15:36:45 +00:00
Christoph Schleifenbaum 2432a821aa Cocoa: Fix minimizing/zooming frameless windows.
Use miniaturize instead of performMiniaturize when the window has no
minimize button (even if frameless).
Make sure the window is resizable before performing zoom. Even restore
this, of course.

Change-Id: I43217153b4d4fcec0ded4afcde3009817e01feba
Task-number: QTBUG-32184 QTBUG-45339
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-04-01 15:17:32 +00:00
Timur Pocheptsov 9f34943245 Revert "Cocoa plugin - showMaximized/showMinimized and Qt::FramelessWindowHint"
This reverts commit d024f0a922.
Qt::FramelessWindowHint actually DO require 'non-resizable' window.
Let's assume, non-resizable means 'resize by mouse dragging'.
There is a better fix that will follow this patch (temporary
setting/resetting resizable mask).

Change-Id: I61cefcade437d3e54719e2e1ff0e8d070c577df0
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-04-01 15:17:20 +00:00
Thiago Macieira f25d6ad2aa forkfd: Fix compilation with older glibc
glibc 2.9 is required for pipe2 and version 2.7 for eventfd.

Bionic added them to Android version 2.3.1, but I can't find a version
macro.

uclibc masquerades as glibc version 2.2, so this function won't be
thread-safe with uclibc.

Change-Id: Iee8cbc07c4434ce9b560ffff13cd3c3b63dd7e83
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2015-04-01 14:44:42 +00:00
Friedemann Kleint 06671a3cbd Windows: Use FORMAT_MESSAGE_IGNORE_INSERTS for qt_error_string().
This will cause FormatMessage() to return messages with placeholders
as well even though we do not pass the message parameters (for
example: "The operating system cannot run %1." for ERROR_INVALID_ORDINAL).

Task-number: QTBUG-43164
Change-Id: Ib95c1c0fabb543bbe4e8ab2bd8f244f73dff5fa4
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-04-01 14:26:43 +00:00
Olivier Goffart 5322200076 Silence clang warnings in C++03 mode
C++03 forbid the use of local or unnamed type as template parameter.
But in C++11 that is allowed, and clang accept them even in C++03
mode, but with a warning.

The Warning happen for example with this code:

  enum { Foo = 3 };
  int x = 3 << Foo;

Then the compiler issues warnings:

metatype.h:1379:31: warning: template argument uses local type [-Wlocal-type-template-args]
        enum { Value = sizeof(qt_getEnumMetaObject(declval())) == sizeof(QMetaObject*) };
                              ^~~~~~~~~~~~~~~~~~~~
qdebug.h:269:42: note: in instantiation of template class 'QtPrivate::IsQEnumHelper<(anonymous enum)>' requested here
typename QtPrivate::QEnableIf<QtPrivate::IsQEnumHelper<T>::Value, QDebug>::Type operator<<(QDebug dbg, T value)

Normaly the compiler should not even try to instantiate the operator<<
with such types in C++03 mode.

Change-Id: I48c7d5d1836fd87986835fe15c7e0b1beb73c728
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-01 14:20:50 +00:00
Olivier Goffart 8cec5e9a34 Update a few doc regarding Q_FLAG
Change-Id: Ic26b3d64c9a5d5109bd8a0b359f063529d0181fc
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-04-01 14:20:28 +00:00
Andrew Knight 4a6ba203b5 winrt: Fix non-PCH build
This cpp file did not include its header.

Change-Id: Ib68f4a1470c1dc213add5e8825ef972c07ee57df
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-04-01 14:13:30 +00:00
Friedemann Kleint 85f9478227 Fix debug stream operators.
- Use QDebugStateSaver to restore space setting in stream operators
  instead of returning dbg.space() which breaks formatting on streams
  that already have nospace() set.
- Fix some single character string constants.

Change-Id: I0fe86bb1adbdd4a76ab6d2f8c19e063b45ddcf3b
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-04-01 13:49:32 +00:00
Thiago Macieira 49f4458a18 Remove extra semi-colons: clang doesn't like it
qdebug.h:373:81: error: extra ';' outside of a function is a C++11 extension [-Werror,-Wc++11-extra-semi]

Change-Id: Iee8cbc07c4434ce9b560ffff13cb759805b64dfc
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
2015-03-26 06:11:20 +00:00
Thiago Macieira e1c99e15b6 Update strtoll and strtoull from upstream FreeBSD
There appears to be at least one fix, related to sign- or zero-extension
in the call to isspace(). So it's a good idea to update again. This also
brings the behavior to match strtoll and strtoull on Linux, including
the fact that strtoull will parse negative numbers. For that reason,
qstrtoll and qstrtoull are now wrappers that try and keep the behavior
that we used to have.

This update also changes the code from a 4-clause BSD license (bad) to a
3-clause BSD license (good).

Change-Id: I73b01b02ebd1551bf924599d52284ad25cc1def0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-26 06:11:14 +00:00
Thiago Macieira f43a624ab8 QtOpenGL: Fix const correctness in old style casts
Found with GCC's -Wcast-qual.

Change-Id: Ia0aac2f09e9245339951ffff13c946886247a98a
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-03-26 06:11:11 +00:00
Debao Zhang b798b53db7 Don't remove mnemonics and parentheses under non-Mac system.
SHA: 8e3aacf61b is a mac only patch, but
some code introduced by which is not wrapped with Q_OS_MAC. So add
the missing Q_OS_MAC here.

Change-Id: I748d46b977740e6116dab5659ad1e47d23262a0f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-26 06:10:05 +00:00
Tor Arne Vestbø 28295915bc iOS: Implement basic QPlatformOffscreenSurface subclass
Offscreen surface support was added in fb3577039c, as the platform
supports FBOs, but we need to return a subclass of QPlatformOffscreenSurface
that returns true for isValid() and a valid surfaceFormat().

Task-number: QTBUG-39759
Change-Id: If6aa9ee1672984bb93a01a5323af8d93b3b0f2b8
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-03-25 19:43:24 +00:00
Laszlo Agocs 909e2b17cb Add a section about QOpenGLWidget alternatives
QOpenGLWindow with createWindowContainer() can be an option
for desktop-only apps in some special cases. Document this.

Task-number: QTBUG-45192
Change-Id: I7c59b7d04d6c0fe58ffe93ac72b204103bef2f4c
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-03-25 13:10:57 +00:00
Laszlo Agocs 0764407040 Avoid crashing in the vao when not supported
The stored context pointer has to be reset to null in
destroy() even when no VAO was created (vao is null).

Otherwise destroying the context that was stored in the VAO
will not lead to resetting the stored pointer, and a subsequent
destruction of the VAO object will try to dereference it.

Task-number: QTBUG-44562
Change-Id: I438bb3954d4bbd8b8d8704f6087479804f0073a7
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-03-25 13:10:49 +00:00
Paul Olav Tvete dc62f15d79 Resize backingstore properly on devicePixelRatio changes
Task-number: QTBUG-45076
Change-Id: Ib2f2408abf7bd0b6d1c8a05fbbdc665e77ea6392
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-03-25 12:17:14 +00:00
Paul Olav Tvete 667f3abc50 Proper geometry conversion for devicePixelRatio > 1
Rounding the bottom right corner position means that the size
can change when the window moves. For windows we need
to round the size up in order to have a stable geometry.

Task-number: QTBUG-45076
Change-Id: I9a85a5915bfec55b0a7295be137b6fbfd7b53095
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-03-25 12:17:06 +00:00
Andy Shaw 2e4a107e7e Ensure that CSS rules are inherited from the parent tags
When CSS is set in a head tag then it was not being inherited by the child
tags when the CSS specification indicates that the properties are in fact
inherited. This ensures that those properties are inherited and the non
inheritable ones are unchanged.

A test is added to cover the different situations with inheritance and a
fix is done for the QTextDocumentFragment test which was passing despite
having incorrect defaults.

Task-number: QTBUG-28770
Task-number: QTBUG-34153
Change-Id: I55966240845a885852a04ecb82c61926dea9f800
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-03-25 11:55:47 +00:00
Alexander Volkov 738c07542a Don't replay mouse press event which closes a popup on X11
Add a new style hint to QPlatformIntegration: ReplayMousePressOutsidePopup.
Return false for it in the xcb plugin.

This commit restores the behavior which was in Qt 4.

Task-number: QTBUG-34814
Change-Id: I19fee762395a51475cc67b52b368c70679ca736b
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-03-25 11:33:45 +00:00
Richard Moe Gustavsen 722f9f9477 iOS: support SH_ComboBox_UseNativePopup in fusion style
Change-Id: I24ef41249042cd658ecba01b0024d08965673b41
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-03-25 11:15:02 +00:00
Richard Moe Gustavsen 713e5e2914 QComboBox: use native popup on iOS
Enable native popup on iOS as well as OS X

Change-Id: If99180a017768d9c94241adf2282ee9b3f69cbc1
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-03-25 11:14:59 +00:00
Richard Moe Gustavsen a776a03e75 QComboBox: change showNativePopup to be non-blocking
QPlatformMenu::showPopup() is supposed to be non-blocking.
So ensure that we don't start cleaning up the menu items directly
after the call in showNativePopup, but wait until we need to reload
the items, or the combobox is destroyed.

Change-Id: Ie4c9b6425cec44861af38e517fc5ef226e0903c7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-03-25 11:14:53 +00:00
Friedemann Kleint 2012c8e866 Improve debug operator for QGraphicsItem/QGraphicsObject.
Introduce QDebugStateSaver, use new formatting helpers and
output parent, flags and z only when necessary. Output the
widget contained in QGraphicsProxyWidget.

For example,

QGraphicsProxyWidget (this = 0x1877550 , parent = 0x0 , pos = QPointF(870,491) , z = 1e+30 , flags =  ( ItemIsFocusable | ItemUsesExtendedStyleOpton | ItemSendsGeometryChanges | ItemIsPanel ) )

becomes:

QGraphicsProxyWidget(0x1877550, widget=ItemDialog(0x1e29dc0), pos=870,491, z=1e+30, flags=(ItemIsFocusable|ItemUsesExtendedStyleOption|ItemSendsGeometryChanges|ItemIsPanel))

Change-Id: Ia554dc3e2eb6f16d9d9220d1067194a4424b7cf5
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-04-01 11:58:20 +00:00
Kai Koehne cbf28577ef Force length of prefix path to be calculated at runtime
Prevent compilers from calculating strlen at compile time
by using a volatile pointer. This corrupted paths if the
installation path is patched for the binary SDK installer.

Task-number: QTBUG-45307
Change-Id: I624b0409e8b27299475a88eb1cbf03ffef9589c6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-01 11:32:28 +00:00
Allan Sandfeld Jensen b716216fc0 Fix a few clang warning
Clang likes to complain when override is not used consistently.

Change-Id: I0fad18a7c3eb068aa1b6786243969aef53d1f42c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-04-01 11:29:09 +00:00
Liang Qi 26a9783d55 Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5 2015-04-01 11:27:03 +00:00
Friedemann Kleint f53621af05 Update documentation snippets related to QDebug.
Use QDebugStateSaver to store the formatting state and fix the return
statement to return the unmodified stream.

Change-Id: I476d13c5487a89f263dcc11334fc67c85d9433f5
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-04-01 04:28:08 +00:00
Friedemann Kleint 7c2360b762 Split out some inline qdebug formatting helpers to qdebug_p.h.
Extract helpers to be able to format classes without type names
and use those for formatting QEvents to reduce clutter.

For example:

QWidgetWindow/"MainWindowClassWindow" QMouseEvent(QEvent::Type(MouseMove), buttons=QFlags<Qt::MouseButtons>(LeftButton), localPos=QPointF(50,116), screenPos=QPointF(948,652))
QWidget/"qt_scrollarea_viewport" QMouseEvent(QEvent::Type(MouseMove), buttons=QFlags<Qt::MouseButtons>(LeftButton), localPos=QPointF(45,32), screenPos=QPointF(948,652))

becomes

QWidgetWindow/"MainWindowClassWindow" QMouseEvent(MouseMove, LeftButton, localPos=50,116, screenPos=948,652)
QWidget/"qt_scrollarea_viewport" QMouseEvent(MouseMove, LeftButton, localPos=45,32, screenPos=948,652)

Change-Id: Ie5441d922962a05caed6b7079a74ea8a2b8a64fb
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-04-01 04:26:50 +00:00
Liang Qi ce9519593a Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
	mkspecs/android-g++/qmake.conf
	qmake/generators/unix/unixmake2.cpp
	src/gui/image/qimage_conversions.cpp

Change-Id: Ib76264b8c2d29a0228438ec02bd97d4b97545be0
2015-03-31 10:03:31 +02:00