Commit Graph

5578 Commits (e39a436d0ca00fbcbef1428e32f74266c7a8d34d)

Author SHA1 Message Date
James McDonnell 71e195f6ef Reverse the flush-screen-context test
It was backwards so the screen context was being flushed on every screen
interaction when the parameter was _not_ specified.  During mouse/touch
movement, the number of flushes can be so great that it negatively
impacts performance.

Change-Id: I4dfe9c33c8ce31237db1d78db1cb8e04c00c4dd3
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2016-09-16 13:21:07 +00:00
Frederik Gladhorn 2c48695f04 XCB Drop from external app: fix keyboard modifier state
Fix inspired by Qt 4 sources. When we get drop events that are not
coming from the same application, it's unlikely that the keyboard
modifiers are in a sensible state (the usual XCB events are not sent
during drag and drop), so set the keyboard modifier state explicitly.

Task-number: QTBUG-49645
Change-Id: I9360f2b7ffeaa5243a4dfe7ccf96df134c5d2156
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-09-16 11:49:12 +00:00
Liang Qi 59b275b284 Merge remote-tracking branch 'origin/5.6.2' into 5.6
Change-Id: I84acde3251893f2a7a776962b2ff970b90884b63
2016-09-16 08:56:12 +02:00
Marc Mutz f1e87dc9bc QTableGenerator: Fix uninit'ed values
It's probably benign, but it causes Corverity to complain,
so always init all fields of QComposeCacheFileHeader.

Format the code so it can easily be ported to uniform init
later on.

Coverity-Id: 93043
Change-Id: Ifa1ccc3fa58dc813306917f216772fd24d4930c9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-16 04:12:00 +00:00
Sune Vuorela 469d68b344 Fix handling of bad compose table
The ASAN talk at QtCon was pointing out a out of
bound read in a vector.
Let's try to do something about it.

If the lazy initialization of compose table fails,
the first character handling still tries to actually
access it. Later characters are properly handled
in the caller.

Reported-by: Hanno Böck
Change-Id: Ieac3e95361abd0fcd06c555bcd00ca1c4d8f1931
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-15 17:31:09 +00:00
Maurice Kalinowski 9ff7e7df0f winrt: Fix touch on Hololens
The pressure indicator is not handled for touch on the Hololens causing
touch heuristic to fail and not identify the press event.

Change-Id: I2aba95fde8aa9abfa3838cad6b3466ff8bc41811
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-15 14:25:56 +00:00
Richard Moe Gustavsen c3084f101d iOS: accept window modal message dialogs
Although we cannot really show anything but application modal
dialogs on iOS, falling back to using non-native dialogs for
window modal seems unnecessary strict; In practice you will
never have a work flow on iOS where you have several windows
visible, and at the same time, need to show a dialog that
blocks only one of them.

This patch will lift the restriction, and handle window modal
as application modal on iOS.

Task-number: QTBUG-55909
Change-Id: I581c1a47724ee2bfc2e041672c82c25ed34b2b2d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-15 14:25:27 +00:00
Błażej Szczygieł 2cf3dee10b xcb: Don't send "Qt::WindowNoState" event when hiding minimized window
This prevents getting "QWidget::showEvent()" when hiding minimized
widget on some WMs like Marco or Xfwm4.

If QWindow is minimized and it gets the new "XCB_WM_STATE_WITHDRAWN"
event from XCB, then don't change the QWindow state.

Task-number: QTBUG-55942
Change-Id: I90cfc2bf55e507864ad8f26c8f569ea562c27314
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-09-15 10:16:42 +00:00
Anton Kudryavtsev 6b2071c697 Use QStringBuilder more to optimize memory allocations
Change-Id: I2939ffa10496fdc59e0402a9cb54458565ccd657
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-15 09:08:45 +00:00
Lars Knoll a668c6a6b6 Convert the old feature system
... to the new qmake based configuration system.

This removes the old qfeatures.txt (distributed over configure.json
files) and qfeatures.h (distributed over qconfig-<module>.h files).

qfeatures.prf is gone without replacement, as attempts to use it would
lead to followup errors anyway.

Change-Id: I1598de19db937082283a905b9592d3849d2199d0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-15 08:24:10 +00:00
Lars Knoll 2d3c73fcfe Modularize configure.json/.pri
Move the different parts of configure.json/.pri into the libraries where
they belong.

Gui is not yet fully modularized, and contains many things related to
the different QPA plugins.

Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Change-Id: I6659bb29354ed1f36b95b8c69e7fce58f642053f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-15 08:23:53 +00:00
Alexander Volkov fc098de70a xcb: Remove unused NoFontHinting hint
It is unused since 0f7bc885aa
(Turn off font hinting when active highdpi scaling).

Change-Id: I901407bedf24ae301acbe6afa94bc0a4cadb0620
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-09-12 13:36:26 +00:00
Richard Moe Gustavsen 1eb74c9f10 QIOSTextInputOverlay: compile with Xcode 8 beta / iOS 10
The iOS 10 SDK have introduced a protocol CAAnimationDelegate, which is
required for CAAnimation delegates. So we let our delegate implement it.
Since the SDK is not out yet, we need to support both version 9 and 10
for now.

Change-Id: I2624d8150c39439540a6554cba4921e3b9a2f0cf
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-12 07:51:33 +00:00
Allan Sandfeld Jensen 8cedf59a68 Fix Linux build without XINPUT2
XcbConnection::TabletData only exist if XCB_USE_XINPUT2 is defined and
QT_NO_TABLETEVENT is not.

Change-Id: I94f4558714b105f2ce98b9b4a7462e7a8eb628e3
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-09-12 06:33:55 +00:00
Maurice Kalinowski e9b51781d0 winrt: Fix display of tooltips
This touches multiple areas. First adding a tooltip to the window list
should not automatically invoke focussing and hence
handleWindowActivated should not be invoked. This is the same approach
as on the windows qpa.

The winrt qpa supports multiple (non-fullscreen) windows since a while.
However, pointerUpdated still acted on the top level window, which
caused problems resolving the real target of a mouse event. In this case
the tooltip received all events, while the application window should get
them. Hence identify the target window via the system coordinates.

Task-number: QTBUG-50733
Change-Id: Iea1f4cd7406e6cde85ab3fc83f018b871fc30824
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-11 17:15:01 +00:00
Lars Knoll 137e690ac7 Turn the available sql drivers into public features
This is required to do the modularization of those
features properly.

Change-Id: I384aff20274e795aa70483980f0ef25309328800
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-10 14:03:50 +00:00
Oliver Wolff f104e43a72 winrt: Make sure that cursor is visible when virtual keyboard is shown
We have to check whether the cursor is covered by the virtual keyboard
when it is shown. If that is the case and the keyboard is snapped to the
bottom of the screen the whole content is moved up to ensure the
cursors's visibility.

WinRT's input context had to be moved from the XAML to the GUI thread
as the signal/slot connection does not work otherwise. Signals from
QInputMethod were emitted but not handled in QWinRTInputContext as it
ran on another thread which did not spin an event loop.

Task-number: QTBUG-50291
Change-Id: Id89e970dc194c25ad07ceab14d9fea51bd7388b2
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-09-07 04:54:50 +00:00
Oliver Wolff a5915f260f winrt: Use ComPtrs in input context
By doing so we no longer leak the input pane inside the destructor.
Additionally the coding style is closer to the rest of the WinRT port.

Change-Id: I0d56086719c98585cec8bc3c4bcb2d86c3ea2e79
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-09-07 04:54:45 +00:00
Eskil Abrahamsen Blomfeldt 001efe14f2 DirectWrite: Fix embedding fonts in PDF
If no filename is stored in the faceId() of the
font engine, then the PDF engine will bail out and embed
each glyph separately instead of embedding the font. This
would cause PDFs to be huge and unsearchable when high-dpi
was active, since we will automatically default to the
DirectWrite engine in this case.

[ChangeLog][QtGui][Windows] Fixed embedding fonts in PDF when
dpi scaling is active or when the hinting preference was
none or vertical hinting.

Task-number: QTBUG-54740
Change-Id: I20630595f51660109c5a12c52076738a04036520
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-09-16 07:23:26 +00:00
Anton Kudryavtsev 6aa935cd92 Use QString::fromLatin1() less to avoid string allocations
QString::fromLatin1 always allocates memory, but there are
cases where we can avoid/reduce allocations or/and reduce
text size, e.g.:

