Commit Graph

39907 Commits

Author SHA1 Message Date
Milian Wolff
6ce2a87c23 Forward declare all types required for compilation with -trace
This patch fixes compilation with `-trace lttng` or `-trace etw`. We
need to forward declare QEvent, QImageReader etc., otherwise the types
will be unknown while compiling the trace points.

In order to handle this generically, the tracegen utility is extended
to support a 'prefix text' in the `*.tracepoints` input files. Any
text within curly braces will be embedded as-is in the generated file.
This can then be used to add forward declarations for the types we
need, including potential namespaces and such.

Change-Id: I5cb16763ce0fcb48ce3ea4577578d468ff3a4f4b
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
2019-04-05 11:57:39 +00:00
Friedemann Kleint
df7eec6bcb Windows QPA/File dialog: Refactor code copying non-file shell items
Remove the canCopy() check which is not required and pass up the error
message. Remove special characters and use the base name of the display name
which can be an URL.

Task-number: QTBUG-71785
Change-Id: I22966cb8d1f5bca0bbca71cf3ebe66e4ede1a747
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
2019-04-05 10:28:00 +00:00
Qt Forward Merge Bot
0998a9d1d5 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I010a6322d12e038fdce247a58dfb05e204c2ff3b
2019-04-05 10:57:24 +02:00
Albert Astals Cid
bdee1189bf png handler: initialize all the variables passed to png_get_IHDR
oss-fuzz found at least width is sometimes not initialized, and we're
initializing almost all of them in most cases so be complete.

the oss-fuzz instance was
==1==WARNING: MemorySanitizer: use-of-uninitialized-value
	    #0 0x667c43 in operator!= /src/qtbase/src/corelib/tools/qsize.h:173:25
	    #1 0x667c43 in setup_qt /src/qtbase/src/gui/image/qpnghandler.cpp:403

Change-Id: Idb9aaf5ab85509d9c893beaf8d9118339ba46be7
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-04-05 08:53:01 +00:00
Friedemann Kleint
7ac2263f30 Windows code: Replace deprecated QVariant API
Task-number: QTBUG-74043
Change-Id: I6f5f47b74830597eec74e2582e24d2d7dd235a80
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-04-05 08:30:51 +00:00
Friedemann Kleint
5a5a96560e uic: Adapt connection syntax to Python
Extend WriteInitialization::findDeclaration() to return the class name
(on this occasion preparing for generating Qt 5 connection syntax) and
add a helper function for formatting the connection.

Task-number: PYSIDE-797
Change-Id: I7507f604c8275c93d347b7a6a5d5b5a2a5f3ffd5
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2019-04-05 08:29:26 +00:00
Friedemann Kleint
5b8676578d uic: Add qualification with "self." for Python
Prepend "self." (this) to the name stored in the class Driver's hashes
as specifying it is mandatory in Python.

Task-number: PYSIDE-797
Change-Id: I1da110b84b2d1131ee6af915f9cc4ba21d7de710
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2019-04-05 08:29:19 +00:00
Friedemann Kleint
bc8633036c uic: Add python
- Add command line option
- Add import (include) handling
- Add language helpers like streamable classes for Function definition,
  object instantiation
- Implement header comment formatting

Task-number: PYSIDE-797
Change-Id: I15041ab16504ea159f6665781a829cd548585af1
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2019-04-05 08:29:11 +00:00
Friedemann Kleint
89120c4a76 uic: Refactor string constant formatting
Refactor the fixString() helper, moving the code into a streamable
class using a helper which can be used for different encodings.

Task-number: PYSIDE-797
Change-Id: I0f82945b6b334da8524882dda2f104327eba79d4
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2019-04-05 08:28:56 +00:00
Kai Koehne
6d049ad63d Remove unused static method
The only use of this method got removed already in commit bebae37376.

Change-Id: I9757cbe34710efd9a9d31c74f81e01da40453ff9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-04-05 07:51:25 +00:00
Kai Koehne
5f7b0e5ff4 qmake: Remove dead code
Silences a clang warning

Change-Id: I5ade49326afcce964ffb5c24b5708977950d123e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-04-05 07:48:34 +00:00
Eirik Aavitsland
4e24bb24a2 Remove noisy warning for undefined QGradient preset
This runtime warning was recently introduced in the fix for an
assert/crash when creating a brush with an invalid Preset
value. However, that overlooked the usage where an unknown value is
passed to QGradient constructor, and the code afterwards checks if
the result is a NoGradient or not. It turns out that such usage is
already established as legitimate, including in the Qt Quick Rectangle
code, so this warning would be spit out continuously for perfectly
legal qml code.

