Commit Graph

1047 Commits

Author SHA1 Message Date
Tobias Hunger
25457f29db CMake: pro2cmake.py: Add XCB and X11 libraries
Add all the XCB and X11 libraries needed for the XCB plugin.

Change-Id: I772b99c68521cd46cbba736912c8d8594d9d2ad8
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-02-11 09:34:44 +00:00
Tobias Hunger
e616976fdf CMake: pro2cmake.py: Small fix to type markup
Change-Id: I2f7dc94f379d51c3816649849aa7365b17334ab5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-31 15:24:09 +00:00
Tobias Hunger
6dd989fe61 CMake: pro2cmake.py: Add scope debugging support
Dump scope trees for all scopes that contain a variable
'PRO2CMAKE_SCOPE_DEBUG' (set to any value).

Change-Id: If17bb1697a32ccaa427a858c2330ab2b019d0fa8
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-31 15:23:59 +00:00
Tobias Hunger
cfbb110abe CMake: pro2cmake.py: Assign a unique id to each scope
This makes scopes much simpler to destinguish from each other.

Change-Id: I1af42f181b5899aba749bcf9267a345385149f90
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-31 15:23:22 +00:00
Tobias Hunger
0efd241d20 CMake: pro2cmake.py: report total condition when dumping a scope
Show the total_condition (if set) when dumping a scope.

Change-Id: I9dfe98c2251f1d28881771042f17d723cedc8907
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-31 15:23:09 +00:00
Tobias Hunger
ca4edbec66 CMake: pro2cmake.py: Add a way to debug merges of scopes
Generate debug output whenever a qmake scope with a variable
'PRO2CMAKE_MERGE_DEBUG' is involved in a scope merge.

Change-Id: I0ad94b881db9930de689c199adbac084efe6c03b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-31 15:22:59 +00:00
Tobias Hunger
645002cd43 CMake: pro2cmake.py: Handle more libraries
Change-Id: I561b619c4dbc56a1f6ad383a68ce4b82858a031c
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-01-31 13:58:07 +00:00
Tobias Hunger
e7e793555f CMake: Add FindZSTD.cmake and wire it up in configurejson2cmake.py
Zstd is used in the dev branch, so prepare for it.

Change-Id: I130d98e3888a1eb4c7444728fc5088c5dae9d911
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-31 13:57:24 +00:00
Tobias Hunger
1218d8a9f0 CMake: Use FindGLIB2 from cmake-extra-modules
Use FindGLIB2 from cmake-extra-modules over hand-rolled own version.

Change-Id: I1f8e055bc12dd728c033fd88480690643d90159a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-31 13:56:55 +00:00
Tobias Hunger
210762ae46 CMake: pro2cmake.py: Pass QMAKE_MOC_OPTIONS on to CMake
Change-Id: I39c1b0aedbffaa29a34253e0c1c4bb4a4dddbe98
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
2019-01-31 10:02:40 +00:00
Tobias Hunger
4d4bf61f9f CMake: pro2cmake.py: Convert more settings from .pro-file to CMake
Convert QMAKE_USE, QMAKE_CXX_FLAGS and QMAKE_LFLAGS into CMake.

Change-Id: I53a5b91664b6ab71892d4381c00f8d744d7d7abd
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
2019-01-31 10:02:24 +00:00
Tobias Hunger
194022d3a6 CMake: pro2cmake.py: Use properties
Make use of @property to make code a bit nicer.

Change-Id: Iff0bfed57874cf13b7e5f85acde2660a397933d7
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-31 08:49:14 +00:00
Tobias Hunger
328de7aab9 CMake: pro2cmake: default QT_FEATURE_system_* to "ON"
Qt 6 will use external libraries for everything, so
default all QT_FEATURE_system_foo to "ON".

Change-Id: I884a4293c64487271be08de5fab82e6858d0a2ed
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-31 08:48:55 +00:00
Tobias Hunger
9cee04ac94 CMake: pro2cmake.py: Merge more scopes
* Remove scopes with condition 'OFF'
* Merge scopes with identical conditions

This e.g. merges children with a condition that simplifies to
'ON' with their parent scope.

Change-Id: Ieb3d60e1234f189ac45869853555ca8c0cfb5c76
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-31 08:48:32 +00:00
Tobias Hunger
b6408318de CMake: configure2cmake.py: Handle Libproxy and corewlan
Update to cover more libraries

Change-Id: I32a26b0fa0a79531fcb55e7a4646a2e63fec1d5b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-30 16:27:56 +00:00
Tobias Hunger
0c43850687 CMake: pro2cmake.py: Better printing of scopes
Change-Id: Ibeb77a23c90d3a47c78d17c4683e4af3c64449fc
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-29 09:29:46 +00:00
Tobias Hunger
4a2562e5db CMake: pro2cmake.py: Simplify conditions
Use pysym to simplify conditions in extend_target.

Do some manual changes to the condition based on domain knowledge.

Change-Id: I7fbb9ebc93b620a483c6a3a796d84c9bc0e36ef7
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-29 09:29:38 +00:00
Tobias Hunger
2cdef0f527 CMake: pro2cmake.py: More mappings!
Add some more mappings from qmake to CMake equivalents conditions.

Change-Id: I57b7bea9d6628e1c2b8d6ae88f799219942b571e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-29 09:01:36 +00:00
Tobias Hunger
aee1d1e96b CMake: pro2cmake.py: Work on mapping of conditions to cmake
Make sure complex things in qmake (e.g. function calls, etc.) are
mapped better to cmake. When there is no way to properly map the
qmake construct, then make sure to map everything into one
identifier.

This is to keep the structure of the condition simple.

Change-Id: I6d88e0cb85fce1041bbfdc96604dab7bd4e65856
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-29 09:01:26 +00:00
Tobias Hunger
404d0b5975 CMake: pro2cmake.py: Resolve file names for RESOURCES
Change-Id: I821cdc88c7f45260997e118ab2abfd7ba6526b75
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-29 09:01:16 +00:00
Tobias Hunger
0a9e5e139a CMake: pro2cmake.py: Fix handling of complex else branches
Return the current scope's condition, not the total condition from
recursive_evaluate_scope. That is the part the "else" referrs to.

The parent_condition stays identical for all branches, so that should
not get negated.

Change-Id: I0da91483d4d748d01a29ac16890d709d8d659843
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-29 09:01:07 +00:00
Tobias Hunger
0e2762651c CMake: pro2cmake.py: merge extend_targets with identical conditions
This should somewhat simplify the generated CMakeLists.txt files,
especially in complex cases like corelib or network.

Change-Id: I208c8f99a64cbb6c97d51dd3ae428bb234982202
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-29 09:00:56 +00:00
Tobias Hunger
1c1bb53c55 CMake: pro2cmake.py: Fix pyls warnings
Fix pyls warnings in pro2cmake.py as well as its tests.

Change-Id: Ib8ee1daa9b97735d13c0fde43616daa46de9e171
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-29 09:00:45 +00:00
Tobias Hunger
0690c145db CMake: pro2cmake.py: Better output in debug dumps
Report more error conditions in debug dump and make the output
easier to read in the non-error case by wrapping all strings in
"".

Change-Id: I3c99deda3dfa27dcc0c9ce2800bfb891747e6934
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-23 15:41:44 +00:00
Tobias Hunger
2f50466995 CMake: pro2cmake.py: Give up on faithful representation of -=, +=, *= and =
Having a good representation is nice, but unfortunately very hard: pro2cmake.py
sees just a small part of the entire qmake build system at a time, so the information
it has is incomplete to start with. It is not worthwhile to pass the supposedly full
information around -- which will then need to get de-duplicated again -- considering
that the information is not complete in the first place.

So go back to the simplistic approach we used earsier. That is good enough and does not
suffer from the problem of having multi-part arguments getting messed up when the
scopes get de-duplicated.

Change-Id: I553329650d6b8046f7ad8b1282e3d0c961293a28
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-23 15:41:34 +00:00
Tobias Hunger
024edf4bfd CMake: pro2cmake.py: Report keys that were not converted in each scope
This makes it easier to see what is still missing.

Change-Id: I186abd609f20be680ac0943ac89068f764142a79
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-23 15:41:24 +00:00
Tobias Hunger
6ad9352544 CMake: pro2cmake.py: Do not print trailing / in directory names
Change-Id: I3da83b8908791e033cf33221631d2fe988f83957
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-23 15:41:13 +00:00
Tobias Hunger
29ff5f77ee CMake: pro2cmake.py: Do not double-report include files
Do not add scopes that are going to get merged into their parent scope
as a child of the parent scope. This leads to the information of the
child scope being duplicated.

Change-Id: If4d6a83b9c9eac477959e7774e9cf65fd4df98e6
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-23 12:06:22 +00:00
Tobias Hunger
cc593426eb CMake: pro2cmake.py: Better indentation in debug dump
Indent the individual parts of a scope relative to the scope itself.
This makes things a bit more readable.

Change-Id: Iffbffd69bc960118f9657a1b7fb488da3c7b48dd
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-23 12:02:35 +00:00
Tobias Hunger
6e9a2dd3c6 CMake: pro2cmake.py: Visit scopes depth-first for include resolution
This avoids some includes being done several times: We used to generate
scopes for the include files, add them to our current scope and then
traverse the children of the current scope.

Switch the order to avoid traversing the newly added scopes twice.

Change-Id: Icb9c53c9f54772d3305e0fb121824c23d5469e09
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-23 11:53:01 +00:00
Tobias Hunger
3f3517923e CMake: pro2cmake.py: Ignore 3rdparty code that gets included
Ignore include files that go into 3rdparty code. Qt 6 should work
with external libraries, so there is no need to drag in 3rdparty
include directories, etc.

Change-Id: I990f3a8a4983e1458843b4122420b9daec763ccb
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-23 11:52:44 +00:00
Tobias Hunger
23e3aaf2cd CMake: pro2cmake.py: Nicer printing of conditions
Do not needlessly add () and NOT all over the conditions.

Change-Id: If907357306eb3f8ab5b2878bcad5902171a90476
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-23 11:52:25 +00:00
Tobias Hunger
e5bee37762 CMake: pro2cmake.py: Improve debugging dump
Make the output of the project structure debug dump more readable.

Change-Id: Ib80b41f7fdb8e14ff878284c46f3760d84f4f004
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-18 08:52:58 +00:00
Tobias Hunger
1d7e724e39 CMake: pro2cmake: Fix printing of the different operations
Change-Id: Ieb33141601c29ec2f3c30c6725179f1fb234e53a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-18 08:52:42 +00:00
Tobias Hunger
d73b06fc35 CMake: pro2cmake.py: Fix merging of scopes
Set new keys in the parent scope instead of just appending to existing
scopes.

Change-Id: I901c3f418429d8aed56acb39b1dbe566c5468920
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-18 08:52:33 +00:00
Tobias Hunger
db3cc89185 CMake: Fix include path handling in pro2cmake.py
Change-Id: Ice9db97db5bf1fb347bff07bcaf91daac87fa983
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-18 08:50:59 +00:00
Tobias Hunger
9162aa5da9 CMake: pro2cmake: fix include file handling
Do not include the same file over and over again...

Change-Id: Ia0748b9ebe58388549ba23ec7e24ce3d9b738987
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-18 08:50:40 +00:00
Tobias Hunger
6a1ee4de07 CMake: Store Qt features in CMake Cache
This is less self-contained than what we have, but significantly speeds
up cmake configure/generate runs.