QStringBuilder expressions
Fix: replace QString::fromLatin1 with QL1S

QString::fromLatin1().arg(String) pattern
Fix: replace with QStringBuilder

Overloaded functions with QL1S arg
Fix: replace QString::fromLatin1 with QL1S

In rare cases if there is no overloaded function
with QL1S and we have deal with string literal,
replace QString::fromLatin1 with QStringLiteral.

Change-Id: Iabe1a3cc0830f40ef78a0548afa4368583c31def
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-15 15:55:57 +00:00
Maurice Kalinowski 60da6313cf winrt: Fix initialization of input context
f104e43a72 moved QWinRTInputContext to the
gui thread. However, IInputPane needs to be queried from Xaml itself.
Otherwise it might cause unhandled exceptions.

Change-Id: I43848c796e7ff163e6befa7c58f0ad68445b9865
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-15 14:26:01 +00:00
Liang Qi d892e6f721 Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts:
	mkspecs/features/qt_common.prf
	src/plugins/platforms/windows/qwindowsdialoghelpers.cpp

Change-Id: I03b92b6b89ecc5a8db7c95f04ebb92ed198098a8
2016-09-05 18:47:27 +02:00
Liang Qi 657c2bfbec Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	tests/auto/testlib/selftests/generate_expected_output.py

Change-Id: If856162abf9a24ae2c9946d336a7d1da03520fa7
2016-09-05 13:57:12 +02:00
Maurice Kalinowski c8a6b4278b winrt: Exclude user events when adding/removing windows
Handling user events while creating a window can cause problems and
crashes as the event tries to access non initialized parts of the window
itself being created. Hence exclude user input events at that time and
have them handled when the event loop checks for them regularly.

Change-Id: I2a78efd619250be8f6f2e737ed78e39481a4cf76
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2016-09-05 04:55:10 +00:00
Anton Kudryavtsev 6dbb16a856 Replace QLatin1Literal with QLatin1String
QLatin1Literal is just alias of QLatin1String
for Qt4 compatibility.
So it's style cleanup patch.

Change-Id: Ia3b3e5dc3169f13a1ef819d69be576b8a8bfb258
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-03 18:55:56 +00:00
Marc Mutz 7f801ed73a tuiotouch: clean up
- order includes from most specific to most general
- include only what you need
- port uses of inefficient QLists to QVector
  (required adding default ctors to the payload types)
- mark types as Q_MOVABLE_TYPE
- inline some trivial functions
- add explicit to ctors
- mark plugin with QT_NO_FOREACH

Change-Id: I7ae13141ece22bfdf49be42deb0987d51da2d72b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
2016-09-03 05:07:28 +00:00
Marc Mutz ed9f8a0e9d bearer plugins: eradicate Java-style iterators and Q_FOREACH
This is the simple part of the job, removing Q_FOREACH loops
which are obviously safe to be replaced by C++11 range-for.

In QNetworkManagerEngine::sessionStateForId(), instead of
iterating over QHash::keys(), iterate over the QHash
directly (using C++11 range-for, as we're only using the
values, not the keys).

In QNetworkManagerEngine::connectToId(), simplify the loop
body by merging three identical if blocks into one.

Saves ~1.7KiB accumulated over the three Linux bearer plugins:
connman, generic, nm (optimized GCC 6.1 Linux AMD64 build).

Change-Id: Ic66139c25f7e2173f5a919927e269b873334d2c8
Reviewed-by: Lorn Potter <lorn.potter@canonical.com>
2016-09-02 12:46:41 +00:00
Oswald Buddenhagen 8d8c7b31ba Merge 5.6 into 5.6.2
Change-Id: I58b06ecd9c7d80f38ed4ebb36bde9e7c09486a20
2016-08-31 11:36:14 +02:00
Friedemann Kleint 531a2b1b1c Windows QPA: Fix leaks in native file dialogs
Release the IShellItem instances according to the
documentation of IFile[Open]Dialog.

Task-number: QTBUG-55509
Task-number: QTBUG-55459
Change-Id: Ib79622cde21982b1bda0be7d0483c6e652a1d5fe
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-08-30 12:48:15 +00:00
Laszlo Agocs 547d3f0ebe Fix bundled xkbcommon build without xcb-xkb present
The condition went missing in the process of cleaning up.

Change-Id: If4f7958e5e5983c86f86a009aaa88d1f5e7ec76d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-29 22:44:35 +00:00
Liang Qi 1cc571593a Merge remote-tracking branch 'origin/5.7' into 5.8
cf53aa21bf and 3aaa5d6b32
were reverted because of reconstruction in 5.7.

defineTest(qtConfTest_checkCompiler) in configure.pri is smart
enough to cover the case in a9474d1260.

DirectWrite: Fix advances being scaled to 0

Since 131eee5cd, the stretch of a font can be 0, meaning
"whatever the font provides". In combination with ec7fee96,
this would cause advances in the DirectWrite engine to be scaled to
0, causing the QRawFont test to fail.

Conflicts:
	configure
	mkspecs/features/uikit/device_destinations.sh
	mkspecs/features/uikit/xcodebuild.mk
	src/corelib/global/qglobal.cpp
	src/corelib/global/qnamespace.qdoc
	src/plugins/platforms/cocoa/qcocoamenuitem.h
	src/plugins/platforms/windows/qwindowsservices.cpp
	src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp
	src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
	src/widgets/kernel/qapplication.cpp
	tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
	tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp

Change-Id: I4656d8133da7ee9fcc84ad3f1c7950f924432d1e
2016-08-29 15:30:17 +02:00
Tor Arne Vestbø dcfb814498 Cocoa: Add support for triple-buffered GL contexts
As usual, the requested format may not be available, so clients should
check the actual format to confirm triple-buffering.

Change-Id: Icf073cc9ddf2c912eb5c3ce0ac80d1694d1c56d7
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-08-29 10:11:52 +00:00
Liang Qi cc74452d6d Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	configure
	src/plugins/platforms/winrt/qwinrtclipboard.cpp

Change-Id: Ic6d58be3d1ed2bb507f2ba06c82361afd9f9ddb9
2016-08-29 08:13:40 +02:00
Marc Mutz 829c59aa4a linuxfb plugin: eradicate Q_FOREACH loops
... by replacing them with C++11 range-for loops.

Then mark the plugin as QT_NO_FOREACH.

Change-Id: I80a18334b1e0c5bbd44dfe45eea80591d478a8d6
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-27 05:09:35 +00:00
Marc Mutz 33aaa6a995 minimal platform plugin: eradicate Q_FOREACH loops
... by replacing them with C++11 range-for loops.

Change-Id: I0798d02e19d9f53d96db2f14554325eaeff2a26d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-27 05:09:25 +00:00
Marc Mutz 3c7d67a044 offscreen plugin: eradicate Q_FOREACH loops
... by replacing them with C++11 for-each loops.

In clearHash(), replace iteration over QHash::keys() with
iteration over the hash itself. Also use the new const-
iterator overload of QHash::erase() to save one attempted
detach (in QHash::find()).

Mark the plugin as QT_NO_FOREACH.

Saves almost 2KiB (1.4%) in text size on optimized GCC 6.1 Linux
AMD64 builds.

Change-Id: I9bb3154130687c0061ea09b04ab5f627a4d2296c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-27 05:09:20 +00:00
Marc Mutz 634708724b mark some already-clean platform plugins as Q_FOREACH-free
Change-Id: I6ef2bb7caf2cf624e7832936202e546298ee9256
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-26 22:23:50 +00:00
Nick Shaforostoff 8adad2fe09 fix build with various QT_NO_* defines
Done-with: Andriy Gerasika <andriy.gerasika@gmail.com>
Change-Id: I90883a491dbddb005c3d756c339e42285d50e437
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-26 07:39:53 +00:00
Maurice Kalinowski c0a513d55f winrt: avoid duplicate signal emit
emitChanged() will be invoked when the system notifies the application
about a clipboard change. Hence, there is no need to call it previously
and cause two signals on the same change to be emitted.

Change-Id: I99605c9a71054e0610006dbeaaa90c5fb2f46755
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-25 17:29:15 +00:00
Maurice Kalinowski ea4aa5b722 winrt: store mimedata in clipboard
In addition to setting the clipboard, we also need to store the mimedata
being passed. Otherwise requesting the mimedata returns a different
object, causing comparisons to fail.

