Commit Graph

26517 Commits

Author SHA1 Message Date
Albert Astals Cid
d3121e3888 Fix QPageLayout() not initializing units
by using the other QPageLayout constructor

Task-number: QTBUG-47551
Change-Id: I9c3635d4a460437febefdfb9d259d508b61c1f29
Reviewed-by: David Faure <david.faure@kdab.com>
2018-03-19 08:20:20 +00:00
Thiago Macieira
daa7f5375c q{,Utf8}Printable: avoid creating a copy of a QString
We have this QString() constructor call to permit things that convert to
QString but aren't QString to be used in qPrintable, like a
QStringBuilder-powered fast operator+ expression, like:

    qPrintable(string1 + ": " + string2)

Unfortunately, it meant that we unnecessarily created a QString copy if
the input was already QString.

Change-Id: Iecab8770aa5840aba8edfffd1516bc94cec791a9
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-03-18 17:28:42 +00:00
Andy Shaw
e4e87a2ece sqlite: Prevent a crash when sqlite does not detect any parameters
When using a virtual table inside a SQLite database it is possible that
it does not report the right number of parameters. Therefore we need
to account for this case to prevent it from crashing when trying to
bind parameters it thinks does not exist.

Task-number: QTBUG-66816
Change-Id: I3ff70bb1fe73091f43c3df53616f75858e451cfd
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-03-17 23:14:14 +00:00
Thiago Macieira
63c7a8e725 qglobal.h: compile Q_UINT64_C in C mode
This is used by qfloat_f16c.c → qsimd_p.h → qsimd_x86_p.h.

Change-Id: I359898686ce545f69847fffd151c785237a54b94
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-03-17 16:03:38 +00:00
Friedemann Kleint
8aeed99d77 Windows QPA: Improve tablet mode detection
Change the code to detect mouse mode only the first packet after
receiving the enter proximity event, using the current tablet
position. This should prevent mis-detecting mouse mode due to lags, etc.

There is a theoretical chance of failing to detect mouse mode should the
positions match resulting in differing speeds of mouse/tablet positions, but
this seems to be a negligible risk.

Task-number: QTBUG-36937
Task-number: QTBUG-64781
Change-Id: I27ca4a17786164dc8b25c4614a88672e150d5fe3
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-03-17 12:10:23 +00:00
David Faure
8b6838347d QNetworkReply: fix isFinished() for disabled replies
When network access is disabled, every QNAM request returns a
QDisabledNetworkReply instance, which emits error and finished
immediately. However isFinished() was still false, which could confuse
application code.

Change-Id: Ifd43c86364b11a9583a38fde536e6c09c109b55f
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-03-17 08:38:29 +00:00
J-P Nurmi
23fd4f7171 QGtk3Menu::showPopup(): fix target item selection
If a target item was passed, QGtk3Menu tried using gtk_menu_set_active()
to select the target item. However, the function does not do what you'd
imagine. Even the documentation states:

    This is used by the GtkComboBox and should not be used by anyone else.

The correct function, gtk_menu_shell_select_item(), is in the GtkMenuShell
"base class".

Change-Id: Ia2c03f87bb97f618c041c03011af8c676108aea5
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2018-03-16 09:14:55 +00:00
Andre Hartmann
f371b1cc8d QDomNode::replaceChild(): Fix documentation typo
Change-Id: Ib530ebc926aa2c6779b0e02878f92664022b6bcf
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2018-03-16 06:34:13 +00:00
Gabriel de Dietrich
0c059db57d QMenu: Realign submenu first action with its parent menu action
There was an offset equivalent to all the margins we add to
the action rectangles. We need to subtract it in order for
both menu items, parent and sub-menu, to be aligned. This
amount is given by the sub-menu's first action position
relative to its popup.

Change-Id: I141bbe3cfb81825a25b12e4059b93e61c29df518
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-03-16 00:13:28 +00:00
Thiago Macieira
2fb706f9a8 QIpAddress: reject IPv6 addresses with more than 4 hex digits
Matches glibc commit 9a0cc8c1bd7645bf3c988890ffb59639c07a5812.

[ChangeLog][QtCore][QUrl] Fixed a bug in parsing IPv6 addresses with
more than 4 hex digits in a component.

[ChangeLog][QtNetwork][QHostAddress] Fixed a bug in parsing IPv6
addresses with more than 4 hex digits in a component.

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=9a0cc8c1bd7645bf3c988890ffb59639c07a5812

Change-Id: I2701038131d91eb108aebb3bec16278e4efe3de2
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-03-16 00:01:53 +00:00
Alexander Akulich
53f82185e9 QFusionStyle: Fix compilation when qreal is float
Change-Id: I575d348915a7239a40b589012b4e9707bd15d1dd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-03-15 23:51:49 +00:00
Thiago Macieira
8eb3944dac Disable statx(2) and renameat2(2) system calls on Android
Many Android systems come with a locked down system call list, causing
the statx(2) system call to fail with an unexpected error code or by
delivering a signal to the application. Because of the signal, we can't
do runtime detection...

This is not our bug: it's obviously a mistake in the SECCOMP rules in
Android. But we work around the issue.

Unfortunately, because of a few manufacturers who can't configure their
rules properly, everyone will suffer.

Task-number: QTBUG-64490
Change-Id: I39332e0a867442d58082fffd1507a49415917384
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2018-03-14 19:26:02 +00:00
Alexander Akulich
96ba39b1ee QFlatpakTheme: Cleanup the code
There is no codepath that can result in d->baseTheme being nullptr.
Remove the checks and get rid unneeded and sometimes dangerous fallbacks
(createPlatformMenuBar(), showPlatformMenuBar() and three more methods
could overflow the stack because of infinity recursion).

Change-Id: Ib03adadf56c169286de42671e2da506502df7aea
Reviewed-by: Jan Grulich <jgrulich@redhat.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-03-14 19:25:22 +00:00
Oswald Buddenhagen
1718efe8fa QByteArray::setRawData(): don't null-terminate initialization from nullptr
it's antithetical to do that, as raw data is documented to be not null-
terminated. QString doesn't, either.

Change-Id: I7ded83a09f64e747a248f9bdac2a364032aae4c0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-03-14 15:37:00 +00:00
Allan Sandfeld Jensen
a93096a770 Fix performance regression in simple a8 non-gamma corrected
Avoid doing the conversion over QRgba64 when we don't need it.

Change-Id: Ic2f82bef0a80b17ef7803eedcdb0600eeac96489
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-03-14 15:11:14 +00:00
BogDan Vatra
b30b957552 Android: Fix possible crash
Change-Id: I3362dffe0f30196a2a1eabcffe6cb3b2d52a7785
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-03-14 13:32:20 +00:00
Martin Smith
91b35011f5 doc: Make fromStdVariant() appear in the QVariant docs
This function was not appearing in the QVariant docs because the \fn command
was wrong and because clang was not seeing the declaration in qvariant.h in
the first place. With this update, the function does appear in the docs, but
it's signature is not correct because clang can't find a definition for
std::variant<Types...>, which probably means it doesn't have the most recent
declarations in the std namespace.

Change-Id: I7912ff333e5d4a8619461dd3ab7ee34bcd8f2289
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-03-14 12:59:35 +00:00
Błażej Szczygieł
a62f1d0356 xcb: Prevent shared memory allocation on every window resize
Allocate new shared memory only when window size grows or when window
size is 2 times smaller than allocated memory size. This improves
window resizing performance and also allows to free some memory if
window becames much smaller.

Change-Id: I3454cd3c6023eede8242d6b29038f4dd6638f9f1
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru>
2018-03-14 12:47:27 +00:00
Laszlo Agocs
00304eac7b Revert "Set sharedPainter correctly for QGraphicsEffect"
This reverts commit 7257862fb2.

It has been reported that this patch causes widgets with certain effects
become invisible.

Task-number: QTBUG-60231
Task-number: QTBUG-66803
Task-number: QTBUG-66387
Change-Id: I9c3c4cf2f17ac639d1aee5489b665aa1e165af16
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-03-14 12:37:53 +00:00
Friedemann Kleint
39d2a11a86 Item views: Fix 5.11 API review findings
Rename getter QHeaderView::firstSectionMovable()
to QHeaderView::isFirstSectionMovable(), turn into a property
and fix \since.

Change-Id: Ica2ca43d22f3fd78ff63178ba75014807fc9b823
Reviewed-by: David Faure <david.faure@kdab.com>
2018-03-14 12:23:27 +00:00
Edward Welbourne
c0272f98df Expand Config to Configuration in method names
Commit f55c73ede2 added various backendConfig methods;
API review for 5.11 pointed out that Config should not be abbreviated.