This patch also warns when a feature is already defined.

Change-Id: I8cab63e208ba98756b47d362a39b462f5ec55e20
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-17 16:16:55 +00:00
Tobias Hunger
54d372ea67 pro2cmake: Clean up linter and pypi issues
Also remove one stray line of debug output

Change-Id: If3d2e0b31e5e1b1c05c321d63e8762b23f55bb66
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-01-07 09:37:43 +00:00
Tobias Hunger
19874e2381 pro2cmake: Be more faithful in the representation of operations
Do a better approximation of =, +=, *= and -=.

Change-Id: I94765532f278deaac330b27cd5a3f41f319c6477
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-12-21 10:24:12 +00:00
Tobias Hunger
f0aa8fa48e pro2cmake: Handle VPATH
Change-Id: Ia72f55489129c50ca730c42b75bbc2bda926b82f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-12-21 10:24:01 +00:00
Qt Forward Merge Bot
0441d959ff Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I5dbdc13c6133e5b03e362c5461b4a599d781bd1e
2018-11-13 01:00:13 +01:00
Edward Welbourne
d38f635355 Clean up and update Unicode character data 3rd-party infrastructure
Document how to do an update, fix the bit-rot that had crept into
main.cpp since last it was compiled, correct the qt_attribution.json
to use the actual version number of UCD (its Revision number) instead
of the (admittedly correlated) Unicode release number.  Updated to
Release 22 (which came with Unicode 11.0.0) in the process; but this
doesn't change our actual qunicodetables.cpp (so is incidental).

Task-number: QTBUG-71281
Change-Id: Ieb7a6e1a4d49f639993f76ff82c8f12a572db3c3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-11-11 22:09:27 +00:00
Tobias Hunger
3acebfe6eb CMake: Add support to find LTTng-ust
CMake comes with a Find module for this, so use it in src/corelib/configure.cmake

Change-Id: I8f4abcb32fb10513d67c3c959310eefaf7b56d3d
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-11-06 15:25:15 +00:00
Tobias Hunger
eb2ece3c59 CMake: Add FindSlog2
Add FindSlog2 and use it in src/corelib/configure.cmake.

Change-Id: I7e6a696a49df568a41ed1224228ab608db2dbb0e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-11-06 15:24:55 +00:00
Tobias Hunger
38f1a10b6f CMake: Improve handling of the different kinds of iconv
Improve conditions/enable/disable conditions for iconv related features.

These are detected a bit different from what qmake does, so adapt to that.

Change-Id: I7b3e4baf05dc324507f370d7f651a62f29e42a98
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-11-06 15:24:35 +00:00
Tobias Hunger
e11522726b CMake: Add FindPPS and use it in src/corelib/configure.cmake
Find the PPS library and use the result PPS_FOUND in configure.cmake where
needed.

Change-Id: I08d3ace421278dc0ae5c3128d4234e6bca906c05
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-11-06 15:24:17 +00:00
Tobias Hunger
bebbb41030 CMake: Find librt
Change-Id: Ibc39ba7a385146cd0428b78e12a793f0ddbfae91
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-11-06 15:24:07 +00:00
Tobias Hunger
df2975236d CMake: Replace QT_FEATURE_shared with BUILD_SHARED_LIBS
Change-Id: I7f3efde01a98cd6a25de661624afbf7eda2c57af
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-11-06 15:23:52 +00:00
Tobias Hunger
89368f5b26 configurejson2cmake: Add generic feature mapping
Add a way to map individual parts of a feature to new values and use
that also to skip features.

Change-Id: Ibddfcbbf9dfac29d460922e991934997b3e8387b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-11-06 15:23:16 +00:00
Tobias Hunger
4769830034 pro2cmake.py: Do not try to add libraries that qmake substracts
Add a comment that a library was removed when running into "QT -= gui"
and similar lines.

Change-Id: I17b7922827f228c6b45e1e6867fdc5e316af3781
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-05 15:45:39 +00:00
Tobias Hunger
da7811dc75 pro2cmake: Explicitly handle for loops
Handle for loops by ignoring them:-)

Change-Id: If4716e0615f4a0fa982281b94dbd4f70ae868fd8
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-05 14:58:38 +00:00
Tobias Hunger
ead9c0b1b8 pro2cmake: Handle Statements before Scopes
This fixes among other things the unit tests.

Change-Id: If9e23735d1d52cf49dc1f03749129fd726e8dea5
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-05 14:58:12 +00:00
Tobias Hunger
187c466d9a pro2cmake.py: Improve debugging off included files
Change-Id: I1007a5134a3d3e9ca7e5d3cd9b23ad64f76602be
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-05 14:57:48 +00:00
Tobias Hunger
41eabf01c4 pro2cmake.py: Make handling of TEMPLATE more robust
Change-Id: I43b6dac3984b66585408c9fb91ae28c5b134fe40
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-05 14:57:40 +00:00
Tobias Hunger
96ddd79b03 CMake: Handle '-' better in pro2cmake
Do not fail on tests/benchmarks/benchmark.pro.

Change-Id: I0ffdf9d38ea6fa73856f33d44c5a428c9cab9107
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-05 14:56:23 +00:00
Tobias Hunger
f3cf1a6856 CMake: Improve handling of qtHaveModule in pro2cmake script
Map "qtHaveModule(foo)" in qmake to "TARGET Qt::Foo" in cmake.

Change-Id: I63c251f0f2dfd2e95adc996a83b528e9b4e9636e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-05 14:55:59 +00:00
Edward Welbourne
eafad93c3d Make util/lexgen/ mention itself in its auto-gen line
In the process, update the README's e-mail address for Simon and
mention all recognized command-line options in the usage message.  The
generated CSS scanner was also out of sync with our source, so update
it.  Also fixed handling of FileHeader to cope with running from a
shadow build by handling paths relative to __FILE__; and revised the
CSS3 config to use the same copyright header as was already in use by
the existing generated file.

Change-Id: I918ff84dbdc95d0478fd6aa4ea74e9a221d1a476
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-01 15:07:05 +00:00
Tobias Hunger
b102b41be7 Add ATSPI2 library support
Change-Id: I304ba2b9df65008340b698eb3a74dc3b4abfb826
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-01 11:49:38 +00:00
Tobias Hunger
6ae0821a09 configurejson2cmake: Sort library map
Change-Id: Ifb8aa5f1583592a9eb71a93973f17d9714628953
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-01 11:49:03 +00:00
Simon Hausmann
e9c45bbddd Begin port of qtbase to CMake
Done-by: Alexandru Croitor <alexandru.croitor@qt.io>
Done-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Done-by: Kevin Funk <kevin.funk@kdab.com>
Done-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Done-by: Simon Hausmann <simon.hausmann@qt.io>
Done-by: Tobias Hunger <tobias.hunger@qt.io>
Done-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Done-by: Volker Krause <volker.krause@kdab.com>
Change-Id: Ida4f8bd190f9a4849a1af7b5b7981337a5df5310
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
2018-11-01 11:48:46 +00:00
Edward Welbourne
5ae2cbce2c Correct and expand documentation of splitLocale()
This amends c1141ed729b84f2c413975d37c1a91fb235fb14a; I failed to
update the doc-string after some design changes part-way through
developing the function.

Change-Id: Ifb83107153d1c3b5a9dbd0536a3d6ee1fe32922d
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-09-10 09:03:36 +00:00
Qt Forward Merge Bot
ae868dfbdc Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I33e0abc771a2a772d3334172d50e7b0efe896590
2018-09-02 01:00:15 +02:00
Morten Johan Sørvig
29c0377f07 WebAssembly for QtBase
This is the squashed diff from wip/webassembly to dev.

Done-with: Peng Wu <peng.wu@intopalo.com>
Done-with: Sami Enne <sami.enne@intopalo.com>
Done-with: Morten Johan Sørvig <morten.sorvig@qt.io>
Started-by: Andrew Knight <andrew.knight@intopalo.com>
Change-Id: I6562433c0a38d6ec49ab675e0f104f2665f3392d
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-08-30 06:48:33 +00:00
Edward Welbourne
fde0adc3c7 Right-align keys in enumdata.py's *_list mappings
Change-Id: Ia73745b4ce4da369dd8ad4edbc75f5534591480c
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-08-27 14:39:23 +00:00
Edward Welbourne
ea3795fc00 Reduce redundancy in CLDR script output to stderr
A few patterns accounted for a substantial majority of the output, so
report these in summarised (and somewhat tidly formatted) form.

Change-Id: I57f8e41d5e68774fe57b01bb295534aa84a2df15
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-08-27 14:38:54 +00:00
Edward Welbourne
89451f5428 Add some missing language codes to our locale data
We were missing a few languages CLDR knew about; so add them to the
list in enumdata.py (and add trailing commas to lists to make future
additions not need to change the prior last line; python is perfectly
happy with this).

[ChangeLog][QtCore][QLocale] Added support for Western Balochi, Ido,
Lojban, Sicilian and Souther Kurdish.

Change-Id: I0d24cff46a0ae8db48ec1db8762088f877319982
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-08-27 14:38:44 +00:00
Edward Welbourne
9acd053619 Skip a few unused assignments
Change-Id: Ia631627fb2e4e7eacf912a08d168e7b0a5700db7
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-08-23 09:07:19 +00:00
Edward Welbourne
c1b15005c6 Fix handling of default content locale data
We iterate theoretically many sources (albeit there's only really ever
one) for this data, so accumulate instead of only keeping the last
(and initialize it as the list it always ended up being, not a
dictionary, so that this can work).

The form of each token is a locale name, so it may be lang_Script just
as readily as lang_LAND; so parse (and validate) the tags more
faithfully to catch both cases.  Abstract that parsing into a function
and use it in both places that need it.

Change-Id: Ibdbc4eafefab6a5ef70646d9fea150f2cb408d05
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-08-22 18:00:14 +00:00
Edward Welbourne
bbee6fac33 Stipulate which error is expected in try/except
PEP 8 wisely advises against the use of naked except: (unless
re-raising the error).

Change-Id: Ia0dfdb48b330d33ad370bdb9f6b205046aa919da
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-08-22 18:00:06 +00:00
Edward Welbourne
32f1bf0cac Update QLocale::Country doc for new territories
Neglected in 44b6757fe5
Noted the need for this in a relevant script's instructions.

Change-Id: If69666f1799acebd434034c80b91056cb8777488
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-16 10:10:43 +00:00
Edward Welbourne
cd0a76a150 Tidy up generation of aliases in locale-related enums
Replace lines of formatted output with dictionaries from which that
output can be generated efficiently (in sorted order).  Tidy up the
python code, in the process.

Change-Id: Ifb74eb69342646c5dbabc3247b3a8ddef602e934
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-16 10:10:04 +00:00
Edward Welbourne
d363113745 Normalise spacing in Language, Country and Script names
The scripts that generate the C++ enum names clean out spaces, so
there's no need for enumdata.py to use the squished names; instead,
include spaces where they belong and use them in the relevant names
where they show up.

Change-Id: I7261c87d69e654bc2e89f44d7ebbc06bfb403c58
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-16 10:09:56 +00:00
Edward Welbourne
44b6757fe5 Add support for numbered territories in CLDR
The CLDR data contains eight locales with numeric territory codes, 001
for World, 150 for Europe and 419 for Latin America.  The last was
already known in our enumdata.py, but as "Latin America and The
Caribbean", which is not supported by the CLDR, so I've amended it
while adding the other two.  This gives us support for Esperanto and
Yiddish (among others).