Change-Id: I2ffea76e78be091cb98426e387619ac6788ea270
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-25 17:29:05 +00:00
Maurice Kalinowski 5f895fe0e2 winrt: Check validity of options shared pointer
QErrorMessage autotests managed to create a scenario where the options
are not initialized yet, causing a crash later on.

Change-Id: Iabad6f181f2bfdc81a9c73f0e67c8ba70753fec6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-25 17:28:55 +00:00
Liang Qi c7cdf3aac7 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/corelib/mimetypes/qmimeprovider.cpp
	src/corelib/mimetypes/qmimetype.cpp

Change-Id: Ib483ddb6bfc380e7c8f195feca535703814c3872
2016-08-25 16:12:11 +02:00
Oswald Buddenhagen e41263b61a fix build with qt-xcb and another installed qt in a system location
amends fc1092cf, necessary because of (the earlier) a28364bc1.

Change-Id: I5c86bcb27854994e59228fd205c799396464554d
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-25 12:08:56 +00:00
Kai Uwe Broulik 47aad8f1cc Android: show status bar for any window state except fullscreen
This fixes the status bar not re-appearing when a window is
reset to Qt::WindowNoState

Task-number: QTBUG-37830
Change-Id: Iaef99221993ddf17b9da5b48796143abbcd98c01
Reviewed-by: Risto Avila <risto.avila@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-25 11:47:24 +00:00
Allan Sandfeld Jensen eb19cf15a9 Fix reading of font names
Correct a boundary check so the last present name can be read, and
correct a typo that caused non-present names to read garbage.

Change-Id: Ia9d0d3af7431c1f5f02824e884efb5f6f454dc5d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2016-08-25 11:00:30 +00:00
Lorn Potter 2aea77dbcb Fix UI freeze when using network-manager bearer plugin
This reduces the amount of dbus signals generated when many wifi AP's
are around

Task-number: QTBUG-54814
Change-Id: I4bdd5f0bfe173d6db63f3d975a98583c6c0fc5db
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-08-24 23:39:10 +00:00
Jake Petroules acfc1cc362 Fix warning: 'UITextInputTextFontKey' is deprecated
first deprecated in iOS 8.0 - Use NSFontAttributeName instead

Change-Id: I763efc498644ac234a712ebcefd07111b4444c98
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2016-08-24 20:44:39 +00:00
Maurice Kalinowski 4d07042c70 winrt: Fix crash when clearing mimedata
Some autotests clear the clipboard by invoking setMimeData() with a null
QMimeData argument.

Change-Id: I4a9d3dfd41b2c52964e272fc1362162f47fd8cda
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-23 17:52:41 +00:00
Albert Astals Cid 3fa18bf881 Make sure connection is not null before using it
connectionFromId can return null if the id isn't found.

This causes crashes like http://paste.ubuntu.com/23061009/

Change-Id: Ib72412f61dc7661455394679b3e90662de505920
Reviewed-by: Lorn Potter <lorn.potter@canonical.com>
2016-08-23 14:46:06 +00:00
Friedemann Kleint 95c767f5be Windows Font Engine: Fix MinGW developer build
Suppress warning:
qwindowsfontengine.cpp:590:26: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
Amends change ac1e87d9f3.

Change-Id: Ibd25c522aac8e946c5e0759ea20e023883622914
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-08-23 10:33:17 +00:00
Liang Qi 2111bf00fe Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I4f4ab05b2de67cd4b1d29b294b96a8c9ffb964b2
2016-08-22 21:58:45 +02:00
Oswald Buddenhagen d314819fc0 Merge dev into 5.8
Change-Id: I41ee7b50534b01cf042bed8bb8824ba2e5026a29
2016-08-22 11:30:01 +02:00
Olivier Goffart e0e9e196a7 Android: Show the edit menu when things are selected
Change-Id: I3647fa39469c87bcc08bb439546e5e61c535c71d
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-21 20:17:45 +00:00
J-P Nurmi b2799062f3 GTK+ dialogs: do not emit duplicate selected signals
As mentioned in the bug report, these are already emitted in:
- QColorDialog::done(Accepted)
- QFileDialog::done()
- QFontDialog::accepted()

The same signal emissions were reverted from the Cocoa dialogs
in 916a8c44c4.

For QtQuick Dialogs, these don't matter because they handle this
in accepted().

Task-number: QTBUG-55298
Change-Id: I7990836745b160ec8de948697e2924322a583b6c
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-08-20 08:20:38 +00:00
J-P Nurmi e416cc553d QGtk3FileDialogHelper: provide proper filterSelected()
The GTK+ file dialog never had a proper filterSelected() signal. As a
workaround, filterSelected() was emitted from accept() to ensure that
the signal wasn't entirely missing. Now we can remove the improper
emission on accept, because using the "notify::filter" signal gives
proper notifications whenever the filter selection in the dialog
changes.

Change-Id: Iedfe08c49b85adf262af9cdc750efb1fd1698379
Task-number: QTBUG-55298
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2016-08-20 08:20:25 +00:00
Jake Petroules 57378a108c Add support for Apple watchOS
Change-Id: I3f9e00569458a463af2eaa5a3a16a6afd1e9c1ea
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-08-19 21:05:55 +00:00
Allan Sandfeld Jensen 9f888d2fde Support C++17 fallthrough attribute
Replaces our mix of comments for annotating intended absence of break
in switches with the C++17 attribute [[fallthrough]], or its earlier
a clang extension counterpart.

Change-Id: I4b2d0b9b5e4425819c7f1bf01608093c536b6d14
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-19 18:38:53 +00:00
Alexander Volkov d13d81eb01 Fix QWidget::setWindowRole()
Introduce QXcbWindowFunctions::setWmWindowRole() and call it either from
the implementation of QWidget::setWindowRole() or after the creation of
the corresponding QWidgetWindow.

Change-Id: I143450f4673dd707bb491c1d0f0e8b61d564283d
Task-number: QTBUG-45484
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Ivan Čukić <ivan.cukic@kde.org>
2016-08-19 11:53:39 +00:00
Lars Knoll fd89fb4566 Cleanup QT_NO_FONTCONFIG usage
Stop messing around with the define in pro files, and rely on
the configuration system. Disable fontconfig on Mac, which in practice
gives the same result as before.

Change-Id: Iea3aec127af96f221f4ee8682fb20a624332b82f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:28:30 +00:00
Lars Knoll 60985aa42b Use qtConfig throughout in qtbase
Use the new qtConfig macro in all pro/pri files.

This required adding some feature entries, and adding
{private,public}Feature to every referenced already existing entry.

Change-Id: I164214dad1154df6ad84e86d99ed14994ef97cf4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:28:05 +00:00
Lars Knoll 792a994387 Clean up xkbcommon.pri
Don't set a variable in QT_CONFIG to build the right
things. Instead have an xkbcommon-x11.pri in addition to
xkbcommon.pri that also builds the x11 specific things.

Change-Id: I16a5f0bcb39b7f4039583a676b6c14b0e073a37f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:27:50 +00:00
Oswald Buddenhagen b786993f8d fix xcb-render nesting
xcb-render is emitIf on xcb-syslibs, so it needs to move into the
respective branches in the project files.

Change-Id: Iaa6db9012287ae0e9c363ca5eeec48daad862320
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-19 04:27:44 +00:00
Lars Knoll 56ee007b3f Rework privateFeature
privateFeature would add QT_NO_FEATURE to the DEFINES in the private
.pri file, which was somewhat inelegant.
Additionally, it would add the feature to the _public_ QT_CONFIG
variable, which was plain wrong.

Replace the implementation with the one just introduced for
publicFeature, with the difference that the features are written to the
private files instead.

As this entirely disposes of the old system, all usages in the project
files need to be replaced atomically as well.

Change-Id: I506b5d41054410659ea503bc6901736cd5edec6e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:27:29 +00:00
Lars Knoll 48b4e0bf6f Improve library version handling
Output the version as a define into the private config header as
a define using a hex number. Like that we can easily do version checks
on libraries using the QT_LIBRARY_VERSION(lib) and QT_VERSION_CHECK()
macros.