Change-Id: I3b294b44a030b2a6e4cdd034fa27583c228dfe42
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-03-13 14:10:50 +00:00
Timur Pocheptsov
f9131b0e17 Fix Darwin OS (but not macOS) build - mark unusued parameter
... with Q_UNUSED.

Change-Id: I3736c179381deb08cec9c2c399aaf8a24d8d7f0b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-03-13 13:20:54 +00:00
Edward Welbourne
4d4c63acba Remove needless #include <sys/random.h> from qrandom.cpp
Tripped over by Alexei Fedotov and brought to light on the developer
list; Thiago says it's a left-over from before reworking to actually
use getentropy() instead of getrandom(); it should no longer be
needed.

Change-Id: Id09b0628e58fa62170a0f0da35b2b121f3fb0172
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-03-13 12:54:18 +00:00
Laszlo Agocs
a060ee2802 QWindowWindow: Avoid resize events from the ctor
When calling showFullScreen(), the setwindowStates call in the
QWindowsWindow constructor led to generating a resize event. This is
pretty bad for example when QOpenGLWindow is involved since the QWindow's
platformWindow member is not even set yet (handle() == nullptr) so
everything related to OpenGL contexts starts failing (as there is no
underlying platform window yet as far as the QWindow is concerned).

In short, generating geometry changes from the platformwindow ctor is a
bad idea. Use initialize() instead for that.

Task-number: QTBUG-67027
Change-Id: I35d11949213eb21f81b2ff2d4f2282cb36510210
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-03-13 12:49:54 +00:00
Mikhail Svetkin
aaace8fbdb widgets: Add a QT_CONFIG(messagebox) guard
for initResources in QApplication

Change-Id: Id083edbcba4b348ef78e55c788ea94f85b6f572b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-03-13 12:33:13 +00:00
Nico Vertriest
e9dc2f1783 Doc: Add doc to Graphics View Flow Layout example
Change-Id: Id3965d099222607cee4252bbb33c6a1e9c17765a
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2018-03-13 12:07:55 +00:00
Friedemann Kleint
43918feb4a Windows QPA: Fix QWindowsWindowFunctions::SetHasBorderInFullScreen() to work in all cases
- Directly apply the flag in case the platform window exists and
  is in full screen.
- Store as a dynamic property in case the platform window is not
  created yet.

Amends 69839e55c1.

Task-number: QTBUG-41309
Task-number: QTBUG-66557
Change-Id: I162baecfae4d07a5d5b59c5401bdb605faa7ab68
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-03-13 12:04:11 +00:00
Friedemann Kleint
910cc08f6b Windows QPA: Improve the event logging
Add more message codes and fix the whitespaces in the output:

 EVENT: hwd= 0x280484 WM_WINDOWPOSCHANGED msg=0x 47 et=0x 21e wp= 0 at -2208 -31887 handled= false
->
 EVENT: hwd=0x2204d6 WM_WINDOWPOSCHANGED msg=0x47 et=0x21e wp=0 at -3280,-19633 handled=false

Change-Id: I89a7b3bd328748ef39fe2dcd789497f43e9d4a2a
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2018-03-13 12:03:50 +00:00
Johan Klokkhammer Helsing
c6ea77f59d Use QWindow::windowStates() for WindowStateChangedEvent::oldState
WindowStateChangedEvent::oldState is of type Qt::WindowStates and should
therefore be set to QWindow::windowStates() instead of QWindow::windowState()

Change-Id: I6710624dd303642a31bfbb25bc07bf05b921d84c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-03-13 07:47:45 +00:00
Edward Welbourne
54190595ef Make sure QDir::absoluteFilePath("/dir") includes a drive on MS
QDir::isAbsolutePath(name) thinks any path starting with a slash is
absolute; however, to return a valid absolute path, we need to put a
drive prefix onto such a name. So use QFileSystemEntry::isAbsolute()
for that check (it believes in the need for a drive, or UNC prefix)
and handle the absolute-but-for-drive case when it arises.

Add a regression test and make related changes to existing tests.

Task-number: QTBUG-50839
Change-Id: Id5d2b2586bb1423fa2d9375a298a4bb5241cffe0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-03-12 18:11:33 +00:00
Allan Sandfeld Jensen
5473535344 Fix scaling precision with large zooms
Avoid using the two fast-scaling paths, while they might not overflow
in this case, they do not have enough precision in their fixed point
math to render accurately.

Task-number: QTBUG-53582
Change-Id: I2e063ee90defbecd79a12a6ce02a74c60d1805df
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-03-12 11:16:09 +00:00
Sergio Martins
f1d2c20a27 Fix ambiguous shortcut warning message
This is done in QAction::event(), not eventFilter().

Change-Id: Idc5d7864d259dcf035543c40c8e7b6acd86bde9b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-03-11 19:45:37 +00:00
Sergio Martins
99f93cca27 document that QueryWhatsThis is a QHelpEvent
Change-Id: I4240c32287530df6162c07a27b865fb4176103db
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-03-11 19:45:35 +00:00
Christian Ehrlicher
41db3140a9 QRasterPaintEngine: properly initialize flags
QRasterPaintEngineState::flags.non_complex_pen was not initialized in
the ctor which leads to valgrind warnings. Initialize it to false - the
correct value is set within update/ensurePen() before it is really used.

Task-number: QTBUG-66615
Change-Id: If154873ad89903c243662ab1f140f74434a6f88c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-03-11 18:43:53 +00:00
Friedemann Kleint
52fede55b8 Windows QPA: Output more information when initializing tablets
Add a debug operator for the LOGCONTEXT.

Change-Id: I93d567692f35c69687709800d80bc93487c8f906
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-03-10 20:36:09 +00:00
Friedemann Kleint
ac6590e0fc Windows QPA: GL: Fix setting the color depths for the GDI fallback
Set the color buffer depths on the PIXELFORMATDESCRIPTOR for
the fallback code path (-platform windows:gl=gdi).

Task-number: QTBUG-66797
Change-Id: Idccd94fdf121803af1c19e34cc86b6f06ca88d90
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-03-10 20:35:46 +00:00
Friedemann Kleint
88a48192aa Fix 5.11 API review findings in QtNetwork
Rename
QNetworkInterface::maxTransmissionUnit()
to
QNetworkInterface::maximumTransmissionUnit()

Change-Id: I24a80b1317363e8d5da5f251ec908da9a51a6b0a
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-03-10 20:35:16 +00:00
Nils Jeisecke
fee8944cbe Allow use of template class instances inheriting from a Q_GADGET in Qml
The Q_GADGET macro cannot be used in templates. It can however be useful
to derive a template class from a Q_GADGET enabled base class to benefit
from type safety features in C++ (e.g. the class could represent an id
or handle for some C++ type).

For proper wrapping of a QVariant with a gadget value in a QJSValue, the
QMetaType::IsGadget flag must be set for the registered template
instance type - which does not happen prior to the fix because
IsGadgetHelper requires qt_check_for_QGADGET_macro to be defined in the
registered class but not in an ancestor class - in other words: The
class must declare Q_GADGET.

To overcome this, IsGadgetHelper/IsPointerToGadgetHelper can now
differentiate between a Q_GADGET flagged class (allowing
automatic registration) and a derived class, e.g. a template class
(forcing Q_DECLARE_METATYPE to be used explicitly).

[ChangeLog][QtCore][QMetaObject] It is now possible to use template
class instances inheriting from a Q_GADGET in Qml

Task-number: QTBUG-66744
Change-Id: I7632ad45cff79fa422b3f852ca0b963f35fab155
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-03-10 06:12:24 +00:00
David Faure
b767c7363f qxcbconnection_xi2.cpp: fix debug check to avoid confusing debug output
The check on line 972 says lcQpaXInputEvents().isDebugEnabled() so
that debug output was always showing "from 0,0" due to
lastScrollPosition not being set.

Change-Id: I345732e36db05108f70474261c47e78333b57d30
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-03-09 10:55:38 +00:00
Alexander Volkov
9b7809a43e xcb: Fix FP1616 to int conversion
Divide the whole FP1616 value by 0x10000 instead of dividing
the integer part by 0x10000 and the fractional part by 0xFFFF.
It also makes fixed1616ToInt() consistent with fixed1616ToReal(),
see 7d3f353a5b.

Change-Id: Id76025028c926872b002ef0a1ca8a8bdc2de3e1e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-03-09 10:45:26 +00:00
Sergio Martins
c082d84d5d Fix QLabel crash if buddy's lifetime is too short
If buddy is deleted then QLabel will still try to deliver the
shortcut event to it, in QLabel::event(), and cras.

Besides connecting to destroyed() which alone fixes the crash,
also hardened it and guarded against dereferencing null buddy,
in the unlikely event of someone adding features to QLabel.