[ChangeLog][QtCore][QLocale] Added support for World and Europe as
(numeric) "country" codes ("territory" in CLDR terms), thereby
enabling support for Yiddish and Esperanto, among other locales using
such codes.

Task-number: QTBUG-57802
Change-Id: Ibb1180fb720743a3a0589527649d10f3c9cd123d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-08-13 16:17:53 +00:00
Frederik Gladhorn
b9b53adb69 Minor grammar fixup
Change-Id: I528a2b2d8e9734bf5c00948a78369f4e89af16fc
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-08-03 18:11:24 +00:00
Frederik Gladhorn
4d9fb42bb9 Fix EDID vendor table generation script: source git repo is gone
fedorahosted seems to be gone and I didn't find a better source for the
data.

Change-Id: Ifb02b9833a735bab4aff2dc7a6db46aedd567583
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-08-03 18:11:17 +00:00
Frederik Gladhorn
faa67443fe Keep EDID pnp IDs sorted
In Python 3.6 the sorting comes for free, since dict keeps the insertion
order, but adding sorted means older Python versions behave the same.

Change-Id: I3ac4c0f5c3739cb8b284c8a02c4a96b5f41b2286
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
2018-08-03 18:11:11 +00:00
Edward Welbourne
042d41e23e Rework CLDR parser to filter out unsupportable number systems
In the process, also have it only scan number systems once, caching
the result, rather than scanning all of them for each locale.  This
means we only see the new warning messages once, too.

Task-number: QTBUG-69324
Change-Id: Ia0695a0ba6159b50748a61e9949ad5bd07e4c4c3
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2018-07-16 15:22:56 +00:00
Thiago Macieira
12cf0dbfe5 SIMD: Change the way we declare constants for x86
We need to use macros because MSVC is a crappy C compiler.

Change-Id: Ieb48f7c0dd0e4e0fb35efffd153b8af62d34ebdf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-07-09 00:18:30 +00:00
Tor Arne Vestbø
fb0271564d Fix wrongly included radial gradient enum for QGradient presets
Change-Id: If8372224d7e113c1f55468c0de69dcab9804138f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-06-28 15:20:02 +00:00
Tor Arne Vestbø
465098088e Harden logic for converting from CSS gradients to QGradient
Some of the gradients from https://webgradients.com/ are not minified
completely, so we need to be a bit more lenient when converting them
to the internal format used by QGradient.

Change-Id: I47466b6a77abd6d2fefc1326fbf6ba5713dd74cb
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-06-27 15:40:03 +00:00
Thiago Macieira
f6d9cc5b79 SIMD: Refactor the constants to be actual bit values
... instead of being the bit numbers. This allows us to test more than
one feature at a time with qCpuHasFeature (see commit about the Haswell
architecture features). The drawback is that we won't be able to handle
more than 63 different CPU features, though we're likely quite far from
it (x86 currently has only 36 features).

Change-Id: Iff4151c519c144d580c4fffd153a0acbfd74c2c6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-06-25 18:49:28 +00:00
Tor Arne Vestbø
c4a21708ed Provide presets for QGradient
Similar to Qt::GlobalColor, the presets allow the user to create
brushes based on predefined gradients, quickly getting pretty pixels
on screen.

The presets are based on the linear gradients from WebGradients, a
free collection of gradients, hosted at https://webgradients.com/.
The few radial and blended gradient presets have been excluded.

Change-Id: I1ce8f2210a6045c9edb8829ab3eddcc313549127
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-05-31 15:50:50 +00:00
Thiago Macieira
cf63b0e1df qsimd: add support for new x86 CPU features
This adds detection for: VAES, GFNI, AVX512VBMI2, AVX512VNNI,
AVX512BITALG, AVX512VPOPCNTDQ, AVX512_4NNIW, AVX512_4FMAPS. These
features were found in the "Intel® Architecture Instruction Set
Extensions and Future Features" manual, revision 30. This commit also
adds support for RDPID (already in the main manual) and the Control-flow
Enforcement Technology, which appears in a separate Intel paper.

This new support was done by adding a new generator script so we don't
have to maintain two tables in sync, one in qsimd.cpp with the feature
names, and the other in qsimd_p.h.

Since we now need a lot more bits, it's no longer worth keeping the two
halves of the qt_cpu_features variable mostly similar to the main two
CPUID results. This commit goes back to keeping things in order, like we
used to prior to commit 6a8251a89b (Qt 5.6)

At the time of this commit, GCC 8 has macros for AVX512VPOPCNTDQ,
AVX512_4NNIW, AVX512_4FMAPS, AVX512VBMI2 and GFNI.

Change-Id: I938b024e38bf4aac9154fffd14f7afae50faaa96
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-05-05 06:20:07 +00:00
Edward Welbourne
74a20fda52 Add a note to the CLDR-munging scripts about updating the attribution
Change-Id: I9de320d10ddd8947f3f6cf29636e42f08f814a28
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-02-17 22:22:33 +00:00
Friedemann Kleint
daabb8f63d QtEdidSupport: Fix private headers
Fix warnings:
QtEdidSupport: WARNING: qtbase/src/platformsupport/edid/qedidparser_p.h does not have the "We mean it." warning
QtEdidSupport: WARNING: qtbase/src/platformsupport/edid/qedidvendortable_p.h does not have the "We mean it." warning

Amends 5f7ab88055.

Change-Id: I3868096344480d509d7b7c1833389adaa67623a0
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
2018-02-02 07:21:49 +00:00
Lars Knoll
41b4e154d6 Update Text segmentation and line break data to Unicode 10.0
Also adjusted the text segmentation and line break algorithms
so that they can handle the new data, and pass the test suite.

Change-Id: Ib727fd80003e34e96458d7a681996de3fa3691e7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-01-03 07:47:26 +00:00
Lars Knoll
8bfabb34de Update most Unicode data to version 10.0
The text segmentation data is not being updated in this change,
as it requires additional code changes. Updating those will
come in a follow-up commit.

Change-Id: I5d6b6bc96044e8dd0c25cf6f79756e7f68bf6e7c
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-01-03 07:46:31 +00:00
Lars Knoll
0f315adf91 Merge remote-tracking branch 'origin/5.10' into dev
Conflicts:
	.qmake.conf
	sc/corelib/io/qfsfileengine_p.h
	src/corelib/io/qstorageinfo_unix.cpp
	src/platformsupport/eglconvenience/qeglpbuffer_p.h
	src/platformsupport/input/libinput/qlibinputkeyboard.cpp
	src/platformsupport/input/libinput/qlibinputpointer.cpp
	src/plugins/platforms/cocoa/qcocoamenu.mm
	src/plugins/platforms/ios/qiosscreen.h
	src/plugins/platforms/ios/qioswindow.h
	src/plugins/platforms/ios/quiview.mm
	src/printsupport/dialogs/qpagesetupdialog_unix_p.h
	src/printsupport/dialogs/qprintpreviewdialog.cpp
	src/printsupport/widgets/qcupsjobwidget_p.h
	src/widgets/widgets/qmenu.cpp
	tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
	tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp

Change-Id: Iecb4883122efe97ef0ed850271e6c51bab568e9c
2018-01-02 09:58:44 +01:00
Lars Knoll
db92f2f3aa Merge remote-tracking branch 'origin/5.9' into 5.10
Conflicts:
	.qmake.conf
	mkspecs/win32-g++/qmake.conf
	src/corelib/global/qglobal_p.h
	src/corelib/global/qoperatingsystemversion_p.h
	src/corelib/io/qfilesystemengine_win.cpp
	src/network/bearer/qbearerengine.cpp
	src/platformsupport/input/libinput/qlibinputpointer.cpp
	src/sql/doc/snippets/code/doc_src_sql-driver.cpp
	src/widgets/kernel/qwidget_p.h
	src/widgets/kernel/qwidgetwindow.cpp
	src/widgets/styles/qfusionstyle.cpp
	tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp

Change-Id: I80e2722f481b12fff5d967c28f89208c0e9a1dd8
2017-12-30 12:09:53 +01:00
Lars Knoll
59febb49e4 Fix a bug in the generation of the Unicode joining property data
The code that was supposed to initialize the joining property of
characters to the correct defaults was actually applied after reading
in the data from the Unicode file, and was in a couple of cases
overwriting explicitly specified data in ArabicShaping.txt

Task-number: QTBUG-63191
Change-Id: Ie35261039b2211a827322ca11afacd9555ccefc7
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2017-12-13 19:14:49 +00:00
Kevin Funk
8762ae7315 Replace Q_DECL_FINAL with final
Remaining uses of Q_DECL_FINAL are in:

src/corelib/global/qcompilerdetection.h
src/corelib/global/qglobal.cpp
  (definition and documentation of Q_DECL_FINAL)
src/tools/moc/moc.cpp
tests/auto/tools/moc/
  (supported for moc for Q_DECL_FINAL)

Change-Id: I0d28946c9c3f9d37d0b303db86079129014de1f3
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-09-22 07:30:01 +00:00
Kevin Funk
47c92fbb0b Replace Q_DECL_OVERRIDE with override where possible
Remaining uses of Q_DECL_OVERRIDE are in:

src/corelib/global/qcompilerdetection.h
src/corelib/global/qglobal.cpp
doc/global/qt-cpp-defines.qdocconf
  (definition and documentation of Q_DECL_OVERRIDE)
tests/manual/qcursor/qcursorhighdpi/main.cpp
  (a test executable compilable both under Qt4 and Qt5)

Change-Id: Ib9b05d829add69e98a86238274b6a1fcb19b49ba
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-09-19 11:53:42 +00:00
Laszlo Agocs
f43de3ed31 Add We mean it warning to the EDID table
Change-Id: I3183a2eae372e37bbed9e96b953e3ead4246a543
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
2017-09-08 07:04:30 +00:00
Edward Welbourne
424d9e9e56 Add byte-based units to CLDR data
Scan CLDR for {,kilo,mega,giga,tera,peta,exa}byte forms and their IEC
equivalents, providing SI and IEC defaults when missing (which all of
IEC are) in addition to the usual numeric data.  Extrapolate from any
present data (e.g. French's ko, Mo, Go, To imply Po, Eo and, for IEC,
Kio, Mio, etc.), since CLDR only goes up to tera.  Propagate this data
to QLocale's database ready for use by QLocale::formattedDataSize().

Change-Id: Ie6ee978948c68be9f71ab784a128cbfae3d80ee1
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2017-06-13 11:28:09 +00:00
Edward Welbourne
267edbec19 Clean up in CLDR scripts for QLocale
Use python more fluently; DRY - use functions to avoid repetition; use
dict-comprehensions; use os.path.join() in preference to arithmetic
with path strings; use elsif to avoid the need for a local variable;
set() can take a generator directly, no need to go via a list; don't
end lines in semicolon (this is python).  Test isdir() once instead of
exists() twice on the same name.

Just, generally, use python's feature-set.

Change-Id: Ib114aa016f70b3be09e968d9cfc069b057f49d41
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-09 08:24:55 +00:00
Edward Welbourne
6a4875f0d1 Replace three functions with one simpler function
load{Language,Script,Country}Map() were all structurally very similar,
so replace them with a single loadMap() that takes a second argument
to say *which* map to load.  At the same time, use a dict
comprehension to simplify constructing the result.

