Commit Graph

19369 Commits

Author SHA1 Message Date
Allan Sandfeld Jensen
b1c156d692 Default to OpenGLES when building with -opengl es2
Fixes the xcb_glx plugin to follow the -opengl configure option for
default surface types. This makes it match closer to xcb_egl behavior
and makes the default match QOpenGLContext::openGLModuleType.

Change-Id: Iea3f8069fffefa46a32945eeeea1312566df129f
Task-number: QTBUG-50015
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-12-25 14:02:08 +00:00
Alex Trotsenko
6b6955c2ff QAbstractSocket: do not enable read notifications on TCP in bind()
In bind+connect scenario, rejected connection can trigger a read
notification while the socket is opened. But unlike UDP, reading from
the socket engine or emitting a readyRead() signal is not allowed for
the TCP socket in bound or connecting state.

To make a bind+connect scenario work properly, disable the read
notifications until a connection is established.

Task-number: QTBUG-50124
Change-Id: I7b3d015b0f6021fb9ff9f83560478aa5545f41f5
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-12-24 14:05:26 +00:00
Christian Kamm
1e2d35d488 QSystemTrayIcon: Fix double connection with qpa.
install_sys_qpa() is called for each QSystemTrayIcon::show(),
leading to spurious calls of user slots if the signal isn't
disconnected on remove_sys_qpa().

Task-number: QTBUG-48068
Change-Id: Ic830250c71fee6b584550ab5aabf54289e478fcb
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Richard Rondu <rondu.richard@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-12-22 21:11:58 +00:00
Błażej Szczygieł
ebe08096c9 xcb: Add Xinerama 3rd party source code for static build
Change-Id: I421d0bcf3fd6362ad6e95db5cfcdefd1a9ec096f
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-12-22 11:29:26 +00:00
Błażej Szczygieł
f48170b479 xcb: Add Xinerama support
This patch makes possible to use Xinerama screens in XCB platform
plugin.

Task-number: QTBUG-48615
Change-Id: Ib4dbfcdfadc46d2875a2fc09e8b852181edfbed2
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-12-22 11:28:54 +00:00
Lars Knoll
26237f0a2d Fix QJsonValue::fromVariant() if the variant contains a json object
If the variant contains a known json type (value, array, object or
document), simply unwrap those. In the case of the json document
wrap the contained object/array into a QJsonValue.

This should be the expected behavior, and makes more sense than
returning a null QJsonValue.

Task-number: QTBUG-41234
Change-Id: Id084fc11220d51aaf78b7694fd0ebef1411f5c51
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-22 10:00:46 +00:00
David Faure
2e1de7f3c4 QUrl: revert path-normalization in setPath().
Path normalization should happen only when NormalizePathSegments is set.
Use a less intrusive fix for the setPath("//path") issue that
commit aba336c2b4 was about.

This allows fromLocalFile("/tmp/.") to keep the "/." at the end,
which is useful for appending to the path later on (e.g. to get "/tmp/.hidden")

Change-Id: Ibc3d4d3276c1d3aaee1774e21e24d01af38fa880
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-22 09:56:27 +00:00
David Faure
5f03b48cb3 QStandardPaths: warn if $XDG_RUNTIME_DIR doesn't exist
If the environment variable is set, but points to a non-existing directory,
the user would get a warning about chmod failing. Better be clear and
warn about the fact that the directory itself doesn't exist.

Also warn if $XDG_RUNTIME_DIR points to a file rather than a directory.

Task-number: QTBUG-48771
Change-Id: If84e72d768528ea4b80260afbbc18709b7b738a8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-22 09:56:23 +00:00
David Faure
4d9e06fa53 Docu: fix documentation of QHostAddress() default constructor.
In Qt3 this would indeed be equivalent to QHostAddress("0.0.0.0").
But since Qt4, it creates an address of type Null, and
QHostAddress()==QHostAddress("0.0.0.0") is no longer true.

Change-Id: I28025421e77c861783c612c2225be345dad5615a
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
2015-12-22 09:56:20 +00:00
Gabriel de Dietrich
64481bcc67 QWidgetWindow: The alien widget should be from the window's hierarchy
This partially reverts commit 025d6a778c.

Change-Id: I7b964b0d598abe46137c22177fe2b5dcca5bb812
Task-number: QTBUG-49831
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
2015-12-21 23:02:40 +00:00
Joerg Bornemann
e96fa5a780 Fix timeout calculations using qt_subtract_from_timeout
Commit ed0c0070 introduced qt_subtract_from_timeout but used it
incorrectly in several places.

Change-Id: I80ea16088707929a45d5a61ec6f3370f8e63d1cd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-21 22:26:40 +00:00
Gabriel de Dietrich
ac2e991675 QHeaderView: Reset cached section sizes on font and style change
Change-Id: I7ce88b7e43249499343a9aae6acb806dd9c41f31
Task-number: QTBUG-33855
Task-number: QTBUG-37153
Task-number: QTBUG-50010
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-21 18:31:47 +00:00
Gabriel de Dietrich
15163d1939 QHeaderView and others: Fix font lookup name
It should the the actual class name, without any suffix.

This also allows us to use the painter font when rendering
CE_HeaderLabel and, as a consequence, change QHeaderView's
font through the usual methods.

Change-Id: I0b13ee349f5fa505be66a9c884c26885f5fc468f
Task-number: QTBUG-33855
Task-number: QTBUG-37153
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-21 18:31:26 +00:00
Daniel Levin
a206583da1 Add DEPENDS option to qt5_wrap_cpp()
Currently the moc rule does not support dependency scanning, so after
successful moc file generation it will ignore implicit dependencies
in the header file.

Although this works in most typical scenarios, at least in one case
incremental builds become broken: when using Q_PLUGIN_METADATA() with
the FILE argument.

If FILE refers to a JSON file and latter was updated, then the expected
behavior is to regenerate the moc file. Since CMake add_custom_command()
does not support late dependency setup, all dependencies should be
explicitly listed in a DEPENDS section.

This patch adds the DEPENDS multiarg option to qt5_wrap_cpp(),
allowing to specify additional dependencies to the moc rule.

Task-number: QTBUG-44009
Change-Id: I2052ce23d3cb0c87c6bd99fcb7e8a71a7be9a330
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Daniel Levin <dendy.ua@gmail.com>
2015-12-21 16:05:36 +00:00
Thiago Macieira
32e4546cc3 qprocessordetection.h: Fix detection of 32-bit ARMv8
This is more future-proof. It fixes the detection of 32-bit on ARMv8-A
processors since it uses the __ARM_ARCH macro that GCC and Clang
define. For MSVC, we use _M_ARM, which also contains the architecture
version. MSVC does not currently support ARMv8 code, but when it does,
this commit should make the support automatic.

I don't know which compiler defines __TARGET_ARM_ARCH, but support it
too.

Change-Id: I8de47ed6c7be4847b99bffff141c8ede54a849eb
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-12-21 13:33:21 +00:00
John Brooks
b826672658 Fix visibility of bundled zlib symbols with mingw
When QT_VISIBILITY_AVAILABLE is defined, the zlib header would use
visibility("default") instead of Q_DECL_EXPORT, but Windows needs
dllexport for these symbols to be available to QtGui/QtNetwork.

In practice, Q_CORE_EXPORT always has the correct behavior for the
zlib symbols.

Change-Id: I7ab8080528e437260f822ac33e9e4334e2a0fdc8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-21 10:10:30 +00:00
Erik Verbruggen
1823c8f2dd Fix utf8->utf16 BOM/ZWNBSP decoding.
When the byte sequence for a BOM occurs in the middle of a utf8 stream,
it is a ZWNBSP.

When a ZWNBSP occurs in the middle of a utf8 character sequence, and the
SIMD conversion does some work (meaning: the length is at least 16
characters long), it would not recognize the fact some charactes were
already decoded. So the conversion would then strip the ZWNBSP out,
thinking it's a BOM.

The non-SIMD conversion did not have this problem: the very first
character conversion would already set the headerdone flag.

Change-Id: I39aacf607e2e068107106254021a8042d164f628
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-21 09:56:49 +00:00
Joerg Bornemann
7cde1c029e Remove superfluous ReleaseSemaphore/WFSO calls
Factor out the dispatching of IO results into a separate function.
Do not increment the semaphore count in waitForAnyNotified just to
decrement it again in _q_notified.

Change-Id: I7d4a04b679bb152ab3a5025513f885aee276d086
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-21 09:12:02 +00:00
Frank Meerkoetter
64857434e2 Fix broken permission to mode mapping
Fixes coverity CID154258.

Change-Id: Ia958d24c533c4f0077abd363ee4c041cc2cdb6f0
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-12-19 15:03:55 +00:00
BogDan Vatra
0629e87942 Fix extract style on Android 6.0
A few things were changed in Android 6.0

Task-number: QTBUG-49323
Change-Id: I3112d885881dce541d5c4f3a1561f6c34d75e319
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
(cherry picked from commit 361e24b79e)
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-18 06:41:53 +00:00
Maxim Mikityanskiy
33c9059f03 Fix XI2 smooth scroll with inverted direction
When touchpad scroll direction is inverted, verticalIncrement and
horizontalIncrement of scrollingDevice are negative, and rawDelta
remains unfilled. It leads to pixelDelta.isNull() being true in wheel
event handler even when XI2 smooth scrolling is available on the system.

Fix that and fill rawDelta with correct values when inverted scroll
direction is used.

Change-Id: I9c0bdbad2c6b9bbed765eaa895dca300c5c70e86
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-12-17 18:55:30 +00:00
Friedemann Kleint
e3288f246b Windows: Restore window geometry after normal->maximized->fullscreen->normal.
- Do not save geometry when going from maximized->fullscreen
- Use SW_SHOWNA instead SW_SHOWNOACTIVATE as otherwise the
  maximized geometry is restored.
- Add a test for Windows.

Task-number: QTBUG-49709
Change-Id: Ic81e7398ee90d499a50b02192a45cb09276a2105
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-12-17 14:58:29 +00:00
Friedemann Kleint
ac5c2aaf35 Windows: Clear key recorder when application becomes inactive.
When keys are pressed and the application becomes inactive before
they are released, the stored state becomes inconsistent.

Task-number: QTBUG-49930
Change-Id: Ide86b1d9052df060f30f7c02b81a4f2ae15d28e7
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-17 14:58:21 +00:00
Andy Shaw
69839e55c1 Windows: fix fullscreen OpenGL window issues with an opt-in function
Windows automatically disables DWM for opengl windows that have the
exact dimensions of the primary screen. This causes numerous issues,
such as menus and popups not showing up, and alt+tab misbehavior.