The second part is suitable for backporting to the LTS branches.

Task-Id: QTBUG-66841
Change-Id: Ib6a36a9f99cee31afe1f88eb77f5b6cafb8b1086
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-03-08 22:36:49 +00:00
Mitch Curtis
e5a6e9bb80 Doc: improve QScopedPointer::reset() documentation
- Fix grammar
- Mention take()

Change-Id: I3bde229755549230ad3d0962da6eeb164a060fb1
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-03-08 07:40:26 +00:00
Gabriel de Dietrich
e16c6dfb72 QCocoaMenuItem: Make QCocoaNSMenu the item target
Since we made the NSMenu delegate a singleton we could not rely
on it to have enough information to implement worksWhenModal.
At the same time as the delegate change, we derived NSMenu into
QCocoaNSMenu. This allows us to extend the menu functionality
and, in this case, serve as target for the Cocoa menu items.

We also refactor setting the item's target/action.

Manually tested against menurama and bigmenucreator tests, the
test-case for QTBUG-17291, and the richtext/textedit example.

Change-Id: I222241f71db82611711b23d4a8c6122a741370ae
Task-number: QTBUG-66676
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-03-07 19:14:07 +00:00
Christian Ehrlicher
4dee5446be Add missing rvalue overloads of operator+=() and operator<<()
They were forgotten when the overloads for append()/push_back() were
added in Qt 5.6

[ChangeLog][QtCore][QVarLengthArray] Added missing rvalue overload of
operator+=() and operator<<()

[ChangeLog][QtCore][QVector] Added missing rvalue overload of
operator+=() and operator<<()

Change-Id: I20fedfba2bf282773bd1f9cf2c8ec06f05896a7d
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2018-03-07 18:36:40 +00:00
Christian Ehrlicher
808adeb7bc QSqlField: rearrange QSqlFieldPrivate members
Rearrange QSqlFieldPrivate members to only need 64Byte instead 72 in
an 64bit environment.

Change-Id: I620c18aca06a11b7ab4bd8e99b377b9d823da7f4
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-03-07 18:36:33 +00:00
Christian Ehrlicher
80693f171c QStandardItem: add more sanity checks on insertRow(s)/Column(s)
When QStandardItem::insertRows/Columns is called with an empty list
or an insert count of 0, do not assert but return false.

Task-number: QTBUG-66491
Change-Id: I328598e08584fb9b0a35075458bfeb31c57ebfee
Reviewed-by: Samuel Gaist <samuel.gaist@edeltech.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-03-07 18:36:15 +00:00
Christian Ehrlicher
b64f3f6ca9 QTabWidget: Do not add tabbar size during sizeHint() when it is hidden
Since Qt 5.4 the QTabBar can be automatically hidden when it has less
then 2 tabs. Therefore the sizeHint should not consider the tabbars
size when the tabbar is hidden.

Task-number: QTBUG-64715
Change-Id: I2f248f88d9070de5354f7344c7628a78442ab499
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-03-07 18:36:06 +00:00
Christian Ehrlicher
3185b40d5d SQL/Postgres: Fix support for nan, inf and -inf
Postgresql needs a special value for nan and +/- inf. This was
considered during insert but not during select.
Also remove some pre-c++11 inf/nan - handling and replace it with
Qt equivalents.

Change-Id: I044ca58e9cf673f4b100b05a0d8e25c8a9c29ec5
Reviewed-by: Robert Szefner <robertsz27@interia.pl>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-03-07 18:35:57 +00:00
Tor Arne Vestbø
67d5f79fe6 logging: Clarify and document how we look for the presence of a console
The privately exported qt_logging_to_console() function has been renamed
to shouldLogToStderr, and exported in the QtPrivate namespace for QtTestLib.

[ChangeLog][Important behavior changes][Logging (including qDebug and
qWarning)] The QT_LOGGING_TO_CONSOLE environment variable has been
deprecated. Use the more specific QT_ASSUME_STDERR_HAS_CONSOLE or
QT_FORCE_STDERR_LOGGING, depending on your usecase.

Change-Id: Ie29228eeac3b700c3de94fee022d5d66d9b5c210
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-03-07 18:12:09 +00:00
Ville Voutilainen
f49c55a505 Revert "Make qWaitForWindowActive more robust"
This reverts commit 2eec3272c7.
The change to qWaitForWindowActive causes regressions
in qtdeclarative, so we need a better fix for the problems
we have with window waiting.

Task-number: QTBUG-66866
Change-Id: I8300dabc870d6aeaa9ba6bfcf3d64146b13c1955
Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2018-03-07 07:13:19 +00:00
Friedemann Kleint
8abbb6ec72 Windows QPA: Fix scaling of tablet coordinates for High DPI scaling
Determine the virtual desktop geometry in native pixels from
the QPlatformScreen siblings. Use the platform window to determine
the local position.

Task-number: QTBUG-36937
Change-Id: Ic250f1b41d8e74099558796112dbd70a7e1f6956
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-03-07 06:04:01 +00:00
Friedemann Kleint
f7b8f2e8b5 Windows QPA: Fix sending of the mouse release in case of a Drop
Use the new API of QWindowSystemInterface to send the release
event which does not depend on the state of
QGuiApplicationPrivate::mouse_buttons.

Amends 1f6bd8bfb2.

Task-number: QTBUG-66447
Change-Id: Iae889ea416b633c9307da9535dfb51ad1dbf288e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-03-07 06:03:35 +00:00
David Faure
4a04eea4f4 QHeaderView: fix inconsistent saved state, ignored during restore
The code that updates a section size must also update length,
otherwise saveState can end up saving inconsistent state, and
restoreState() goes to an early-return, not doing anything.

The actual bug was fixed meanwhile because _q_sectionsChanged is called
again, which recalculates length. I still see this only as a safety
measure, every other code path that changes section sizes updates length
right away.

Change-Id: I6cc16261692d93b3640afafef600a5bdff8dca0c
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2018-03-07 05:29:16 +00:00
Johan Klokkhammer Helsing
3eb42abab6 Check for WindowActivation capability instead of platform
Before running tests that depend on QWindow::requestActivate

Gets rid of several Wayland platform checks in tst_QWindow.

Change-Id: I7a5e029044a968dfcf87ecbb5105c01d52852d35
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
2018-03-06 20:02:22 +00:00
Shawn Rutledge
9e9dc58847 cocoa: add qCDebug in QNSview::scrollWheel
If you enable both qt.qpa.input.touch and qt.qpa.cocoa.mouse you can
see the order and interleaving of the touch and scroll events.

Task-number: QBUG-66329
Change-Id: I8e1a63e2958b85f7964bb597e49cf8529cb3f32e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-03-06 12:24:34 +00:00
Jarek Kobus
4b24a61ecc uic: Add the include for QIcon conditionally
Task-number: QTBUG-66753
Change-Id: I31bd821396b59c8e83e19e02634cf1440a271215
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-03-06 06:49:00 +00:00
Kimmo Ollila
0e85b554ad Add WFD_DEVICE_CLIENT_TYPE attribute for INTEGRITY S820Am ADP
This is needed to be compatible with latest Qualcomm BSP releases.
This patch also makes it possible to select HW layer via
QT_OPENWFD_CLIENT_ID and QT_OPENWFD_PIPELINE_ID environment variables.

Change-Id: Ie795b21afc61a1de7c1d0b52cdb30a754e3f8266
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
Reviewed-by: Timo Aarnipuro <timo.aarnipuro@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit 00f693d3e5046999270c92731e34a3e7fcd01c6b)
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-03-05 11:37:38 +00:00
Sergio Martins
6d45c28ed4 Document QFont::PreferNoShaping as being since 5.10
"since format" copied from QEvent's documentation.

Change-Id: Ib11609cd11f9cb9906d947f46c2cd61c7abd853a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-03-05 10:11:51 +00:00
Simon Hausmann
57b1be158e Fix docs of QTextDocument::find with regards to default case sensitivity
The default value for a default constructed FindFlags QFlag is zero and
FindCaseSensitively is 0x2. Therefore the default behavior for find() is
case insensitive.

Change-Id: Id3419c3562fc6170fdb281098a22dd8205603847
Task-number: QTBUG-62660
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-03-05 08:57:03 +00:00
André Klitzing
2203bb580d Remove unused variable
Found by spotbugs.

Change-Id: I0aa81e45ced0a995adb5e4a45be925e5ef219a77
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-03-05 08:49:36 +00:00
Andy Shaw
0da3ebd994 moc: Don't error our when parsing "using namespace __identifier(...)"
This follows on from a232251992 which
covered a similar instance of this. As with that change, we should not
abort the compilation, just ignore it.