Change-Id: Ie43a71156010277200543a8937056efd35251955
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-09 08:24:40 +00:00
Edward Welbourne
e93af7dafd Turn a next-node function into an iterator over nodes
This simplifies a duplicated iteration pattern in the calling code.
It also frees the first-node function to raise an Error (which the
iterator now catches) if it finds no node, where it used to return
False (instead of a node, so other code using it would raise confusing
errors from trying to use False as a node, where now it'll get a clear
Error about a missing node).  There were also no callers passing an
empty name, so the test for matching nodes (here moved to its own
short function) didn't need to handle that as a special case.

Change-Id: Ife6cad8943cf5dc2c6ed68429d4a217cb9bea446
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-09 08:24:33 +00:00
Edward Welbourne
ad1cec5a5e Simplify cldr2qlocalexml.integrateWeekData()
It had a separate variable for each of three lists for each day of the
week; and used each list only once.  Iterate the days of the week for
each lookup, discarding it once used.

Change-Id: I32c8bd5bfcbb99f0a8697d374e63112761f18dbb
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-09 08:24:22 +00:00
Edward Welbourne
03a1675eac Reduce code duplication in writing of string data for locales
Each StringData object got its own block, of common form, to output
its C array; give each object a name so that we can automate this as
an iteration over StringData objects.  One (endonyms_data) gains a
blank line that the others all had but it lacked.

Change-Id: I96c014728a58343c82304c5117b474fee980d9c7
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-09 08:24:15 +00:00
Edward Welbourne
ebb0212133 Rework locale serialization and parsing with less repetition
... because copy-and-paste is worth discouraging.  Moved code that
writes and digests our Q Local XML form of the data into a common
class, localexml.Locale, for use by the scripts that write and read
it.  Hopefully, it'll be easier to keep what's written and read in
sync hereafter.

Inlined some trivial functions in the process; and only create a
day-number mapping dictionary once, instead of once per use.  Also
made it easier to see which attributes get which special handling (and
documented this); and revised an assertion to be more helpful.

Change-Id: I711b6a193a4ad94b5ff714c025f2732cd1a965a7
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-09 08:24:08 +00:00
Edward Welbourne
3a569573b2 Clean up the output code for the big table of CLDR data
Include headers for all fields (several were missing).
Make field widths explicit to headers can line up with content.
Use the same format for the (common part of the) all-zeros line.
Document and lay-out headers and format string, to make them easier to
keep in sync.  Make a pair of comments clearer.

Re-ran the script to regenerate the table: the result is best viewed
with git show -w, to ignore the spacing changes (or git show -b to
notice only the one harmless discrepancy exposed in old all-zeros
data).  Aside from spacing, locale_data[] has gained some missing
columns in its header comment, which now lines headings up properly
above actual data.

Change-Id: I44242f38391353f2ec8e144cb7e8b54b0a359341
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2017-06-08 13:37:38 +00:00
Edward Welbourne
9df60df12a Made the "do not edit generated code" notice clearer
Say where to find the scripts and make clear what to update to get
changes.

Change-Id: I424b7fdf846f7141c6df81eef90eb1ca0378bcf8
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-08 13:37:21 +00:00
Edward Welbourne
2c04d1dab5 Give reasons when skipping files
Change-Id: I397d17ad252363dd0d7d9b4f53b7d105075da306
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-08 13:37:14 +00:00
Edward Welbourne
08cfd02312 Use python more competently in CLDR/qLocaleXML scripts
Make the python2 dependency explicit (sooner or later, python3 shall
be the default /bin/env python), make time-zone script executable (it
had a shebang).  Use triple-quoted strings, or single quotes, to avoid
extra backslashes, remove some simply spurious backslashes.  Use
generators rather than map or filter with lambdas and iterate rather
than duplicating code.  Clarify some comments.

Regenerated headers: this upates the date of generation, cuts back a
double-blank-line to single and skips a spurious trailing
comma-newline on an array's data.

Change-Id: I54439f0dec132865991fe5147d509cea0f9419a0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-08 13:37:06 +00:00
Edward Welbourne
72900b3d88 Fix CLDR C++ generation to name "Han with Bopomofo" properly
We were using "Han With Bopomofo" (capitalized With) so that an enum
member in qlocale.h would be suitably camel-case; however, this lead
to spurious changes in qlocale_data_p.h where it names the script.
Use the correct (lower-case with) form and arrange for the enum
members to be generated with first letter of each word upper-case (but
not with each word capitalize()d; some words in there are already
camel-case, so .capitalize()ing would lower-case the later sub-words
in these).

Change-Id: I974c89dd40814eaf3bd538f06b9b4ebf17492f20
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-08 13:37:01 +00:00
Edward Welbourne
99dd95f3c2 Document how to use the CLDR-related scripts
Say where to find the data, how to unpack it and how to run the
scripts to update our source tree from it.

Change-Id: I5b680090bb5850f29c1e7d61efd1d450856b9949
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-06-08 13:36:48 +00:00
Liang Qi
d1ea481345 Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
	src/network/access/qnetworkreply.cpp
	tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp

Change-Id: Iadf766269454087e69fb216fc3857d85b0ddfaad
2017-05-07 13:08:18 +02:00
Thiago Macieira
05f22d6eb2 QtCore: include mocs
Compilation and link times in CPU seconds with GCC 7, using precompiled
headers (not including moc, rcc, uic, etc. steps or headersclean):

                Before  After
Debug -O0       198,1   180,3
Debug -Og       240,7   229,2
Release -O3     267,1   249,2
Release LTO     239,4   229,8

QtCore required a little manual adjusting because some files are
bootstrapped into moc itself and into qmake.

Change-Id: I84e363d735b443cb9beefffd14b8b57c10e7da36
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-05-05 03:03:30 +00:00
Pier Luigi Fiorini
5f7ab88055 EDID parser library
Add a support library to parse EDID that will be used by platform
plugins.

In order to tell the screen manufacturer from the identifier, the
parsers reads /usr/share/hwdata/pnp.ids or, if it's missing, uses
a lookup table previously generated from that file with a Python script.

Change-Id: Ie021eb68be91f06dc0da54445f88e3533f78d23e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2017-05-02 09:11:56 +00:00
Allan Sandfeld Jensen
997fa05d90 Handle indirect sibling selector
Adds parsing and handling of the indirect sibling selector, this should
mean we can at least parse all CSS3 selectors even if we do not yet
support all of them.

Also adds tests for previously added CSS3 selectors.

Change-Id: I1ce9afb9466044a38bdec167affc21a87837e4a4
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-07-27 20:18:02 +00:00
Allan Sandfeld Jensen
b3959b515f Update qcssscanner so it can parse our normal offline documentation CSS
Adds the three CSS3 attribute selectors.

During this the internal naming of the existing attribute-selectors have
been changed to be more clear, and the dash-matching has been fixed to
not just be beginsWith.

A non-breaking space have also been removed from the CSS.

Change-Id: Ia4db4a5a19e3ceee8c3c8a4b744149edd1d32bdc
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-07-26 13:26:00 +00:00
Simon Hausmann
175e5d0592 Fix compilation on qt css lexer generator
Change-Id: I24ca71c0c3bb59f40f4813fa255c5269da6986ec
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2016-07-19 18:40:53 +00:00
Konstantin Ritt
eb26f2b19b Re-generate QLocale data from CLDR v29
* A bunch of fixes and additions to the locale data
* Add new scripts from Unicode 8.0 and 9.0
* Map some potentially useful languages and territories

[ChangeLog][QtCore] QLocale data updated to CLDR v29

Change-Id: I759ccb27fe19be2722be913c5c2e6aa5f36e5c14
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-04-08 03:51:18 +00:00
Konstantin Ritt
2a0ab43f18 Re-generate TZ data from CLDR v29
Change-Id: Ibc9c58e96c72ae9886946bcf2454f32552bd51a3
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-03-30 09:43:30 +00:00
Jani Heikkinen
cd46a2daf5 Unify license header usage.
Update files using old header.LGPL3 to header.LGPL
Update files using old FDL template to use new one
Update files using old BSD template to use new one

Change-Id: I36a78272516f9953d02956522f285b40adfc8915
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-03-29 10:20:03 +00:00
Liang Qi
d3e6e732c7 Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
	config.tests/unix/compile.test
	src/plugins/platforms/cocoa/qcocoahelpers.mm
	src/tools/qlalr/cppgenerator.cpp

Change-Id: I0103ca076a9aca7118b2fd99f0fdaf81055998c3
2016-02-02 15:57:44 +01:00
Anton Kudryavtsev
0f27d11285 Don't use QStringLiteral in comparisons
For QLatin1String, operator== is overloaded, so comparing to a latin-1
(C) string literal is efficient, since strlen() is comparatively fast.

OTOH, QStringLiteral, when not using RVO, litters the code with
QString dtor calls, which are not inline. Worse, absent lambdas,
it even allocates memory.

So, just compare using QLatin1String instead.

Change-Id: I761b2b26ab5b416bc695f524a9ee607dacf0a7b2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-01-28 18:00:47 +00:00
Jani Heikkinen
f776595cc1 Updated license headers
From Qt 5.7 -> tools & applications are lisenced under GPL v3 with some
exceptions, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/

Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one
(in those files which will be under GPL 3 with exceptions)

Change-Id: I42a473ddc97101492a60b9287d90979d9eb35ae1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-01-21 18:55:18 +00:00
Konstantin Ritt
c267646867 Move CasexTraits from qstring.cpp to qunicodetables_p.h
and implement TitlecaseTraits as well,
to be re-used in the following commit.

Change-Id: I5c0bff42fe3b9bc9c2454cc16916cc2be87f604f
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-16 14:34:04 +00:00
Konstantin Ritt
3a3e2193d7 QUnicodeTables generator: Minor clean-up & stricter checks
Use static_cast instead of C-style cast;
ushort -> unsigned short;
Avoid a lvalue in qGetProp();
Minor styling fixes.

Change-Id: Ic6412e28ac9316a587d32d0e674d21f672967fd6
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-13 20:42:20 +00:00
Konstantin Ritt
0e1f3aab11 Update Unicode data & algorithms up to v8.0
* Georgian lari currency symbol
* A large collection of CJK unified ideographs
* Emoji symbols and symbol modifiers
* Letters to support the Ik language in Uganda, Kulango in
  the Côte d’Ivoire, and other languages of Africa
* A set of lowercase Cherokee syllables, forming case pairs
  with the existing Cherokee characters
* The Ahom script for support of the Tai Ahom language in India
* Arabic letters to support Arwi—the Tamil language written in the Arabic script

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

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

Change-Id: If255f95c9c45655b721369a116299da3cabbba0a
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-05 08:25:02 +00:00
Konstantin Ritt
a98b541f26 Update Unicode data files to v8.0
Change-Id: I0aa368cb07353924031a9af4f0bdc33692eb1053
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-05 08:24:58 +00:00
Edward Welbourne
e4d736b6de Fix a #! first line.
An executable .sh file should have its #! be the first two bytes.