Adding a one pixel border via WS_BORDER solves all of these issues.
This is done by a QWindowsWindowFunctions to make it opt-in as turning
it on can cause an unwanted change in the look of the window so it is
up to the user to decide if they want this.

[ChangeLog][Platform Specific Changes][Windows] Add a function to
QWindowsWindowFunctions to enable working around a limitation with
showing other top level windows when showing a fullscreen OpenGL based
window.

Task-number: QTBUG-41309
Task-number: QTBUG-41883
Task-number: QTBUG-42410
Change-Id: I8c5c785f5024737cd034b2b703671632a8102700
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-17 14:43:38 +00:00
Allan Sandfeld Jensen
879409fd0f Use Q_CONSTRUCTOR_FUNCTION instead of doing the same manually
Use the macro we have that does exactly what we want without the boiler
plate code.

Change-Id: I25c67a71f83f91f50128c8a54033ee53ad28e88a
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-12-17 13:47:26 +00:00
Markus Goetz
e78ca787ae iOS: Clear focusObject if first responder is set to null
In certain cases we were still showing a cursor in a TextInput even
though the keyboard was hidden programmatically.

Change-Id: I48ebb6b8bc0382236b1ea5835e68eae48ece2b4f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-12-17 13:47:23 +00:00
Markus Goetz
8885344ad4 iOS: Don't hide keyboard on "Done" button when focus object has changed
If the focus object changed programmatically for example to the next
input field in a window, we want to keep the keyboard open. This
strangely only worked if the inputs had different IM hints because this
made the keyboard appear again.

Change-Id: I52e66bb7d2ff97ae7084173769d9b5c2d0c549b5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-12-17 13:47:21 +00:00
Richard Moe Gustavsen
bace82bffe iOS: notify application when edit menu is closed
The edit menu will also close if the user taps outside it, not only
when selecting a menu item. But we never caught this case, which left
QMenu to belive that it was still open.

Change-Id: Iae071b4fc5fdc44d7d05b4dd767042907e337957
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-12-17 13:47:21 +00:00
Richard Moe Gustavsen
e362774df2 iOS: include marked text when reporting IM textInRange and endOfDocument
[UITextInput textInRange] is sparsely documented, but it turns out that
unconfirmed marked text should be seen as a part of the text document. This
is different from Qt IM (ImSurroundingText), which handles marked text on
the side. The reason we can assume this is that the range we are given
as argument to textInRange exceeds the documents length when having
marked text appended to the end, suggesting that it tries to read / verify
the current marked text. In addition, keyboards like Japanese-Kana will not
update and function correctly unless marked text is included.

Note that the docs seems to imply that you cannot have marked text and text
selection at the same time, unless the selection is contained within the
marked text (using the dedicated selectedRange argument to setMarkedText).
If this turns out to be incorrect, we might need to adjust the methods
dealing with selection to also include marked text as well.

Task-number: QTBUG-49946
Change-Id: Ifedd792ec66db435806f57fca157e1abbbf121a8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-12-17 13:47:14 +00:00
BogDan Vatra
0b10d41c3d Android: Fix crash at exit
Delay the exit call until Java part finishes the execution.
We must be sure all the threads are stopped (hanged), when we
call exit, otherwise java thread will try to use static vars
that are freed by the qt thread.

We also need to call exit from Qt thread, otherwise Qt will complain
about it.

Change-Id: Ia1e7a4d7d56c39d38313f040aab618ec5a68dfb6
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-12-17 13:46:14 +00:00
Joerg Bornemann
ad5c768fc8 Update bundled libpng to version 1.6.19
Merged in the upstream version, which obsoleted some local
patches. The remaining diff to clean 1.6.19 is archived in
the qtpatches.diff file.

Change-Id: I676df2dab2c52c7fe576de284d472d70206f0a8c
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
2015-12-17 09:25:56 +00:00
Giuseppe D'Angelo
08ee579cf0 QOpenGLTexture: fix the number of faces returned by faces()
Change-Id: I7bf08eee357fb9641ff9118edcf97809f98605b7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-12-16 21:46:08 +00:00
Giuseppe D'Angelo
a5b254ff23 QOpenGLTexture: check textureId for knowing whether a texture was created
Change-Id: I0775ad9538a7793dc6628abe4556404634ae0462
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-12-16 21:46:05 +00:00
Giuseppe D'Angelo
7ec40ab52e QOpenGLTexturePrivate: remove unused member variable
Change-Id: I4d897c522087654649547c0ca4750ba4dbfa5cbf
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-12-16 21:46:02 +00:00
Andy Shaw
a88da6377d The cache_cost is measured in bytes and not kilobytes.
When increaseCost() is called then it will convert from bytes to kilobytes
so we need to specify the cache_cost to be in bytes.

Task-number: QTBUG-47812
Change-Id: I842514c9ab4d86b60b2beb6c80979156ea0de59c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-16 13:15:12 +00:00
Andy Shaw
e109b8a0f3 Decrease the cache if necessary when adding a new font
It was possible for the cache to increase too quickly since it was
relying on the timer to decrease which caused problems with FreeType.
So by checking if it will be increased to be over the limit first before
adding the new font, we can decrease it earlier in preparation.

Task-number: QTBUG-47812
Task-number: QTBUG-49535
Change-Id: Iedc042d8903949140aa8c5257a9d54cde31a51be
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-16 13:13:02 +00:00
Andy Shaw
3fb0d851a0 Emit the activated signal when the platform menu item is selected.
Change-Id: I3485501643c60f28ef188100146ac305e3ef9073
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2015-12-16 13:01:32 +00:00
Konstantin Ritt
e664251a77 Cache font fallback families to reduce startup time
Change-Id: I593708d76d513028ba1b59621b83cbc32e63d4e6
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-16 12:46:06 +00:00
Eskil Abrahamsen Blomfeldt
8a401371ea DirectWrite: Implement transforms for grayscale aa
When cleartype rendering was turned off, transforms would be
badly broken with the DirectWrite engine because we did not
implement the appropriate code path there. In Qt 5.6, this
would become especially visible, since DirectWrite is always
used when high-dpi scaling is enabled.

[ChangeLog][Windows][DirectWrite] Added transformation
support to DirectWrite engine when using grayscale antialiasing.

Task-number: QTBUG-49562
Change-Id: Ic5f7dd5b020a85ed1b6473c511a67cdb5ed5cedb
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
2015-12-16 04:54:45 +00:00
Eskil Abrahamsen Blomfeldt
a6ef446d4c DirectWrite: Fix clipping bug with grayscale AA rendering
The code is using the same rasterizer for A8 and A32 glyphs,
in the former case it's just converting to grayscale afterwards.
Therefore, we need to pad the glyph cache with the same number of
pixels for both cases.

[ChangeLog][Windows][DirectWrite] Fixed clipping bug when rendering
unhinted text with grayscale antialiasing.

Task-number: QTBUG-49562
Change-Id: If85ff768451116278f6d2ccd1e77b5ce0664087d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-16 04:54:35 +00:00
Maurice Kalinowski
44c6c3ae27 winrt: Align error code handling with WinCE
Both specify 87 (invalid parameter) as error code for non existing
shared memory.

Change-Id: I02b02da106e9e4e574a21359c25bc2a03e385a7c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-15 16:51:49 +00:00
Konstantin Ritt
b8189ddd80 Use the cached font fallback families list in QFont::defaultFamily()
Change-Id: Iba1d9db05f7a09aabb81d0429e6081cd7710d381
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-15 12:06:06 +00:00
Konstantin Ritt
674b0e2382 QWinRTFontDatabase: Return the base class' fallbacksForFamily
instead of an empty list.
Even if QBasicFontDatabase::fallbacksForFamily() returns an empty list ;)

Change-Id: Ib4a63e7898d2708737dd694f0629bdb68b2eb3a1
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-15 12:05:53 +00:00
Konstantin Ritt
b0e422aa52 Use proper class namespace in QBasicFontDatabase sub-classes
Do not assume QBasicFontDatabase doesn't reimplement fallbacksForFamily()
and use the proper chaining instead.

Change-Id: I822d1902843a3a13517b7025761b88439fd75ced
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-15 12:05:44 +00:00
Friedemann Kleint
bece6fa0b9 QDockAreaLayout/QPlaceHolderItem: Store geometry excluding frame.
Previously, the geometry stored for floating dock widgets
in QPlaceHolderItem::topLevelRect and QDockAreaLayoutInfo::saveState()
included the window frame (frame position/content area size).
This does not work in the case where a floating dock widget is deleted
since the geometry is determined after reparenting the widget when the
frame geometry is no longer available. Change the behavior to store
the geometry excluding frame to avoid such problems and adapt
QDockWidgetPrivate::setWindowState() accordingly.

Task-number: QTBUG-49832
Task-number: QTBUG-45780
Change-Id: I84b5c80df6e1c9e738bbb1407b9047cc84719ce0
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-15 12:05:26 +00:00
Andy Shaw
482165057d Add support for reading fonts from TTC files on Windows Embedded
Task-number: QTBUG-49810
Change-Id: Ibfc999a15b17899ab2c87d6741dc69b0871699bb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-15 11:37:02 +00:00
Tim Blechmann
0150cd3617 QCocoaWindow - resize embedded views
when QCocoaWindow::setCocoaGeometry is called on windows embedded into a
native cocoa gui, QPlatformWindow::setGeometry does not apply the geometry.
we therefore need to set the frame on the embedded view manually.

related tasks:

Task-number: QTBUG-47632
Task-number: QTBUG-45269
Change-Id: I976e4606d36bb4afc74b0834105bceab8a6f8cbd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-12-15 10:00:20 +00:00
Friedemann Kleint
adb914f4b9 QtNetwork: Standardize error message about IPv6 addresses for nameservers.
Add a const char * message with QDnsLookupRunnable's translation
context and use that for untranslated warnings and errorString.

Change-Id: I1b6c9fb259fb9ff824a0c3829b2c00c36aaecdfa
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-12-14 20:49:46 +00:00
Tor Arne Vestbø
980fd570cd xcb: Don't try to detect cases where the WM restricts geometry changes
This caused issues in upstream tests that didn't expect to have their
geometry requests not being respected by the WM.

Task-number: QTBUG-49912
Change-Id: Iec99f341d81488de6026f04c99dff45a0d3f8587
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-14 20:23:25 +00:00
Maurice Kalinowski
7f92edb7ac winrt: Avoid blocking for the first processEvents run
When calling WaitForMultipleObjectsEx, do not use a
timeout for the initial call. This saves around 10%
of blocking invocations in the QEventLoop autotests.