Task-number: QTBUG-63772
Change-Id: Ide958080a90f43ed19edd8a320e7d45de1c96821
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-03-05 06:54:06 +00:00
Christian Ehrlicher
174a1e9635 QHeaderView: make use of LayoutChangeHint in _q_sectionsChanged()
When _q_sectionsChanged() is called from e.g. QSortFilterProxyModel
the LayoutChangeHint is set which can be used to avoid useless work
in this function.

Change-Id: I034db3fcc7a5f9ea7ebc0fa3ffd7429edb154eb7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-03-04 10:51:51 +00:00
Christian Ehrlicher
1f920b779e QHeaderView: fix indentation in setModel() and clear()
The indentation of large code blocks in setModel() and clear() are not
correct. Needed for another change to avoid whitespace changeds in there.

Change-Id: I620c8c5e83e98747f5c17469738722cf976fb467
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2018-03-03 19:02:26 +00:00
André Klitzing
7fda40effa Avoid infinite recursive loop
Looks like this should be "super." instead of "super_"
Found by spotbugs.

Change-Id: I83d096eee332361d62e783581bfa15017536081d
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2018-03-03 08:53:41 +00:00
Albert Astals Cid
78e92997ed QLocale: Update the system private on QLocale default constructor if needed
When first starting an Android app we have invocation order issue, to
load the platform plugin we create the default QLocale (needed by the
resource locator code to see if :/qt/etc/qt.conf exists) so when the
android platform plugin loads and creates its own QSystemLocale, the
QLocale defaultLocalePrivate is already created and pointing to
globalLocaleData which means that systemData won't be called and thus
the code that triggers the call to QLocalePrivate::updateSystemPrivate
won't be called when calling QLocale().

I thought of two ways of fixing this, one was calling
QLocalePrivate::updateSystemPrivatea() from the QAndroidSystemLocale
constructor, but giving the responsibility to not break things to the
plugin seems a little fragile, so making the check on QLocale()
seems better.

Without this patch an Android app doing
  QApplication app(argc, argv);
  qDebug() << QLocale().name();
  qDebug() << QLocale().name();
  qDebug() << QLocale::system().name();
  qDebug() << QLocale().name();
would print
  ""
  ""
  "ca_ES"
  "ca_ES"
now it correctly prints "ca_ES" the four times.

Task-number: QTBUG-41385
Change-Id: I2cf419f59aa008fa3aca11295fe7d42c40bcc32e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-03-02 09:52:14 +00:00
Andy Shaw
ccdcf8c4f2 Android: Close the DataOutputStream when we are finished with it
Task-number: QTBUG-66769
Change-Id: I93c49baa0ccab4f853402d9be675af1c50b2e0c1
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
2018-03-02 08:12:37 +00:00
Thiago Macieira
4e02c8d5b8 JSON: remove braces from UUID text representations
[ChangeLog][QtCore][QJsonValue] fromVariant() conversion now converts
from QUrl and QUuid using special encoding forms to ensure best JSON
compatibility.

Change-Id: I56b444f9d6274221a3b7fffd150cdc5ca1f87ff1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-03-02 04:06:33 +00:00
Thiago Macieira
a2ffb35ac2 QJsonValue: use the fully-encoded form of a URL in fromVariant()
For compatibility with other parsers that may expect it to be so.

Change-Id: I56b444f9d6274221a3b7fffd150cd66390f98fd5
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-03-02 04:06:24 +00:00
Herman van Hazendonk
1c2499cbf1 Add needsWorkaround for additional Adreno targets
Seems this issue is still there with Adreno 5xx and 6xx is suspected to
have it as well (no device to test though), so added both 5xx and 6xx
to cover these. Updated 30x to 3xx in order to cover Adreno 320 and 330
as per https://en.wikipedia.org/wiki/Adreno.

Amends 9ae028f507

Task-number: QTBUG-66702
Change-Id: I6ce3f6499d3ff9da884be45039e5f5e0990f7e1f
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-03-01 21:39:43 +00:00
Gatis Paeglis
b3e91b66b9 qtestlib: fix support for pressing multiple mouse buttons
After a37785ec76 went in, it become
apparent that multi mouse button state handling in qtestlib is
non-existent, for details see QTBUG-64030 and QTBUG-63786. What
happened behind the scenes often was not what one would expect based
on the provided QTest::mouse* input sequence - events went missing,
incorrect events were generated, each subsequent test function
started with a state set from the function that run earlier. It is
easy to see how a minor change in one test could easily affect outcome
of other tests.

With a37785ec76, Qt platform plugins
are now responsible for sending explicit mouse button type and state
information; qtestlib should take full responsibility now as well.
But using the new API from a37785ec7 alone in qtestlib is not sufficient.
We need to reset mouse state between each new test function run (we do
this at function scope as that fits with the current qtestlib API user
expectations). This patch implements the necessary reseting logic.

Updated tst_qwindow.cpp::generatedMouseMove() to use QTest::mouse* APIs.
That test requires pressing multiple buttons, it was not possible with
QTest::mouse* APIs before this patch.

Added an auto test for multiple mouse button pressing/release in
tests/auto/testlib/selftests/mouse/. And few other tests which are
currently QSKIP-ed, but should be considered when re-designing qtestlib
APIs.

Task-number: QTBUG-64030
Change-Id: I39fdcbc73a467a7463ce2aed622bf22484095635
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-03-01 19:41:10 +00:00
Allan Sandfeld Jensen
635b5115c4 Fix QXcbScreen::format() when rgb-swap is needed
QXcbScreen::format() was producing console warning and returning invalid
format if rgb-swap was necessary. Let it match possibly reversed formats
since the backing-store will swizzle it anyway.

Change-Id: I6a53cb8ceda029e9d708d25ad635832f1163ffe7
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2018-03-01 10:15:05 +00:00
Friedemann Kleint
daa39f8499 ToolTip/Windows: Fix wrong size when font is modified by widget stylesheet
Factor out a function to calculate the size and update the size when a
style sheet parent is set.

Task-number: QTBUG-64550
Change-Id: I3afe997085eae3cd48b7fe0a4c98582a8f572260
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
2018-03-01 09:56:14 +00:00
Friedemann Kleint
9f77854d28 Windows QPA: Fix setting the separator property on native menus
Apply the setting in QWindowsMenuItem::setIsSeparator().

Task-number: QTBUG-66642
Change-Id: I023fe88bd85ad82cfb4a80418a892dcf21853ba5
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
2018-03-01 09:55:58 +00:00
R.J.V. Bertin
cb2a6f6a9f Find PCRE2 via pkgconfig
This avoids issues when using dependencies installed in a custom or
dedicated $prefix, when PCRE2 is configured to install its headers
in their own directory under instead of directly in $prefix/include.

Task-number: QTBUG-66355
Change-Id: Ia99464820600282d61237e5bcff38101d2c9684b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-03-01 09:08:48 +00:00
Thorbjørn Lund Martsum
e8425f9e52 QHeaderView: Fix crash in layout about to change
Before there was a risk looking up e.g index -1 if there
were no visible sections in layoutAboutToChange.

Change-Id: Ic911e4292e8e8c4892fef1c0f34cf7dccaad2bac
Task-number: QTBUG-65478
Reviewed-by: David Faure <david.faure@kdab.com>
2018-03-01 05:26:12 +00:00
Martin Storsjö
db6d14318d windowsuiautomation: Lowercase windows header includes
This fixes cross compilation with mingw from a case
sensitive filesystem.

Change-Id: I0f5ba708b7138cae325ff564559d3e40eba4e714
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-03-01 01:51:29 +00:00
David Faure
8a678c3464 QHeaderView: skip dividing by 1, rather pointless
Change-Id: I9a63810475d1f17d65e91c1f4d805a7e564ba686
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2018-02-28 22:20:51 +00:00
David Faure
f2eb7b0204 QMimeDatabase: fix regression in alias resolving
The refactoring to support multiple providers broke alias resolving
(e.g. "text/directory" would be an invalid mimetype, instead of being
resolved to "text/vcard"). The unittest didn't catch it because most of
it was running with a single mime directory (and therefore a single provider,
in the new model). Fixed by re-running a number of test methods once we
have a second mime directory.

Change-Id: Ib5da89ba79c11ed41813b2aff4bc71c30afcde7d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-02-28 22:17:58 +00:00
Lars Knoll
7f504283ef Update the Unicode BiDi algorithm to be compliant with Unicode 10
The UBA in Qt was out of date, implementing the spec from pre
Unicode 6.3 days. It missed handling of directional isolates and
paired brackets.

This adds a completely new implementation of the UBA, that is
compliant with Unicode 10.

Added the test data from Unicode 10 to the qcomplextext auto
test and ensure that we pass the test suite.