Change-Id: I22c9eee6d349df743b02996bef0e093df3f42eb5
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-09-30 18:26:06 +00:00
Gunnar Sletta
c33f203222 Fix typo when resolving EGL extension.
Change-Id: I28a237660e0f6b2583014f79a3a13edc46ef6d0e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-04-23 11:54:36 +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
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
Konstantin Ritt
ecdd5648bd Update UCD source files to v7.0
Change-Id: I47277963c926128ad0c4ac5141835e767bb440a7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-27 16:39:53 +00:00
Konstantin Ritt
241ff426eb [locale database utility] Minor code deduplication
Change-Id: Ib6917940dfc410148d88e539cad2cdf7331a940d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-23 07:08:31 +00:00
Konstantin Ritt
9c97e5c40e [locale database utility] Optimize by caching the locale lookup chain
Change-Id: I1b95b3365337753ca0ab782091fa61870b77b051
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-23 07:08:28 +00:00
Konstantin Ritt
7ae4ffa0e0 [locale database utility] Fix inheritance chain
Locales with an explicit parent locale should not inherit
the language-default locale.
For example, a correct chain for zh_Hant_MO is:
  zh_Hant_MO -> zh_Hant_HK -> zh_Hant -> root
(two fixups: zh_Hant_HK and root, so that do not inherit zh)

Fortunately, this didn't do any difference in a generated data.

Change-Id: I92e09a95bd86f8723d8fe993f57d99af6f50db5e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-23 07:08:24 +00:00
Konstantin Ritt
31cd326bec Report a correct Unicode version used by Qt
The version bump was forgotten in edfce46a6c

Change-Id: I99501bb314baab68f037417db4b3b14e11f2de02
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2015-03-23 07:02:25 +00:00
Jani Heikkinen
cb95fff1c7 Fixed license headers
Change-Id: Ibebe1318d1c2de97601aa07269705c87737083ee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-17 18:46:09 +00:00
Jani Heikkinen
2b75c156b6 Updated BSD licensed file headers
Change-Id: I6441ff931dbd33b698d762e6f6784898f3f60fe7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-02-15 07:41:17 +00:00
Daniel Molkentin
fe64b12edc Reflect in the docs that the TLD list os now hosted at publicsuffix.org
Change-Id: I9c79694e9deada83c10dc61af7e63ceee3d2f827
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Peter Hartmann <peter-qt@hartmann.tk>
2015-02-12 20:02:21 +00:00
Jani Heikkinen
83a5694dc2 Update copyright headers
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.

Outdated header.LGPL removed (use header.LGPL21 instead)

Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)

Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination

Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
2015-02-11 06:49:51 +00:00
Marc Mutz
a627c8628f QUnicodeTables: mark all functions as nothrow
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 functions are correctly marked noexcept. In that, it
is like constexpr.

Change-Id: I4bca178444d1fd7caf3a92f996b1536eebdb5014
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-10 08:42:55 +01:00
Oswald Buddenhagen
189dc655bb Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
	src/corelib/tools/qbytearray.cpp
	src/gui/image/qimage.cpp
	src/gui/image/qppmhandler.cpp
	src/gui/kernel/qguiapplication.cpp
	src/gui/painting/qpaintengine_raster.cpp

Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
2014-09-29 14:08:49 +02:00
Matti Paaso
974c210835 Update license headers and add new license files
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL

Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
2014-09-24 12:26:19 +02:00
David Morgan
d444bbf110 glgen: Added support for parsing the new xml spec.
The .spec file is no longer updated thus support for gl 4.4 is impossible without an update to parse the new xml spec. The legacy parser can be used with the -l (--legacy) switch.

Task-number: QTBUG-33671
Task-number: QTBUG-40090
Change-Id: I83d9380842a16e925f6c07331ee35fe035f6baa9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-08-29 12:41:21 +02:00
Thiago Macieira
2fe90a61bd Mark all QChar static functions as [[gnu::const]]
The GCC documentation says that a const function is not allowed to read
global memory. This needs to be clarified: it's not allowed to read RW
global memory. It's fine to read read-only memory, as that is equivalent
to just pure code.

The QChar static out-of-line functions only lookup a property of the
given Unicode character and always return the same value.

The only exception is the decomposition() function, which returns a
QString and is therefore not allowed to be marked const.

Change-Id: Id36b2f84a1b8ff9db5acf1d4e59e8b3811068cff
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-07-07 03:51:43 +02:00
Konstantin Ritt
b80fcbdba6 Introduce QChar::JoiningType enum and QChar::joiningType() method
This aimed to disctinct joining types "L", "T", and "U" from just "U".
Unicode 6.3.0 has introduced a character with joining type "L" and
Unicode 7.0 will add a few more characters of joining type "L", so
we'll have to deal with it anyways.

[ChangeLog][QtCore][QChar] Added JoiningType enum and joiningType()
 method that deprecates the old QChar::Joining enum and joining() method.

Change-Id: I4be3a3f745d944e689feb9b62d4ca86d1cf371b0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-29 23:19:47 +01:00
Oswald Buddenhagen
11476aaa19 move and build qlalr
Change-Id: I852e1a33fc056a52f6dbba8aaf7dd75274bbe815
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-20 09:26:47 +01:00
Oswald Buddenhagen
327424d608 port to std::algorithm
Change-Id: I537b9ffc3eed0891bed0fcae3e0d79d70cc46cec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-20 09:26:43 +01:00
Oswald Buddenhagen
f98a96fded fix includes
use style suitable for bootstrapping. while we're at it, order the
includes the usual way.

Change-Id: I4fe96bfb73442c8a5de6dfe52d1a8c7eb22104c8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-20 09:26:40 +01:00
Oswald Buddenhagen
e06557b596 re-import qlalr into qtbase
we have a bunch of qlalr-generated sources all over the place. it would
be much nicer to actually generate them at build time, rather than
checking them in. this obviously requires building qlalr early on ...

this commit restores the sources at their pre-modularization location
and makes no attempt at integrating them into the build process yet.
this is a measure to overcome git stupidity.

this imports qt/qlalr at commit 4071d86e82b299f26e335a7faf662b5a676e2279
with some style fixes on top.

Change-Id: I83472bc492440ecb96a8a0d5bf74cf968a1e17d2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-20 09:26:37 +01:00
Konstantin Ritt
edfce46a6c Update the Unicode Data and Algorithms up to Unicode 6.3.0
* Mongolian and Phags-pa characters have been given a Joining_Type
  classification for contextual shaping. As a part of these additions,
  one Phags-pa character has the Joining_Type value of L (Left Joining),
  which no character had been assigned before.
* The unassigned code points in the Currency Symbols block have been
  given the Bidi_Class property value ET and the Line_Break property
  value PR, to help implementations support new currency symbols,
  when they are encoded.
* Hebrew letters and basic punctuation marks have been assigned
  the newly introduced Word_Break property values Hebrew_Letter,
  Single_Quote, and Double_Quote.
* The Bidi_Class property has been extended with four new values
  for directional isolates.
For more details, see http://www.unicode.org/versions/Unicode6.3.0/

Change-Id: Iad62d02edc58a8497898dcd6d6c70d5aece317ea
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-01-14 15:38:57 +01:00
Konstantin Ritt
a6046be428 Update UCD source files up to Unicode 6.3.0
Change-Id: I9ab58a659af1e758b172a24aa95bce1fea89c33d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-01-14 15:38:43 +01:00
Konstantin Ritt
adcab02d96 Update the time zones database from CLDR v.24
Change-Id: Icab298f971980982412621a48c635a05f6ef5d36
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2014-01-13 19:02:10 +01:00
Konstantin Ritt
4f8f0f16d0 Update the internal CLDR tables up to v.24
Change-Id: I9c0b110e36dd80c6a0b7275aa13bc548419aca9c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
Reviewed-by: Mehdi Fekari <mfekari@blackberry.com>
2014-01-13 19:02:10 +01:00
John Layt
19be46414a QTimeZone - Change from Olson ID to IANA ID
Complete changes from using Olsen/Olson in the code to IANA.  Completes
a change started in 5.2 release branch on the public occurrences.

Change-Id: Ib077fcda2c77eef6f04ec28901d8d2d7210b8c72
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-11 17:23:25 +01:00
Frederik Gladhorn
982da20cf2 Remove empty QAccessible2 header
Change-Id: Ia5e9b1adf9280e6b7d7aaf8cb5b5167b694a6070
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-11-20 15:11:24 +01:00
Oswald Buddenhagen
08a737def9 generate qfeatures.h at build time
much more elegant than the checked in file. and less chance to get it
wrong, as people often enough do.

Change-Id: I975a62dfd83ce4f15947ce54f3c40931b1badae0
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-29 15:37:58 +01:00
Oswald Buddenhagen
c3f6a5d93b kill unix_to_dos script
there is really no point in having such a thing here.

Change-Id: I2ffa2e911fadda1db2e402c05d59a7c88ddb30b9
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-25 14:51:30 +02:00
John Layt
48e2c3ac33 QTimeZone - Define new class and api
Implement the new QTimeZone class based on the Olsen Time Zone ID's.

This is the base implementation and does not include the Platform
backends which are implemented separately.

This change does include a default UTC backed to be used if no Platform
backend is available, i.e. if QT_NO_SYSTEMLOCALE is set and ICU is not
configured.  This backend also provides a default set of time zones in
the standard "UTC+00:00" offset format that are guaranteed to always
exist regardless of the Platform backend.

This change includes conversion functions between the Olsen ID's and
Windows ID's using a conversion table based on Unicode CLDR data.
This is implemented for all platforms for scenarios such as a Linux
program needing to communicate with a Windows Exchange Server using
the Windows ID.

The CLDR conversion table is included under the UNICODE license, see
http://unicode.org/copyright.html for details.

[ChangeLog][QtCore][QTimeZone] Added new QTimeZone class to support
time tone calculations using the host platform time zone database
and the Olsen time zone ID's.

Change-Id: Ibb417d08cf2663a0979d2be855d2c6ad6ad01509
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-09-22 22:21:15 +02:00
Topi Reinio
e5ee6c0094 Doc: Link to external docs in QOpenGLFunctions_* classes
These are wrapper classes that do not document their functions.
This change adds links to docs on opengl.org / khronos.org where
suitable, and changes the \brief commands to mention the correct
OpenGL version/profile.

Change-Id: I48154d5bce26f6753ca4400962939847c78a527d
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-09-09 10:40:37 +02:00
Konstantin Ritt
339aff06f9 [1/2] Implement Unicode Normalization Form Quick Check (NF QC)
Make Unicode tables generator take QuickCheck data from DerivedNormalizationProps.txt
into account and generate NF QC bits.
\sa http://www.unicode.org/reports/tr15/#Detecting_Normalization_Forms

Change-Id: Ib73bd42ddb8f99d0be0aff609711943c52dd9c24
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-13 03:51:07 +02:00
Konstantin Ritt
2af5567f3e Update QLocale locale database up to CLDR 23.1
This only added Kosovo [XK] territory and few valid locales for it.

Change-Id: Ia0b47041ed5cd1303b5bc233f2502a3725c74da9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-12 23:05:59 +02:00
Jonathan Liu
d3190572cc Use BSD licensing for QtOpenGLExtensions instead of LGPL
BSD licensing should be used for QtOpenGLExtensions instead of LGPL as
it is a static library that is linked into applications. Using LGPL
would impose additional requirements for application developers to
provide object files to end users to be able to relink the application
with a modified or updated QtOpenGLExtensions static library.