Change-Id: Id60aed0817da0214b6cf17edd245f67e26470413
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-04-05 07:39:25 +00:00
Dmitry Shachnev
b404cd930e Make qt_is_ascii work properly on big endian systems
Change-Id: Ia053fbc854a77e333edadb0be6c2e04826b8fbdb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-05 06:56:21 +00:00
Friedemann Kleint
5a168507b1 Manual dialog test: Output URLs when testing QFileDialog
Change-Id: Icfaedcd68ff387cc888e41ec0b1db1810122b229
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-04-05 05:57:17 +00:00
Volker Hilsheimer
7935d86e7d Populate test data for reverse lookups using system tools
Hardcoding IP addresses and their respective DNS records is fragile.
We care about Qt producing the same result as other DNS querying tools,
so testing that instead.

Running a python script for this is easiest, and assumed to be quite
reliable.

In case where python fails/is not present, fall back to nslookup.
That tool is available on Linux, macOS, and Windows, although the
output it produces varies. This change implements very basic
line-parsing that can interpret the various results encountered
during testing on those platforms.

This also reverts commit bbaceff253fae13d8e56691bc9de7e1981db5118,
which blacklisted the tests that failed due to changes in DNS
records.

Use the opportunity to replace usage of gitorious.org.

Change-Id: I967de226bd603c805df7fe3ed4e871d92d2d0750
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2019-04-05 05:50:18 +00:00
Orgad Shaneh
808758ad14 QFileSystemEngine: Fix typo
Change-Id: I538ef771dcf6b757025c8d31f13a91222c2ebd3e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-05 03:12:04 +00:00
Qt Forward Merge Bot
ed485243b5 Merge "Merge remote-tracking branch 'origin/5.13' into dev" into refs/staging/dev 2019-04-04 23:01:17 +00:00
Qt Forward Merge Bot
eb606d85b3 Merge remote-tracking branch 'origin/5.13' into dev
Change-Id: If4974bbf0a166de244dd57cb71b05fa28bcc34ce
2019-04-05 01:00:49 +02:00
Allan Sandfeld Jensen
8d7c97d428 Remove remaining Q_DECL_NOEXCEPT/Q_DECL_NOTHROW usage
Change-Id: I91ac9e714a465cab226b211812aa46e8fe5ff2ab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-04 18:01:38 +00:00
Allan Sandfeld Jensen
b6cf8cb794 Clang_cl: Use -O3 for full optimization
Pass it through as a traditional clang argument instead of relying on
what MSVC cl.exe can take.

Change-Id: I94405ce6ab80d16b687e62c9aa4b2866ba84f0e2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-04 16:59:29 +00:00
Allan Sandfeld Jensen
7d02fb3045 Fix recursive include
qatomic.h included qbasicatomic.h which included qatomic.h.

Due to a define in qbasicatomic.h, the definitions from QAtomic would
change depending on which was included first. Fortunately qbasicatomic
does not need qatomic.h so the include can be removed.

Change-Id: I086009f2e16a6e20b2b76fc6b3bf66a343414206
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-04 16:59:05 +00:00
Jani Heikkinen
a0b5d6e60f Revert "Let "qmake -install qinstall" set default permissions 0644 and 0755"
This reverts commit 3cdf46059a.

It seems change is causing regression & is reverted now to be able to
proceed with releases

Task-number: QTBUG-74912
Change-Id: Ib2365b96ee98fbbcc8853cc7f8726c157c1913a7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-04-04 15:24:05 +00:00
Albert Astals Cid
9947909bfa cmake: Put the test helpers binaries in their parent folder
Makes qtextcodec test succeed

Like qmake does

qt_test_helper.prf says
"
If an auto test needs a helper application, this helper should
be put into the same directory as the test itself.
"

Change-Id: I02cb36d2237cdb72912c943250b843c33ffcd64a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-04-04 14:12:03 +00:00
Eskil Abrahamsen Blomfeldt
d1bab5b1e3 Allow word break wrapping in Korean text
In Korean text, they typically can use both the "Western" style of
word wrapping, i.e. breaking on spaces, as well as the East-Asian
style of potentially breaking between all syllables. However,
the Unicode Line Breaking Algorithm, TR14 defaults to breaks on
syllables and specifies a possible tailoring where Hangul is
mapped to the AL class instead:

"When Korean uses SPACE for line breaking, the classes in rule
LB26, as well as characters of class ID, are often tailored to AL"

When using Qt, the user would expect the WordWrap wrap mode to
break between words in Korean. If you want the syllable-based
text layout, you would use WrapAnywhere, probably accompanied
by line justification.