Task-number: QTBUG-57743
Change-Id: Ie2d957bc9775d82f0a51d1c78dc6bd154f22847c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-02-28 17:11:43 +00:00
Lars Knoll
4804d42ab8 Fix ligature handling in QTextLine::cursorToX()
If the script item is rtl, we need to subtract the offset inside the
ligature again, as the full width of the ligature would have already
been added in the loop before.

Change-Id: I544ac6fa19484b35335767e1ba1befc3dfa07693
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-02-28 17:11:37 +00:00
Tor Arne Vestbø
5d365b96b9 macOS: Warn the user when KVO-observing QCocoaNSWindow
We recreate the window of our QNSView in various situation such as changing
the styleMask, which results in either a new QNSwindow or QNSpanel being
set as the window of the view. KVO-observing the window property of the
view will fail we then have a new window instance, and will crash when
trying to remove the observer from the new window.

Unfortunately catching the NSRangeException that happens when removing
an observer from a 'switched' window is not possible, so the user is
left with:

  Terminating app due to uncaught exception 'NSRangeException', reason:
    Cannot remove an observer <Foo 0xabc> for the key path "bar"
    from <QNSPanel 0xdef> because it is not registered as an observer.

Change-Id: Ib2adbb99f19303a054fb1eb65e959aecd32b1162
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-02-28 17:06:41 +00:00
Nico Vertriest
df3da2c1d1 Doc: Add doc for QSKIP
Change-Id: Ib8cd1b4926652984b41b5a05bf4dbf3214f2856f
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2018-02-28 12:51:37 +00:00
Ville Voutilainen
71cdc95006 Silence a GCC 8 warning in qpainter
qtbase/src/gui/painting/qpainter.cpp:5625:68: error: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct QFixed’; use assignment or value-initialization instead [-Werror=class-memaccess]
         memset(advances.data(), 0, advances.size() * sizeof(QFixed));

Change-Id: I563b1b0c5dfaf381a9521bc9a4dc3197f0f38d11
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-02-28 07:18:35 +00:00
Ville Voutilainen
ea1137ff5e Silence a GCC 8 warning in qoutlinemapper
qtbase/src/gui/painting/qoutlinemapper.cpp: In member function ‘QT_FT_Outline* QOutlineMapper::convertPath(const QVectorPath&)’:
qtbase/src/gui/painting/qoutlinemapper.cpp:182:76: error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘class QPointF’ from an array of ‘const qreal’ {aka ‘const double’} [-Werror=class-memaccess]
             memcpy(m_elements.data(), path.points(), count* sizeof(QPointF));

Change-Id: Ieca99f0262c57e58adbcf48ac923ae11bd428b00
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-02-28 07:18:24 +00:00
Ville Voutilainen
d62d51c7e6 Silence a GCC 8 warning in qringbuffer
qtbase/src/corelib/tools/qvector.h:782:16: error: ‘void* memmove(void*, const void*, size_t)’ writing to an object of type ‘class QRingChunk’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Werror=class-memaccess]
         memmove(b + 1, b, (d->size - offset) * sizeof(T));
         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../include/QtCore/5.11.0/QtCore/private/qringbuffer_p.h:1,

Change-Id: I6583241223fe3fc76c0b792779993a34aa9485fe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-02-28 07:18:14 +00:00
Friedemann Kleint
a8aa3dc5c7 QDate/Time,QTimeZone: Fix empty documentation section titles
Change-Id: I674c4bb1805a7f7bc95512b07b0278446ebe7772
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-02-27 15:18:17 +00:00
Ville Voutilainen
1b72d3e645 Silence a GCC 8 warning in qxcbnativeinterface
qtbase/src/plugins/platforms/xcb/qxcbnativeinterface.cpp:309:65: error: cast between incompatible function types from ‘void (*)(const char*)’ to ‘QPlatformNativeInterface::NativeResourceForIntegrationFunction’ {aka ‘void* (*)()’} [-Werror=cast-function-type]
         return NativeResourceForIntegrationFunction(setStartupId);

Change-Id: I83409b3a6cc67ccb4c9e91e592e6a01bb6ce45ea
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-02-27 14:57:14 +00:00
Ville Voutilainen
7eac2e7350 Silence a GCC 8 warning in evdevtablet
qtbase/src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp:85:36: error: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct QEvdevTabletData::<unnamed>’; use assignment or value-initialization instead [-Werror=class-memaccess]
     memset(&state, 0, sizeof(state));

Change-Id: I3b18ffa7fdf9c7aa1bd4977f12858fd1f176c020
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-02-27 14:57:04 +00:00
Ville Voutilainen
2eec3272c7 Make qWaitForWindowActive more robust
Based on the information we got from Unity developers, we need
to check for window's frame geometry to be set, not just window's
position to be set. On various window managers, a window is
'ready' once the frame geometry is set. This fixes autotest
flakiness of tests that use qWaitForWindowActive.

Task-number: QTBUG-66216
Change-Id: Icb664e7b802b474919f3b058c00681574522ccbe
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-02-27 08:53:09 +00:00
Friedemann Kleint
1f6bd8bfb2 Windows QPA: Ensure a mouse release event is sent after DnD
Windows does not send a mouse release by itself, which can
leave Quick controls believing the mouse is still pressed.
Synthesize an event.

Task-number: QTBUG-66447
Change-Id: Ia865edddc0c77a1b42b9ad2c38323379e74b6704
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2018-02-26 20:35:02 +00:00
BogDan Vatra
b2d2b655e5 Fix compile with sanitize address & undefined
On Debian 9, the sanitize library exports only dlopen symbol, but
it doesn't export the other ones.
We need to check all dl symbols that we use, otherwise "-ldl" will
not be added to the libs list.

Task-number: QTBUG-64864
Change-Id: I3e62b82985348c40b8b61302ba589d5564598e18
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-02-26 08:58:34 +00:00
Morten Johan Sørvig
8bb33c2509 Cocoa: Fix incorrect QSystemTrayIcon::geometry()
The coordinate conversion was wrong. Use
QCocoaScreen::mapFromNative() instead.

Task-number: QTBUG-53184
Change-Id: I50f18d68ba5d7e1cb5046523a608bfa2e076d7ea
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-02-26 07:00:29 +00:00
Gatis Paeglis
669070c404 xcb: simplify handling of keymap updates
The old code was somewhat too scattered.

Change-Id: Ib0445c66653f757ccac28778f34f4bcb5df49a70
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-02-25 13:18:41 +00:00
Gatis Paeglis
1a341d8333 xcb: cleanup TODOs for KeyboardLayoutChange
Change-Id: I5d2207fdb21cbabb04460faf73c35275bc76b7b0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-02-25 13:18:34 +00:00
Gatis Paeglis
50865aeeef xcb: minor refactoring in QXcbKeyboard::checkForLatinLayout()
We don't need xkb state APIs to check for keys on first level.

Change-Id: I728e6bfe09bce127ad8eae78ecee7cefd620f52e
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-02-25 13:18:27 +00:00
Gatis Paeglis
6c88dc0c16 xcb: remove X11 deps from QXcbKeyboard::checkForLatinLayout/lookupLatinKeysym()
This will allow us to reuse these functions on systems that
do not rely on X11, but use libxkbcommon for handling keyboard
input.

Task-number: QTBUG-65503
Change-Id: I78034238771be96fbb38e8187801fefbee1a5fed
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-02-25 09:50:07 +00:00
Gatis Paeglis
7c01c759ae xcb: have a proper detection of key events originating from SendEvent
This is a more correct fix for QTBUG-48795. The original fix
was unnecessarily using non-XKB code path for updating state
for all incoming key events. This would result in losing some
valuable bits from xkb state.

Task-number: QTBUG-48795
Change-Id: Ic4fb28b2d834272f1db2cbf5888cafb209707847
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-02-25 09:49:58 +00:00
Gatis Paeglis
1219fc26a0 xcb: use keysym defs from xkbcommon, instead of X11 headers
xkbcommon-keysyms.h is generated from X11 header files, so it
contains all the same values.

Removed all of #ifndef XK_* as those keysyms are present in
xkbcommon-keysyms.h (checked the header from 0.4.1, the minimal
required version). The same for XF86XK_* defines.

This will allow to reuse some of this code on platforms that
don't depend on X11, for details see QTBUG-65503.

Task-number: QTBUG-65503
Change-Id: I68083e11cea1f29d775a6ed46503a06b04b9a05c
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-02-25 09:49:49 +00:00
Gatis Paeglis
9df6f3367e xcb: minor cleanup in QXcbKeyboard::handleKeyEvent()
- Use smart pointer for handling xkb state.

- Make it more clear (in the code and the comment) when a latin
  keysym is used.