Task-number: QTBUG-29918
Change-Id: I0bb80f8ba5158be0a71fe4c5e1c37787ce21337d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-06-24 10:16:32 +02:00
Morten Johan Sørvig
f898614b76 Don't show a separate inspector for child windows.
Change-Id: I5cd0060cdfe1990e2620010d2f0eb281fd225142
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-23 07:45:22 +02:00
Morten Johan Sørvig
8a8d47d061 Use qAccessibleRoleString to stringify roles.
Change-Id: I886d48aa094aee6ac2abe2ec1f938071281d1676
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-23 07:44:53 +02:00
Morten Johan Sørvig
b9450734c9 Compile with changes to the accessibility API.
Change-Id: I72e7636a02ad2fba984f4a96cbb33d441a7f8be7
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-18 19:56:40 +02:00
Morten Johan Sørvig
a7fd8696dd Hide "invalid" accessibility interfaces.
Those with a null object pointer and those with a
null rect.

Change-Id: I40e0c435ee768fc8c58098fec131eb65e89d76f2
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-18 19:55:35 +02:00
Sean Harmer
13a3e08c25 Special case to work around upstream bug in gl.spec
This commit fixes glTexImage3D to be non-deprecated. This function is
incorrectly marked as deprecated in gl.spec. For more info see

https://www.khronos.org/bugzilla/show_bug.cgi?id=449

Change-Id: Ic9021b184a10d1b162158a3476b7272f4c6917fd
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-05 00:14:45 +02:00
Sean Harmer
f46787b48a Bring glgen into line with OpenGL functions and extensions code
This ensures that glgen outputs exactly what is included in

src/gui/opengl/qopenglversionfunctions.*
src/gui/opengl/qopenglfunctions_*
src/openglextensions/*

Change-Id: I7d41d9fc2bf6e5fedf11f58872c079339dac3649
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-05 00:14:37 +02:00
Konstantin Ritt
f0af3ed4e5 Update QLocale data to CLDRv23
Say hello to Interlingua and Mongolian once again.

Change-Id: I735fbc5793f34620be1f6932a251224b9ded02e3
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-01 12:03:55 +02:00
Axel Waggershauser
b11317a643 Whitespace cleanup: remove trailing whitespace
Remove all trailing whitespace from the following list of files:
*.cpp *.h *.conf *.qdoc *.pro *.pri *.mm *.rc *.pl *.qps *.xpm *.txt *README
excluding 3rdparty, test-data and auto generated code.

Note A): the only non 3rdparty c++-files that still
have trailing whitespace after this change are:
* src/corelib/codecs/cp949codetbl_p.h
* src/corelib/codecs/qjpunicode.cpp
* src/corelib/codecs/qbig5codec.cpp
* src/corelib/xml/qxmlstream_p.h
* src/tools/qdoc/qmlparser/qqmljsgrammar.cpp
* src/tools/uic/ui4.cpp
* tests/auto/other/qtokenautomaton/tokenizers/*
* tests/benchmarks/corelib/tools/qstring/data.cpp
* util/lexgen/tokenizer.cpp

Note B): in about 30 files some overlapping 'leading tab' and
'TAB character in non-leading whitespace' issues have been fixed
to make the sanity bot happy. Plus some general ws-fixes here
and there as asked for during review.

Change-Id: Ia713113c34d82442d6ce4d93d8b1cf545075d11d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-03-16 20:22:50 +01:00
Konstantin Ritt
b1c3f71a7b QLocale: Add some more languages and scripts
Change-Id: Iab23128c1567974154cdcce7412b2e1468bb8462
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-03-05 12:18:30 +01:00
Sean Harmer
9eb9bd703b OpenGL: Add code generator for OpenGL enabler classes
This patch provides a code generator that can be executed offline
to generate a few classes for enhancing Qt's support for OpenGL.
The generated code effectively provides all the benefits of GLEW
in its multi-context form but for all platforms and even for ES2.

The code generator takes as input the official Khronos gl.spec
specification and gl.tm typemap files. These provide all of the
information required to create the OpenGL Desktop related classes.
The classes for ES2 are hand-crafted as no similar spec files have
been published.

The generated code supports all OpenGL extensions listed in the
Khronos registry for both Desktop OpenGL and ES 2.

There is a helper factory class generated which are used by
QOpenGLContext::versionFunctions().

This allows code like the following to be written:

QOpenGLFunctions_3_3_Core* m_funcs = 0;
m_funcs = m_context->versionFunctions<QOpenGLFunctions_3_3_Core>();
if (!m_funcs) {
    qWarning() << "Could not obtain required OpenGL context version";
    exit(1);
}

if (!m_funcs->initializeOpenGLFunctions()) {
    qWarning() << "Failed to resolve entry points";
    exit(2);
}

// Get an extension object
QOpenGLExtension_ARB_draw_buffers* ext = 0;
if (m_context->hasExtension("GL_ARB_draw_buffers")) {
    ext = new QOpenGLExtension_ARB_draw_buffers();
    ext->initializeOpenGLFunctions(m_context);
}

Such usage will allow much easier and rigorous use of features in
modern OpenGL and extensions both in Qt itself and by users of Qt.

Follow-up patches will import the generated files and then use
these to reinstate OpenGL geometry shaders, add tessellation
shaders, and other OpenGL constructs.

Change-Id: Id0172e8aa1fd57eb4e6979a96d10fb5a34826426
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: James Turner <james.turner@kdab.com>
2013-02-25 17:22:28 +01:00
Frederik Gladhorn
e65cd6f379 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/concurrent/doc/qtconcurrent.qdocconf
	src/corelib/doc/qtcore.qdocconf
	src/corelib/global/qglobal.h
	src/dbus/doc/qtdbus.qdocconf
	src/dbus/qdbusmessage.h
	src/gui/doc/qtgui.qdocconf
	src/gui/image/qimagereader.cpp
	src/network/doc/qtnetwork.qdocconf
	src/opengl/doc/qtopengl.qdocconf
	src/opengl/qgl.h
	src/plugins/platforms/windows/qwindowswindow.cpp
	src/printsupport/doc/qtprintsupport.qdocconf
	src/sql/doc/qtsql.qdocconf
	src/testlib/doc/qttestlib.qdocconf
	src/tools/qdoc/doc/config/qt-cpp-ignore.qdocconf
	src/widgets/doc/qtwidgets.qdocconf
	src/xml/doc/qtxml.qdocconf

Change-Id: Ie9a1fa2cc44bec22a0b942e817a1095ca3414629
2013-02-14 14:24:57 +01:00
Peter Hartmann
916f0ff663 QUrl effective TLDs: update table and split into chunks of 64K
The table is there to know which domains are allowed to set cookies
and which are not. There are more than 2000 new entries since the
list has last been generated.
The split to 64K chunks was made because this is the hard limit for
strings in Visual Studio.

Change-Id: I511aec062af673555e9a69442c055f75bdcd1606
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-09 10:12:44 +01:00
Frederik Gladhorn
a1f4a821fc Nokia -> Qt Project
Change-Id: Iadd29ee918dc181d2a468f5198e66351c7cb3548
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-02-05 20:53:57 +01:00
Sze Howe Koh
7bb43454b8 Fix minor typos in docs, printed messages & comments
Missing apostrophes

Change-Id: I3ef5e9d494fb7a37f8e6075f24cd3a274e572c23
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-01-28 18:12:41 +01:00
Frederik Gladhorn
c608ec8254 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/io/qsavefile_p.h
	src/corelib/tools/qregularexpression.cpp
	src/gui/util/qvalidator.cpp
	src/gui/util/qvalidator.h

Change-Id: I58fdf0358bd86e2fad5d9ad0556f3d3f1f535825
2013-01-22 18:40:13 +01:00
Sergio Ahumada
48e0c4df23 Update copyright year in Digia's license headers
Change-Id: Ic804938fc352291d011800d21e549c10acac66fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-01-18 09:07:35 +01:00
Konstantin Ritt
9b0fab6b62 Update Qt internals to use QChar::Script
...and remove the outdated QUnicodeTables::Script enum.
QFontEngineData now has one extra slot that never used
(engines[QChar::Script_Inherited]). engines[QChar::Script_Unknown],
if accessed, would be set with a Box engine instance, and could be used
as a minor optimization some time later.

In order to preserve the existing behavior, we map all scripts up to Latin to Common.

Change-Id: Ide4182a0f8447b4bf25713ecc3fe8097b8fed040
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-12-21 19:01:35 +01:00
Konstantin Ritt
f7639c0a6d Add QChar::Script enum
...where the values are not aliased to Common script.

The old QUnicodeTables::Script enum was retained for compatibility reasons
until Qt internals are updated to use QChar::script().
Using QChar::Script instead of QUnicodeTables::Script would improve both
the text analysis (itemization, boundary finding) and the text shaping quality.
This also a required step for switching to Hurfbuzz-NG.

/* This adds 6668 more .rodata bytes */

Change-Id: I5aa3d12c550528d0052542436990f8d0779ea8e5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2012-12-20 14:48:32 +01:00
Sergio Ahumada
33a8455042 More changes from Nokia to Digia
Change-Id: I8f2edd238e64c01d3ccb7c012b389d61435d7135
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-30 00:50:47 +01:00
Stephen Kelly
5a9de4c676 Always use QAIM to get the default flags.
Change-Id: I801f5c8023e3e3672fde28139a7f34f640e650f5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-28 08:43:31 +01:00
Konstantin Ritt
55bac90295 Update XKB data generator to use correct QLocale names
Change-Id: I55fd5f029d77950a9074d9c86a65499b48806ebe
Reviewed-by: Denis Dzyubenko <denis@ddenis.info>
2012-11-25 04:06:51 +01:00
Konstantin Ritt
dec4eb7ecc [SIC] QLocale: Update some language names with their modern values
Some of them were incorrectly spelled (for a while)

Change-Id: I871968e3bbdd2172f4c4dfb6e74729c05e7e8e01
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-11-24 06:15:25 +01:00
Konstantin Ritt
2fbb69a093 QTBF: Fix issue with no splitting the words at "." (FULL STOP)
As of Unicode 5.1, some punctuation marks were mapped to MidLetter and MidNumLet
for better URL and abbreviations handling which caused "hi.there" to be treated
like if it were just a single word;
until we have the Unicode Text Segmentation tailoring mechanism, retain
the old behavior by remapping (some of) those characters back to their old values.

Change-Id: I49dea6064f2ea40a82fc0b1bc3c4f0b4e803919f
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-23 11:59:50 +01:00
Konstantin Ritt
3791d21f72 Update Qlocale data up to CLDR 22.1
Change-Id: Ie6ddfec14cb052e0b89230dc93290ff79488fb25
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-21 18:23:59 +01:00
Konstantin Ritt
4a115ab4ae Update Qlocale data up to CLDR 2.0.1
Change-Id: I4279fac57436d7009a6d61dab5936b72fd39fc14
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-21 18:23:59 +01:00
Konstantin Ritt
fe8962d3a5 Use likelySubtags to instantiate a locale id from it's short form
...just like described in http://www.unicode.org/reports/tr35/#Likely_Subtags.
This is much more effective than current "guessing" algorithm
+ makes it possible to instantiate a locale by the script or territory code only.

Change-Id: I674f8476e65b01c56960b6e83a1a346df0715274
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-21 18:23:59 +01:00
Konstantin Ritt
e7c79face6 [SIC/BIC] QLocale: update enums up to CLRD 1.9.1
This patch adds some missing codes (two-letter ones only),
removes an outdated ones, and updates some names.
The legacy language codes are handled in QLocalePrivate::codeToLanguage()
(fortunately, there are only 4 of such codes).