Change-Id: Ib24436ed11de1865e31f9ff0ddf6ce1bc5562f42
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-14 08:43:31 +00:00
Maurice Kalinowski
127b9fa5b0 remove visual studio specific argument
"-ServerName:" is only used for Visual Studio and causes bad side-
effects when using QCommandLineParser.

Change-Id: Ifef652bbb65df9279a39ae3c74ddbb563c87bd90
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-14 08:43:25 +00:00
Sérgio Martins
fd527592b7 Don't detach the color table vector
Change-Id: Iec7814b0aca74ddc9744af358561b18b96d7a266
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-13 19:24:59 +00:00
Giuseppe D'Angelo
3b093034b6 QFileSystemModel: report special files which are not symlinks
Since special files have file size == -1, they were always filtered
out by QFileSystemModel, even when passing QDir::System as filtering
option. Keep them instead.

The testcase is more convoluted than it should be because QFSM
is so broken that it returns valid indexes for invisible elements
in the model (such as filtered out elements).

Change-Id: I023a9813dbfeed7be99dded42c66b1191afdc17e
Task-number: QTBUG-20968
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-13 11:46:17 +00:00
Pasi Petäjäjärvi
7ac5228144 Delete QInputDeviceManager when deleting QGuiApplication
Without deleting m_inputDeviceManager instance it will remain
in process and causes crash when creating+destroying QGuiApplication
multiple times in process. Crash happens because m_inputDeviceManager
already exists when creating new instance of QGuiApplication and
metadata for QInputDeviceManager is not anymore valid and crash when
accessing it e.g. using connect() function.

Change-Id: I5acb1c5f6ce2ba9665fa893047210a913debe4e4
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-12-12 20:05:25 +00:00
Friedemann Kleint
be9df4bc82 QWindowsBackingStore::flush(): Add warning for UpdateLayeredWindowIndirect() failures.
Task-number: QTBUG-49785
Change-Id: I881e6d294ae6b23e280e727ee1fc48ee6562f2fe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-12 10:39:14 +00:00
Tor Arne Vestbø
fa9008566c Remove iOS workaround for pixman drawhelpers
Change-Id: I8636993571b04d8cda74708777ba3ef2bac09fb5
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-12-12 10:27:50 +00:00
Vincas Dargis
e8eaf82e58 PostgreSQL: Fix memory leak in QPSQLDriverPrivate::getPSQLVersion()
Memory leak occurs when 'release' pointer variable is overwritten
for second use without releasing resources it is currently pointing
to. Leak occurs only in specific edge case depending on
client/server versions.

Task-number: QTBUG-49789
Change-Id: Ie5be8996ed158309f20dbb3574f956d2eb137460
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2015-12-12 10:21:13 +00:00
Tor Arne Vestbø
d729c3459f iOS: Enable non-pixman NEON drawhelpers for both 32 and 64-bit
The pixman drawhelpers are implemented using GAS syntax, which the
Clang assembler doesn't handle, nor do they work on 64-bit ARM, so
we disable them selectively. They are only used for 16-bit surfaces
anyways, so it not a big deal on iOS.

(cherry picked from commit 49568df954)
Change-Id: I70848981c794739d40a6a2d9a537307bc80d61a6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-12-12 07:19:04 +00:00
David Fries
b2c7c489ab QLockFile: decide on locking strategy per path
It is filesystem dependent if flock and fcntl locks are independent or
the same underlying lock (which causes getting the second lock to fail).
A temporary file in /tmp might be on a local file system and pass
while the lock file is placed on NFS and fail with:
  setNativeLocks failed: Resource temporarily unavailable
Instead check for lock conflicts per path and cache the result.

Change-Id: I39c59bb240cd99ef0a0ec271243770ffd5df8a7d
Reviewed-by: David Faure <david.faure@kdab.com>
2015-12-11 17:59:52 +00:00
Juha Turunen
672f7dfdcd Fix a crash when calling QOpenGLTexture::setData with a null QImage.
Change-Id: Idf8ae00cff6929114b38dcb003c259c83a11dbaa
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-12-11 17:58:21 +00:00
Błażej Szczygieł
a094af0017 xcb: Use a placeholder QScreen when there are no outputs connected
If no screens are available, windows could disappear, could stop rendering
graphics, or the application could crash.  This is a real use case in several
scenarios: with x11vnc, when all monitors are physically disconnected from a
desktop machine, or in some cases even when the monitor sleeps.  Now when the
last screen is disconnected, it is transformed into a fake screen.  When a
physical screen appears, the fake QScreen is transformed into a representation
of the physical screen.  Every virtual desktop has its own fake screen, and
primary screens must belong to the primary virtual desktop. It fixes updating
screen geometry on temporarily disabled screens in the middle of the mode
switch.

Expected results: Windows don't disappear, the application doesn't
crash, and QMenu is displayed on the appropriate screen.

This reverts patch 51ada7734a

Change-Id: I6e8eb682b0c8425d08ffdaecbd4c6c7700c914b4
Task-number: QTBUG-42985
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-12-11 17:32:43 +00:00
Alexander Volkov
0c33a823c5 xcb: Don't cache the screen for a window
QXcbWindow::m_xcbScreen was introduced in 4e1b09fa8f
(Keep screen geometries from overlapping) to map the window
geometry for the right screen, because it wasn't possible to
rely on QPlatformWindow::screen().

But we don't need it since a705b4ec1f
(Introduce cross platform high-dpi scaling), because QGuiApplication
triggers GeometryChangeEvent right after processing WindowScreenChangedEvent.

So just use QPlatformWindow::screen() instead of cached m_xcbScreen.

m_xcbScreen was also used in d4bc56cb42
(Fix screen detection on configureNotify) to compare the new screen
after receiving ConfigureNotify to the correct old screen. Just send
WindowScreenChangedEvent event and leave making the comparison to
QGuiApplication.

Change-Id: Ibe717ae4bf4c40b0a04cd62fe2ecaee5df5f4060
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-12-11 14:37:14 +00:00
Oliver Wolff
fda85b6d57 winrt: Readd parameters to the pid-file's CreateFile2 call
Recent changes to the main file accidently removed the
parameter from the call.

Change-Id: I4cce48327d43d9ea3fe4fd82c2f5768aa4bc6d5c
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-12-11 12:58:36 +00:00
Friedemann Kleint
b6503d1795 QWidgetBackingStore::markDirty(): Clamp dirty region to window size.
Graphics effects may exceed the window size, causing platform
backing store operations to fail (see QWidgetPrivate::effectiveRectFor()).

Task-number: QTBUG-49785
Change-Id: Iff16da599397d19acb86010fe7023f3ce15b6d6f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-12-11 12:42:06 +00:00
Andy Shaw
6e14d63db0 Add explicit note about removeMappings() not disconnecting the signal
There can be a bit of confusion here regarding what removeMappings()
will do in this case so add an explicit note to be clearer.

Task-number: QTBUG-49499
Change-Id: Iabcf5cb2653f0b747727b2c92a244e95ec1836f8
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-11 09:41:14 +00:00
Andy Shaw
1440c13c8c Check if the file is writable even while QT_BOOTSTRAPPED
QConfFile::isWritable() has the extra effect that it will try and
create the path where the file should be if it does not already
exist. So this cannot be omitted as 'qmake -set' may be used in a
situation where the path does not yet exist.

Change-Id: I0113644259f78d090a0687c44cf60d400be9c859
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-11 09:41:05 +00:00
Maurice Kalinowski
cf6d671a11 winrt: Use Windows 10 features when available
OpenFileMappingFromApp has been added for Windows 10. Using it,
QSharedMemory autotests succeed without any failure.

Change-Id: I5a4fbec004f121f41909ae13f3db02c384810645
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-12-11 07:39:18 +00:00
Giuseppe D'Angelo
4a318a6182 QJsonObject::(const_)iterator: add pointer typedef
Otherwise they're unusable with std::algorithms or anything else
that requires iterator_traits.

Change-Id: Ia29c1e7c1778844e37d43eaa8aef2871afe3c991
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-11 00:43:33 +00:00
Tor Arne Vestbø
2e8ff4ba1b Fix broken QIOSContext setup due to missing 0-initialization of EAGLContext
Change-Id: Ia4dbb2e3b055a7899c4a3e02698c5776ea7f73ea
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-12-10 22:29:47 +00:00
Tor Arne Vestbø
56f6252e72 xcb: compare to previous state when sending geometry and expose events
By calculating the previous geometry and passing it on when calling
handleGeometryChange we can detect cases where setGeometry() on a
QWindow didn't result in the expected geometry. The new (actual)
geometry is delivered as a resize event.

This also allows us to only send expose events when the size of the
window has actually changed (instead of also sending when the window
has just moved).

Due to the async delivery of geometry changes on the xcb platform we
need to avoid using QWindowPrivate's cached state of the geometry, as
that will result in duplicate resize events when events are not flushed
in between two system resize events coming in with the same size.

Change-Id: I3d4abe4a1095dd96e6e354288d5b646c623c30dd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-12-10 17:27:00 +00:00
Giuseppe D'Angelo
40c927e733 XCB: prevent a fp division by zero
For certain devices vci->resolution is zero, which causes a SIGFPE
if FE_INVALID exceptions are enabled. Try to prevent that.

Task-number: QTBUG-42717
Change-Id: I388735f5dfb6218496787dbb74cf0c0f43cc928f
Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru>
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
2015-12-10 17:07:56 +00:00
Giuseppe D'Angelo
0d54b0f4dd QFileSystemModel: do not unwatch directories if removal fails
... otherwise we would not detect subsequent file/directories added
into the non-removed one.

Change-Id: I43018dfb9a9c6c0399190800da3f0d572ec5d8d8
Task-number: QTBUG-49307
Reviewed-by: David Faure <david.faure@kdab.com>
2015-12-10 17:07:48 +00:00
Liang Qi
f0c75bb050 QPlatformTheme: added TabButtonFont and GroupBoxTitleFont
Which is needed by Qt Labs Controls.

Change-Id: I2f91a1cbe8218170f894189b56f3fef77207eaec
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2015-12-10 17:06:50 +00:00
Rainer Keller
1641a9ae43 Remove additional copyright notice
Change-Id: I181579d755a79e2e0a26ff2de119d9642183a2ca
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
(cherry picked from commit 2766215c9e)
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-12-10 13:57:16 +00:00
Florian Bruhin
2223d4a368 doc: Remove wrong statement about cache filenames.
The cache actually generates paths like "http/data8/f/lr9un1so.d".