Change-Id: Iee8106c72177c22b1a8fe875027b1dda82196b36
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-02-24 18:52:47 +00:00
Gatis Paeglis
7878bb685f xcb: refactor QXcbKeyboard::keysymToQtKey() and fix bug
Now also digits from other alphabets e.g ۲ (arabic two) are mapped
to Qt::Key_* digit keys.

Re-factored logic:

- All known dead keys have direct mappings since
1d86e5f84a. Don't special treat them
in "unicode mapping" code path.

- Removed the ISO8859-1 legacy logic, which is leftover from Qt4
where keysym to Qt decoding was done from raw data. In Qt5 we always
get a utf8 string from xkb_state_key_get_utf8(). Furthermore,
ISO8859-1 and utf8 encode ASCII exactly the same way.

- Set Qt::KeypadModifier from key input handler methods. This logic
does not belong in keysymToQtKey().

Note:

KeyTbl[] and keysymToQtKey() have been duplicated in several places
in Qt. That stuff will be cleaned up as part of QTBUG-65503. This
change will make those cleanups easier.

Task-number: QTBUG-58865
Task-number: QTBUG-65503
Change-Id: Iaf10205a26804f7fc03eb8a16a0879f1bd7bf332
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-02-24 18:52:39 +00:00
Gatis Paeglis
d5abf54597 xcb: re-factor QXcbKeyboard::updateKeymap() to remove various fallbacks
3edcd9420e added more robust support
for keyboard input on XKeyboard-less X servers. The various fallbacks
that we had did not work that well in practice. We can remove them now.

The xkb_keymap_new_from_names() function relies on reading XKB config
files from a file system. Since we don't use this function anymore, we
can also simplify xkb context creation (see XKB_CONTEXT_NO_DEFAULT_INCLUDES),
as we don't care about DFLT_XKB_CONFIG_ROOT (which we previously set
via -xkb-config-root for the bundled libxkbcommon).

This patch also changes the code to use smart pointers for managing
the global xkb context, keymap and state.

[ChangeLog][X11] The -xkb-config-root command line switch has been
removed as it it no longer needed when configuring with -qt-xkbcommon-x11.

Change-Id: I80eecf83adae90af5cd20df434c1fba0358a12fd
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-02-24 12:15:08 +00:00
Gatis Paeglis
9280a04afe xcb: remove xlib dependency from core keymap assembling
Remove the Xlib dependency by extracting XConvertCase
from libxkbcommon sources (xkbcommon/src/keysym.c).

libxkbcommon >= 0.8.0 exposes case conversion APIs, but
we should prefer using the slightly adjusted version (see
the patch for more details).

This change also is necessary for follow-up cleanups.

Change-Id: Icf1716e0ad26f46a7aefb23722cfc57957754d5e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-02-24 12:15:00 +00:00
Liang Qi
ab28ef132e Reapply 1514b4e853 on 5.11
This change amends 305dd1b61f, which lost
1514b4e8 and brought src/corelib/json/qjsonarray.cpp back, which got
removed in c9c9adeef9. In
a6b697ca13, it was moved to
src/corelib/serialization/qjsonarray.cpp in 5.11.

Change-Id: Ic6134a78d75a9c245934cf70a67a54c80a3e7c85
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-02-23 11:28:30 +00:00
Liang Qi
3fcedcbabb Reapply 403343039d on 5.11
This change amends 305dd1b61f, which lost
40334303 and brought src/corelib/xml/qxmlstream_p.h back. In
a6b697ca13, it was moved to
src/corelib/serialization/qxmlstream_p.h in 5.11.

Change-Id: Ia1e9841b866ff49f7274b1b13fd224c0a20a017e
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-02-23 11:28:24 +00:00
Gatis Paeglis
d98f17d434 doc: improve QPlatformIntegration::possibleKeys() documentation
- There is no need to mention qkeymapper, which is an internal
implementation detail.

- Describe the encoding of int.

- Add a note that calling possibleKeys() outside key event
handler context is not valid.

Change-Id: Ife9b7d1496f04b5a433ed2d56f29c4f01f174441
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-02-22 21:38:07 +00:00
Gatis Paeglis
1aec1a2d8d xcb: remove fragile and unnecessary missing-latin-keymap workaround
... which was trying to fix a rarely occurring situation where system
settings from a desktop environment does not set any latin keymap on
X. This is a DE bug and it has a simple workaround (details in the patch).

Ubuntu has fixed this issue sometime between 12.10 -> 14.04. Gnome 3
always appends 'us' layout, even if you have only e.g. 'gr' listed in
keyboard layouts (can be checked via setxkbmap -query). In KDE, the
global system shorcuts seem to stop working as soon as latin keymap
is not the first in the list, which means that KDE users won't be
affected as they will likely always have a latin keymap present in
the list.

This patch removes parts of 2b666d9576,
the parts that in the commit message I was referring to by this quote:

"lookupLatinKeysym() also handles the cases that did not work in Qt4
with XLookupString".

Since finding a latin key is not working by XLookupString() in this
rare case, then it would not work pretty much across the whole desktop.
And users would be more interested at finding a solution that works
across the desktop. We should not workaround this issue. Desktops that
are doing it wrong should learn about this and not repeat the same mistakes
on Wayland systems, where XKB keymap is assembled by compositor and passed
to clients. Clients should work with the provided keymap as is.

The missing-latin-keymap workaround is considered fragile for several
reasons - it might not work with legacy or enterprise X server key codes
and it relies on global _XKB_RULES_NAMES (there might be several connected
keyboards). And theoretical limitation: client might be running in a
restricted environment where we don't have access to keymaps on the
file system.

Change-Id: Ib445b2ea46174248cfa0e5da0eb642cd2a5cf2f6
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-02-22 21:37:50 +00:00
Marco Trevisan (Treviño)
ff169e8859 dbustray: add NewMenu signal and emit it when menu changed
This is a signal that is not actually supported by the
StatusNotificationIcon standard, but it comes to be important
for the Qt implementation of it, in fact qt apps might
not have a menu, when exporting the Menu path as /NO_DBUSMENU
or they could add this later in the execution.
So, currently there's no way for the StatusNotificationWatcher
to know when a menu has been added (or changed).

Adding a NewMenu signal won't cause any troubles, but will
allow watchers to be notified properly on menu addition.

Change-Id: I9a8b00213f5023950811af1d62cd91bc51744b78
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-02-22 21:05:43 +00:00
Jan Arve Sæther
2dc578a8f2 un-crash QPlainTestLogger::printMessage()
Commit cf4a611115 refactored out test
identifier buildup into a standalone function, but it returned the
QTestCharBuffer as a value type, which ultimately caused it to crash:

Unfortunately QTestCharBuffer is not copied correctly: Since it uses the
default copy ctor it will copy the buf pointer and create a deep copy of
the staticBuf pointer. When the dtor was later called it would then end up
calling free(buf) (where buf pointed to the staticBuf of the original
QTestCharBuffer).

Task-number: QTBUG-66607
Change-Id: Ifa290658be6f077a0d6613451c26aeeffc8df41c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit 6ffb358822)
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-02-22 19:29:26 +00:00
J-P Nurmi
9c2783c6c7 QGtk3Menu: take GTK's scale factor into account
GTK's scale factor, which can differ from Qt's scale factor, must
be taken into account in the native GTK menu positioning function
qt_gtk_menu_position_func().

Task-number: QTBUG-55251
Change-Id: I4ad460baab54facd25564ad85ded383c9321d597
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-02-22 19:08:11 +00:00
Christian Ehrlicher
a924b4d58f psql: do not try to get table name when PQftable returns InvalidOid
When the table for a selected column can't be determined (e.g. because
there is no table for it), PQftable returns InvalidOid. This was not
covered and a query to determine the table name was executed every
time which slowed down calls to QSqlQuery::value(QString).

Task-number: QTBUG-65226
Change-Id: Idd8fbaaef7b01ca4151439f46cad2cce6f1c93e9
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-02-22 19:00:08 +00:00
Pablo Marcos Oltra
17b73b0d2b Cocoa: fix grabWindow when mixing highDPI and non-highDPI screens
CGDisplayCreateImageForRect seems to have a weird behavior when mixing
highDPI and non-highDPI screens since it may take part of the
non-highDPI screen when the highDPI display is at the left or at the
top of the main monitor.

To workaround this issue, we capture the whole screen and then crop the
image to the desired size.

Task-number: QTBUG-47643
Change-Id: Ib2a3850a0a549964c7fe272abb563bd23518c234
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-02-22 10:28:08 +00:00
Kai Koehne
a7f3d1c6c5 Add Linux-syscall-note exception to 3rdparty testlib documentation
Change-Id: Ib2e0ee2b7397e65ebd79a92fc83c9e08780d626e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-02-22 09:32:43 +00:00
Martin Storsjö
b97765efd4 moc: Only use the init_priority attribute when targeting windows
While both GCC and the GCC compatible clang support this attribute in
general, GCC doesn't support it when targeting macOS, ending up with
errors like these:
error: 'init_priority' attribute is not supported on this platform