Change-Id: Iff50aecd1c762b6399cd151aebb955f341d366c6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-21 18:23:59 +01:00
Konstantin Ritt
da90a3a490 QLocale: replace hard-coded default country-for-language map
...with a generated one in a way similar to what
http://www.unicode.org/reports/tr35/#Likely_Subtags suggests.
The supplemental/likelySubtags.xml contains all the required data.
This changes some default countries to a most-expected ones.

Change-Id: I920a5623601d8661a943e78197d3bcc838191483
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-19 21:18:03 +01:00
Konstantin Ritt
e4c2a5c29f Assign correct codes to QLocale::AnyCountry and AnyScript
as their meaning, in fact, is unknown (or default) country/script.

Change-Id: Id75a70d4b33c2092de414f3ac357f6bcb627ba47
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-15 13:55:00 +01:00
Konstantin Ritt
1e0e5f2d68 Add a bunch of missed scripts
Change-Id: I078bf95cb50c7ef634f9f3133ab9f9d25439e4ef
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-15 13:55:00 +01:00
Konstantin Ritt
4c83aafc11 Add missing Bodo language introduced in CLDR 1.9.1
Change-Id: I4feb6ba781299d65ff3bf2717f08a0ac7eae7928
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-15 13:55:00 +01:00
Konstantin Ritt
40ed226e53 Misc fixes to the QLocale data parser/generator
Change-Id: I01589eae4e48bc1f484d54277de8f18262ca8f31
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-15 13:55:00 +01:00
Sergio Ahumada
7539fa9143 CONFIG+=uitools is deprecated. Use QT+=uitools instead
Change-Id: I45105e5e1dde614d90b1fb392b6e01e698c27a7f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-10-31 19:56:55 +01:00
Konstantin Ritt
2672c4fa91 Update the Unicode Data and Algorithms up to Unicode 6.2
Version 6.2 of the Unicode Standard is a special release
dedicated to the early publication of the newly encoded Turkish lira sign.
In addition, there are some significant changes to the Unicode algorithms
for text segmentation and line breaking to improve breaking for emoji symbols.

For more details, see http://www.unicode.org/versions/Unicode6.2.0/

Change-Id: I21cfd4f307e41b41a19d36cce87f7a44c2661bc2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-10-09 03:04:41 +02:00
Iikka Eklund
be15856f61 Change copyrights from Nokia to Digia
Change copyrights and license headers from Nokia to Digia

Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2012-09-22 19:20:11 +02:00
Jason Barron
36dd62ecaf Make plugintest util work on Windows.
Command line apps that use stdout need the CONSOLE subsystem.

Change-Id: Ic220f45119ea70372e27b4a364f7264cc649726d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
2012-08-30 13:51:22 +02:00
Konstantin Ritt
b57e2162ef QUnicodeTables: some internal API renamings
enums GraphemeBreak, WordBreak, and SentenceBreak has been renamed to
GraphemeBreakClass, WordBreakClass, and SentenceBreakClass respectively,
their values has been renamed to contain a '_' as logical enum-value separator
(just like many other nums in Qt, e.g. LineBreakClass);
*BreakFormat has been replaced with *Break_Extend (some format characters are
kind of subtype of the extender characters, not vice versa).

Change-Id: I9ddbcf8848da87409736c2d6d1798a62fa28cab8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-22 09:47:59 +02:00
Konstantin Ritt
c1329fba13 Clean-up the Unicode tables generator code and the generated header
This fixes the blocks and memory consumption reports, the whitespace issues
and makes the code a bit cleaner.

Since I'm the only one who does change this code, such a no-op commit
could not hurt anyone or even git blame ;)

Change-Id: Ib069f925a3791c82e16c368c8392bcffbfd68c53
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-06-22 09:47:59 +02:00
Konstantin Ritt
d8c04d60db Make QUnicodeTables::script() support SMP code points
Instead of expanding the scripts table with script values for the code points
>= 0x10000, it has been merged with the properties table in order to
increase perfomance of the script itemization code (not affected yet).
(Stats: the properties table grew up in 97428-89800 = 7628 bytes;
        the old scripts table was of size 7680 bytes)

The outdated ScriptsInitial.txt and ScriptsCorrections.txt file has been removed
(they were just empty, the "corrigendum" script corrections should be applied
to Scripts.txt directly, *no customization allowed*!).

More script testcases has been added - at least one per supported script.

Task-number: QTBUG-6530

Change-Id: I40a9e76f681e2dd552fd4c61af0808d043962e79
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-14 05:22:13 +02:00
Konstantin Ritt
dd68e93de7 Add the AGLFN tables generator, update the tables up to AGLFN 1.7
Task-number: QTBUG-21727

Change-Id: Ib2cacc2a52b2853059d6c873a33dcde735fbe168
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-14 05:22:03 +02:00
Konstantin Ritt
12e0319213 Line Breaking Algorithm: handle the Object Replacement Character
See http://www.unicode.org/reports/tr14/#CB
and http://www.unicode.org/reports/tr14/#LB20 for details

Change-Id: Ice0aa2b2ce81f6e39839a353240420436eddd754
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-10 15:58:13 +02:00
Konstantin Ritt
c9100bcce7 Update the Unicode data files up to v6.1.0
Change-Id: I20b94634b1f4ebff10757c2348cfdbbd906e8797
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-10 15:57:54 +02:00
Konstantin Ritt
60e1892d83 Update the qunicodetables generator to deal with UCD 6.1 files
Change-Id: If22018ff83cfc6b9c984f689648da038fce11d84
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-10 15:57:49 +02:00
Konstantin Ritt
2b15c1b30f Move ScriptSentinel enum from header to .cpp
Change-Id: Ic74e8e2471e92aa2014735f6ab0bb4f3b88de206
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-25 21:48:44 +02:00
Konstantin Ritt
ba300f42bd QChar: add isSurrogate() and isNonCharacter() to the public API
+ QChar::LastValidCodePoint enum value that supercede the UNICODE_LAST_CODEPOINT macro
replace uses of hardcoded values with the new API; remove leftovers

Change-Id: I1395c9840b85fcb6b08e241b131794a98773c952
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-16 04:24:56 +02:00
Konstantin Ritt
3fe02eaa12 significant unicodetables generator performance optimization
since the entire range of a valid unicode code points is in use, QHash
is suboptimal and could be replaced with QList;
taking the value by ref and not inserting it back to the map + not calculating
the default value over and over gains us up to 60% performance boost!

Change-Id: I48c54a8e88472cf76c79c0aac44e65eeefa44861
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-11 10:38:25 +02:00
Konstantin Ritt
8c0048a377 add some useful methods to QUnicodeTables::
in order to reduce code duplication and prepare the ground for upcoming changes

Change-Id: I980244149f65384c9484bbec4682de8b7b848b08
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-10 11:34:25 +02:00
Konstantin Ritt
46b78113b2 add support for non-BMP ligatures
> http://www.unicode.org/versions/Unicode5.2.0/
D. Character Additions:
There are three new characters in the newly-encoded Kaithi script that will
require changes in implementations which make hard-coded assumptions about
composition during normalization. Most new characters added to the standard
with decompositions cannot be generated by the operations toNFC() or toNFKC),
but these three can. Implementers should check their code carefully
to ensure that it handles these three characters correctly.
U+1109A KAITHI LETTER DDDHA
U+1109C KAITHI LETTER RHA
U+110AB KAITHI LETTER VA

UCD 6.1 adds two more of them:
U+1112E CHAKMA VOWEL SIGN O
U+1112F CHAKMA VOWEL SIGN AU

Change-Id: I781a26848078d8b83a182b0fd4e681be2a6d9a27
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-04 15:24:52 +02:00
Thiago Macieira
fba4d96750 Change remaining uses of {to,from}Ascii to {to,from}Latin1 [other]
This operation should be a no-op anyway, since at this point in time,
the fromAscii and toAscii functions simply call their fromLatin1 and
toLatin1 counterparts.

Task-number: QTBUG-21872
Change-Id: Ib1eaf42679ab5db4005192c3d00ba79e43edfcca
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-04 12:48:06 +02:00
Konstantin Ritt
f948bb3c6c qunicodetables generator: improve the output and the generated code
better memory usage report;
an additional asserts with conditions the implementation is depends on;
a namespace for the internal static data;
styling fixes

Change-Id: Id4048ff6104c56b5f590f9ac6fbf7c0bce79ec47
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-04-24 21:45:00 +02:00
Konstantin Ritt
ba0d752c2d workaround issue where casing diff overflows signed short
there are two such codepoints were added in the Unicode 5.1:
  U+1D79  LATIN SMALL LETTER INSULAR G
  U+A77D  LATIN CAPITAL LETTER INSULAR G
two more of them were added in the Unicode 6.0:
  U+0265  LATIN SMALL LETTER TURNED H
  U+A78D  LATIN CAPITAL LETTER TURNED H
and two more were added in the Unicode 6.1:
  U+0266  LATIN SMALL LETTER H WITH HOOK
  U+A7AA  LATIN CAPITAL LETTER H WITH HOOK

we map them like special cases with length == 1
(note: all are in BMP which is checked explicitly in the generator)

Change-Id: I8a34164eb3ee2e575b7799cc12d4b96ad5bcd9c6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-04-24 21:45:00 +02:00
John Layt
0060b44d70 QLocale: Clean up QLocalePrivate implementation
In Qt4 QLocalePrivate is a struct returned by a d() method.  This will be
unsuitable for the planned change to use ICU and may cause BIC issues.

This change makes QLocalePrivate a class and creates a new struct
QLocaleData to hold the data index.  Further clean-ups are possible
but are left for later.

Change-Id: Ie316a07790f74674a3b520b735dff72695cc4060
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-24 16:37:11 +02:00
Lars Knoll
9bd0323551 Merge remote-tracking branch 'origin/master' into api_changes
Conflicts:
	configure
	src/corelib/io/qurl.cpp
	src/gui/kernel/qwindow.cpp
	src/tools/moc/generator.cpp
	src/widgets/kernel/qwidget_qpa.cpp
	src/widgets/styles/qstyle.h
	src/widgets/widgets/qtabbar.cpp
	tests/auto/corelib/codecs/utf8/tst_utf8.cpp

Change-Id: Ia457228d6f684ec8184e13e8fcc9d25857b1751e
2012-04-16 12:04:34 +02:00
Konstantin Ritt
73b24486ed UCD-5.0: apply Corrigendum #6
http://unicode.org/versions/corrigendum6.html:
> in Unicode 5.0, the list of characters with the Bidi_Mirrored property
> was made consistent for brackets and quotation marks, in preparation for
> new constraints on bidi mirroring. However, after publication of
> Unicode 5.0.0 it was discovered that this change adversely affected
> several quotation mark characters in deployed data.

Task-number: QTBUG-25169
Change-Id: Id49caf401af2d5a1e6dbcc32b2f350aa20b7f901
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-04-15 03:53:07 +02:00
Konstantin Ritt
50fefebc84 replace hardcoded values with a surrogate handling methods
Change-Id: Iba079953c46a29404232d2dacbe0c90170097d51
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-04-11 01:42:12 +02:00
Konstantin Ritt
3b778df102 minor improvement for NormalizationCorrections
let's don't hardcode the latests affected version value and simply use
the one parsed from NormalizationCorrections.txt