Change-Id: I6dc4ac6550886ca95c5542b6e75cd933ed079d76
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:27:06 +00:00
Oswald Buddenhagen 4b288e30ef employ QMAKE_USE: LIBS += -lfoo
this switches all instances of LIBS[_PRIVATE] += -lfoo where a config
tests exists for foo.
this removes some code duplication between tests and project files (in
case of conditionals), and ensures that the projects always actually use
the libraries configure has found.

Change-Id: Ia7e80c8db5f329290c7f1a4e03a8bf78882a687e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:26:43 +00:00
Oswald Buddenhagen d5dc46d319 employ QMAKE_USE: LIBS += $$QMAKE_LIBS_FOO
this migrates the cases where the build system already made (some) use
of variables (possibly) set by configure.

Change-Id: I43a08caed481d5f887a3a40821e71a4797760e7e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-19 04:26:36 +00:00
Lars Knoll 6903cad03e Make the ICO image format a configurable feature
... including a [-no]-ico command line option.

Change-Id: I3cb13d2be72b512f72f8dcdb9de72e7a99e36e47
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-18 17:10:57 +00:00
Eskil Abrahamsen Blomfeldt b8c1efcb88 DirectWrite: Fix calculating bounding box of glyphs
We don't support vertical text layouts in Qt, so the vertical
advance should always be 0 (like it is in other engines).
Since we were setting this, we would calculate the bounding
box of strings in the DirectWrite engine as if the layouts
were diagonal, adding up both the horizontal and vertical advances.

[ChangeLog][QtGui][Windows] Fixed height of text bounding box when
using no or vertical hinting preference, or when the device pixel
ratio is different from 1.

Task-number: QTBUG-51024
Change-Id: I329917eb8da71fdfdffe9651ca8f0f48d26b6a60
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2016-08-18 16:01:58 +00:00
J-P Nurmi 916a8c44c4 Revert "Cocoa: make dialogs emit the "selected" signals"
This reverts commit dfa8854cf7 and
removes all "selected" signal emissions from the Cocoa platform
dialogs.

Even though it fixed the new QML dialogs that were relying on the
"selected" signals, it lead to duplicate signals with QColorDialog,
QFileDialog, and QFontDialog. We'll fix the new QML dialogs to not
rely on the selected signals, but handle it on accept the same way
than QtWidgets and QtQuick Dialogs do, so there is no need to repeat
the signals in all platform plugins.

Task-number: QTBUG-55299
Change-Id: I35e08cee92a4454544497b027ed10abad6c26673
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-08-18 15:01:15 +00:00
Maurice Kalinowski 4531ae8d69 winrt: only update window title for top level widgets
Previously we always updated the window title, independently whether the
window was visible / the toplevel one. This can also cause troubles when
setting the title during initialization.

Change-Id: I02ec0f0e385fa490f641ce83a6cb27717a31620f
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-08-18 14:04:36 +00:00
Maurice Kalinowski a75cfa60d7 winrt: Fix crashes for visible window management
First, offscreen windows/surfaces should not be tracked in the visible
window list.
Secondly when destroying a window, it is not guaranteed that it had been
removed first, hence enforce it to guarantee that the visibleWindows
list stays correct and does not hold invalid weak pointers to non
existing windows.

Change-Id: I7027ecd010b8bcb3d05e3f5d460662e883e42e50
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-18 14:04:36 +00:00
Maurice Kalinowski 0f6ace8118 winrt: Fix crash when managing multiple top-level windows
When a window gets removed, the active focus window needs to be set to 0
instead of the the current window. Otherwise
QGuiApplicationPrivate::focus_window is set to an invalid pointer and
crashes when dereferenced.

Change-Id: I258b95e447de4cbfb7f19955079c2545a738e03f
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-18 14:04:29 +00:00
Olivier Goffart 3c6220c4f8 Android selection handles
This commits implement the cursor and selection handle in the platform
plugin.

Task-number: QTBUG-34867
Change-Id: Icb3fd9ddfd9f4152e2004078a92a3d9502e9113c
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-18 13:23:26 +00:00
Liang Qi 0ca4fcbc36 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/plugins/platforms/xcb/qxcbintegration.cpp

Change-Id: I2d71d06a55f730df19ace0dd3304238584a0497f
2016-08-18 11:07:51 +02:00
Gabriel de Dietrich b13ff07f1d QCocoaInputContext: Fix wrong memory release
As per Core Foundation ownership conventions, we
should release 'source', which is a copy, and not
'langRef', which is a reference. This has shown
to lead to crashes in some occasions.

Change-Id: I2e59b8d62aac13bc60dc013c1ea621850132c719
Task-number: QTBUG-48772
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-18 02:23:05 +00:00
Allan Sandfeld Jensen 469b139169 Register fonts with their given style name
Instead of guessing which styles we have available (always bold/italic)
register the ones we actually find.

Change-Id: I57380d0417411456a3037f8769440e7b43517e0e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-08-17 21:55:20 +00:00
Marc Mutz d1a4c4f3c9 xcb: eradicate Q_FOREACH loops
... and mark the library with QT_NO_FOREACH.

Change-Id: I4924f1419f470b5fa92bb2f3fdefa745b65957f7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-08-17 19:52:21 +00:00
Marc Mutz b961fca5f0 xcb: mark some types as movable/primitive
These are all held in Qt containers.

Change-Id: Ie285887b285bbcc0b70962d9f9c52d22d213d022
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-08-17 19:52:15 +00:00
Friedemann Kleint e4bb9395c2 Standardize some "We mean it" comments
Fix the occurrences where the wrong classes are mentioned.

Change-Id: Ia291af77f0f454a39cab93e7376a110c19a07771
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-17 19:51:40 +00:00
Gabriel de Dietrich 9b491616f8 Cocoa QPA Menus: Propagate enabled state downwards
NSMenu has autoenableItems set to true by default, and
we keep it this way in Qt. This means that NSMenuItem's
enabled property is basically ignored and therefore
QCocoaMenuItem::syncModalState() is wrong.

What is also wrong, is syncModalState()'s name in both
QCocoaMenuItem and QCocoaMenu. Indeed, this function's
role should be to ensure that the enabled state is
properly propagated down the menu hierarchy, whether
the reason is being in the context of a modal dialog
or the parent menu having been disabled by the app.
Notice that the latter case is specially needed when
a menubar menu is explicitly disabled.

Therefore, we introduce a separate flag for the parent
enabled state in order to avoid polluting the app-set
enabled state flag. This is done in both QCocoaMenu
and QCocoaMenuItem.

In the case of QCocoaMenuItem, these two flags define
whether an NSMenuItem is enabled state conjointly, and
set from -[QCocoaMenuDelegate validateMenuItem:]. The
rest of the logic remains as before. Similar logic is
used in QCocoaMenu::isEnabled().

In addition, the presence of the second flag allows us
to show disabled submenus in the same fashion native
Cocoa applications do. This means, the submenu item
itself remains enabled, allowing to show the submenu
popup where all its menu items will appear disabled.

Bonus change: merged all the bool flags into a bitfield
and made the compiler happy about the ivar reordering
in QCocoaMenu and QCocoaMenuItem's constructor.

Task-number: QTBUG-54698
Task-number: QTBUG-55121
Change-Id: Ie156cb3aa57a519103908ad4605f7b43c57e5aef
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-08-17 18:21:53 +00:00
J-P Nurmi 31127d390e Fix QGtk3ColorDialogHelper::currentColorChanged() emission
Even though GtkColorChooser provides a "color-activated" signal, it
does not get emitted whenever the selection in the dialog changes, but
only when a color is activated in a sense that the dialog is accepted.
Switch to the "notify::rgba" signal to get proper live notifications
of the selection changes.

Task-number: QTBUG-55298
Change-Id: I39ab798764c8b42a998d75c56605948eaf154dcd
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2016-08-17 15:46:03 +00:00
J-P Nurmi b57c878dfc QGtk3FontDialogHelper: provide proper currentFontChanged()
A workaround for the missing currentFontChanged() signal was added in
130f43c. Now we can remove the improper emission on accept, because by
using the "notify::font" signal gives proper notifications whenever the
current font selection in the dialog changes.

Task-number: QTBUG-55298
Change-Id: Id9a4f32a92f0be8f466a0a0587bb2acd4c9056f7
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2016-08-17 15:45:57 +00:00
Eskil Abrahamsen Blomfeldt ec7fee968f Support stretch when using DirectWrite font engine
The DirectWrite font we get when converting the GDI font
does not respect the stretch we have set, as this is an attribute
of the text layout in DirectWrite and not the font description.