This error isn't a property of the platform itself though, since
clang supports the attribute just fine on macOS.

The attribute is only used to work around an issue with dllimport
on windows, so limit its use to that platform, to avoid issues
with it potentially being unsupported on platforms other than
macOS as well.

This fixes compiling with GCC for macOS.

Change-Id: I0235e6365635d73233951566c10ad869b26a0fc6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-02-22 05:14:36 +00:00
Pasi Petäjäjärvi
02eb264aa2 Fix build when ftp feature is disabled
Configuring Qt with -no-feature-ftp cause build to fail.

Change-Id: I47f1cdc400702d0211a9f620c8606983f08fa70c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-02-21 18:54:52 +00:00
Thiago Macieira
604e5e340e Revert "JSON doc: update the RFC we link to"
This reverts commit 71090f0950. Changing
the link was wrong because we do not actually comply with the new RFC.

Task-number: QTBUG-66470
Change-Id: I940917d6763842499b18fffd15147cb93c27b7f4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-02-21 18:51:40 +00:00
Antonio Larrosa
fa09164013 opengl: Bail if cached shader fails to load
QOpenGLProgramBinaryCache::setProgramBinary() should check
GL_LINK_STATUS after glProgramBinary(), but doesn't.

In practice, this means that SDDM is a white screen, and KDE is just
a gray task bar.

So far, Qt tries to check this using its internal ::link() function.
But in case the cached binary fails to load, Qt currently attempts to
link the inexistent program, resulting in a zero-length, fixed
pipeline shader.

Checking this already in ::setProgramBinary() makes the call to
::link() superfluous, so we remove that as well.

Done-with: Max Staudt <mstaudt@suse.com>
Done-with: Michal Srb <msrb@suse.com>
Done-with: Fabian Vogt <fvogt@suse.de>
Task-number: QTBUG-66420
Change-Id: Iabb51d0eb2c0c16bde696efff623e57d15f28d82
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-02-21 17:03:58 +00:00
Tor Arne Vestbø
2acfc48de5 testlib: Pass on log message context to loggers
Change-Id: I1e0bb09d4f96b45f1e9757ea25ae3aba1ae42447
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-02-21 16:27:37 +00:00
Christian Ehrlicher
9395f35cb1 QHeaderView: Preserve settings on layoutChange with empty model
Do not clear the settings of QHeaderView during layoutChange when the
model is empty and the section count did not change. This will not work
when a section is moved or a section is replaced with a new one during
layoutChange. But since layoutChanged is also called on sorting, this
patch ensures that the settings are not cleared in this case.
This restores the behavior to the same as before 5.9.4.

Task-number: QTBUG-66444
Task-number: QTBUG-65478
Change-Id: I39989cfd45b42e58f49d18ec014d3a941cadb6c9
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2018-02-21 16:23:25 +00:00
Christian Ehrlicher
c0e45ae851 QHeaderView: properly restore hidden section size on layoutChanged()
During (re)storing the sections within layoutChanged handling, the
hidden section size was not properly stored which lead to a section
size of 0 when the section was unhided afterwards.

Task-number: QTBUG-66413
Task-number: QTBUG-65478
Change-Id: I0b714c7e0530a1eae82b3bb0e0dc80ed576522d0
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2018-02-21 16:23:15 +00:00
Friedemann Kleint
c9c9adeef9 Remove left over json/qjsonarray.cpp
Complements a6b697ca13.

Change-Id: I96697624aa65a5a45ce91ceaf0e156fd112a8ed0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-02-21 16:10:46 +00:00
Friedemann Kleint
1d6d1e680e Fix some qdoc-warnings for 5.11
Rename example savegame and its snippets following
a6b697ca13.

Fix:
/qtbase/examples/corelib/serialization/savegame/doc/src/savegame.qdoc:28: warning: Cannot find file 'json/savegame/savegame.pro' or 'json/savegame/savegame.qmlproject'
qtbase/examples/corelib/serialization/savegame/doc/src/savegame.qdoc:98: (qdoc) warning: Cannot find file to quote from: 'json/savegame/level.cpp'
json
qtbase/src/network/ssl/qsslconfiguration.cpp:889: warning: Undocumented parameter 'name' in QSslConfiguration::setBackendConfigOption()
qtbase/src/corelib/tools/qbitarray.cpp:314: warning: No such parameter 'len' in QBitArray::fromBits()

Change-Id: If59512873ca2116b89490927fdbf9ea1d8b237a8
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-02-21 16:10:26 +00:00
Friedemann Kleint
27b8e97e4f Windows QPA: Fix accessibility being triggered by IME
Add missing break.

Change-Id: Ib17e348e64379abded41f6c044de59f9ee1dd8fc
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2018-02-21 09:42:07 +00:00
Jani Heikkinen
89053e224f Bump copyright year
Task-number: QTBUG-65810
Change-Id: Ib6f87a126f64c2e4b2e924b97af4c2b2d10dd29e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-02-21 08:23:20 +00:00
Christian Ehrlicher
8dbd245979 QtConcurrent::MedianDouble: do not access uninitialzed values
Properly initialize MedianDouble::values in ctor.
This fixes the following valgrind warnings in the unit test:

Conditional jump or move depends on uninitialised value(s)
  at 0x40771E4: addValue (qtconcurrentmedian.h:161)
  by 0x40771E4: QtConcurrent::BlockSizeManagerV2::timeAfterUser() (qtconcurrentiteratekernel.cpp:195)

Change-Id: I8c8e297a52caca38cd6191ae2653f2765d387077
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2018-02-20 20:19:36 +00:00
Mårten Nordheim
a4ff863403 Add missing "We mean it." warnings
Private headers not only need the _p suffix, but we also need to mean it
:)

Change-Id: I6028200a872661af34cbf90c77974cc1a22c09c3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-02-20 14:53:31 +00:00
Friedemann Kleint
ed3ed0b9db Fix touch point positions of non-transformable QGraphicsItems
TouchEvent::TouchPoint::pos was not updated in
QGraphicsScenePrivate::updateTouchPointsForItem().

To prevent the transformation being calculated repeatedly for each touch
point member, extract a function genericMapFromSceneTransform()
from genericMapFromScene() returning the transformation and use
that whereever multiple points are transformed.

Add a test, extracting helper functionality from
tst_QGraphicsItem::touchEventPropagation().
In addition, fold tst_QGraphicsScene::checkTouchPointsEllipseDiameters() from
c48f4bde00 into this test, so that
it is testing all transformations.

Task-number: QTBUG-66192
Change-Id: If71886d2c14c4e216f7781ea2f22f1adc444e6cf
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-02-20 13:54:34 +00:00
Johan Klokkhammer Helsing
ddf6f57f21 xcb: Fix -geometry argument for platformName with arguments or fallbacks
-geometry, -title and -icon for xcb did not work if the platform string had
arguments or there were fallback platforms.

Only accept the arguments if xcb is the default platform. I.e. ignore the
arguments if xcb is a fallback.

This now works:

./application -platform "xcb:someArg=value" -title specialXcbTitle
./application -platform "xcb;wayland" -title specialXcbTitle
./application -platform "xcb:someArg=value;wayland" -title specialXcbTitle

But this does not:

./application -platform "wayland;xcb:someArg=value" -title specialXcbTitle

Change-Id: I4ee20b1ed722bc98417a5e75db7d8c98ffcdfcfe
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-02-20 09:22:51 +00:00
Johan Klokkhammer Helsing
093d85393f Support multiple entries in the Qt platform plugin string
[ChangeLog][QtGui] QT_QPA_PLATFORM and the -platform argument now support a
list of platform plugins in prioritized order. Platforms are separated by
semicolons.

The plugins are tried in the order they are specified as long as all preceding
platforms fail gracefully by returning nullptr in the implementation of
QPlatformIntegrationPlugin::create()

This is useful on Linux distributions where the Wayland plugin may be
installed, but is not supported by the current session. i.e. if X11 is running
or if the compositor does not provide a compatible shell extension.

Example usage:

QT_QPA_PLATFORM="wayland;xcb" ./application

or

./application -platform "wayland;xcb"

Task-number: QTBUG-59762
Change-Id: Ia3f034ec522ed6729d71acf971d172da9e68a5a0
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-02-20 09:21:53 +00:00
Tony Sarajärvi
3190edb077 Merge "Merge remote-tracking branch 'origin/5.10.1' into 5.11" into refs/staging/5.11 2018-02-20 04:18:00 +00:00
Liang Qi
48577b2e7f Merge remote-tracking branch 'origin/5.10.1' into 5.11
Conflicts:
	src/plugins/sqldrivers/psql/qsql_psql.cpp