Change-Id: I37021e8238d77deada4c5ba7a2d160c87186b9dd
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-04-11 01:42:12 +02:00
Giuseppe D'Angelo
ddb70bee2f Stop relying on qHash always giving the same results
The implementation of the various qHash overloads offered by
Qt can change at any time for any reason
(speed, quality, security, ...).

Therefore, relying on the fact that qHash will always give
an identical result across Qt versions (... across different
processes, etc.), given identical input, is wrong.
Note that this also implies that one cannot rely on QHash
having a stable ordering (even without the random qHash seed).

For such use cases, one must use f.i. a private hash function
that will never change outside his own control.

This patch adds a private hash function for QStrings,
which is identical to the Qt(4) qHash(QString) implementation.
A couple of spots in Qt where the results of a qHash call were
actually saved on disk are ported to use the new function,
and a bit of documentation is added to QHash docs.

Change-Id: Ia3731ea26ac68649b535b95e9f36fbec3df693c8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-04-08 21:44:26 +02:00
John Layt
ab3837f86f QLocale: Merge month name data storage to save 50KB memory
Month Names and Standalone Month Names are stored separately, but for
majority of locales the names are the same and so storage is duplicated.
By storing both sets of names in the same array 50KB is saved in
libQtCore.so on Linux.

Depends on change Ic84bbc82 in branch api_review for CLDR 1.9.1

Change-Id: I83224ebc2180ee6de69797fa50d38348acc94107
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-04-03 19:12:27 +02:00
Jędrzej Nowacki
552e162a67 Update QLocale data from CLDR v1.8.1 to CLDR v1.9.1
Change-Id: Ic84bbc82b364b92605c1bba64b6ec815bff970cb
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-24 18:32:16 +01:00
Oswald Buddenhagen
d91cf1e53b clean up qmake-generated projects
remove "header" and assignmets which are defaults or bogus,
reorder some assignments.

Change-Id: I67403872168c890ca3b696753ceb01c605d19be7
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-24 05:18:30 +01:00
Konstantin Ritt
9514138a5c optimize QString::toLower()/toUpper() for special cases, step 2
from now, QUnicodeTables::specialCaseMap[] starts with a placeholder; so,
if somethingCaseSpecial is true, then somethingCaseDiff is always greater than 0

Change-Id: Ibb1870512836eee71b1521564c0745096c05b2f9
Merge-request: 70
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Olivier
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-02-21 22:31:00 +01:00
Konstantin Ritt
5f04962132 optimize QString::toLower()/toUpper() for special cases, step 1
reorganize QUnicodeTables::specialCaseMap as follows:
specialCaseMap contains sequence entries in form { length, a, b, .. }

Change-Id: Iea1f80bc2f4dc1f505428dad981cde26daaa52c7
Merge-request: 70
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Olivier
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-02-21 22:31:00 +01:00
Jason McDonald
0d00841c5f Avoid non-standard indentation of license headers.
The strange indentation has made maintenance of license headers
difficult on several occasions.

Change-Id: Ib29a7e5275e2c7a2c13a3f32fd2479f34d3353ca
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 16:40:10 +01:00
Jason McDonald
5635823e17 Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.

Change-Id: I311e001373776812699d6efc045b5f742890c689
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 03:54:59 +01:00
Xizhi Zhu
26e92680e9 Remove Symbian / S60 code from util.
Change-Id: I00a151a5f23bb7258f78712cce569b324c92c7d7
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-24 01:09:22 +01:00
Jason McDonald
629d6eda5c Update contact information in license headers.
Replace Nokia contact email address with Qt Project website.

Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-23 04:04:33 +01:00
Morten Johan Sorvig
06ff72e02d Compile.
Change-Id: I3c490eb2ce9bd655f4808b232663a530baec5990
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-01-20 02:07:13 +01:00
Jason McDonald
1fdfc2abfe Update copyright year in license headers.
Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-05 06:36:56 +01:00
Morten Johan Sorvig
f0bf2b5149 Fix up the accessibility inspector.
After accessibility API changes. Also make the windows
a bit smaller since the primary user is on a laptop
now.

Change-Id: I53a86cbe85adbbb27401dbf6c3c389629e295b4d
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2011-12-22 00:47:03 +01:00
Frederik Gladhorn
74c9f9d83f Accessibility: childAt returns interface
childAt used to return an integer.
Return an interface instead.

Not requiring a direct child to be returned allows optimizing
by bypassing iterating through the hierarchy of accessibles.
For QtQuick this is the only sensible way of implementing this.

The bridges are still responsible for finding the top-most element.

The default implementation in QAccessibleObject is sufficient
to return direct children. The implementation in
QAccessibleApplication is therfore no longer needed.

Change-Id: Id7100dd5bcc3a98de516a7f4a12eaaa41cb46d26
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2011-12-19 12:27:45 +01:00
Morten Johan Sorvig
77fb1c71bf Accessibility: Add Text::DebugDescription
Useful for debugging QML accessibility.

Change-Id: I814c64bcc4c6b534666adca5865b1588e4d13f44
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2011-12-07 11:15:28 +01:00
Morten Johan Sørvig
4c330460b4 Revert "Add valgrind suppression files."
This reverts commit f73e42369a5b4ba43cb8dc8cbcc6232e4375306c

This is a work in progress and is not useful yet. Cocoa/Objective C generates a lot of errors which is making creating a suppression file harder than I initially anticipated.

Change-Id: I045ba1eb9ae627a063a09422f6b5c2bfe6a225ac
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: hjk <qthjk@ovi.com>
2011-12-06 13:32:55 +01:00
Morten Johan Sorvig
019c55adbc Compile.
QAccessible and QtQuick API changes.

Change-Id: I5e329543937f9dd4b68dd01321c475149df4678c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2011-12-01 20:52:08 +01:00
Morten Sorvig
a254611ba1 Add valgrind suppression files.
Change-Id: I35626479267de49924038a0aa93103a14f05702a
Reviewed-by: hjk <qthjk@ovi.com>
2011-11-15 10:16:12 +01:00
Lars Knoll
aa7e89e807 Revert "Use standard spelling for two languages"
This reverts commit 9358f7eaa4.

The change is source incompatible and hasn't been agreed upon. Revert
it even though it's correct in principle. It's simple to keep the old
enums around for compatibility.

Change-Id: I8d9d33868e44d0299a3f081833b06cedf0ed4345
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2011-11-04 12:37:27 +01:00
Jiang Jiang
9358f7eaa4 Use standard spelling for two languages
Singhalese -> Sinhalese
Divehi -> Dhivehi

Change-Id: I3faa7163202a4a9be14e3cf857da60aa4dd3196f
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2011-11-04 01:54:25 +01:00
Ritt Konstantin
42402a1672 replace 'const QChar &' with 'QChar ' for QChar and QString
Merge-request: 69
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>

Change-Id: I61f5a54b783252029fcad95677958fa6a2130d01
Reviewed-by: Olivier Goffart <ogoffart@kde.org>
2011-10-26 19:59:36 +02:00
Morten Sorvig
cff475f339 Move a11y inspector from tools to util.
Change-Id: Ifc032c511aea72a8f7a4ec62d304e89718f712db
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2011-10-20 02:31:45 +02:00
Casper van Donderen
e86df8cc4b Move the documentation for the classes to their modules.
All documented classes under src/widgets should now be
under the QtWidgets module in the documentation. The
QtPrintSupport classes should now be under the QtPrintSupport
module in the documentation.

Change-Id: I236b15443b8b93a61578a1d10f52b64dba938f29
Reviewed-on: http://codereview.qt-project.org/5520
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2011-10-03 09:56:09 +02:00
Ritt Konstantin
d17c76feee drop an obsolete QChar::NoCategory enum value
there is no such category in the Unicode specs. the QChar::NoCategory
was a subject of bugs since it was introduced. int 4.6 it's meaning was
limited to mention ucs4 > UNICODE_LAST_CODEPOINT only (which is useless anyways)
in order to preserve the old (wrong) behavior.
fix it now for qtbase

Change-Id: I630534824e071090b39772881e747c1fdb758719
Reviewed-on: http://codereview.qt.nokia.com/1584
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-07-13 13:31:13 +02:00
Jason McDonald
2f2ffed775 Make lexgen tests compile
Correctly declare that the tests depend on the Qt build having testlib.

Change-Id: Icf3332bc81a10e701316f1cd7021d2f6d3c2f424
Reviewed-on: http://codereview.qt.nokia.com/158
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-05-27 08:41:02 +02:00
Qt Continuous Integration System
6bd691dc54 Merge branch 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging: (21 commits)
  Fixed line endings.
  Update licenseheader text in source files for qtbase Qt module
  New configure.exe binary
  Add -qpa option on Windows
  Use qglobal.h's VERSION number instead of hardcoded current version
  More examples adjusted to Symbian and Maemo5. (cherry picked from commit a97b9620a584c9b1a2e006873183526b3d7e001e)
  Doc: Added some details to the accessibility events API documentation.
  Doc: Fixed qdoc warnings.
  Doc: Fixed qdoc warnings.
  Doc: Made an additional change for clarity.
  Doc: Noted that the example will not work as expected with a mouse.
  Doc: Fixed qdoc warnings.
  Doc: Applying a pending change from previous merges.
  Doc: Fixed qdoc warning.
  Doc: Fixed qdoc warnings.
  Doc: Applied pending fixes to API documentation.
  Doc: Various fixes to documentation, some based on changes in master.
  Doc: Added missing project and desktop files.
  Doc: Documented the value returned when no field can be found.
  Squashed commit of changes from the 4.8-temp branch.
  ...
2011-05-25 01:11:52 +10:00
Robert Hogan
093a92fb03 Add QUrl::topLevelDomain() and move TLD table from QtNetwork to QtCore
Move Qt's copy of the Mozilla public suffix list from QtNetwork
to QtCore and use it to expose a new API function QUrl::topLevelDomain().
This function returns the section of the url that is a registrar-controlled
top level domain.

QtCore now exports a couple of functions to the other Qt modules: qTopLevelDomain,
a helper function for QUrl::topLevelDomain(); and qIsEffectiveTLD(), a helper
function for QNetworkCookeieJar.

The motivation for this new API is to allow QtWebKit implement a Third-Party
Cookie blocking policy. For this QtWebKit needs to know the element of the url
that is the registry-controlled TLD. Without this knowledge it would end up
blocking third-party cookies per host rather than per registry-controlled domain.

See also https://bugs.webkit.org/show_bug.cgi?id=45455

Merge-request: 1205
Task-number: QTBUG-13601
Reviewed-by: Peter Hartmann <peter.hartmann@nokia.com>
(cherry picked from commit 154402f56dcf8303a6ce601a52215226af8d31ba)
2011-05-24 12:12:04 +02:00
Jyri Tahtela
f9f395c28b Update licenseheader text in source files for qtbase Qt module
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.

Reviewed-by: Trust Me
2011-05-24 12:34:08 +03:00
Qt by Nokia
38be0d1383 Initial import from the monolithic Qt.
This is the beginning of revision history for this module. If you
want to look at revision history older than this, please refer to the
Qt Git wiki for how to use Git history grafting. At the time of
writing, this wiki is located here:

http://qt.gitorious.org/qt/pages/GitIntroductionWithQt

If you have already performed the grafting and you don't see any
history beyond this commit, try running "git log" with the "--follow"
argument.

Branched from the monolithic repo, Qt master branch, at commit
896db169ea224deb96c59ce8af800d019de63f12
2011-04-27 12:05:43 +02:00