Commit Graph

33255 Commits

Author SHA1 Message Date
Otto Ryynänen
6d50f746fe Support for Q_OS_ANDROID_EMBEDDED and android-embedded build flags
The Embedded Android build (Boot to Qt Android injection) is defined by
having both Q_OS_ANDROID and Q_OS_ANDROID_EMBEDDED flags defined,
as well as having Qt config android-embedded.
This commit enables the possibility to build embedded Android builds.
(i.e. Qt build for Android baselayer only, without JNI)

Change-Id: I8406e959fdf1c8d9efebbbe53f1a391fa25f336a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2018-01-20 18:16:59 +00:00
Andre de la Rocha
e211ab76d7 Handle OOM condition in the validation of plugin metadata
A large plugin dll (e.g., one with many MB of debug info) could cause
a 32-bit application to crash when the entire dll file could not fit
within the address space of the process. The code for validating a
plugin library and retrieving metadata from it first tried to map
the entire file in memory, which failed for large files, returning
NULL. In this case, the code tried then to read the entire file via
QFile::readAll(), which deep below caused a bad_alloc exception in
malloc, resulting in the termination of the application. This change
handles the case where the library could not be mapped into memory,
in spite of memory mapping being supported, by reporting the error
and returning false, making the plugin unavailable.

[ChangeLog][QtCore][QPluginLoader] Fixed a bug that would cause the
Qt plugin scanning system to allocate too much memory and possibly
crash the process.

Task-number: QTBUG-65197
Change-Id: I8c7235d86175c9fcd2b87fcb1151570da9b9ebe3
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2018-01-19 14:10:53 +00:00
Tero Alamäki
dc742e9394 Enable glyph cache workaround for Mali-T880
Change-Id: I531e57c26e886cd8de09ca860d7e10b05d1a724b
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-01-19 07:57:49 +00:00
Kai Koehne
13f6eb9773 Doc: Mention exact Qt version the third party attributions apply to
We do add, remove or update third party code in minor releases,
sometimes even in patch level releases. However, the documentation is
supposed to be valid for all existing Qt 5 versions, but doing this for
attributions would require infrastructure we don't have.

Therefore rather make it explicit which Qt version the attributions
apply to. Also mention since when Qt is available under LGPLv3
(starting with Qt 5.4).

Task-number: QTBUG-65665
Change-Id: I328b5bf0c143f78ea61aad51f0644c3cbb6dee49
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2018-01-19 06:30:06 +00:00
Edward Welbourne
957c1d9abd Use a proper test for absolute path for qmake's location
QFileInfo.isRelative() deems any path starting with a slash to be
absolute; on MS-Win, such paths need a drive specifier (unless they're
UNC), so use IoUtils's more robust test for absolute paths.

Change-Id: I7d0872a87833cbf1cc1a6ef107941adc4c529624
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-01-18 19:47:29 +00:00
Edward Welbourne
f9b8ea4b0e Fix QMacTimeZonePrivate::previousTransition() for early after epoch
The native APIs don't support previous transition, only next after a
stipulated date.  The prior code started its search at the epoch; if
used for a time before the first transition after the epoch, this
found no transitions so returned invalid data, when the last
transition before the epoch would have been suitable.  It also wound
through all transitions since the epoch, on its way to the selected
time, which was potentially laborious.

Instead, start a year before the stipulated time; this should get a
transition if the zone uses DST.  If it doesn't, start with the first
known transition and binary-chop our way to one within a year of the
last before the stipulated time; then wind forward one transition at a
time, as before.  The chopping is actually faster than binary: each
time we find a transition after the interval mid-point but early
enough, we move the early end of our interval to the transition, which
is later than the old interval's middle.  Using halving, starting with
a vast interval, should thus only incur modest cost, while ensuring we
give up early when no transition data is available at all or the
zone's first transition ever was after the stipulated time.

Task-number: QTBUG-65443
Change-Id: I96c14540fc2600837e6a22e480fb8dc36cb37220
(cherry picked from commit 7c0b706488)
(cherry picked from commit a090076e93)
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Jason Dolan <jason.t.dolan@gmail.com>
2018-01-18 14:27:42 +00:00
Oswald Buddenhagen
016ab238b6 configure: express dependency of fontconfig on freetype more clearly
use a "use" entry instead of including the transitive dep into the list
of libraries.
this also removes the redundant check of freetype features from the
fontconfig test code.