To compensate for this, we scale advances and glyphs in the
engine if the stretch is different from 100%.

[ChangeLog][QtGui][Windows] Fixed stretch when combined with either
no or vertical hinting preference or a device pixel ratio different
from 1.

Task-number: QTBUG-54494
Change-Id: Icc06d1457191782d1a281c99da2da3081a82c542
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2016-08-17 13:15:26 +00:00
Andy Nichols 2b0e52757c Disable switchable widget compositing when using XCB in Parallels VM
The Parallels 3D hardware acceleration does not seem to play nice with
Qt Creator when switching between tabs that have OpenGL Qt Quick Content
and those that have just raster widget content.  QWidgetBackingstore has
the ability to switch how content is flushed depending on if the
SwitchableWidgetComposition capability is available.  Previously for XCB
it was always enabled, but should be disabled when using the GLX
integration for the Parallels VM.

Change-Id: I42e41456e0873f6780f5d0333dbfaaf8fcce4a5e
Task-number: QTCREATORBUG-16742
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-08-17 12:22:57 +00:00
Friedemann Kleint 02a03e52f7 QCocoaFileIconEngine: Add icon size 256
Change-Id: Ib36025f802404f74f6ce5494f3858dfe0e283004
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2016-08-17 04:44:15 +00:00
Liang Qi 17198e03ab Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	qmake/doc/src/qmake-manual.qdoc
	src/corelib/global/qglobal.cpp
	src/corelib/tools/qstring.cpp
	src/network/socket/qabstractsocket.cpp
	src/network/socket/qnativesocketengine_unix.cpp
	src/plugins/platforms/eglfs/api/qeglfsglobal.h

Change-Id: Id5dfdbd30fa996f9b4b66a0b030b7d3b8c0ef288
2016-08-16 07:58:32 +02:00
Friedemann Kleint cc517d7cd9 QWindowsServices::openUrl(): Don't convert URLs with fragments/queries to local files
Pass the URL instead.

Task-number: QTBUG-55300
Change-Id: I4ce9171db5c1a9e07b17911729b165c115329664
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-16 04:49:20 +00:00
Konstantin Tokarev ac1e87d9f3 Added capHeight() to QRawFont and QFontMetrics(F)
Cap height is an important metric of font, in particular it is
required to make decent implementation of "initial-letter"
CSS property in QtWebKit.

Note that some fonts lack cap height metadata, so we need to
fall back to measuring H letter height.

Change-Id: Icf69d92159d070889085e20d31f2e397d796d940
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-08-15 18:27:06 +00:00
J-P Nurmi 2e2b32a9ab QGtk3Dialog::show(): add missing null-check to avoid warnings
Or else QObject::connect() warns about 'invalid null parameter' when
showing parentless dialogs.

Task-number: QTBUG-55298
Change-Id: I39b1dfc81e5da0c793c86cff763f946db15c13ae
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-08-15 17:27:51 +00:00
Laszlo Agocs 5178773f11 xcb: Add qt.qpa.input.events and guard mouse event logs too
Make mouse behave like touch and scrolling does: only do
high frequency qCDebugs when the category is enabled.

Switch over mouse, touch and scroll event logging to a new
sub-category: qt.qpa.input.events. This way qt.qpa.input
in itself behaves sanely on xcb, similarly to f.ex. eglfs,
giving only the basic, but important info.

Change-Id: I8dd588e72ae9d1c66096489fa3c5291f6d318ca0
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2016-08-15 14:04:04 +00:00
Morten Johan Sørvig a5e8900544 Cocoa: Make qt_mac_toCGImageMask be self contained
Remove qt_mac_deleteImage and qt_mac_toCGImageMask
which are not used elsewhere.

Change-Id: Idd3177d4c521eea318b58dc664efe6907896d022
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-08-15 11:28:28 +00:00
Marc Mutz d08db11008 Remove last uses of Java-style (non-mutable) iterators from QtBase
Change-Id: I7531ffd4f2d5b2193bb6231c743ff0a074618b99
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-13 17:14:56 +00:00
Liang Qi 6b8f422c5e Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/corelib/global/qglobal.cpp
	src/corelib/io/qsettings.cpp
	src/corelib/itemmodels/qstringlistmodel.cpp
	tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp

Change-Id: I1c6c306ef42c3c0234b19907914b19da706b4a03
2016-08-13 01:05:02 +02:00
Oswald Buddenhagen 2d83e28f08 remove redundant LIBS += -lGAL
it's part of the egl libs.

Change-Id: Id41909f2e1cc5a6a1a22a49d4bf24da43e69a417
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-08-12 14:48:46 +00:00
J-P Nurmi dfa8854cf7 Cocoa: make dialogs emit the "selected" signals
Task-number: QTBUG-54951
Change-Id: Iba031a9038aad00e0d06f608eac8d95184ca6950
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-08-12 13:20:35 +00:00
Morten Johan Sørvig ac899f6d60 Cocoa: use QImage::toCGImage()
Keep behavior of converting via Format_ARGB32_Premultiplied
for unsupported formats

Change-Id: I64083a88a99640dde42a0a201ce8ea08affe5259
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-08-12 12:33:42 +00:00
Topi Reinio a2ae631c04 Doc: Change instances of '(Mac) OS X' to 'macOS'
As of version 10.12 (Sierra), the name of Apple's desktop operating
system will be macOS. Change the occurrences where the Mac platform
is discussed to use a macro \macos, which expands to 'macOS'. This
helps with adapting to future renaming.

Update the instructions on mac-specific Q_OS_* macro usage.

Add a \target for the old 'Qt for OS X' topic to keep links working
for other documentation modules that try to link with the old name.

Change-Id: Id33fb0cd985df702a4ae4efb4c5fd428e77d9b85
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2016-08-12 08:30:29 +00:00
Laszlo Agocs dfae6a7593 evdevtouch: Enable touch in multi-screen eglfs environments
Parse the touchDevice property from the KMS/DRM config file. When all
outputs have an explicitly specified index in the virtual desktop, we
can set up a mapping between the device node and the screen index. It
is somewhat fragile (device nodes may change, requires explicit
virtualIndex properties for all outputs, etc.) but better than
nothing.

For example, having the screen on DisplayPort as primary and the
touchscreen on HDMI as the secondary screen breaks by default because
touching the second screen generates touch (and synthesized mouse)
events for the first screen.  Assuming the touchscreen is
/dev/input/event5, the issue can now be fixed by setting
QT_QPA_EGLFS_KMS_CONFIG with a configuration like the following:

  {
    "device": "drm-nvdc",
    "outputs": [
      {
        "name": "HDMI1",
        "touchDevice": "/dev/input/event5",
        "virtualIndex": 1
      },
      {
        "name": "DP1",
        "virtualIndex": 0
      }
    ]
  }

Task-number: QTBUG-54151
Change-Id: If97fa18a65599ccfe64ce408ea43086ec3863682
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-11 21:11:43 +00:00
Laszlo Agocs 2afead0211 eglfs: Configurable screen order in the virtual desktop
Say one wants a virtual desktop with the display on HDMI above
the display on DisplayPort:

{
  "device": "drm-nvdc",
  "virtualDesktopOrientation": "vertical",
  "outputs": [
    {
      "name": "HDMI1",
      "virtualIndex": 0
    },
    {
      "name": "DP1"
    }
  ]
}

Undefined virtualIndex values map to INT_MAX and will go after the
explicitly specified ones. However, the sorting is stable so the original
order from the DRM connector list is preserved between such outputs.

Task-number: QTBUG-55188
Change-Id: I204fb08205ea7dbfbcdefd1d22ed22f5387f3e8c
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-11 21:11:32 +00:00
Gabriel de Dietrich 4c002a8343 Cocoa: Update deprecated dragging session APIs
Change-Id: I06e2dd3861c4bc5d85421ac71daf188732279e77
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-08-11 17:24:16 +00:00
Gabriel de Dietrich 23ea54d861 Drag and Drop: Don't let Cocoa override proposed actions
When pressing the Command key, or any other modifier key,
Cocoa will filter whatever the application has set in the
QDrag object. However, Qt is already taking all this into
account, so we should not let yet another voice chime in.