Change-Id: Ie564494a241c3d1c87b2f0f17b42bd0349948640
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
2015-12-10 13:42:37 +00:00
Florian Bruhin
ca3933f90d Add missing \since to QSslCipher QString overload.
This was added in 5.3 in 30d199a76c.

Change-Id: I35a209fcfe417cb14605c4db19a3d2e85b67ee49
Reviewed-by: Michał Dutkiewicz
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-12-10 13:42:31 +00:00
J-P Nurmi
b8922c35ba Register QPA Menu, Dialog & SysTray enums & flags
This allows QML Menu, Dialog & SystemTrayIcon to use the same enums
without having to duplicate them.

Change-Id: I1401583d3ae2ef07cdc795d2765fba07c9b30f2f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-12-09 19:00:03 +00:00
Edward Welbourne
ea8a92c9c9 Clarify what time-zone "transitions" are.
Change-Id: Idad5b841c3c693e2040ca606894187988615c9b0
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-09 12:55:32 +00:00
Maurice Kalinowski
0ea3d630b1 winrt: Store exit code in pid file
We have to call Exit() to successfully close an application as done in
25dcc90d79. Unfortunately Exit() always
sets the exit code to 1 and this cannot be changed programmatically.

Hence write the exit code into the pid file which is created when
launched via winrtrunner. winrtrunner then fetches the content and
passes the exit code to its callee. This implies that the pidFile is
not deleted by the app itself anymore.

Task-number: QTBUG-38654
Change-Id: Ib9b6ae4a0d61c9bf7e530e984aae3ad6204c39a0
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-09 12:41:27 +00:00
Timur Pocheptsov
7d2c87311e QProcessPrivate::startProcess - fix invalid encodedProgramName (OS X)
CFBundleCopyExecutableURL returns different URLs (can be absolute or relative)
for the same bundle (caching) - and this results in an
invalid encodedProgramName (in case we try to start the same process twice),
for example, if we start: QProcess p; p.start("nestedDir/nested.app")
twice, the second time we'll have an error trying to start something like
nestedDir/nested.app/_and_here_absolute_url.

Change-Id: I8ac42e20fe3b9fe8b80d5b5c663672e77d88269d
Task-number: QTBUG-49837
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
2015-12-09 12:29:13 +00:00
Giuseppe D'Angelo
b4d3f9bd82 Check for any existing file in XCOMPOSEFILE.
Before this change, it was checked if the path ends with "Compose", which was
an invalid assumption as the file can have any name (see [1])

This replaces the check with a check for any existing file (which wasn't
checked before).

[1] http://www.x.org/releases/X11R7.7/doc/man/man5/Compose.5.xhtml

Done-with: Florian Bruhin <git@the-compiler.org>
Task-number: QTBUG-41557
Change-Id: If4fb58d4c1ed695f2d611236abfe97964b548678
Reviewed-by: Gatis Paeglis <gatis.paeglis@theqtcompany.com>
2015-12-09 11:47:22 +00:00
Friedemann Kleint
893f2ade85 Fix debug operator for QRegion.
Use QDebugStateSaver, drop the multiline format, check for null, empty and
output rectangular regions as:

QRegion(0,0 252x188)

and complicated regions as:

QRegion(size=4, bounds=(0,0 278x262) - [(0,0 278x13), (0,13 13x188), (265,13 13x188), (0,201 278x61)])

Change-Id: I82b8f58af08f7128e6cf2c2c8b06c4684fc6a9c8
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-12-09 10:18:42 +00:00
Friedemann Kleint
5ac2b39133 Fix URL to "The Microsoft Windows User Experience".
Task-number: QTBUG-49799
Change-Id: Ie03ac06966ed97888c0a348a3f2195fd7cbd299a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-09 10:15:54 +00:00
Mitch Curtis
3414be909d Fix QAction::menuRole() documentation
Change-Id: I9299948ba99634ea92f8b5cd4405e814e86f6aa6
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-09 09:38:48 +00:00
Mitch Curtis
01fe8906f3 Fix QAction MenuRole documentation
Change-Id: Ib5e5353480b640f5bcc0e21682de168fadde78fc
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-09 09:38:45 +00:00
Laszlo Agocs
1b61390856 Reduce flushes with repaint() when GL-based compositing is active
Task-number: QTBUG-49655
Change-Id: I7a5d08f681a7d87709aac745154730764040e922
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-12-09 09:36:20 +00:00
Nico Vertriest
8f74fe1b66 Doc: Circumvented qdoc parsing by removing '!'
Qdoc gave warning "Cannot link this to anything"

Task-number: QTBUG-43810
Change-Id: Id903040ed7b2860a2ec64a52f7fbe8269c6927b0
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-09 09:36:17 +00:00
Liang Qi
b1f553b68e doc: fix the shortcut for QListWidget::itemActivated
Task-number: QTBUG-49805
Change-Id: Ia7317e9c6ad5b5f6c17ff1e197ec690ebc20da3d
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-09 09:36:11 +00:00
Maurice Kalinowski
7ee0415d27 Align signature with generic native socket engine
This allows to use readDatagram on WinRT like on
any other platform, ie using two arguments.

Fixes compilation in auto-tests.

Change-Id: I4a6e34dc72d2845faab9067ce67800d8b386c344
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-09 09:36:08 +00:00
Richard Moe Gustavsen
7bee5fa2ce iOS: filter edit menu actions depending on selection state
When showing an edit menu on iOS, UIKit will always populate
the menu with actions according to what the current first
responder supports. But it doesn't make sense to show all the
actions every time the menu opens, so introduce some filtering
depending on selection state.

Change-Id: I943a09928233a3a10de003fe15ed8fd8b6fc1e18
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-12-09 09:36:05 +00:00
Richard Moe Gustavsen
e98922bbde iOS: support edit action 'select'
Now that we don't populate the edit menu from qtquickcontrols
anymore (because of shortcut issues), report to UIKit that
we support select so that the action shows in the menu.

Change-Id: I92508da4e1789c361d778cc6c1c77c86308f4c73
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-12-09 09:36:02 +00:00
Giuseppe D'Angelo
c5e972eb87 QFileDialog: Call reject() on Key_Escape even when itemview has focus
Replace hide() call (present in itemViewKeyboardEvent since Qt 4.5)
by reject(). Add signal spy to existing test function.

QDialog doc states that reject() will always be called on Key_Escape.
hide() is not enough: it makes exec() terminate and return the proper
value, but the signals finished(int) and rejected() will not be sent.

Task-number: QTBUG-7690
Change-Id: Ica4ae2843574478c5b9a7672f871f3ef3f16f3c9
Done-with: Jan Blumschein <jan@jan-blumschein.de>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-09 09:36:00 +00:00
Mike Krus
52e994c8a3 Favor OpenGLES 3 on iOS if available
First tries OpenGLES 3 context since it’s strictly compatible with
OpenGLES 2. If it fails, then try 2.

This is required to use QOpenGLFramebufferObject::blitFramebuffer
without having to look at using an Apple-specific extension.

Change-Id: I01f8f058fa82e7f2c90d1b894ad36f3d3939c994
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-12-09 09:35:56 +00:00
Friedemann Kleint
f044b3cc67 QWinRTFontDatabase: Add "Arial" as alias for "Helvetica".
Otherwise, the first font from the list is used ("Algerian" or similar),
making the widgets/richtext/textedit example look bad.

Change-Id: Ia5bb8879f167fef7ad7e81611760ee042abf8da3
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-12-09 09:35:53 +00:00
Marc Mutz
6de49f4ab6 QString: where possible, re-use existing capacity in op(QChar/QL1S)
If the LHS is detached and has existing capacity that is large
enough to hold the RHS, re-use the memory instead of allocating
a new buffer and throwing away the old.

Change-Id: I53d42825da92c264c7301e8e771cba9fb35c321b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-08 23:48:12 +00:00
Kai Koehne
2baeeb4026 Win: Use native separators in QLibrary errors
Fixes output like

  plugin cannot be loaded for module "QtWebEngine": Cannot load library D:/dev/qt/5.6/msvc-2015-32/qtbase/qml/QtWebEngine/qtwebengineplugind.dll: The specified procedure could not be found.

Change-Id: I159113a6a1f40b924905da15267a42e5b627d56e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-08 08:14:48 +00:00
Thiago Macieira
bdd4ddd8fa QNetworkInterface: fix support for address labels on Linux interfaces
Commit 64a1448d87 (Qt 5.2) caused
QNetworkInterface to report address labels (a.k.a. interface aliases) as
separate interfaces. This is caused by the fact that glibc, uClibc and
MUSL copy the address label (netlink address attribute IFA_LABEL) to the
ifa_name field, which made QNetworkInterfaceManager think that it was an
interface it hadn't yet seen.

Address labels are the old way to add more than one IP address to an
interface on Linux, for example:
    ifconfig eth0:1 192.0.2.2

Those do not create a new interface, so the "eth0:1" label maps to the
same interface index as the parent interface. This has been deprecated
for 10 years, but there are still tools out there that add addresses in
this manner.

This commit restores behavior compatibility with Qt 4.2-5.1. The Qt
5.2-5.5 behavior is incorrect because it reports more than one interface
with the same index. On systems configured like the above, the
tst_QNetworkInterface::interfaceFromXXX test was failing.

Change-Id: I8de47ed6c7be4847b99bffff141c2d9de8cf7329
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-12-08 06:32:22 +00:00
Thiago Macieira
401507b348 Fix constructing a QSharedPointer<const> of a QEnableSharedFromThis type
It should compile, since the std::shared_ptr does.

[ChangeLog][QtCore][QSharedPointer] Fixed a problem that would cause a
compilation error when constructing a QSharedPointer of a const type
when the type derives from QEnableSharedFromThis.

Task-number: QTBUG-49748
Change-Id: I8de47ed6c7be4847b99bffff141c84f5e0b6bea8
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-08 06:32:20 +00:00
Thiago Macieira
7499e642e0 QVariant: retain duplicate keys when converting
Task-number: QTBUG-49520
Change-Id: I3e15a26e0e424169ac2bffff1417e3f4398c2277
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-12-08 06:32:18 +00:00
Friedemann Kleint
4ad8798de4 QPlatformWindow::initialGeometry(): Pass screen when scaling.
Otherwise, the window may up outside the display area when centering
on a secondary screen and the primary screen has a different scale factor.

Task-number: QTBUG-49803
Change-Id: I91ec7c5348722a90012f80a247e662e96bcbb391
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
2015-12-07 19:38:15 +00:00
Friedemann Kleint
60536d7421 WinRT: Prepend '.' to default file suffix.
IFileSavePicker::put_DefaultFileExtension() fails when the '.'
is missing, causing the QtWidgets-based dialog to show up (Windows 10).