To avoid breaking QTextBoundaryFinder and other potential clients
of QUnicodeTools which depend on getting the precise Unicode
data from the algorithm, we do this by passing a flag from
QTextEngine when initializing the attributes. This way, it
can also be made optional later on, if we decide there is
a reason to add an additional wrap mode specifically to
handle cases like this.

[ChangeLog][Important Behavioral Change] WrapWord now
correctly prefers line breaks between words in Korean text.
WrapAnywhere can still be used to get breaks between syllables
instead.

Done-with: Alexey Turitsyn <alexey.turitsyn@lge.com>
Task-number: QTBUG-47644
Change-Id: I37b45cea2995db7fc2b61e3a0cc681bbdc334678
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-04-04 10:25:10 +00:00
Simon Hausmann
a334156e81 Add QMetaProperty::relativePropertyIndex()
Add a "sibling" function for QMetaProperty::propertyIndex() for the
relative index. That way in QtQml we can avoid using

    propertyIndex() - metaObject.propertyOffset()

where the latter traverses the parent chain.

Change-Id: I113a956801b0e8d56a30a847b5b919da703824e2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-04 14:39:31 +00:00
David Faure
90c86d738e QCommandLineParser: warn if defining a duplicate option
Fixes: QTBUG-74907
Change-Id: I3741a5241515dfaf4353458a9ef13ceaeb9fea0b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-04 13:33:50 +00:00
Eskil Abrahamsen Blomfeldt
bcd2fa484a Fix font matching of typographic families on Windows
9204b8c31e broke font matching on Windows.
After this change, if you request a specific face of a family, such
as "Arial Black", and Qt detects that its typographic/preferred name
is "Arial", then it will be added as the single style of the Arial family,
which will in turn be set as populated=true.

So if you later request a regular font of "Arial" family, then it will
see that the family has already been populated, skip this step, and
then see that there is only one style available, i.e. "Arial Black".

To work around this, we need to make sure the typographic family is
properly populated the first time it is registered.

[ChangeLog][Windows][Fonts] Fixed a bug where it would be impossible
to request different faces of a font family after a specific type face
has been in use.

Task-number: QTBUG-74748
Change-Id: Ia0caace2b88a32e6114ff23ad10ee1ea8f5a3e03
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-04-04 10:24:57 +00:00
Joerg Bornemann
4eb865cd38 Remove superfluous inclusion of qtwidgets-config.pri
Every module already includes its own config.

Change-Id: I1ef630092f61f118d79dc9b39ce38f4bdea14f43
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2019-04-04 09:48:08 +00:00
Morten Johan Sørvig
e227c33455 wasm: improve event coordinate handling
targetX and targetY are canvas-local coordinates,
while Qt generally works with window-local and global
coordinates.

Add coordinate mapping calls where needed and make
sure we pass correct coordinate types to Qt.

This starts mattering when we have canvases which
are not located at (0, 0).

Change-Id: I28563310ca17d0cc5535317cff99fcd82d3723db
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-04-04 09:30:02 +00:00
Morten Johan Sørvig
7bae1bd5cb wasm: hide canvas text caret
Another side effect of setting contenteditable on the
canvas. Seen on Firefox.

Change-Id: I789ba4d7e6fbbdbf14b66fe1ae57183ec04e04bb
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-04-04 09:29:50 +00:00
Andy Shaw
5caaa0b6a2 Doc: Update QImage::depth to indicate we support 64 bpp now
Change-Id: Icbd4920ed03655cec483a402de9d0ae3378ff3ef
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-04-04 08:31:47 +00:00
Allan Sandfeld Jensen
7518da2441 Update scanline documentation
Change-Id: I019b102e99f99377b528ad5c8a4ccb2a7929f14f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-04 08:31:33 +00:00
Friedemann Kleint
ab47587856 Windows QPA/File dialog: Avoid UI hangs caused by empty results
Typing in invalid URLs results in empty result lists.
Emit rejected() in this case.

Task-number: QTBUG-71785
Change-Id: Ia257b85a5c4370227f753752f6a473bbb3a054be
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2019-04-04 08:28:07 +00:00
Joerg Bornemann
30e2bf8712 Remove unused *-mwerks scope
The Metroworks mkspec was removed in 2003.

Change-Id: I4bc56a20f3bda00bb76a2c3b73f277d238603d02
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2019-04-04 08:01:29 +00:00
Qt Forward Merge Bot
f80b7995f3 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ia7328524f2cd9d5995ac8705f0fe0bf570b2e831
2019-04-04 01:00:07 +02:00
Joerg Bornemann
6fff899697 Document in which Qt version a qmake function was introduced
...starting with Qt 5.0.0.

The text is manually inserted there, because \since does not work
within sections.