Change-Id: I070b455078b41e75c46562fcea5676d6218cd00c
2018-02-19 16:02:52 +01:00
Tor Arne Vestbø
95eeaec36f macOS: Remove qDebug silencer in qthread_unix.cpp
It was added by Sam back in 2007, and we've removed other instances of
the same pattern since then. It doesn't make any sense today.

Change-Id: I0f3cb299e312648fd9dc96c639dab4c77fcb48c7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-02-19 13:16:42 +00:00
Tor Arne Vestbø
29ae5cbaf8 macOS: Don't assume m_view is QNSView when calling requestUpdate
Change-Id: I98833c5ecc5816a0926045e10ef0442a39be6b2e
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-02-19 12:39:31 +00:00
Tor Arne Vestbø
8e098f87bb macOS: Remove unused variable
Change-Id: I7e016db57cbf347529b6aa003d84585eeab0767d
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-02-19 12:39:29 +00:00
Friedemann Kleint
fa0906bc56 xcb: Fix developer build
Add Q_UNUSED, fixing:
qxcbbackingstore.cpp:344:45: error: unused parameter 'segmentSize' [-Werror=unused-parameter]
on Kubuntu 17.10.

Amends 24adaa9a74.

Task-number: QTBUG-46017
Change-Id: I64f21d8f1d1ac21340cfbba66b97768140ce23a8
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-02-19 09:01:27 +00:00
Johan Klokkhammer Helsing
acbed6802e Add Wayland in the documentation for QGuiApplication::platformName
Change-Id: Ie19dbeeba6cd9664ad546dd2b2ae0bf6cbd199a0
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-02-19 08:56:36 +00:00
Johan Klokkhammer Helsing
feba2a68b1 Fix incorrect documentation for -platform, QT_QPA_PLATFORM and friends
This makes the documentation match the implementation.

-platform overrides QT_QPA_PLATFORM, not the other way around. Similarly
for the other arguments.

Change-Id: Iffaf8bb1134bc57e5b682f37b9cc1a713872ede1
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2018-02-19 08:56:24 +00:00
Marcel Krems
8a66924ca0 Fix compilation with QT_DISABLE_DEPRECATED_BEFORE=0x060000
Regression introduced in b254b03dc3

Change-Id: I77e8718cc6be79d4fbea5510e8d7cc7808a609c2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-02-16 22:45:48 +00:00
Jan Murawski
5d3ce3a640 Handle unset $DISPLAY variable when using the offscreen platform
Skip the initialization of a QOffscreenX11GLXContext and thereby fix
a null pointer dereference if the environment variable $DISPLAY is
unset or contains invalid information.

Task-number: QTBUG-66423
Change-Id: Ideea510d1c63a4f6700839955d833cd10e3b0bbe
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-02-16 13:57:05 +00:00
Timur Pocheptsov
f805be5382 Fix configure.json (OpenSSL 1.1 on Windows)
Since 1.1 lib names are similar to what they have on other
platforms, that is: libssl and libcrypto.

Task-number: QTBUG-62733
Change-Id: I477899433719fe36104491601d8cb71004b265ae
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-02-16 13:56:01 +00:00
Alexander Volkov
24adaa9a74 xcb: Fix access to shm for X server running from another user
Use ShmCreateSegment call, that was added in MIT-SHM 1.2, to
create shared memory segments on the server side. It returns
a POSIX shared memory object that is used to mmap memory.
It's in effect a file descriptor that is passed through the
X server socket and thus avoids permission checks.
On the other hand this scheme is more secure, because the
file descriptor, and thus the shared memory, are accessible
only by the X server and the application.

Task-number: QTBUG-46017
Change-Id: I202eead9d01aee2ab5b65f4f74f4c13da7cb2239
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-02-15 22:15:02 +00:00
Alexander Volkov
8db9e33997 xcb: Enhance SHM management code
- extract the creation of a shared memory segment into a separate
  function
- do extra checks for errors
- check that MIT-SHM extension is present once in QXcbConnection

Change-Id: I956bdf76b879ec5c95a7ed219a59ae722dc5afba
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-02-15 22:14:52 +00:00
Alexander Shevchenko
ad648ff293 fix missing __builtin_mul_overflow for Windows ICC
Complete 43c44d05ca to cover builds
using Windows ICC.

Change-Id: I5f4d62f17b54835a58f3002744574c514cce5e39
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-02-15 22:02:13 +00:00
Liang Qi
1ef03f69e8 Merge "Merge remote-tracking branch 'origin/5.10' into 5.11" into refs/staging/5.11 2018-02-15 21:19:50 +00:00
Christian Ehrlicher
23eab78f51 QToolBar: Fix QToolbar extension button icon after LayoutDirectionChange
When the layout direction is changed after the QToolButton is created,
the extension button icon was not updated.

Task-number: QTBUG-66344
Change-Id: I8690b2c42c4f485a39490f16b15b8ee58e6f4ace
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-02-15 20:00:23 +00:00
Kai Koehne
dc334b60d9 Update documented sqlite version
Augments 3d35501591

Change-Id: I074f966206bcfd1b2b7b55bb2ed910219bb7726d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-02-15 15:26:58 +00:00
Johan Klokkhammer Helsing
5f96432ea9 eglfs_kms_vsp2: Recover if queuing input buffers fails
Clear all queued buffers, and reinitialize the Qt layer so we can try again
next time.

Change-Id: I921f6f457666206be92aadf2fe40b855e6ebff62
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-02-15 15:17:20 +00:00
Tor Arne Vestbø
6c4f5ecef0 Share event dispatcher creation between QThreadPrivate and QCoreApplication
A step towards having the application do its event dispatching though the
thread data's dispatcher, like QEventLoop, instead of keeping two references
to the same dispatcher, one in QCoreApplicationPrivate and one in QThreadData.

Change-Id: I7b215e7e99869d25638ec67f0666f632a508cc0f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-02-15 14:00:21 +00:00
Yulong Bai
ea21b36836 QFusionStyle: fix the checkbox rendering in low DPI settings
Fixed some regression of checkbox's size brought in by c9f68a5.

Using qreal and QRectF to avoid the round error accumulation
of sizes in low dpi situations.

Tweaked the look of the check mark.

Task-number: QTBUG-66343
Change-Id: I8f68144f60437907701021bb43ee736dfcb7241f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-02-15 13:38:08 +00:00
Simon Hausmann
2a80c04d3b Fix crash when reading window titles with XCB
This is a regression introduced with commit
cb142954c5 that changed the code from
using QString:fromUtf8(name, propertyLength) to QString::fromUtf8(name),
assuming that the property name is a zero-terminated string. That
however is not correct.

ASAN trace:

==4039==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60400001e0b4 at pc 0x7f3383c7d66e bp 0x7ffdc8e3d9b0 sp 0x7ffdc8e3d158
READ of size 5 at 0x60400001e0b4 thread T0
    #0 0x7f3383c7d66d  (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x5166d)
    #1 0x7f337602f32a in QString::fromUtf8(char const*, int) ../../../../include/QtCore/../../src/corelib/tools/qstring.h:569
    #2 0x7f337602f32a in QXcbWindow::windowTitle(QXcbConnection const*, unsigned int) /home/simon/dev/qt-5.11/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp:2861
[...]

0x60400001e0b4 is located 0 bytes to the right of 36-byte region [0x60400001e090,0x60400001e0b4)
allocated by thread T1 (QXcbEventReader) here:
    #0 0x7f3383d0ab50 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb50)
    #1 0x7f337b397e2b  (/usr/lib/x86_64-linux-gnu/libxcb.so.1+0xde2b)

Change-Id: Ia5024602d3aacb924b5dcd3956672da2a8f10feb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-02-15 13:34:50 +00:00
Liang Qi
bb0fec8057 Merge remote-tracking branch 'origin/5.10' into 5.11
Conflicts:
	src/corelib/corelib.pro
	src/corelib/global/qrandom.cpp
	src/network/access/qhttpnetworkrequest_p.h
	src/plugins/platforms/cocoa/qcocoamenu.mm
	src/plugins/platforms/cocoa/qcocoansmenu.mm
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/cocoa/qnsview.mm
	src/plugins/platforms/offscreen/qoffscreenintegration.h
	src/widgets/kernel/qaction.cpp
	src/widgets/widgets.pro

Done-with: Andy Shaw <andy.shaw@qt.io>
Change-Id: Ib01547cf4184023f19858ccf0ce7fb824fed2a8d
2018-02-15 10:14:11 +01:00