Change-Id: Ifcb870431b792ffa8e4a608dec999225e8383fa9
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-07 19:37:37 +00:00
Friedemann Kleint
df053dc642 WinRT: Add RETURN_[]_IF_FAILED_WITH_ARGS macros.
Make it possible to pass arguments to the messages by
introducing variadic macro versions of RETURN_[]_IF_FAILED.

Change-Id: Iec27adb33d9d3211fdc299f07777fcdf33f08a93
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-07 19:37:33 +00:00
Friedemann Kleint
9744ca1085 Add QStyleHints::showIsMaximized().
Expose QPlatformIntegration::ShowIsMaximized similarly to
QPlatformIntegration::ShowIsFullScreen.

This allows for applications to adapt their UI to mobile/desktop
accordingly.

Change-Id: Ic14d16fde11d7d2740b2f4092ae12e88a2f522fd
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-12-07 18:07:41 +00:00
Martin Klapetek
891c98ebd6 Don't treat "/etc/localtime" in TZ env var as a valid timezone id
On some Debian distros, the TZ environment variable can be set to
":/etc/localtime", which libc defines as "default value". If this is
set, the current QTimeZone parsing code will return "/etc/localtime"
as the system timezone id, which is clearly wrong.

So in that case, just unset the ianaId variable and let the other
blocks look for the timezone.

Change-Id: I3f5795d0a05f4974a60556387a07a1e2e1e7aa30
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-07 18:03:17 +00:00
Olivier Goffart
9dde61f4b3 Optimize qt_findAtNxFile by reducing the amount of allocations
Change-Id: I94a2b40933f9469f509a4cc54d68138696704ba2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-12-07 16:56:37 +00:00
Olivier Goffart
420b4dbece Android: Implement QInputMethod::keyboardRectangle
We can use getWindowVisibleDisplayFrame to know the height on the
keyboard, and we can use getLocationOnScreen to find out how much
the view is scrolled. Since onPreDraw is always called when the
view is scrolled or when the keyboard appears or disapear, we can
call the native functions from there.

This is not working for floating keyboards.

[ChangeLog][Android] Implemented QInputMethod::keyboardRectangle

Task-number: QTBUG-40731
Change-Id: I7848eb34fece410b29a06bf0bbb2313112fffa68
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2015-12-07 16:56:25 +00:00
Olivier Goffart
7908da98f0 Android: Fix QInputMethod's visible property
There are many cases in which finishComposingText is called and it
does not mean the keyboard will be hidden.
Add a check that there are space reserved for the keyboard before
closing it.

This is not helping with floating keyboards, but it's already better.

[ChangeLog] Made QInputMethod's visible more accurate

Task-number: QTBUG-42444
Change-Id: I4d706f1ea5ba2f0f6d3ec1921139317bc4f8dafb
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2015-12-07 16:56:14 +00:00
Friedemann Kleint
270aa5b58d WinRT: Set TemporaryError in QNativeSocketEngine::accept() when no connections are pending.
This suppresses the emission of QTcpServer::acceptError() from
QTcpServerPrivate::readNotification().

Task-number: QTBUG-49776
Change-Id: Icfb686d44c0a396ae2bf5867bd31a91232ef3e3c
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-12-07 11:47:26 +00:00
Marc Mutz
80ae3baed0 Q_UNIMPLEMENTED: remove explicit file, line and funcinfo information
This information is already registered by the QMessageLogger ctor.

Change-Id: Iac378777675f00ad5d07b938605484b1466aa5c5
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-07 11:29:28 +00:00
Allan Sandfeld Jensen
a76f289714 Initialize function tables without QGuiApplication
QImage can be used without QGuiApplication, but wihout QGuiApplication
the accelerated methods would not be used.

This patch changes the initialization of the QtGui function tables to
happen in static object constructors on QtGui load, instead of in
the QGuiApplication init.

Change-Id: Ib58982fbc50fd79122352d021d93a3c99aca5043
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-12-07 10:57:57 +00:00
Rainer Keller
2766215c9e Remove additional copyright notice
Change-Id: I181579d755a79e2e0a26ff2de119d9642183a2ca
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-07 10:51:45 +00:00
Sérgio Martins
4b365cb446 Fix typo in QObject::disconnect() documentation
Change-Id: I65f95c7f22399b9fea65c44b971afc7efbb73d64
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-12-07 10:23:49 +00:00
BogDan Vatra
361e24b79e Fix extract style on Android 6.0
A few things were changed in Android 6.0

Task-number: QTBUG-49323
Change-Id: I3112d885881dce541d5c4f3a1561f6c34d75e319
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2015-12-04 15:10:57 +00:00
Jan Arve Saether
753ebd5ba0 Respond with a sound for certain message boxes on windows
This was a regression (it worked in 4.8) that was probably introduced
by the refactoring of the accessibility framework in Qt 5.

Now, QPlatformAccessibility::notifyAccessibilityUpdate() is called
regardless of isActive(), so its the responsibility of each
implementation of notifyAccessibilityUpdate() to check for isActive()
where it matters.

Task-number: QTBUG-33303
Change-Id: I0d18f8c1890ef679460408b05e704712b886bf7c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
2015-12-04 14:38:34 +00:00
Friedemann Kleint
dc0c68262e WinRT/QMessageBox: Default to QtWidgets-based dialog for rich text.
Change-Id: I071810cc5bc2773df9f6202c4547379d3ecd8b5c
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-12-04 13:18:31 +00:00
Tim Blechmann
98f326e9b8 windows: enable drop for embedded windows
when embedding a QWindow into a native win32 window hierarchy, dragndrop
is not working, as RegisterDragDrop is not called.
the parent HWND is wrapped via QWindow::fromWinId(), which is topLevel, but
a Qt::ForeignWindow. it's children are not topLevel.

we therefore add a conditon to call RegisterDragDrop on non-topLevel windows
whose parent is a Qt::ForeignWindow

Change-Id: Id2bfa1130857c21566feae9cb10b62b648d86a72
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-04 10:18:00 +00:00
Allan Sandfeld Jensen
c04e7dead8 QImage pixelColor and setPixelColor must use unpremultiplied QColor
QColor always uses unpremultiplied alpha, but the new QImage methods
were based on the QRgb versions which might be either. This patches fixes
the two new methods so they treat QColor alpha correctly.

Change-Id: I78a5b875ad4e78ad7fde3b811c6187482b4f6d15
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-12-04 09:54:39 +00:00
Thiago Macieira
2398e225ab Auto-detect whether 64-bit std::atomic really works
The C++ standard says it must, but some badly-configured toolchains seem
to be lacking support.

In particular, for some 32-bit platforms without native support for
them, GCC implements 64-bit atomics via out-of-line functions in
libatomic. If that library is missing... well, then std::atomic 64-bit
doesn't work and we mustn't try to use it.

This was found when trying to compile Qt 5.6 for MIPS 32-bit:

Linking library libQt5Core.so.5.6.0
.obj/qsimd.o: In function `std::__atomic_base<unsigned long long>::load(std::memory_order) const':
/opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/include/c++/4.9.1/bits/atomic_base.h:500: undefined reference to `__atomic_load_8'
.obj/qsimd.o: In function `std::__atomic_base<unsigned long long>::store(unsigned long long, std::memory_order)':
/opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/include/c++/4.9.1/bits/atomic_base.h:478: undefined reference to `__atomic_store_8'

Yocto bug report: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8274

Change-Id: I42e7ef1a481840699a8dffff140224d6614e5c36
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 3d7586b760)
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
2015-12-04 05:20:26 +00:00
Nico Vertriest
68a2f62065 Doc: Added missing semicolons to snippet
Task-number: QTBUG-34594
Change-Id: I3eeff4494f5b27c5b34b911008b1a87abe032868
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-03 15:17:21 +00:00
Nico Vertriest
ed59376239 Doc: Clarified QTextTable::mergeCells() documentation
Task-number: QTBUG-37928
Change-Id: I8d3ae3b540f9483d1e93d4c8135f777dea13f967
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-03 15:16:57 +00:00
Friedemann Kleint
d508c6697b Freetype font engine: Restrict bold depending on OS2 weight class.
Limit setting bold to weights <=750.

Task-number: QTBUG-48922
Change-Id: Id38b636698e58b0686dda9711ee1b3426a3b45b9
Reviewed-by: Gunnar Roth <gunnar.roth@gmx.net>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-03 15:03:33 +00:00
Samuel Nevala
ba40d1a872 Combine environment variable implementations
Environment variable storage implementations on Windows Runtime and CE are
very similar. For better maintainability have just one implementation.

Change-Id: I12ec38f7bde3fcc0bcc56face88d5f19cf3b3504
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-12-03 14:33:18 +00:00
Nico Vertriest
1c720be3fb Doc: corrected statement about QByteArray::clear
Task-number: QTBUG-45096
Change-Id: I30a49044690c2f0ef5bf6ee80712e1395c60ac77
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-03 13:50:14 +00:00
Nico Vertriest
8724dc5eac Doc: added doc for missing stylesheet outline properties.
Task-number: QTBUG-26673
Change-Id: Iaf13921515981c09a84822e66fd1ed21d73779f6
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-03 13:50:00 +00:00
Nico Vertriest
b07c10c5de Revert "Doc: Added info about sorting in QItemSelectionModel::selectedIndexes"
This reverts commit d0f57439d0.
This commit had introduced a wrong statement about the sorting.

Change-Id: I2f6ea6f7cfb318bca7bd44c686956ba135b65b20
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-12-03 13:49:43 +00:00
Friedemann Kleint
afaa7351c0 QStandardPaths::standardLocations()/WinRT: Return empty lists.
Previously, lists containing one empty string were returned for the
unimplemented functions.

Change-Id: Ia64b53325420e32076f2bacf22c48885d7121df0
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2015-12-03 10:48:25 +00:00
Laszlo Agocs
14e138652d eglfs: Fix the logical dpi calculation for some devices
KMS and backends using the default logicalDpi() implementation
(EGLDevice for instance) did not correctly check if the physical width
and height are greater than zero. The result is a NaN dpi on systems
where the drivers report a zero size. This in turn breaks font
rendering and various other things.

isValid() is changed to !isEmpty(). This way we check for width and
height > 0 instead of >= 0.