Task-number: QTBUG-74737
Change-Id: I0fe2d0a113d48be0266030c8466b062c6f743aab
Reviewed-by: Robert Szefner <robertsz27@interia.pl>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2019-04-03 20:23:29 +00:00
Morten Johan Sørvig
c4d46723eb wasm: disable XDG_RUNTIME_DIR warning
XDG is not very relevant on the Web platform.

Change-Id: Ibd885e28da15114d0601c73e34dec556e65cbe75
Reviewed-by: David Faure <david.faure@kdab.com>
2019-04-03 18:41:49 +00:00
Friedemann Kleint
06d753e87b Brush up and stabilize tst_QSizeGrip
- Remove unused dummyWidget and thus empty slots initTestCase(),
  cleanupTestCase().
- Add slot cleanup() checking for an empty top level widgets list
  and introduce QScopedPointer to ensure it passes.
- Use QTRY_VERIFY in hideAndShowOnWindowStateChange().

Flakyness has been observed on openSUSE:

 FAIL!  : tst_QSizeGrip::hideAndShowOnWindowStateChange(Qt::Window) '!sizeGrip->isVisible()' returned FALSE. ()
           Loc: [tst_qsizegrip.cpp(126)]

Change-Id: I340fc1892dc00bcff1985e5a8a1e535975736484
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-04-03 15:06:06 +00:00
Miguel Costa
7ab84cfe74 factorial example: Fix issue with WinRT console output
Replaced the display of the calculation output, generated using
fprintf(stdout, ...), with qInfo() << ... In WinRT, fprintf to stdout
does not cause output to be generated.

Task-number: QTBUG-67566
Change-Id: I3b95bbf888e863683cbaf54deb26c3821433a5b8
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2019-04-03 13:59:47 +00:00
Allan Sandfeld Jensen
a1e62e7ba1 Replace Q_DECL_NOEXCEPT with noexcept in corelib
In preparation of Qt6 move away from pre-C++11 macros.

Change-Id: I44126693c20c18eca5620caab4f7e746218e0ce3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-03 13:49:45 +00:00
Alexandru Croitor
bb04a85bdf Stop installing unnecessary things
This includes:
- tests
- tools that are only used duing the Qt build (tracegen and
  qfloat16-tables)

Change-Id: I3a5f678682b5b9318012568a9e4dcdda0967f89b
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-04-03 11:08:57 +00:00
Alexandru Croitor
547c7f8ca5 Fix architecture conditions
The actual variable that contains the architecture is
TEST_architecture_arch. TEST_architecture only contains the value
if the test was performed or not.

Fix the conversion script and all the generated files.

Change-Id: Icb3480832cab894948f4fef03b8bc8187cab6152
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-04-03 09:00:08 +00:00
Tobias Hunger
9a7de16fac CMake: Re-generate plugins/platforms/eglfs
Change-Id: I62651eac0eede77f1b7fa86e198f71b0ea1da2c7
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
2019-04-03 08:54:51 +00:00
Tobias Hunger
11f217d21b CMake: Re-generate plugins/platforms/windows
Change-Id: I53f10995792d01e8f04cdb8f37fcf347132aa4fa
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
2019-04-03 08:54:40 +00:00
Tobias Hunger
bd0f9b61fd CMake: Re-generate plugins/platforms/cocoa
Change-Id: I6d37e018a114ba90690a6fbd8d5af71f6d1b31fd
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-04-03 08:54:30 +00:00
Tobias Hunger
8a9962aba8 CMake: Add FindCups.cmake from upstream cmake
This FindCups defines a target, which the FindCups.cmake in the currently
required CMake version does not:-/

Change-Id: I76c5bb72ece80415db1971e4f2079682126fde36
Todo: Remove again once we depend on CMake 3.15.
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-04-03 08:54:14 +00:00
Tobias Hunger
29f5c0ee70 CMake: Map cups to Cups::Cups, vulkan_support_private to Qt::VulkanSupportPrivate
Change-Id: Id03942becb08ca3ece589479ffe515f68034ddd4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-04-03 08:53:57 +00:00
Tobias Hunger
0be63eeba7 CMake: Re-generate plugins/sqldrivers/sqlite
Change-Id: I795c9d6045eb34e9d517cf25337b4e31d3ad0284
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-04-03 08:53:40 +00:00
Tobias Hunger
e3b2ff0014 CMake: Re-generate testlib
Change-Id: Id3e6a3ff325ed55ac20a93683260ef3366c0ddab
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-04-03 08:53:31 +00:00
Tobias Hunger
1aff970c49 CMake: Re-generate platformsupport/clipboard
Change-Id: If05ae02f363a4a9ef6193f7f8822dcbbc58e1738
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2019-04-03 08:53:21 +00:00