Task-number: QTBUG-55177
Change-Id: I7c56e72d846d10cdfc132776bdfdd6b79799bcff
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-11 17:24:04 +00:00
Liang Qi 8ba384a564 Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I1a63523de158757964b6fb5ea026cf69a6c5ddcf
2016-08-10 17:43:13 +02:00
BogDan Vatra 23ac125bcb Android: don't wait if the event loop is stopped
QAndroidEventDispatcherStopper is stopped when the application is in background
and the user uses the task manager to kill the task. If the application has
services the task manager doesn't kills it,  but instead it tries to gently
terminate the activity. The problem is that the activity is still backgrounded
(meaning that the Qt event loop is freezed), therefore terminateQt will hang.

Task-number: QTBUG-54012
Change-Id: I6e333cbcaf41e9e298eeb8b2b0bc3adcf446783f
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
2016-08-10 14:20:01 +00:00
Laszlo Agocs e694ced803 Add X11 support for the DRIVE CX
The spec, added in 5.7.0, simply defined WIN_INTERFACE_CUSTOM, leading
to the generic, non-X11 typedefs for the EGL native types. This is
fine for the typical embedded use, but is not what is wanted when
targeting xcb, and leads to disabling EGL-on-X support.

Therefore, move the define into a comon header and let the individual
libs decide by defining or not defining QT_EGL_NO_X11. This sets both
MESA_EGL_NO_X11_HEADERS and WIN_INTERFACE_CUSTOM in qt_egl_p.h.

This way Qt builds supporting all three of eglfs (DRM+EGLDevice),
wayland, and xcb (EGL) can be generated out of the box.

[ChangeLog][Platform Specific Changes][Linux] xcb with EGL and OpenGL
ES, as well as eglfs with the eglfs_x11 backend, are now supported on
DRIVE CX boards when using the linux-drive-cx-g++ device spec.

Done-with: Louai Al-Khanji <louai.al-khanji@qt.io>
Task-number: QTBUG-55140
Change-Id: I6f186d16612e170995e3bca1214bcabad59af08e
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 11:24:23 +00:00
Laszlo Agocs e9fe0a15a8 eglfs: Fix rotation support with the DRM backends
The change in QEglFSScreen::geometry() was not reflected in the
advanced backends that subclass it.

Change-Id: I6494a96f0b9afaea3722c61035d4b46bf2473897
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:05:03 +00:00
Laszlo Agocs 9ab5c329bf eglfs: Add basic support for controlling how the virtual desktop is formed
Choose between horizontal (default) and vertical.

Task-number: QTBUG-55188
Change-Id: Ibc490b0ad8c60b66db785455c57987eb8afdad0d
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:04:54 +00:00
Laszlo Agocs 7de7f981dc eglfs: Add physicalWidth and height overrides to KMS config
Task-number: QTBUG-55188
Change-Id: I751b8c3c4b6f7a33b08ec23fd16cd025a5792ba6
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:04:51 +00:00
Laszlo Agocs b305702d1e eglfs: Support virtual desktops in the OpenGL cursor
The GBM-based hardware cursor already has this. Let's implement it
in the commonly used OpenGL cursor too. The main user will be the
EGLDevice backend which does not currently have a hardware cursor
but supports multiple screens.