Change-Id: I8cdcf93a116379ae33c65599ad792a3b712518a3
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
2015-12-02 20:27:31 +00:00
Eskil Abrahamsen Blomfeldt
bf0af8b5a2 Round advances if subpixel position not supported
Due to kerning and other OpenType features, it's possible
that the advances from the shaping process are fractional, but
this gives uneven glyph positioning for font engines that don't
support subpixel positioning (since the glyph will not match the
expected position, some gaps will look too large and some
too small). To match how e.g. GDI renders this, we round the
advances before setting the glyph positions for engines that
do not support subpixel positions.

[ChangeLog][Windows] Fixed uneven kerning for some fonts.

Task-number: QTBUG-48546
Change-Id: Ic00dc402abf7149aab6bf9b05b42827b805c1a15
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-12-02 18:25:45 +00:00
Eskil Abrahamsen Blomfeldt
a2ef3479b8 Differ between vertical and no hinting on Windows
Symmetric text rendering seems to be the equivalent to no hinting
at all since it does subpixel antialiasing in both horizontal and vertical
directions. Let people select non-symmetric, natural rendering as well,
by setting vertical hinting on the font. This is the mode used for many
UI elements in newer versions of Windows (like the title bar of windows
etc.)

[ChangeLog][Windows] Added differentiation between vertical hinting and
no hinting in DirectWrite font engine.

Task-number: QTBUG-48546
Change-Id: I2f75ae2d16fdf26706587d92da43daf29afbbcf2
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-02 18:25:37 +00:00
Eskil Abrahamsen Blomfeldt
96cc7fe5c2 DirectWrite: Inherit synthesized properties for fallback fonts
When a fallback font is selected, we need to copy out the
properties from the main font which can be synthesized
by the font engine. In particular, this is weight > normal,
and oblique style.

This is the DirectWrite equivalent of
a856c4a902.

Change-Id: I5d1215c66a433c8a8029c06e7a3dcee287f3f76f
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-12-02 18:25:28 +00:00
Christian Strømme
d6b9ae201b Android: Add function to check permissions at run-time.
This is convenient when we you want to check which permissions the
application has been granted at run-time. On Android device running
Android 6.0 or newer the permissions might be changed by the user,
so there are cases where this will be needed to determine what
APIs are available. On older devices or if the application is built
for an older SDK version, the old behavior is used, that is, the
permissions from the manifest is the permissions the application has.

Change-Id: I17ad588b35b26dd7ab26fa4b749764c1602c6854
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-12-02 17:59:34 +00:00
Jake Petroules
4f1b6749c3 Fix possible null pointer dereferences.
This follows up 130c2baa93.

Change-Id: I2f6c9b4f995af427cec9a2162b782039debf8564
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-12-02 16:32:12 +00:00
Morten Johan Sørvig
ccc6d545c2 Update QHighDpiScaling internal documentation
Expand section on coordinate systems. Document the
AA_EnableHighDpiScaling / AA_DisableHighDpiScaling
flags added in commit add58ed. Add some notes for
platform plugin work.

Change-Id: Ie6fe2d818a88ba784c0ee675fabbd3fc04d64bf1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
2015-12-02 15:56:20 +00:00
Matt Hoosier
db06745fe2 Fix overflow-checking additions and multiplication on MinGW
Intrinsics headers are associated with compilers, not OS's. This
change fixes a broken MinGW build triggered by
29bc68cf16.

Change-Id: Ib9e4ea3e25bf49d38a754a246b9433bc078bbb18
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-12-02 15:41:52 +00:00
Thiago Macieira
8d7d481772 doc: add a note about cmd.exe and the QProcess string splitting/joining
cmd.exe uses a different set of characters to split arguments on, which
is not compatible with CommandLineToArgvW().

See https://technet.microsoft.com/en-us/library/bb490880.aspx.

Task-number: QTBUG-49641
Change-Id: Ic90fe6b1cbe84978a02fffff141b8f961a43ad28
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-12-02 15:38:38 +00:00
Friedemann Kleint
1b6f705ca7 Windows: Load DirectWrite dynamically.
DirectWrite is not supported on Windows XP.

Task-number: QTBUG-49711
Change-Id: Ie1df6250814226d53fe4fb3a1c6bd024f6018796
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-12-02 15:13:57 +00:00
Friedemann Kleint
5f00d18ad3 Windows QPA: Fix window state transition from minimized to normal.
Use SW_SHOWNORMAL instead SW_SHOWNOACTIVATE as a parameter to
ShowWindow() to enforce the window to be restored to normal state,
even if the state before minimized was maximized.

Task-number: QTBUG-48449
Change-Id: I9436623b1495f574a72050e50e8b31bfc83ced5c
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
2015-12-01 12:48:37 +00:00
Laszlo Agocs
5d63e325fa Avoid dynamic switching between backingstore composition paths
Make it opt-in because doing a normal backingstore flush does not seem to
work on Cocoa once we use OpenGL on the window. Windows and Linux should
be able to cope with this.

This means that platforms outside Windows and Linux will continue to have
the problem of having GL-based compositing enabled for ever after having a
QOpenGL/QuickWidget shown in the window once, but the issue is most
prevalent on Windows anyway, OS X machines can deal with OpenGL better
in general.

Task-number: QTBUG-49172
Change-Id: I30fd2efa95cc4f6eed9cf7f7613d0750355c775c
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-12-01 12:44:34 +00:00
Jan Arve Saether
b0ec05f27b Rename ANGLE libs in order to not conflict with other ANGLE libs
This is needed to be able to use Qt (with dynamic ANGLE) in a plugin
while the host runs a different version of Qt (and ANGLE).

In addition to changing the LIBEGL_NAME and LIBGLESV2_NAME variables
you also need to update the value of the LIBRARY definition in the
.def files for ANGLE:

    qtbase/src/3rdparty/angle/src/libGLESv2/libGLESv2[d?].def
    qtbase/src/3rdparty/angle/src/libGLESv2/libEGL[d?].def

Task-number: QTBUG-48431
Change-Id: Idd00d039ba3e20cc0ec7496bee36ed1c90383b0d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-12-01 12:28:02 +00:00
Albert Astals Cid
5af6efc911 Call setLayoutDirection() in QGuiApplicationPrivate::init() if not called before
Without this patch, setLayoutDirection() is called only by LanguageChange
event handling, which triggers only upon installing, removing, or clearing
QTranslators.

This caused two problems:
 * If the QTranslators are installed in a Q_COREAPP_STARTUP_FUNCTION the
   event is lost since the QGuiApplication is still not there.
 * If the application doesn't use QTranslators at all, i.e., uses gettext,
   some other translation system, or because it has no messages at all,
   setLayoutDirection() is never called and the layout direction is wrong.

The initialization of layout_direction has been changed from
Qt::LeftToRight to Qt::LayoutDirectionAuto but that has no
impact since QGuiApplication::layoutDirection will make sure
Qt::LeftToRight is returned if layout_direction has still not been set.

Change-Id: Ic60fe9a318c8afe1c503e3796ec54cfc687e7164
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-11-30 19:05:37 +00:00
Morten Johan Sørvig
e931ad7110 Don't use QT_AUTO_SCREEN_SCALE_FACTOR
With the addition of Qt::AA_EnableHighDpiScaling testing
of the env. variable only is no longer sufficient.

Use QHighDpiScaling::isActive() instead, which is
available at the time loadAndroidStyle is called.

Change-Id: Iaa6bbb5a04a71fa3bd68f3bdc8c8bcdfb5d1778f
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2015-11-30 13:10:42 +00:00
Lars Knoll
e808c5fa60 Don't use QList<QPair>
Change it to use a QVector instead.

Change-Id: Ie1749f326ba1165db48c0eb8763eb738672c7afd
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-11-30 12:22:21 +00:00
Lars Knoll
ca14600965 Use natural comparison also for the file types
If we want to sort according to file types, we're also
sorting user visible strings. For that we can also use the
natural comparison collator, as file types should be case
insensitive, and won't contain numbers. And even if they do
a natual sorting will make it easier for the end user to find
what they are looking for.

Change-Id: Ie1d7d0af041a08be0f0d1a4eeb2eae9be885ffc7
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-11-30 12:21:58 +00:00
Lars Knoll
197da3d220 Use QCollator for sorting in the filesystem model
The old code was extremely inefficient, and QCollator
can provide the same functionality in a much better
and faster way.

Task-number: QTBUG-30902
Change-Id: Iaf5dbe587d9a6ebca26885259fdee74a29d3c84f
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-30 12:21:54 +00:00
Jędrzej Nowacki
2e00500b9f Fix conversion QVariant(QColor) to QString.
QVariant was using QColor::name() to convert a color to string, which by
default loses alpha value. The patch is fixing the problem by always
including the alpha value in the string when required.

[ChangeLog][Core][Variant] QVariant(QColor)::toString() uses
QColor::HexArgb format when the alpha component is different from 1.

Task-number: QTBUG-37851
Change-Id: I887460c1ea151180ba99d64dd873ba9d6e2268f2
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-11-30 12:10:49 +00:00
Topi Reinio
10379e48f1 Doc: Omit default argument in describing a function call
QKeySequence::PortableText is the default value for argument passed
to QKeySequence::toString(), and it doesn't need to be mentioned
specifically in description for Qt::AA_MacDontSwapCtrlAndMeta enum
value.

Dropping the parameter shortens the text string, allows browser to
better wrap the table text, and gets rid of the automatic horizontal
scrollbar in online style. This improves readability for the entire
table.

Change-Id: I7051f5415a7a100b8c76f23b06b6cb9a2b0699ef
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
2015-11-30 11:55:44 +00:00
Allan Sandfeld Jensen
eff8fb0704 Enable AArch64 versions of ARGB32 NEON drawhelpers
Fix the ARGB32 NEON-optimized drawhelpers so they also build on AArch64.

The RGB16 NEON-drawhelpers are not converted as they use more assembly.

Change-Id: I8b75fadf5bad74360a2ab6aec9a6bf50df80c1b9
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-11-30 11:06:45 +00:00
Allan Sandfeld Jensen
833341e301 Detect alpha8 as having alpha-pixels
Change-Id: I09025da7e3df84b6092295ec1a02698bd7b24bed
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-11-30 11:00:44 +00:00
Nico Vertriest
9b23e36bbd Doc: improvement in if condition about inserting item in list
Task-number: QTBUG-41708
Change-Id: Ibbb115a8ad81f7fba0ce162ae131d4843b19c188
Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
2015-11-30 09:10:17 +00:00
Nico Vertriest
949ed98b2b Doc: added QQuickItem also uses UngrabMouse
Task-number: QTBUG-37311
Change-Id: I8beac262d92ddb16c225da65aa8a3f80da59074f
Reviewed-by: Michael Brasser <michael.brasser@live.com>
2015-11-30 09:10:09 +00:00
Lars Knoll
63a5b3b09d Remove a reference to Mac OS X 10.4
It's been a while since we stopped supporting that version :)