Change-Id: I86b78028255c9bf0a62be5ec0f97a62ef3fda36f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-01-18 13:54:25 +00:00
Oswald Buddenhagen
f6f6958a3e configure: inline D3D11_QUERY_DATA_TIMESTAMP_DISJOINT test
amends a96656a8fb.

Change-Id: Ic434c272bfe985ea0410090537b8a22aad3192f1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-01-18 13:48:34 +00:00
Oswald Buddenhagen
b772d9cbd7 fix example source installation of qrc/rc files in subdirs
such a project structure violates the assumption that the referenced
resources are specified relative to the sub-project root, so we must
resolve them to absolute paths manually.

Task-number: QTBUG-65753
Change-Id: I8bcd5c6e7d7c6a713e5fcd3668be7d2f23169501
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-01-18 13:48:23 +00:00
Edward Welbourne
e86f3c0188 qmake: require a drive in a DOS path for it to be absolute
For Q_OS_WIN, a path is only truly absolute if it includes a drive
letter; merely starting with a slash is not enough.  (We can't support
UNC paths, so don't even try: qmake runs various commands in the
source directory using CMD.exe, which doesn't support UNC as PWD.)
This requires, when resolving a path relative to a root, transcribing
the root's drive to such not-quite-absolute paths.

Changed QMakeGlobals, $$absolute_path() and $$relative_path() to now
use IoUtils::resolvePath() rather than delegating to QDir's absolute
path method, since that doesn't correctly recognize the need for a
drive letter (and qmake did run into problems with some paths, from
splitPathList and a failing test, as a result).

Moved existing ioUtils tests for handling of relative / absolute paths
out into separate functions and expanded significantly.  Fixed some
existing tests to use an absolute path where one is needed; added two
tests involving driveless (but rooted) paths; and fixed the test init
to set a value for QT_HOST_DATA/src property (the lack of which lead
to an assertion failure with this fix).

Task-number: QTBUG-50839
Change-Id: I2bfc13c1bfbe1ae09997274622ea55cb3de31b43
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-01-18 13:46:54 +00:00
Oswald Buddenhagen
3149d0fb13 use correct path separators when invoking testcases on windows
Change-Id: Iad541f0d62ffdb2751da6225b9d40229d7d9a03f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-01-18 13:46:44 +00:00
Andy Shaw
bed6292dde Win: Document limitation regarding registry types not being preserved
QSettings does not preserve the original key type in the registry, it
will set the type for the key based on the value that is being set.
Therefore we should make it clear that existing key types will be
overridden as this can cause some problems with types we do not
directly support (such as REG_EXPAND_SZ).

Task-number: QTBUG-2894
Change-Id: Ib2f2eed02759591e69fefb98a4a1f3cf897dd5cb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-01-18 10:50:48 +00:00
Liang Qi
0688a755e6 Merge "Merge remote-tracking branch 'origin/5.9.4' into 5.9" into refs/staging/5.9 2018-01-18 10:05:21 +00:00
Liang Qi
bd46858d69 Merge remote-tracking branch 'origin/5.9.4' into 5.9
Change-Id: If83012432650a697fe4e8e773ade366589b63b0d
2018-01-18 10:59:44 +01:00
Frank Richter
2b47afadc0 gtk3: Disable native file dialogs on GTK3 < 3.15.5
Showing file dialogs if running on a system that has an older GTK3
version installed results in a crash. Do a version check at runtime
and disable native file dialog support if the version is too old.
(GTK3 bug: https://bugzilla.gnome.org/show_bug.cgi?id=725164)

Change-Id: I77bd23f1298333412bae04f52153e1a224ddf470
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
2018-01-18 09:03:09 +00:00
Frank Richter
1aae404a4c QProcess/Windows: Include PID in pipe names
Although qt_create_pipe() tries again if the pipe name is already
in use, it doesn't handle the case when another user has created
the pipe with the name (the error is "access denied" in that case).
The chance that it happens is small, but it can be entirely
eliminated by including a unique part in the pipe name, in this
case the PID.

[ChangeLog][Windows] Named pipes internally created by QProcess now
contain the PID in their name to ensure uniqueness.

Change-Id: I079f1b68695c1ddea3eccad241061d11e08b60f4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-01-18 07:52:43 +00:00
Andre Hartmann
a575859618 QThreadPool: Add missing semicolon after class in documentation
Makes it easier to copy and paste the snippet into a code editor.

Change-Id: I27c0a7aa268bd4fd0af885e929f67a28f083dabf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-01-17 22:57:42 +00:00
Mitch Curtis
8c023326c7 config_help.txt: document that some sanitize combinations are not valid
Saves people the trouble of trying it out themselves. When I tried
"address" and "thread", I got:

cc1plus: error: -fsanitize=address and -fsanitize=kernel-address
are incompatible with -fsanitize=thread

Change-Id: I48ae817e60d0b71d5349e1dbce8706cc8430c2c4
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-01-17 18:09:41 +00:00
Alexander Shevchenko
40e8749188 unify windows mkspecs: update definitions
mingw-w64 toolchain:
- add missing compiler definitions, similar to
  'msvc-desktop.conf' toolchain,
- describe the reasons of missing compiler definitions, available in
  'msvc-desktop.conf' toolchain,
- add missing 'QMAKE_CXXFLAGS' and 'QMAKE_CXXFLAGS_WARN_ON' variables,
  similar to 'msvc-desktop.conf' toolchain.

ICC on Windows toolchain:
- add 'QMAKE_CFLAGS_OPTIMIZE_FULL' variable, similar to 'gcc-base.conf'
  toolchain, though left it unused for now,
- add missing flags to 'QMAKE_CFLAGS' variable, similar to
  'msvc-desktop.conf' toolchain,
- update deprecated 'Qwd' flag with 'Qdiag-disable',
- use 'QMAKE_CFLAGS_OPTIMIZE_DEBUG' variable instead of '-Od' flag,
  similar to 'gcc-base.conf' toolchain (ICC implies '-O2' optimization
  level by default, while MSVC implies '-Od'),
- add 'QMAKE_CFLAGS_UTF8_SOURCE' variable, similar to
  'msvc-version.conf' toolchain; use a workaround to initialize it,
  until '-utf-8' flag would be supported by ICC on Windows,
- update deprecated '-Qstd=c++1z' flag with '-Qstd=c++17',

MSVC toolchain:
- remove 'incremental' from MSVC 'CONFIG' variable, since it has
  relevance only for the Unix generator,
- add 'QMAKE_CFLAGS_OPTIMIZE_DEBUG' variable, used in ICC for Windows
  toolchain,
- add empty 'QMAKE_LIBS' variable, similar to 'win32-g++' toolchain,
- add 'uuid.lib' library to 'QMAKE_LIBS_GUI' variable, similar to
  'win32-g++' toolchain,
- add C++14 and C++17 language support flags, though left them disabled
  for now, similar to 'win32-icc' toolchain.

Change-Id: Ideef62d0422674184836faa655bfc5d09a5f612f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-01-17 03:30:36 +00:00
Friedemann Kleint
9de2ef6f5a QWidget: Fix a crash when platform window creation fails
Add a check on the platform window to QWidgetPrivate::create_sys().

Task-number: QTBUG-65783
Change-Id: I077882e1cf22ef49bb6f578f7460493ef48c9627
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-01-16 20:53:17 +00:00
Erik Verbruggen
99b89d30fa Prevent O(n^2) behavior when calling QObject::deleteLater
When a deleteLater event is queued, a check if done if the same event
for the same receiver is queued before by scanning all pending events.
This leads to quadratic behavior, which is quite noticeable. By using
an unused bit in QObjectData, this can be prevented. Now the duplicate
event scanning in QCoreApplication is only done for the quit event.

Task-number: QTBUG-65712
Change-Id: Ie505acbbec802f91ebd0b94ac067e362c2476113
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-01-16 08:20:22 +00:00
Gabriel de Dietrich
0d9208cecb QMacStyle: Revert state changes for PE_IndicatorMenuCheckMark
The changes introduced in 0e810e27a5
turn out to be incompatible with our style sheets styling. We
partially revert the style option state check, so that the look
for a highlighted PE_IndicatorMenuCheckMark only depends on
State_On, as it's expected in QWindowsStyle and QCommonStyle.

[ChangeLog][QtWidgets][QMacStyle] PE_IndicatorMenuCheckMark
goes back to only depend on State_On for its highlighted look.

Change-Id: I20f8e712196b5515bd5528ff6eedcdca9df5856f
Task-number: QTBUG-65773
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2018-01-16 06:53:43 +00:00
Andy Shaw
cb714248a8 Use font set in the style option if there is no font set in the rule
If the stylesheet does not have a rule that manipulates the font at all
for the menu item, then it should use the one passed into the style
option instead.

Task-number: QTBUG-65034
Change-Id: I6cae3fad3cc22d5ab2b984e4a58b14303bcd6d03
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-01-16 05:08:04 +00:00
Eirik Aavitsland
f0cad9b612 Doc: Clarify auto detection of file format in QImage
The documentation of the QImage file loader methods contained a
simplified and somewhat misleading description of the format auto
detection algorithm. Fix up the language and link to the detailed
explanation.

Task-number: QTBUG-51596
Task-number: QTBUG-65438
Change-Id: I33ebc81c78e685c7ec4803fa56efd4e9cbc4eda5
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2018-01-15 15:50:28 +00:00
Morten Johan Sørvig
2afc8e3ad6 Add bearer plugin removal notice to changelog
Task-number: QTBUG-40332
Change-Id: Ie975ad86a235ccfff0c3f72bb108b6fa9a89ad13
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-01-14 07:45:03 +00:00
Jake Petroules
13c71ac816 Fix memory leak in QStandardPaths::displayName() on Apple platforms
Task-number: QTBUG-65687
Change-Id: Ie795c8ac715e36656dabcbcdf8976d303ebaf0d1
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-01-12 18:13:17 +00:00
Oswald Buddenhagen
ab4cc83d52 qmake: ignore QT if we have failed requires()
otherwise the project would need to clear QT despite using
qtHaveModule() in requires() (or REQUIRES=).

Task-number: QTBUG-65106
Change-Id: I568202214c8eafcdbe2d0e253b18f0e171293aff
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-01-12 14:02:07 +00:00
Tor Arne Vestbø
2aa9908e24 Warn when ending painting on backingstore while there's still an active painter
There's no way for the backingstore to end painting on the device by itself,
so we warn the user about what's going on. Failing to end painting on
the device will e.g. in the case of QRasterBackingStore result in having to
make a copy of the QImage data during flush.

Change-Id: I3fbac2d7a8a440fdb23197ac2d57d95bfaf9e125
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-01-12 09:41:44 +00:00
Liang Qi
5ba29e1672 Merge remote-tracking branch 'origin/5.9.4' into 5.9
Change-Id: Ic23e90146470d69060313628562f76a710696bab
2018-01-11 12:45:59 +01:00
Albert Astals Cid
1df2906c75 Add override
Change-Id: Iafa8e21d7d47797c1c085aced9a0cd92179385a2
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-01-10 16:06:55 +00:00
Tor Arne Vestbø
0c5953fd4e macOS: Namespace FullScreenProperty category on NSWindow
Change-Id: I48e1bf91ebcfe10bd8b6a2df510c8b6a3e19e1d9
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2018-01-10 10:03:54 +00:00
Tor Arne Vestbø
841542225b macOS: Simplify mangling of QNSPanelDelegate protocol
Change-Id: If29bc36ecab2feb4ce3372153d0d1566cdffc719
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2018-01-10 10:03:49 +00:00
Tor Arne Vestbø
3f6bc9a983 macOS: Namespace QNSWindowProtocol when building with -qtnamespace
Otherwise the protocol name might clash with existing protocols when
using Qt as a plugin, and those existing protocols may have lived in
images that since have been unloaded, causing crashes.

Change-Id: I68fbe290bcbf2fabf463647c960f686971e066dd
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2018-01-10 10:03:43 +00:00
Pavol Markovic
36ddfb6cc1 macOS: Replace category methods with functions
Objective-C category methods prohibit safe unloading of dynamic
libraries / plugins statically linked to Qt. Although they can be called in
convenient way they can be replaced with standalone functions without
noticeable drawback.

Remove unused qt_validModesForFontPanel category method.
Remove empty NSStatusItem (Qt) category.

Task-number: QTBUG-59884
Change-Id: I69503a115b1177623da91c67b62d72e56f43ffcf
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2018-01-10 10:03:32 +00:00
Laszlo Agocs
e82e8b8a1f Document Q_COREAPP_STARTUP_FUNCTION is no good in static libs
Change-Id: Iaffa08332c87095a64e25e2da4ed56bfd3d0e84f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-01-10 09:24:21 +00:00
Allan Sandfeld Jensen
4c03f2b79e Fix regression in painted emoji offset
Factor out translation from the matrix applied on bitmap glyphs,
as that gets applied as position when painted.

Task-number: QTBUG-64313
Change-Id: Iab8d995c00ee02eda0896242903312d837b6d790
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 07fcfb793d)
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2018-01-10 07:07:13 +00:00
Antti Kokko
b89fd42217 Add changes file for Qt 5.9.4
Done-with: Thiago Macieira <thiago.macieira@intel.com>
Done-with: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Change-Id: I885e27686810e707186a5c4fce8f3301094698a8
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-01-10 07:06:53 +00:00
Thiago Macieira
73a5a93ff9 MySQL: Fix qAddPostRoutine of mysql_server_end() on Windows
The function is declared as STDCALL, so we can't add a direct function
pointer to it (calling convention doesn't match what QtCore will try to
use). Instead, add a lambda as a trampoline.

Task-number: QTBUG-65471
Change-Id: I39332e0a867442d58082fffd1504002206e5cfaf
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-01-10 03:17:09 +00:00
Tor Arne Vestbø
f9a1ccf19c macOS: Blacklist modalWindowEnterEventOnHide_QTBUG35109 instead of skipping
We have the ability to blacklist tests for CI runs now.

Task-number: QTBUG-35109
Change-Id: I8590e83faba764dce2d52e8c62e2e2c63f7bf219
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-01-09 20:25:00 +00:00
Ryan Chu
a5ad605dfe QFtp: only use fall-back password for anonymous access
The code used to fall back to anonymous login independently for username
and password; however, it should only use a fall-back password if the
username is missing or (case-insensitive) "anonymous".  When a
non-anonymous username is given without password, we should simply skip
he PASS message to FTP.

If the FTP server requests a password, in the latter case, QFtp will
signal authenticationRequired; in all cases, if the server rejects the
given credentials, QFtp signals authenticationFailed.  Either way, the
client code can then query the user for credentials as usual.

Task-number: QTBUG-25033
Change-Id: I2a4a3b2725819ab19c8a7e4baa431af539edcd8d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-01-09 13:31:55 +00:00
Kavindra Palaraja
6ff8d8173d Clarify behavior of setData in QListWidget, QTableWidget, and QTreeWidget
setData()'s default implementation for QListWidget, QTableWidget, and
QTreeWidget treats Qt::EditRole and Qt::DisplayRole as referring to the
same data. Used the same sentence from QStandardItem::setData for
consistency.

Task-number: QTBUG-11549
Change-Id: I41d06bdaaa8e7d4a86e24147b3d8222ad7823a6c
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-01-09 13:22:15 +00:00
Kevin Funk
43e444d1ff CMake: qt5_add_binary_resource: re-run if needed
qt5_add_binary_resources() macro did not recompile for CMake generated
input before this patch.

Adding the input files to the DEPENDS option corrects this issue:

Task-number: QTBUG-60714
Change-Id: I0f46918c6f1079fed7ee1b21305b18ff38f863f8
Reviewed-by: David Faure <david.faure@kdab.com>
2018-01-09 13:21:46 +00:00
Eskil Abrahamsen Blomfeldt
02557c07da Fix ZWJ and ZWNJ when fallback font is in use
When applying fallback fonts to characters that are joined by
ZWJ or ZWNJ, we also have to set the same font for the control
characters, otherwise we will split the text and the necessary
shaping will not take place. This was reported for emojis, but
will probably also happen for Indic scripts where joiners are
used predominately.

[ChangeLog][QtGui][Text] Fixed ZWJ and ZWNJ control characters
when fallback fonts are in use.

Task-number: QTBUG-65519
Change-Id: Ia37233f3319b95af68ae6053c29997eac65448e0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-01-09 12:16:57 +00:00
Eskil Abrahamsen Blomfeldt
12687ccfd5 CoreText: Order fallback fonts based on writing system support
After we stopped sanitizing the fallback font list (with change
6ca48a847a), we now need to make
sure it is ordered so that the fonts that support the writing
system in question are always tested first, otherwise we can end up
loading a lot of fonts that will never be used.

Task-number: QTBUG-65605
Change-Id: Id2a65bbff3e64e6d6e6b4f72500778ee3e811e84
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2018-01-09 12:17:34 +00:00
Friedemann Kleint
fcbaa8ec38 QFileSystemModel/Windows: Make file name checking case-insensitive
Introduce a special hash modeled on the one used for QFileSystemWatcher
on Windows.

Task-number: QTBUG-31103
Task-number: QTBUG-64147
Change-Id: I69ebabe841716e4957ae3fb04fa5c43d233a3552
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-01-09 12:01:17 +00:00
Allan Sandfeld Jensen
d196036024 Avoid providing bad pixelDeltas on X11
With libinput we now get a hardcoded resolution that is unrelated to
the hardware. So avoid using that as a real pixel delta and document
pixel deltas as being driver specific and unreliable on X11.

Task-number: QTBUG-59261
Change-Id: I9fe86d80e7ccd290ed2e4091d7eafa52cb537d34
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Marco Martin <mart@kde.org>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-01-09 11:53:28 +00:00
Jani Heikkinen
907a99f65b Fix license headers
Old header.LGPL21 header was used at some files. Replase those with
new header.LGPL one

Remove old header.LGPL21

Task-number: QTBUG-57147
Change-Id: I650e39024ed4876bba27e954c7d61fdb025b46ef
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-01-09 07:47:20 +00:00
Eskil Abrahamsen Blomfeldt
6ca48a847a Fix fallback fonts for non-common writing system
When we request fallback fonts, we cannot discriminate the fonts
based on the writing system support. This is especially important
since common script is now merged with other scripts, meaning that
a common script character will always go through the fallback
mechanism when not supported by the main font. When drawing
for instance a string of Devanagari characters on macOS, we would
get a list of 33 fallback fonts, but almost all of them would be
the default Devanagari font, since none of the other fallbacks
would support that script. Meaning that we would just check the
same font over and over, which makes no sense. The fallback list
has been retrieved specifically for the given script, so we do
not need to consider that when fetching the fonts.

For most of the common set, we will not have noticed the bug,
because at least one of the writing system-specific fallbacks will
have had support for latin characters as well. But when trying to
mix emojis and some non-common script, we would get a box in
place of the emoji, which had been adopted to the main script and
would only be looked for in the fonts supporting this.

Note that this exposed an issue with the QRawFont test on some
systems. When the sample text contained a space, it would
be possible to get a fallback font for this character, since
we now effectively support fallbacks. This is not the correct
behavior, but it is unrelated to this fix, and it was not what
the QRawFont::unsupportedWritingSystem() test was written to
check. I have therefore removed the space from the sample text
to make the test pass, and will make a separate task of fixing
the issue of merging fonts for whitespace characters.

[ChangeLog][QtGui][Text] Fixed a bug where mixing different
writing systems with emojis could lead to missing glyphs.

Task-number: QTBUG-61882
Change-Id: I00f6043bb01af1f2277723ccf643034aebf3e18f
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2018-01-08 12:28:28 +00:00
Edward Welbourne
e586d9ea7f Revert "Blacklist tst_QDateTime::operator_eqeq"
Remove black-listing of test; the problem was due to misconfigured
time-zone on the CI system - it was on some zone that presently
coincides with UTC, not actually on UTC as supposed.

This reverts commit 597b96b8fa.

Change-Id: I72ad1dfa38532362c05aef33cd874f7f79879a41
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2018-01-07 11:25:50 +00:00
Jake Petroules
1c8224511d qmake: set COPY_PHASE_STRIP to NO in Xcode generator
Since Xcode 6.3, this must be set to NO because stripping on copy is no
longer fully supported due to the potential of input binaries being code
signed. In this case Xcode will simply ignore the strip step and issue
a warning since stripping would invalidate the code signature. This
change silences that annoying warning for release builds. Also, the
setting assignment is moved from being hardcoded in the generator, to
a QMAKE_MAC_XCODE_SETTINGS value.

Change-Id: If25511edddc12b7b0407e2992d80884b7d6437dc
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-01-05 23:26:50 +00:00