Due to a refactoring done in Qt 5.1, we would try to do projected
text painting using the glyph cache in the raster engine (the logic
to avoid this was removed when refactoring). If you only did the
projected text drawing, then you would get unprojected text with
projected glyph positions and it would look wrong.
What's worse: If you first drew unprojected text with the same
font engine, so that the font engine already had a glyph cache
stored, we would hit an assert in qtransform_equals_no_translate
which assumes cached drawing is never used for projected painters.
This puts back the logic that we never cache projected text in
the glyph cache.
Task-number: QTBUG-32193
Change-Id: I1f919961c4cf498a9c4a0b1ceb0df1937ed0d067
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
When drainOutputPipes is called, the process is already dead.
If readyReadEmitted is false, there was no data in the pipes.
As the process is dead, there won't be data in the pipes in future
iterations.
The situation that triggered the infinite loop was this:
process A starts console process B.
B starts console process C. C inherits stdout/err of B.
B dies. C runs forever and does not close the stdout/err handles.
A notices that B died and calls drainOutputPipes.
Task-number: QTBUG-29391
Change-Id: I4819901df307be684c6ad70753a5f964a834704a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Fix race condition in waitForNotified for zero timeout.
A waitForNotified(0) call is typically used for triggering
events near the end of life of the I/O resource (e.g.
drainOutputPipes in QProcess). In that case we must
synchronize the IOCP thread and waitForNotified.
Task-number: QTBUG-29391
Change-Id: Iadbd8564ec461cbc48a6ef8c5627e30a5c6eecfd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Calling waitForNotified on an uninitialized notifier will print a
warning and return false. The autotest has been adjusted.
Change-Id: I85e18d6d0a8a5462e1a5d451613add941d89b5fb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
In Qt 4, there was a special case in qpdf.cpp which would
use the tmHeight from TEXTMETRIC to calculate the height
of the text instead of the pixel size. This was removed when
all code inside Q_WS_WIN was removed from QtGui. The tmHeight
is defined to be the same as ascent + descent, so we reinsert
this code for Windows.
It could be that this code is okay cross-platform, since the
font height and the pixel size are supposed to be the same, though
for some reason not on Windows. However, the safer approach is
to #ifdef it for Windows, since the bug is not present on
other platforms, and since it was #ifdef'd in Qt 4.
Task-number: QTBUG-30875
Change-Id: If0817768bf0ca5ce216842119422a0be944df0bf
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
the previous attempt broke ActiveQt, as it actually has public modules
without headers (they are provided by a common base module).
so explicitly mark the internal modules as such instead of applying
heuristics.
Change-Id: I8d8a2ee66f02c3444da2036a497e7f382f089f62
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
When defining QMAKE_LFLAGS += /MANIFEST:NO to pro file,
it is not written to vcproj in VS2008.
Added MANIFEST:NO generation to vcproj
Task-number: QTBUG-31975
Change-Id: I5f84b30db711bf9c317ca20dc65b207140edb398
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
When a QWindow was destroyed, we'd delete its corresponding buffers,
but failed to make the correct EAGLContext current first. This would
result in deleting/invalidating buffers for another window (whatever
window's context was current at the time), and that window would then
seemingly stop rendering anything, and turn black on rotation.
Task-number: QTBUG-32246
Change-Id: I335a8c580203fc01e43da31c5cb6f567614c26fc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Instead of storing the application type as a uint, we use the enum provided
by QCoreApplicationPrivate. The former resulted in a few cases of wrong
logic where the values got mixed up, such as always printing the QtCore
console warning, even for GUI applications.
The qt_eval_is_supported function has been refactored to return enums instead
of magic values, to make the logic easier to read.
The same goes for qt_eval_days_left, which now only concerns itself with
the number of days left. qt_eval_is_expired() has been added to use for
easy checking of expiration date.
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: Ia0e85b2103f790a7e02e0d6e567a477b3145fcb9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Google moved dx.bat into a new build-tools/VERSION folder
meaning our dx.bat no longer found dx.jar. Fix this by
passing into our dx.bat, the location of the real dx.bat
Removed hardcoded 17.0.0 and %ANDROID_BUILD_TOOLS_REVISION%
path searches.
Change-Id: I91c12c01745d6f12edbd126102b8f06eba291402
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
The constructor taking a global color was removed in Qt 5.0.0.
We need to explicitly convert to QColor before we get a QVariant.
Change-Id: I821f164b8601647b062eeef57372755fa187c50c
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
makes for less visual noise and a tiny bit more efficient code.
Change-Id: I587707fa4e2dc9bead9435bf5caf3a98ab680725
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Remove call to QWindowSystemInterface::flushWindowSystemEvents()
introduced by 153d613353 .
Task-number: QTBUG-32125
Change-Id: I14aa2772848e04b47deff6218b48eaf69f0bb649
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Instantiate widgets on the stack to ensure they are destroyed
when the QApplication instance goes out of scope.
Introduce waitForWindowExposed() to make sure events are in sync.
Task-number: QTBUG-32125
Change-Id: Ia54e2fa9a7c2e279353c4514a6735e326edf35ae
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
QFSFileEnginePrivate::canonicalized has been gone for a very, very long time now
(since d3b152ba1e3cd38dd675c801474105d518bacb44 in Qt 4).
This also fixes a build failure in the code on Windows.
Change-Id: I81f5e0c1d644b1b4d75644626eb394a663535387
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Need to store 17 decimal digits for binary64, IEEE 754 double formats.
Autotest is included. Test cases from TC39 test suite for ECMAScript.
Task-number: QTBUG-31926
Change-Id: I546398f21ea7ff5e40e89fc9de8703f628f55df9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Do not lower case file names to generate hash keys since
QString::toLower() converts some characters with context
which the Windows file system will not.
Task-number: QTBUG-31341
Change-Id: I285bfedef3c1ca9d59083229e61974dd378c72ae
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
It claims to be WV_5_2 (WV_2003).
Task-number: QTBUG-32217
Change-Id: I0c277410acc9ac29710a3eee63bec9ced42e2767
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Add mkspec win32-msvc2013 and make VS 2013 known to configure and
qmake.
Change-Id: I6e63a4d679727a8a3f068f377956185996d72bce
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This reverts commit 1ef74a763a, as
assembler files in SOURCES break compiling with -pch, as we don't create
a respective PCH.
instead, compile assembler code with QMAKE_CC, not QMAKE_CXX.
the reason why this change is needed in the first place is not clear to
me, but i guess that CXX defines some c++-related macros when
preprocessing the file, which breaks further down the line. this is
counter-intuitive, as the g++ frontend should treat the same sources the
same way as the gcc frontend (differences should be limited the the ld
invocation).
Task-number: QTBUG-29765
Change-Id: Ic0116b3a5fa621f12ac41cadf3062ff00b538e85
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: Ie52630402bea331c89ac106f38ffbba4784f04ab
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
contrary to what one may expect, it's actually *not* supposed to remove
the meta-characters it interprets.
luckily, this function is not used much any more ...
Task-number: QTBUG-31877
Change-Id: I2b60f9b173140da78db2b07b596cc2e5f6e6d555
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Change-Id: I066bef5fcdf19785c8e2cbf7dc704711d84af414
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Change-Id: I839aa44735910012bf57daa9c8b55c5e6def3cd2
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
if a private module was used without the suffix, it would not add any
include paths, but the library would be still added. as long as the
includes were written as <Module/private/Header>, this would not become
visible, as the public modules would add the common include path ...
however, this soon won't be the case for mac frameworks any more. this
change makes the problem visible early on.
Change-Id: I8b1a20313ad736cb49507f07fa623e9aa812f651
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Correct cell is now set when selecting a custom color cell with arrow
keys so that the custom coor is actually added to the selected cell
(as with mouse events).
Task-number: QTBUG-32054
Change-Id: Ic271a0be76070b4f5364954b2dfe464964c1380b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
The projection matrix should also be set for systems
running OpenGL 3.1 with GL_ARB_compatibility extension.
Task-number: QTBUG-28284
Change-Id: I756155a6064dcbff29fd817e676d31f24f559e8c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QtPlatformSupport fails to build if EGL support is enabled but OpenGL
isn't. It tries to compile eglconvenience, but qplatformopenglcontext.h
is empty (#ifndef QT_NO_OPENGL).
It makes no sense to have EGL with no OpenGL ES, so make sure we don't
try it.
The current test to disable EGL if OpenGL desktop is active is upside
down. With -opengl desktop -no-egl, it would complain that EGL support
was requested.
Task-number: QTBUG-28763
Change-Id: I80c780ec78181f3fa85f43e41be21d1217d76610
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
qstring.cpp(3896): error #68: integer conversion resulted in a change of sign
The line before also had 0x8000, but since there was no addition,
0x8000 was a literal converted to short. However, 0xff + 0x8000 is an
int, and 0x80ff is positive, while short(0x80ff) is negative.
Change-Id: I445ff401d817b643479e54320525890ce12bbfe5
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Under normal circumstances, this should never happen. Signals exported
to D-Bus should only be emitted from the object's own thread. That's the
only way for the receiver (the QDBusAdaptorConnector object) to know
what the sender object and signal were. If they are emitted from another
thread, the sender will be null.
Task-number: QTBUG-31932
Change-Id: Ia5a45d648985e0645bffd4abc0881fca9da64f79
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
The Qt CI system runs the unit tests after installation, but
with the qmake in the build directory. This means that the
installed content is not unit tested. Add an additional cmake
unit test to test the files in the install location.
The new test is marked insignificant for now until the true
effect on the CI system is known.
Task-number: QTBUG-27315
Change-Id: If9f12e88cfc741946cfabc25dbf789a11a2af4b8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
A previous commit (7582bb5) added a line to disable xkbcommon
when building for Android. A similar line needs to be added to
handle QNX builds.
Change-Id: I34e91d989567b17e7e21b87d9c377360e4e56f68
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Presumably this was just an omission when QFusionStyle was first
written. These three lines were taken directly from the equivalent
portion of QWindowsStyle and seem to work as expected.
Task-number: QTBUG-31904
Change-Id: I2f288d3cf2bfa3fe4f7f4a71e2726a172ec8e1b3
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
For some reason, the enumeration values were signed when using
64bit.
Task-number: QTBUG-31386
Change-Id: I891dbe1a82dc2aefbe13a131c72c01a57f981767
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This can happen when instantiating a QFileIconProvider and no suitable
graphics context is available (e.g., when only using a QQuickView).
The proper, longer (5.2) term solution would be to have the platform theme
return a QIcon with a NSImage icon provider.
Task-number: QTBUG-31908
Change-Id: Ibfdb51e0a7dd2c33761a463f4eb6619f0aca19f0
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
If both the rc_file and res_file was added to the project then in MSVC
2012 it would cause an error complaining of a duplicated resource.
Task-number: QTBUG-29826
Change-Id: Ib3401b423208cd8c90895038c9cbadd80c39b542
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Instead of calling different wait functions on different platforms,
we use QTRY_COMPARE to check the process state.
Change-Id: I6489cabce9e63f9c8b1036f3cccbf35b52df72e7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
This amends commit 119882714f.
Change-Id: Ifb105596af5b00b04344cb665b3e68292c9187ae
Reviewed-by: Romain Perier <romain.perier@gmail.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>