This also means QEglFSCursor must be capable of operating on different
contexts (and what's more, non-sharing contexts).

Task-number: QTBUG-55161
Change-Id: Ie23bba1e6aab34b04d689f26a84c19a2bde518da
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:04:47 +00:00
Laszlo Agocs e930425228 eglfs: Fix QT_QPA_EGLFS_ROTATION with the KMS/DRM screeen
It overrides geometry().

Change-Id: I93c607567d7cb688221d200dcd47c1a6ba23b26b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:04:42 +00:00
Laszlo Agocs af7b4e3f55 eglfs: Enable virtual desktop with EGLDevice as well
Not clear why separateScreen was overridden to true. The GBM-based backend
goes with the default of false, leading to setting up the screens as virtual
siblings and reporting the correct virtual desktop geometry.

The difference currently lies in the OpenGL mouse cursor, which, unlike the
GBM hardware cursor, does not yet support virtual desktops. Its behavior
is not affected of the flag however.

Task-number: QTBUG-54151
Task-number: QTBUG-55161
Task-number: QTBUG-55188
Change-Id: I888ffc43ed4add66065a2f7c606c9b3a2d56a9ab
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
2016-08-10 09:04:38 +00:00
Gabriel de Dietrich 8ebe8ae35e HiDPI Drag and Drop: Properly render the default image on Mac
This is only when the attached MIME data contains text, and we
fall back to rendering that text into a pixmap. It requires
getting the device pixel ratio from the source which, for now,
may be a QWidget or a QWindow. Other cases may exist, but that
would bring more dependencies than desired.

Similarly, it fixes the draggabletext example. Other examples
would require either to get updated pixmaps or change substantially
in order to support HiDPI (e.g., the fridgemagnets example).

Change-Id: I66198214233e3e06c87505744e2aaa9691fe1bb6
Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-08-09 18:22:03 +00:00
Liang Qi 22e96c4d34 Merge remote-tracking branch 'origin/5.7' into dev
Change-Id: I36e6b890b65d12bf6931757540bcc9c553b5eb8f
2016-08-09 17:59:51 +02:00
Marc Mutz 7305b3e828 QNetworkManagerEngine: port away from Java-style iterators
They are slower, more annoying, and not safer than
their STL counterparts.

Port to C++11 range-for, or to "auto it, end" for
loops in cases where the key was also accessed.

Change-Id: Ib27608ddbe9c0775092a1c6495731ad324727d3e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-09 07:12:57 +00:00
Marc Mutz 3400e7ee7f QNetworkManagerEngine: add override keywords
Change-Id: Ie926119ee58d330e415634f93eb334c6befeede1
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-09 07:12:52 +00:00
Marc Mutz ccfd699b85 QNetworkManagerEngine: fix const-correctness
Change-Id: I058617315e7cf2c6fa49f1ed0d16cb5e2a78dd72
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-09 07:12:47 +00:00
Maurice Kalinowski db79b89899 winrt: support fullscreen mode
Enable switching application to fullscreen mode. This is mostly required
for desktop targets of WinRT.

Task-number: QTBUG-54517
Change-Id: I67e4020bc2ec8da86d94815e5765959f4ae2b63f
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-09 06:24:58 +00:00
J-P Nurmi 30eecdf6d8 Fix QGtk3Menu::removeMenuItem()
The if-condition was broken, so items weren't removed from
the container as appropriate. Accessing such dangling items
caused a crash later on exit.

Task-number: QTBUG-54432
Task-number: QTBUG-54462
Change-Id: I98fd9f29a93d72e3e4a8f0fb6bac40ad4728ba6f
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2016-08-08 14:14:31 +00:00
Eskil Abrahamsen Blomfeldt 121b7b7a3c Windows: Fix Adobe/Mozilla format color fonts after Windows update
After the Anniversary update of Windows 10 (update 1607), color fonts
using the Adobe/Mozilla format with embedded SVGs are detected as
color fonts by DirectWrite, but they do not contain any colored layers.
The result of this was that we would no longer draw these fonts using
the pen color, but we would also not support the colored glyphs in the
fonts. In order to still support using these fonts as regular
monochromatic fonts, we check if there is actually a palette in the
font file before registering it as a color font.

[ChangeLog][QtGui][Windows] Fixed rendering Adobe/Mozilla format
color fonts with other colors than black after Windows 10 Anniversary
update.

Task-number: QTBUG-55097
Change-Id: I8d74787e49530d1167b9f2533ffdf7ab814c3358
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-05 15:30:24 +00:00
Friedemann Kleint 7f66289f9d Windows QPA: Introduce command line options for DirectWrite
Add option "nodirectwrite" to turn off DirectWrite fonts
and "nocolorfonts" to turn off DirectWrite for colored fonts.

Task-number: QTBUG-55096
Task-number: QTBUG-55097
Change-Id: If12133fbd20dc7657b3616eff833a8e8c116e070
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-08-05 14:34:58 +00:00
Friedemann Kleint 2cd2cba086 QtPlatformSupport: Add QAbstractFileIconEngine
Move the code from QtWidgets/QFileIconEngine into a new class with
virtuals in QtPlatformSupport so that platforms can reuse it.

Prototypically use the class in the Windows and macOS QPA plugins.

Remove QPlatformTheme::fileIconPixmap() and change the type
of the hint QPlatformTheme::IconPixmapSizes from QList<int>
to QList<QSize> so that it fits better with the icon code.

Change-Id: I580e936f3507218757565ca099272cd575b3a779
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-08-05 08:06:21 +00:00
Liang Qi 69ef0481fc Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp

Change-Id: I6f3878b204464313aa2f9d988d3b35121d4d9867
2016-08-05 08:58:48 +02:00
charlycha 457d91bb07 raspberry pi: manage eglfs display id with env var
Specify the display to use by setting environment variable
QT_QPA_EGLFS_DISPMANX_ID Possible values are :
0: MAIN LCD
1: AUX LCD
2: HDMI
3: SDTV
4: FORCE LCD
5: FORCE TV
6: FORCE OTHER

Change-Id: I146db9a7f423bd4c6c1716c64d3df4d2388e85f9
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-04 15:23:09 +00:00
Friedemann Kleint dbfd7f304c Windows QPA: Add missing parameter to qWarning()
The warning printed when wrapping foreign windows is
missing a parameter. Amends change
f2ef587906.

Task-number: QTBUG-41186
Change-Id: Iefbd174c1acc42e87fd1a764d96452b1745aa4c0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-08-03 11:53:32 +00:00
Friedemann Kleint dbb5c95f4d Windows QPA: Handle key event sequences of surrogates
Emoji characters as input by the virtual keyboard are received
as a sequence of surrogates. Store state internally when a high
surrogate is received and send off the sequence when the matching
low surrogate is received via input method.

Task-number: QTBUG-50617
Change-Id: I91e763ec3e0747d6852f7c5c2057a67b0c24e0f5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-08-03 06:12:36 +00:00
Allan Sandfeld Jensen 65f5a7558a Cleanup canonical font name lookup
Changes the lookup of the canonical "english" font name, so that also
corresponding style-name and preferred names can be found.

This patch does not use that extra information, and should not change
any behavior.

Change-Id: I40805f81e6b35dcc98f9459c5cf96f13a8d789f2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-08-02 14:33:37 +00:00
Liang Qi d875d5e2fc Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/dev 2016-08-02 07:54:03 +00:00
Gabriel de Dietrich a9603ef7d4 Cocoa QPA Menus: Clean-up QCocoaMenuLoader related code
Now that QCocoaMenuLoader is a singleton, we can access
it the natural way. In all cases, it already needed to
be done in an Objective-C file, so it doesn't change
anything from this point of view.

Furthermore, we decide to remove private accessor APIs
in QCocoaApplication and QCocoaApplicationDelegate which
are now redundant.

Change-Id: I4190ed2e2536b778482c513727e279c9318acb7e
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-08-01 18:32:42 +00:00
Edward Welbourne f6fc34294f Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	configure
5.7 now supports clang on android; but dev re-worked configure

	src/gui/kernel/qevent.h
One side renamed a parameter of a constructor; the other added an
alternate constructor on the next line.  Applied the rename to both
for consistency.

	tests/auto/tools/moc/tst_moc.cpp
Each side added a new test at the end.

	.qmake.conf
Ignored 5.7's change to MODULE_VERSION.

	configure.json
No conflict noticed by git; but changes in 5.7 were needed for the
re-worked configure to accommodate 5.7's stricter handling of C++11.

Change-Id: I9cda53836a32d7bf83828212c7ea00b1de3e09d2
2016-08-01 18:20:00 +02:00
Laszlo Agocs c4b4eba188 eglfs: Add support for raster content rotation
Running QWidget or other raster window-based apps with
QT_QPA_EGLFS_ROTATION=180 will now flip the screen as expected.

In addition, 90 and -90 are supported too. These will affect the
reported screen geometry as well.

The OpenGL mouse cursor is repositioned and rotated accordingly. For
true OpenGL content the rotation is ignored. Hardware mouse cursors
(DRM) ignore it as well for the time being.

[ChangeLog][Platform Specific Changes] QWidget-based applications
running on the eglfs platform plugin can now request 180 or 90 degrees
rotated output by setting the QT_QPA_EGLFS_ROTATION environment
variable.

Task-number: QTBUG-39959
Change-Id: I3570b515d0233c6c6a0e813899b935ee222eab62
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-01 15:29:38 +00:00
Eskil Abrahamsen Blomfeldt 3f1048cca7 Android: Fix CJK text with Android 7.0
In Android 7, some fonts are packed in .ttc files. We fix this
simply by including them when populating the font database.

Freetype supports this and in fact,
QBasicFontDatabase::populateFontDatabase() also adds *.ttc.

[ChangeLog][Android] Fixed CJK font resolution on
Android 7.

Task-number: QTBUG-53511
Change-Id: Iebe51b0e6ba2d6987693306cd9a12013ce886b58
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-01 11:52:13 +00:00
Liang Qi 3cb7302480 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/widgets/itemviews/qabstractitemview.cpp
	src/widgets/itemviews/qabstractitemview_p.h

Change-Id: I54589b1365103cb1749186af92aab03a49c94b64
2016-08-01 10:03:21 +02:00
Morten Johan Sørvig 2ff1557937 Cocoa: Don’t beep on return keypress
Limit event propagation to AA_PluginApplication
Applications.

Change-Id: Id56ceea8d2aacae3f2be17f5894791de4eca528e
Task-number: QTBUG-54211
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-29 12:28:35 +00:00
Laszlo Agocs dd3a08dd53 Make QOpenGLTextureBlitter public
Change QOpenGLTextureBlitter to be a public API, as it was originally intended.
There are now significant external uses outside qtbase (C++ compositor examples
in QtWayland), and the API is considered proven enough.

[ChangeLog][QtGui] QOpenGLTextureBlitter, a utility class to draw textured quads,
has been made public.

Change-Id: If7a2c94e1494195e2aa375d214932fa7b4c78321
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-07-29 07:21:10 +00:00
Błażej Szczygieł 444ba31a0a xcb: Don't activate bypassed windows on mouse press
Windows with "Qt::BypassWindowManagerHint" flag can't be activated by
mouse. They can be activated only from code calling "activateWindow()"
or "requestActivate()" methods.

The patch applies also for "Qt::ToolTip" and "Qt::Popup" windows which
have implicit "Qt::BypassWindowManagerHint" flag.

The patch fixes some major issues:
- don't activate tooltips on mouse press - this causes that Qt "thinks"
that original windows loses its focus causing e.g. that text cursor
stops blinking,
- don't activate X11 tray icon - this causes that the active window
looses its focus by clicking tray icon.

The patch restores the Qt4 behavior.

Task-number: QTBUG-53993
Change-Id: I80b226f2f5ea0ebbfe8922c90d9da9f4132e8cce
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-07-28 18:16:01 +00:00
Friedemann Kleint f2ef587906 QWindow::fromWinId(): Return 0 when foreign window cannot be wrapped
Change window creation code in QWindow to not assert should
platform window creation fail for foreign windows.
Prototypically add check to the Windows QPA plugin.

[ChangeLog][Windows][Important Behavioral Changes] QWindow::fromWinId()
may return 0 when passing invalid window handles.

Task-number: QTBUG-41186
Change-Id: I936112607ec6e0838d36ac2a72aa88b869df5c23
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-07-28 08:13:18 +00:00
Friedemann Kleint d12a284bbb Windows QPA: Pass ExcludeUserInputEvents to QWSI::flushWindowSystemEvents()
User Input events flushed out by those calls have been observed
to cause crashes.

Task-number: QTBUG-39842
Change-Id: I950b80f2863def5b28e9fe46ef2b73aa6db2592f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-07-27 17:21:03 +00:00
Timur Pocheptsov f41cbc2d45 Cococa integration - close popups in a windowWillClose callback
'Orphan' popups were already partially fixed as a side-effect of
10126b37d2 (orphan since the 'parent' is moving
but popup stays in a now wrong position).
This patch also tries to fix the case when a window closed.

Change-Id: I0bbf474ab4f3b845d8bd337dae2abbae23192d0e
Task-number: QTBUG-46262
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-07-27 12:35:20 +00:00
Edward Welbourne 6c5de416c9 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/corelib/io/qtemporarydir.cpp
One side encapsulated a repeated piece of #if-ery in a local define;
the other added to the #if-ery.  Made its addition to the other's.

	src/corelib/kernel/qeventdispatcher_unix_p.h
One side moved some members into a struct; this collided with a #undef
check that neither side now has.  Discarded the #undef part.

	src/gui/opengl/qopengltexturehelper_p.h
5.7 deleted a bunch of methods; not clear why merge got confused.

	src/tools/moc/moc.cpp
One added a name to the copyright header; another changed its URL.

Change-Id: I9e9032b819f030d67f1915445acf2793e98713fa
2016-07-26 10:43:29 +02:00
Friedemann Kleint 8ea6e8d525 QWindowsTheme::themeHint(): Handle special value of SPI_GETWHEELSCROLLLINES
When the mouse wheel step is set to "Scroll one screen",  querying
SPI_GETWHEELSCROLLLINES returns the special value unsigned(-1). Return the
default instead of converting it to int in that case since Qt does not
implement it.

Task-number: QTBUG-52384
Change-Id: I793e5c09103fe0c7c4a378aba97e9f63ae1c2f35
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-07-26 05:57:14 +00:00
Timur Pocheptsov ad0d2f463a Cocoa integration - fix a crash in QMacPasteboard
QMacPasteboard's dtor skips LazyRequest promises and this leaves pasteboard
manager in broken state, since we release the pasteboard itself
of the next step in destructor. As a result, not only Qt's app doing D & D
(and thus via QCocoaDrag creating a stack-allocated QMacPasteboard) can die
suddenly when somebody inspects a pasteboard, this 'somebody' ... can also
die amazingly. So now we DO resolve promises using PasteboardResolvePromises
(but we also preserve the original intent of not providing or providing empty
data for lazy requests).

Task-number: QTBUG-54663
Task-number: QTBUG-54832
Change-Id: I3ce90bd0a012dd3cbb30c93b2b17dce9473acb28
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-07-25 17:05:36 +00:00
Philip Seeger 3f1e8d85cc MySQL: Use charset utf8mb4 to allow 4-byte characters
In MySQL, the character set named utf8 uses a maximum of 3 bytes
per character and contains only BMP characters.
It does not support supplementary characters.
In version 5.5.3, a new UTF-8 character set called
utf8mb4 has been introduced, which supports 4-byte characters.

[ChangeLog][QtSql][QSqlDatabase] When connecting to a MySQL server
whose version is 5.5.3 or higher, the default connection charset
is now utf8mb4 instead of utf8 to allow 4-byte UTF-8 encodings.

Change-Id: I718bd23212afd67367b39d4ce7da2a99ae0f1cca
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2016-07-24 12:09:03 +00:00
Gabriel de Dietrich 529b1c9e2a QCocoaApplicationDelegate: Remove unused function
This seems to be a leftover from pre-QPA Cocoa menus time.

Change-Id: I1bcfb3a882f500a63a5dec0fbe01f4541e14d54a
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-23 05:03:59 +00:00
Gabriel de Dietrich 8ea51f8aaa Make QCocoaMenuLoader a singleton
In some auto-tests, we create several instances of
QGuiApplication (though seldom, if ever, simultaneously).
However, the QCocoaMenuLoader instance was never properly
deallocated, resulting in NSApplication.servicesMenu
to still be assigned. This resulted in an exception being
raised (NSInternalInconsistencyException) the second time
we would construct a QCocoaMenuLoader.

The CPU cycles saving solution is to make QCocoaMenuLoader
a singleton. This approach is also safe since this class'
initialization doesn't depend on any state in QGuiApplication
(even the application name is fetched from either the main
bundle or the app's args).

This also allows us to clean up some code in QCocoaApplication
and QCocoaApplicationDelegate who have suffered from lack of
attention over the years.

Change-Id: Ic4c859d628ab8abd9b469b99c64293582f8e363d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-22 20:07:58 +00:00
Edward Welbourne 601019e3f4 Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/dev 2016-07-22 10:15:48 +00:00
Gabriel de Dietrich b5f18da11f QCocoaMenuLoader: Remove NIB file
Since 10.6, the first menu is always identified
as the application menu. See remark about Nibless
apps and the application menu in,

https://developer.apple.com/library/prerelease/content/releasenotes/AppKit/RN-AppKitOlderNotes/index.html

Therefore, we can get rid of the NIB file together
with the loading logic we had in place (and which,
incidentaly, was using deprecated API).

Change-Id: I99bf0e9d8ea749a9be9295fa12602335abc6548e
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-07-21 17:56:22 +00:00
Gabriel de Dietrich 8f71788ee0 QCocoaWindow: Fix usage on deprecated API
Most APIs related to ProcessSerialNumber have
been deprecated since 10.9.

Change-Id: I6be5ae92cfe2c8f80d557af6c6a79c0cd016ba90
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
2016-07-20 20:00:11 +00:00
J-P Nurmi 4e6dd1c50a Add QStyleHints::useHoverEffects
The delivery of hover events creates unnecessary overhead on touch
platforms. This allows Qt Quick Controls 2 to determine whether the
underlying platform wants hover effects. The hover effects are enabled
by default for the classic desktop platforms: Linux, Windows & macOS.

Change-Id: Ia4e7b5c0fcb7af8f1c47e06fb28086cffdf35976
Task-number: QTBUG-50003
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-07-20 18:33:59 +00:00
BogDan Vatra e6034a4740 Make sure JNI_OnLoad is not called more than once
Since Android 5.0 Google introduce a nasty bug[1] which calls
JNI_OnLoad more than once.
Basically every time when a library is loaded JNI_OnLoad is
called if found, but it calls *again* JNI_OnLoad of its .so
dependencies! So, JNI_OnLoad of libQt5Core.so gets called may times,
this is not a problem as long as it's called from Qt's java delegate
class loader. The problem is that the application .so file *must* be
called from default class loader to allow the user to find his custom
Activity/Service stuff.


[1] Workaround https://code.google.com/p/android/issues/detail?id=215069

Change-Id: Ia71209658ef56056b560018597608acf7cb0f9ea
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-07-20 14:33:31 +00:00
Takumi ASAKI b2029e9ca6 Bearer/Connman: emit missing updateCompleted()
emit missing updateCompleted() in some conditions after
QNetworkConfigurationManager::updateConfigurations() is called.

* There is no wifi devices.
* The wifi device returns error when scan is called.

Change-Id: I2668644249a0584bf43efea95348424aa64ab4a6
Reviewed-by: Lorn Potter <lorn.potter@canonical.com>
2016-07-20 07:24:45 +00:00
Edward Welbourne 782ebeada1 Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
	qmake/library/qmakebuiltins.cpp
	qmake/library/qmakeevaluator.cpp
	qmake/library/qmakeevaluator.h
	qmake/project.h
QMakeEvaluator:
* evaluateConditional(): one side changed return type, the other
  changed a parameter type.
* split_value_list(): one side changed a parameter adjacent to where ...
* expandVariableReferences(): ... the other killed one overload and
  changed the survivor

	src/corelib/io/qlockfile_unix.cpp
One side changed a #if condition, the other moved NETBSD's part of
what it controlled.

	src/corelib/tools/qdatetime.cpp
One side fixed a reachable Q_UNREACHABLE in toMSecsSinceEpoch(), the
other moved it from the private class to the public one, in the midst
of the "short date-time" optimization, which confused diff entirely.
One side changed a QStringLiteral to QLatin1String, the other rewrote
adjoining code.

	src/network/kernel/qauthenticator.cpp
Both rewrote a line, equivalently; kept the dev version.

	src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
	src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h
One side changed #if-ery that the other removed.

	tools/configure/configureapp.cpp
One side added a check to -target parsing; the other killed -target.

	tests/auto/testlib/selftests/expected_cmptest.lightxml
	tests/auto/testlib/selftests/expected_cmptest.teamcity
	tests/auto/testlib/selftests/expected_cmptest.txt
	tests/auto/testlib/selftests/expected_cmptest.xml
	tests/auto/testlib/selftests/expected_cmptest.xunitxml
Regenerated using generate_expected_output.py
I note that quite a few other expected_* come out changed, now.

There was no git-conflict in
	src/widgets/kernel/qformlayout.cpp
but it didn't compile; one side removed some unused methods; the other
found uses for one of them.  Put FixedColumnMatrix<>::removeRow(int)
back for its new user.

Change-Id: I8cc2a71add48c0a848e13cfc47b5a7754e8ca584
2016-07-19 20:14:40 +02:00