Change-Id: I2fa4900945551024ac920c36c47d20b47aee50c0
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
2015-11-30 08:22:42 +00:00
Lars Knoll
9e5133f4cc Document platform limitations for QCollator::ignorePunctuation
OS X and iOS do have a flag for this in their API, but it does
not seem to work. We can't support this on Linux without ICU.

Change-Id: I81613ad425cb054597f23fac112be665f8d958b6
Task-number: QTBUG-41978
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
2015-11-30 08:22:38 +00:00
Ilija Ristevski
6302fb07e7 QTextOdfWriter: Added support for hyperlinks.
Hyperlink added in QTextDocument becomes "<span>" tag after exporting
the document to ODF with QTextDocumentWriter. Fixed by adding "<a>" tag
around it with attribute "href" pointing to hyperlink location.

Task-number: QTBUG-48853
Change-Id: I2bd689a88c9d0a5b14369777718b9cb36e4cfa19
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-30 02:24:32 +00:00
Marc Mutz
aab21bce86 QDnsLookup: fix grammar in a user-visible string
Change-Id: I6bda83c750d2e2c0a2325aae259836bb96d92a11
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-11-28 23:41:39 +00:00
Marc Mutz
9f591b3b6c QVector: prevent resize() from shedding capacity
...even if reserve() hasn't been called before.

[ChangeLog][QtCore][QVector] resize() will no longer shrink the
capacity. That means resize(0) now reliably preserves capacity().

Task-number: QTBUG-39293
Done-with: Robin Burchell <robin.burchell@viroteck.net>
Change-Id: Ie7e4e597126832990b6cfb83bba875c3963b143e
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-28 21:34:23 +00:00
Daniel Molkentin
4efa50a5e3 QNAM Fix error message
The code path is called for up- and downloads, yet the error
message talks about "Error downloading...".

Make this "Error transferring..." for a more neutral statement.

Change-Id: Ifbca6a95058042b195cdbeec339ef27a231491b2
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-11-28 20:43:46 +00:00
Lars Knoll
61cefb2f7a De-inline QFileSystemModel::fileInfo() and implement it efficiently
De-inline the method, and return the file info that's already being
cached by the model.

This is ok to do in a minor release, as apps compiled against an older
version of Qt will simply continue to use the less efficient
implementation.

Change-Id: I164c7961a8cf97447638af316512326442767dd8
Task-number: QTBUG-30902
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-11-28 16:38:32 +00:00
Marc Mutz
678a4273a3 QtBase: combine adjacent qDebug()/qCritical() lines
For qDebug() and qWarning(), this is just an optimization.
For qCritical(), which can be fatal, the old code was just wrong.

Change-Id: I6d8ab1d7531d766cd41b49569dc0fd4420ecab8b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-28 16:34:32 +00:00
Marc Mutz
40a8302115 QtBase: remove explicit function info from qWarning() etc
This information is already registered by the QMessageLogger ctor.

Where, by dropping the << Q_FUNC_INFO in ostream-style qDebug(), only
a string literal remained, converted to printf-style qDebug() on the
go.

Change-Id: I3f261c98fd7bcfa1fead381a75a82713bb75e6f3
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-28 16:34:26 +00:00
Friedemann Kleint
a4ecd5f1b3 Windows: Open GL blacklist - Disable rotation for Intel HD Graphics 4000 / 5500.
The driver causes crashes when switching orientation in full screen mode.

Task-number: QTBUG-49541
Change-Id: I8293d4b2f2981fa627654d06894a74c922304ac3
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-11-27 22:50:49 +00:00
Friedemann Kleint
4eea99788b Fix closing a QMenu by pressing Alt.
In QMenuPrivate::hideMenu(), delay clearing of 'causedPopup.widget'
to after the QMenu::close() call, so that it is still accessible
in QMenu::hideEvent() which calls QMenuBarPrivate::setCurrentAction(0)
if the caused widget is a QMenuBar.

Task-number: QTBUG-47377
Task-number: QTBUG-49592
Change-Id: Idbda48e918dae799afea84068a60d7383d7b4971
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-11-27 22:50:33 +00:00
Friedemann Kleint
fb69a09a24 QWidget::mapTo/FromGlobal(): Avoid calling QWindow helpers until shown.
The platform window geometry can be misleading until it has
been properly positioned and
QWindowPrivate::resizeEventPending has been cleared.

Task-number: QTBUG-49588
Task-number: QTBUG-48396
Change-Id: Ie065f62478fc8522a9ad51391bb897510afa5aad
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-11-27 22:50:17 +00:00
Friedemann Kleint
b4c8e15174 Windows Open GL blacklist: Introduce keyword "disable_rotation".
Add a flag to disable rotation to the Renderers enumeration of
QWindowsOpenGLTester triggered by the keyword "disable_rotation".
Specifying this keyword forces the application to landscape mode
for Desktop GL. It is intended for drivers that have issues with rotation.

Task-number: QTBUG-49541
Change-Id: I0f0bb7415c59e98648be09b34a59dd201d52b211
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-11-27 22:50:05 +00:00
Friedemann Kleint
e5ca416e2f Windows QPA: Add API for setting the application orientation preference.
Dynamically load the Win32 API functions for setting the rotation
preference and map this to static functions taking a
Qt::ScreenOrientation in QWindowsScreen.

Task-number: QTBUG-49541
Change-Id: I1c81cf6274d79a023a2ee755dd7c085ffd7cc015
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-11-27 22:49:59 +00:00
Liang Qi
37a55e8840 Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6 2015-11-27 19:24:34 +00:00
Friedemann Kleint
c06a39f6d2 winrt: Make error messages of QNativeSocketEngine more verbose.
Output function, object name and class of the socket. Example:

qt.winrtrunner.app: handleReadyRead(): Could not read into socket stream buffer ("QTcpServer:40000"/QTcpServer). (A method was called at an unexpected time.)

Change-Id: Ic074c2c3a01221bd77dae0715db912e830f21435
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-11-27 17:21:31 +00:00
Joni Poikelin
28beaf63cd Do not try to connect to null object if bearer plugin is missing
Warning about connecting to null object was printed when bearer plugin
is missing when bearer management feature is enabled.

Change-Id: Iac33081c5f301862c066eb69ec05ff6d95775c09
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
2015-11-27 10:54:55 +00:00
Liang Qi
8c57e8c012 Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts:
	src/network/socket/qnativesocketengine_p.h
	src/network/ssl/qsslsocket_mac.cpp
	src/network/ssl/qsslsocket_mac_p.h
	src/widgets/kernel/qwidget.cpp

Change-Id: I39592cb37d710dfaf8640769ba3c1b637927d7f4
2015-11-27 08:35:45 +01:00
Laszlo Agocs
b13801fd55 Avoid pulling in X11 headers in brcm backend
In some configurations we may end up using Mesa's EGL headers instead
of the Broadcom ones. Make this work by setting the usual define to
prevent including Xlib headers that then conflict with all sorts of
things in QtCore.

Change-Id: I4970553428e5b0e81bd76694980f3b6b194ae4c2
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
2015-11-26 17:35:56 +00:00
Allan Sandfeld Jensen
7cbbca5860 Add AArch64 ASM to qimage_neon.cpp
Since AArch64 NEON assembly is different from Arm32 NEON we need to
write a separate version.

Assembly is used over intrinsics as the intrinsics have trouble
efficiently using the vstX and vldX instructions.

Change-Id: I5b67fc87acb2433b503e658099b742d57a9cff18
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
2015-11-26 16:46:06 +00:00
Robin Burchell
4a4b17805c Fix QCOMPARE with enum classes.
As these are strongly typed, they won't implicitly convert to int, so make sure
to cast explicitly.

(cherry picked from commit 9626baaea9, auto test
is not included)
Task-number: QTBUG-49597
Change-Id: I29c4331a9b0c61f2e60c2bcab5a99f65daa7060f
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-26 16:00:30 +00:00
Volker Krause
45470e71bc Remove O(n^2) behavior in fallbacksForFamily().
Speeds up application startup by a few percent, even with just a normal
amount of fonts installed.

Change-Id: I4c3d87119ddbc53e66166f21cb72946cdf7e4a41
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-11-26 15:52:07 +00:00
Ilya Kotov
acc3df2c4e Send QEvent::Tooltip to QSystemTrayIcon
QSystemTrayIcon's window should send QEvent::ToolTip to QSystemTrayIcon
main class under X11. This patch fixes regression inroduced in Qt 5.0.

Change-Id: I81f6d85e13f492e5e7d13dacc44185a511e5085d
Task-number: QTBUG-46130
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-11-26 15:48:34 +00:00
Allan Sandfeld Jensen
07fdfa5598 Detect NEON on AArch64
The __ARM_NEON is the standard define for NEON instructions support
__ARM_NEON__ is only legacy, and specifically not defined in
AArch64 builds, which causes us not to detect NEON support there.

The NEON assembler files doesn't build with AArch64, so the NEON
drawhelper methods must be excluded for now.

Change-Id: Ie32f855bde94ee7efd8a8ddb7766c931778e729b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-26 15:40:41 +00:00
Nicolas Capens
7944706857 Fix potential division by zero.
In a Chrome Remote Desktop session the htotal and/or vtotal timings
can be zero and lead to a SIGFPE exception.

Task-number: QTBUG-49322
Change-Id: Id530335cc760d1938ed888ad095427fcf32c651d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Nicolas Capens <nicolas.capens@gmail.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@theqtcompany.com>
2015-11-26 15:37:45 +00:00
Laszlo Agocs
c83eefff97 Remove incorrect assertion from the backingstore
The ifdef gave an impression of the code path being hit only when
texture-backed widgets are present and OpenGL-based compositing is
active. This is false. Asserting on having a context current is
wrong (as shown by autotests on the 5.6 branch).

Change-Id: I2539f0aac75b26597f49f63edcd9580428be79b7
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-11-26 05:50:14 +00:00
Tor Arne Vestbø
980f8aed32 iOS: Add support for delivering touch pressure on iPhone 6s/6s+ devices
As 3D touch can be disabled/enabled at runtime on those devices, we need
to watch for changes to the relevant settings and update the touch device
capabilities that we report to the user.

Note that iOS will deliver touchesBegan with a touch force of 0, which
we will reflect/propagate as a 0 pressure, but there is no clear
alternative, as we don't want to wait for a touchedMoved before
sending a touch press event to Qt, just to have a valid pressure.

Change-Id: I47fb8a9f98ab3244e16a337bbfcf1fe24e4c7aa2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-11-26 02:45:57 +00:00
Allan Sandfeld Jensen
9b28fd5bfc Fix inplaceRgbConversion test on non-x86
We test that inline conversion between same image depths always succeed
inline, but that requires that any direct conversions exists both in
non-inline and inline versions.

This patch adds a non-sse2 inline conversion from ARGB32 to ARGB32PM
which was missing.

Change-Id: I71937cd4b77fb41fe2064da937f6dcbf2a6534e6
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-11-26 02:43:21 +00:00
Friedemann Kleint
9c430bc4c9 QSignalSpy: Improve warning about unregistered parameter types.
Don't know how to handle 'hint', use qRegisterMetaType to register it.

becomes:

QSignalSpy: Unable to handle parameter 'hint' of type 'QAbstractItemModel::LayoutChangeHint' of method 'layoutChanged', use qRegisterMetaType to register it.

Task-number: QTBUG-49623
Change-Id: I5020bb5b6f4ba87438d0f862279bed1ceb203d12
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-11-25 20:49:42 +00:00
J-P Nurmi
d06d7413d5 Fix QTextLine::cursorToX()
0e99f3c broke tst_qquicktextinput::horizontalAlignment_RightToLeft()
and tst_qquicktextedit::hAlign_RightToLeft(). This fix was proposed
by Konstantin.

Change-Id: I602b7301d415f266224ae2c1ffd81244e9565862
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-25 20:41:12 +00:00
Edward Welbourne
2277e3b873 Proof-reading fixes to QCoreApplication documentation.
Things I noticed while reading - so I fixed them.

Change-Id: I48f6f2eef7ac3cf901e2f1305c503fb18f5ab2ae
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-11-25 13:14:14 +00:00
Samuel Gaist
68d100692b Doc: added sample to QFileOpenEvent class details
This sample will help user needing to react on QFileOpenEvent get
started faster.

Change-Id: I7def292894fc39d803f70cbf0453f6791b7aea15
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2015-11-24 23:46:12 +00:00
Laszlo Agocs
5c7f000cd4 Reduce the number of paint events for QOpenGLWidget
Changes to other widgets in the window, especially special cases like
moving dock widgets around, trigger an unfortunately high number of
paint events and calls to paintGL(). Let's try to avoid this.

There is no need to send out a paint event to a texture-backed widget
when it was not explicitly dirtied. Overlaps won't matter since such
widgets are not part of the backingstore. Everything else has to work
like ordinary widgets, though, it is only the QPaintEvent sending we
can optimize away, nothing else.

Task-number: QTBUG-49466
Change-Id: I8ef294ba0a6c305d0002a80e85c06db2c2501cf8
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2015-11-24 19:28:32 +00:00
Oliver Wolff
c7251e7dcd Revert "Fix deadlock when setting environment variables."
This reverts commit 5b62a5e7aa.

This commit is reverted due to two reasons:
1) It was written incorrectly and does not work as is. The
   ifdefs should be ifndefs. In its current state, it does
   the exact opposite of what it is supposed to be doing.
2) There is another environment access inside qsimd.cpp
   (which checks QT_NO_CPU_FEATURE). This access causes the
   app to hang.

All in all that approach is not sustainable as we might get
bitten by environment access again and again. Instead we should
use another environment container or use a recursive mutex for
WinRT and Windows CE.

Task-number: QTBUG-49529
Change-Id: Iaca76404dc1023551a7c25489a609681135765fd
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
2015-11-24 15:12:00 +00:00
Tor Arne Vestbø
f30b75e569 xcb: Don't assume creating a window will result in ConfigureNotify event
We assumed that creating a window would always result in a configure
notify event, so we delayed sending the initial expose event until
receiving the configure notify.

That strategy fails in cases where the window does not need a reconfigure
after being created, such as when not running a window manager, or when
creating child windows. In those cases the window is just mapped, and
we ended up never sending an expose event.

The problem was masked by sometimes receiving an explicit expose event
from X, just after the mapped notification, which we then sent without
waiting for configure. Unfortunately we can't rely on this behavior
and need to remove the deferred expose event logic, so that we always
ensure that at least one expose event is sent to Qt.

Change-Id: I702be7f24de2a1e89c085fb6bd95bb8ff7792a27
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2015-11-24 14:49:15 +00:00
Maurice Kalinowski
4fd1e5f40c winrt: Fix text rendering
This is a partial revert of aecf3006bd.

The DPI needs to be set inside the constructor to have the text
rendering initialize properly. Landscape orientation fix is still valid
and the dpi change was unrelated to resolve QTBUG-49470.

Task-number: QTBUG-49610
Task-number: QTBUG-49470
Change-Id: I928b8d291b65cd744731c009917804b96253c276
Reviewed-by: Samuel Nevala <samuel.nevala@intopalo.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-11-24 14:46:44 +00:00
Joni Poikelin
e4d1bf9829 Fix crash in QFileDialog::iconProvider() with native dialogs
Task-number: QTBUG-49600
Change-Id: Ied28c0e7efa6b4dce25705dab98377848db5a6d3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-11-24 08:35:42 +00:00
Tilo Nitzsche
837b5d4589 Fix undefined behavior in qRgba().
Shifting a signed integer that overflows is undefined behavior. All
masks were changed to unsigned in qRgb and qRgba. While the alpha value
is enough to fix the undefined behavior, Visual C++ generates slow
code if not all of those constants are unsigned.

Change-Id: Ia0ec3e9464088495173b4ad9c2e37a49e6f8e987
Task-number: QTBUG-49595
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-24 05:28:21 +00:00
Friedemann Kleint
045abe631c Remove arch/qatomic_mips.h from src/corelib/arch/arch.pri.
Amend change 110a8c339f, fixing:
WARNING: Failure to find: arch/qatomic_mips.h

Task-number: QTBUG-49168
Change-Id: I7009037d3f4c51c9ed9713b6e94ee43022fe2645
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-11-24 05:24:39 +00:00
Samuel Nevala
5b62a5e7aa Fix deadlock when setting environment variables.
Qt uses QHash as the container for faking environment variables on
Windows Runtime and CE. Environment variable manipulation functions are
protected by mutex. Accessing the QT_HASH_SEED environment variable
inside QHash can lead to situation where qputenv() call leads to
qgetenv() call and that leads to a deadlock. Since the application
environment is faked anyway, drop support for QT_HASH_SEED and ifdef
that functionality out on those platforms. Documentation is updated
to reflect changes.

Task-number: QTBUG-49529
Change-Id: I1b1c28cb0b041fe2a63ca3dce57068fcb46505a7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-11-23 19:58:16 +00:00
Konstantin Ritt
fa00afe7d7 Optimize QTextEngine::findItem() usage cases
Since the item positions are guaranteed to grow, we could safely re-use
the obtained first item while looking for the last item in the chain.

Change-Id: I5e42f5de820c62a51a109a4b227b031c697aa898
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-23 18:52:46 +00:00
Konstantin Ritt
073a16e50e QTextLine::cursorToX: Optimize by re-using the cached values
(and move some code around)

Change-Id: I2e26dcc7b769fdbcc750332845da11ec88e332dd
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-23 18:52:43 +00:00
Konstantin Ritt
0e99f3c853 QTextLine::cursorToX: Always return the nearest valid cursor position
The documentation already states we're doing this, so stop lying
and implement it properly :)

Change-Id: Ic78980d76f61e8aa64e59ea058a8105d9c507774
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-23 18:52:40 +00:00
Konstantin Ritt
1ab7880d73 Get rid of QT_USE_BUNDLED_LIBPNG
In fact, this is an extra info no one ever cares about.
We already have properly configured INCLUDEPATH to look for png.h.

Change-Id: I27fec4d474570683c6c371dff34472a7c650fe65
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-11-23 18:52:35 +00:00
Friedemann Kleint
3811307bf1 ANGLE/D3D11: Suppress keyboard handling of DXGI.
Set the DXGI_MWA_NO_ALT_ENTER to suppress the Alt-Enter shortcut
causing the window to become full screen.

Task-number: QTBUG-44904
Change-Id: Ia4156ddee37a8a3da6e9e3130022c63a674f4429
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-11-23 15:05:03 +00:00
Tim Blechmann
084df84bd0 QPI/Cocoa: QNSView - guard removeFromSuperview by autorelease pool
removeFromSuperview could be called from outside the Qt domain (e.g from
a native cocoa gui). we need to guard it by an autorelease pool to make
sure that potential release/dealloc methods are not postponed to a point
when we do not have a qapplication anymore

Change-Id: If65cce4c524a16ffee125694c534f900c7d08fa8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-11-23 13:38:18 +00:00
Friedemann Kleint
07efdb78f0 Windows: Fix the size of drag cursors in multi-screen setups.
Move QWindowsDrag::defaultCursor() to the per-screen instance
of QWindowsCursor so that the cached default drag cursor pixmaps
are created with the correct size per screen.

Task-number: QTBUG-49511
Change-Id: I02f75ac3b1e5e064325b066ee03e1d5c8a7c7ee8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-23 13:15:33 +00:00
Friedemann Kleint
05c8e51d88 Windows: Scale cursors from resource pixmaps according to screen.
QWindowsCursor::customCursor() uses a best match algorithm to
find the most suitable pixmap for the cursor size obtained
from GetSystemMetrics(). This size is correct for the primary
screen only; in High DPI + normal monitor multiscreen-environments,
the cursors will be too large on the secondary monitor.
Pass the platform screen to apply a correction factor based on
logical DPI to obtain the correct size.

Task-number: QTBUG-49511
Change-Id: I8a64a969e3ade7ab5029e3ae904a0bcbb4704f90
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-11-23 13:15:30 +00:00
Friedemann Kleint
36bb6d266e Windows: Scale pixmap/bitmap cursors when High DPI scaling is active.
Apply a per screen scale factor, also taking the device pixel
ratios of the pixmaps into account.

Task-number: QTBUG-49511
Change-Id: If46b6eeb37635c2c4046992c1ba06711ccf54eae
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-11-23 13:15:25 +00:00
Friedemann Kleint
f39db6c3f8 Windows: Create one QPlatformCursor per screen.
The pixmap-based cursors and some of the standard cursors we
create from resource pixmaps need to be separated per screen.

Use a QScopedPointer containing the per-screen cursor instead
of the previously used QSharedPointer containing the cursor
shared by all screens.

Task-number: QTBUG-49511
Change-Id: I5203fcc4ecf5a7ff3fea833a4eaeb5300a6e6d54
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-23 13:15:20 +00:00