Commit Graph

5368 Commits (9b3935492bfa33bc716129cb303d3ac62be5bb07)

Author SHA1 Message Date
Christian Ehrlicher 8bcc6f111b QComboBox: add QT_DEPRECATED_X() for deprecated functions
QT_DEPRECATED_X() was not added with
d6d33f0b80 for the deprecated
QComboBox functions - Add them now.

Change-Id: I8d4ea08766ae6ff052dfccac6c3f35ecf34affb7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-05-09 20:29:26 +02:00
Liang Qi 591116490c Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into refs/staging/5.13 2019-05-09 13:06:22 +00:00
Qt Forward Merge Bot e56d3b03ed Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/corelib/tools/qlocale_data_p.h
        (Regenerated by running the scripts in util/local_database/)
	src/gui/opengl/qopengltextureuploader.cpp

Done-With: Edward Welbourne <edward.welbourne@qt.io>
Done-With: Allan Sandfeld Jensen <allan.jensen@qt.io>
Change-Id: I12df7f066ed0a25eb109f61c4b8d8dea63b683e2
2019-05-09 13:06:11 +00:00
Eirik Aavitsland 3d8ed3ba96 Fix: style sheet styling of background of triangular QTabWidget tabs
The triangular tab shape is not reproducible with setting style border
options, so it should be painted with the usual code path, also when a
custom background has been set.

Fixes: QTBUG-72096
Change-Id: I7bc1c0579386b8ea7266ce6456534c2519d9addf
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-05-09 06:47:30 +00:00
Christian Ehrlicher 69f6cab0af Doc: replace even more null/0/nullptr with \nullptr macro
Try to replace all wordings like '.. to 0' with '.. to \nullptr'. Also
checked for 'null pointer' and similar.

Change-Id: I73341f59ba51e0798e816a8b1a532c7c7374b74a
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2019-05-08 12:48:32 +00:00
Massimiliano Gubinelli a4bd4565cc Emit QMenu::aboutToShow() before platform specific code
Send the aboutToShow() signal to QMenu before synchronising the
widgets for the menu items. This fixes a bug where if new
QWidgetActions are added to the menu from a slot triggered by the menu's
aboutToShow() signal, then such new actions do not shows up correctly on
Mac. Other platforms are not affected by the change.

Fixes: QTBUG-75826
Change-Id: Ic245d3fbc7ddde6944cca6cdb8e8951380c846ec
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-05-16 12:33:45 +00:00
Tor Arne Vestbø 5e743adc20 Don't try to retranslate strings for native color dialogs
If the native color dialog is in use we haven't created any of the
widgets and will crash when trying to update them.

Change-Id: I6c43cc47359110c3b9db7cacb62581446cc6f7a3
Fixes: QTBUG-75858
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-05-16 14:51:42 +02:00
Kai Koehne b7aea2bcd3 Qt Widgets: Document CMake macros
Task-number: QTBUG-72159
Change-Id: Ib9fdf852583964cf07c4d26e0a6c74f0058e29f1
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2019-05-16 13:24:25 +00:00
Martin Smith 0e2c013a45 doc: Add dontdocument.qdoc files
Each module that has publically declared classes or structs
that are not meant to be documented is given a dontdocument.qdoc
file to tell qdoc that these classes are not meant to be
documentented. Then qdoc will not print warnings about missing
\class comments for these classes and structs.

Change-Id: I9195f0b546032e1c7642c9da34d85a0a4a9bfb08
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-05-07 16:58:09 +02:00
Vova Mshanetskiy fc9baeeb9f QWidgetTextControl: Emit cursorPositionChanged() when handling IM event
QWidgetTextControl and consequently QTextEdit did not emit
cursorPositionChanged() signal when cursor position was changed by a
QInputMethodEvent with a QInputMethodEvent::Selection attribute.

This is especially important on Android because QAndroidInputContext
uses such events extensively to move the cursor and also relies on
cursorPositionChanged() signal being emitted by the focus object. If the
signal is not emitted, QAndroidInputContext does not notify the virtual
keyboard about cursor position change which results in various glitches.

Change-Id: I7edd141258c483e6f103adcd6e40049b49c13387
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-05-07 10:49:12 +00:00
Frederik Gladhorn eba3b567d6 Accessibility: Improve handling of read-only state
We have been rather sloppy in how read-only versus editable is handled.
According to the definition, editable signifies that in principle a
widget allows the user to change its text. Read-only means that this
ability is (currently) disabled.

Task-number: QTBUG-75002
Change-Id: I5d71843abcdaac52f4a60a1abcac2604341f6c96
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2019-05-07 10:05:30 +00:00
Qt Forward Merge Bot e4e5a1f0b7 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Iaad9509712c848ed42ada2c25065162a6fc5a930
2019-05-06 01:00:13 +02:00
Nick Shaforostov 4d5fb551d6 fix compilation with various -no-feature-* options
Change-Id: Ic1975db497613e3efe50be4246c167efe10d8e31
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-05-05 09:14:48 +00:00
Liang Qi b5c2535eb0 Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/3rdparty/pcre2/qt_attribution.json

Change-Id: Ibae941cb12662f27bd6962ee02bc235971c59a15
2019-05-03 10:44:24 +02:00
Milian Wolff 75634c9a53 Reduce amount of tracepoints required for event tracking
Encode the consumed/filtered state in the _exit tracepoint and remove
the separate tracking of receiver event handling. Combined, this
reduces the size of the trace file.

Change-Id: Icb3cb2dd47798543905cea450046d6fad559a15b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-05-02 14:15:58 +00:00
Liang Qi 166889ddcb Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/corelib/kernel/qobject.cpp

Change-Id: I8ca1163a1fa8072dcd16ea4426c58219149599fd
2019-05-02 09:39:31 +02:00
Allan Sandfeld Jensen ef05c48898 Fix -Wdeprecated-copy warnings
Implicit copy constructors or methods are considered deprecated for
classes that has one of the two or a destructor.

The warning is enabled with -Wextra in gcc 9

Change-Id: Ic9be654f2a142fb186a4d5a7d6b4f7d6f4e611d8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-05-01 07:39:55 +00:00
Milian Wolff 75c0c02641 Don't pass scope args to _exit trace points
When we trace a scope, then we pass the scope args to the _entry trace
point. There is no need to do that also for the _exit trace points, it
just blows up the trace data for no obvious gain. Any decent tracing
consumer can easily find the args for the _exit call by matching it to
its _entry call.

Note that this is standard practice in trace points, and also done like
this in the Linux Kernel trace points for example.

Change-Id: I273293b0c7e799767acc1960b50ab675fc765a36
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-30 07:42:19 +00:00
Qt Forward Merge Bot cb10ec56f7 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I26da00aa71b0f0b91c9bfb4a9e8550345ee62875
2019-04-24 01:00:13 +02:00
Alexander Volkov 2947435d87 QSystemTrayIcon/X11: Create tray icon window when system tray appears
... and destroy it otherwise.

Fixes: QTBUG-61898
Fixes: QTBUG-73459
Done-with: Gatis Paeglis <gatis.paeglis@qt.io>
Change-Id: I6bd8f397f7ccdb123f6a60d4fa466f7b0d760dfc
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-04-23 19:33:25 +00:00
David Faure ed66c932b1 QListWidgetItem constructors: don't emit dataChanged(invalid, invalid)
This is a regression introduced by 63967313f5 which blocked signals
on the view, but not on the model.

Change-Id: Ib2f93fe6ef842264aaba200c98ee4a19065ca220
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Konstantin Shegunov <kshegunov@gmail.com>
Reviewed-by: Laurent Montel <laurent.montel@kdab.com>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-04-23 16:17:20 +00:00
David Faure ba6e0e4aac QHeaderView: fix assert when restoring section sizes over less columns
If columns are removed and we get notified via layoutChanged, the code
tries to restore old section sizes, and went out of bounds, leading to
an assert in QVector. Simply add an if() to skip restoring out-of-bounds columns.

This comes from https://bugs.kde.org/show_bug.cgi?id=395181,
which translates into the unittest that is part of this commit.

Change-Id: Ide42176a758f87b21957c40508127d67f1d5a2d9
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2019-04-23 09:42:54 +00:00
Liang Qi 9d67bf6e96 Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/corelib/tools/qlocale.qdoc
	tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp

Done-with: Edward Welbourne <edward.welbourne@qt.io>
Done-with: Volker Hilsheimer <volker.hilsheimer@qt.io>
Change-Id: I88e0757b2d020f0a244714c87844631df4b3fd13
2019-04-16 09:34:50 +02:00
Frederik Gladhorn 21dcb96ddc QStyleSheetStyle::repolish: only run on direct children
When re-parenting, some widgets change their children. For example
QLabel, when set to rich text, will not update, until receiving a polish
call, at which time getting a list of all children recursively and then
trying to call functions on them will crash, since the children change
in the middle of this operation.

Fixes: QTBUG-69204
Fixes: QTBUG-74667
Change-Id: I95dd83ebeed14c017e22552ddd47658ae8a09353
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2019-04-12 14:33:32 +00:00
Liang Qi 63e88f60a7 Merge "Merge remote-tracking branch 'origin/5.12' into 5.13" into refs/staging/5.13 2019-04-10 17:33:14 +00:00
Edward Welbourne 3af55691bc Add neglected connect()s to Q{Date,Time}Edit constructors
Pointed out by Daniel Teske.
This amends commit c3e1abad4e.

Change-Id: Ia6c6f41bf28e846152f9f86322f20a1b99e57201
Reviewed-by: David Faure <david.faure@kdab.com>
2019-06-11 16:11:00 +02:00
Alexander Volkov 73698cb340 Fix effects for highdpi graphical items
Create a highdpi pixmap as a source for graphical effects.

Fixes: QTBUG-74963
Change-Id: Ie144df3dbe61421fb28e639e640857aca6e6320f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-04-10 10:15:29 +00:00
Kai Koehne 605634a88a Doc: Note Q[Plain]TextEdit keeping formatting in some cases
Fixes: QTBUG-72427
Change-Id: Ifddabb175c480b64282bd8c8fdb9edab4c7ecf44
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2019-04-10 06:31:16 +00:00
Qt Forward Merge Bot ff88e20b83 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I44eda44bf424fdcffab048a2534905d6162e5559
2019-04-10 01:00:08 +02:00
Allan Sandfeld Jensen fe7a8d61d1 Update precompiled headers
Include many headers that are commonly used now, and avoid listing them
twice.

Change-Id: I679dc24cff2cb3a3c9c18585ec78007ab3550743
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-09 21:57:17 +00:00
Laszlo Agocs 1d1dcd8d6c Fix context loss in QOpenGLWidget upon tlw change with AA_ShareOpenGLContexts
The logic introduced in 2ea90c56 has an issue: it resets (destroy the
context and co.) upong TLW change even when AA_ShareOpenGLContexts is set,
and that is just wrong and goes against what the docs claim.

Fixes: QTBUG-74307
Change-Id: Ib519045c1d9842664cbe602d4e6425660cf638b5
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2019-04-09 19:27:54 +00:00
Christian Ehrlicher 1029a2e010 QTableView: don't draw additional grid lines top and left
QTableView drew additional grid lines on the top and left side when
the corresponding header was not visible and the ScrollMode was
ScrollPerItem. After 8f2bacea41 they were
also drawn for ScrolPerPixel for consistency. But they are not needed at
all and only create visual artifacts.
Therefore remove the drawing of the additional lines completely.

Fixes: QTBUG-74706
Change-Id: I5c77d53a2eeefab9b9bfe0efea6439f5afede4ac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2019-04-09 18:54:02 +00:00
Christian Ehrlicher 37c24c6b1b QTableView: fix Ctrl+End behavior with disabled columns
Ctrl+End moves the visual index to the bottom left index. This does not
work correctly when the item in the bottom left is disabled. It should
be fixed with 7863be3115 but does not due
to a typo.
Fix the typo by using the newly calculated visualColumn instead the
initial column.
There are cases where the algorithm still does not work as expected when
there are more disabled items but fixing them would add a lot of
complexity with no (much) gain.

Fixes: QTBUG-72400
Change-Id: Ie90f6b3e41e00f54e826c2b4e7303e85ac1e4115
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-04-09 18:53:59 +00:00
Qt Forward Merge Bot 93acb76222 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I05d14a40e17554691bad369d0363e88413afd9b3
2019-04-09 01:00:06 +02:00
Friedemann Kleint 3a34ef636a QMenu/QComboBox: Extract helper for determining the pop up geometry
Move the code returning whether a popup should use the full
screen to QStylePrivate and use for QMenu and QComboBox.

Task-number: QTBUG-73231
Change-Id: I1901ecedfa90edf16329ce3b13ef4abea5ab44e8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-04-08 18:44:59 +00:00
Qt Forward Merge Bot 01a269593d Merge remote-tracking branch 'origin/5.12.3' into 5.12
Change-Id: Id60d508c0f25fd5e67be07daafd2d4c56ae73934
2019-04-08 09:53:39 +02:00
Qt Forward Merge Bot ce7f14d2e0 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Iec860bb703f983b7438e67c695b9c454e72b3e0f
2019-04-06 01:00:08 +02:00
Milian Wolff f4c41b9797 Add missing _exit tracepoints for event handling
This allows tools that look for matching `foo_entry/exit` pairs in the
trace data to work properly. An unmatched `_entry` would otherwise
confuse them, making them think that the call stack is continuously
increasing.

Change-Id: Idff7f587ea25c46ec86ad623cc82d503db34a194
Reviewed-by: Christoph Sterz <christoph.sterz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-04-05 11:57:59 +00:00
Milian Wolff 6ce2a87c23 Forward declare all types required for compilation with `-trace`
This patch fixes compilation with `-trace lttng` or `-trace etw`. We
need to forward declare QEvent, QImageReader etc., otherwise the types
will be unknown while compiling the trace points.

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

Change-Id: I5cb16763ce0fcb48ce3ea4577578d468ff3a4f4b
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
2019-04-05 11:57:39 +00:00
Qt Forward Merge Bot 0998a9d1d5 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I010a6322d12e038fdce247a58dfb05e204c2ff3b
2019-04-05 10:57:24 +02:00
Joerg Bornemann 4eb865cd38 Remove superfluous inclusion of qtwidgets-config.pri
Every module already includes its own config.

Change-Id: I1ef630092f61f118d79dc9b39ce38f4bdea14f43
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2019-04-04 09:48:08 +00:00
Qt Forward Merge Bot f80b7995f3 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ia7328524f2cd9d5995ac8705f0fe0bf570b2e831
2019-04-04 01:00:07 +02:00
Venugopal Shivashankar 05d9195669 Doc: Use the \nullptr macro instead of 0
This enables overriding the macro so that it translates
to 'None' in the Qt for Python context.

Change-Id: Ib3cecf57eeb0405a1929309b71e9f012a07f11cf
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-04-02 08:14:07 +00:00
Qt Forward Merge Bot ffe9c395dc Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ia5d893e57deb78bc32e2053a5a79543ff847fe32
2019-04-02 01:00:26 +02:00
Timur Pocheptsov 409e3eab09 QMacStyle - fix PE_InticatorTabClose handling
for the case a custom style sheet is in use and QStyleSheetStyle
replaces the widget (close button) with its parent (QTabBar).
We still need this button though to compare against tabButton
on a hovered tab. This allows us to have, indeed, native-looking
tabs as documented (aka similar to Safari or the "Terminal" application).

Change-Id: I53ff78699e705db6d7c7b84774b8e188a1277535
Fixes: QTBUG-61092
Fixes: QTBUG-74689
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2019-04-01 14:11:25 +00:00
Christian Ehrlicher ed49a84e6c QListWidget: don't hide setBackgroundColor with QT_DISABLE_DEPRECATED_SINCE
QListWidget::setBackgroundColor() is a virtual function. Hiding this
function when compiling/linking against QtWidgets when
QT_DISABLE_DEPRECATED_SINCE is set will therefore screw up the vtable
and it will crash on runtime.
Therefore don't surround them with QT_DEPRECATED_SINCE macro.

Fixes: QTBUG-74665
Change-Id: Icb0f253117a1e55a338d2d6969ec2d59fbd0679d
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2019-03-31 12:25:32 +00:00
Gatis Paeglis 243c840390 Drag'n'Drop: fix dnd regression
DragEnter events always should start with the default state, which
is accepted = false. This was a copy-and-paste error introduced by
f8944a7f07.

Fixes: QTBUG-73977
Change-Id: I34b3ea97c9b4f4fc040a9e6f1befd6124533361d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-03-26 13:49:53 +00:00
Christian Ehrlicher 998740c619 QDoubleSpinBox: reset size hint when prefix is set
QDoubleSpinBox did not resize when setPrefix() was called because the
cached size hint was not reset.
Fix it by resetting the cached size hints and update the geometry the
same way it's done for QSpinBox::setPrefix().

Fixes: QTBUG-74520
Change-Id: I6f42a24ab0a4ce987ecbe1505a634d929474436b
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-26 13:35:37 +00:00
Friedemann Kleint 8f1acd29e4 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I71cc71881fb638e207d83a8733bad8f267701c0f
2019-03-26 08:27:02 +01:00
Friedemann Kleint 0590da532e QDockWidget: Store tab position when undocking
Add a field remembering the tab position of the dock widget area to
QDockWidgetPrivate and use that when grouping floating docks.

Fixes: QTBUG-74242
Change-Id: I2a453080cb39dd4a5491976f1aeca70ae681682a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-25 09:16:27 +00:00
Friedemann Kleint 86fc0b0e88 QDockWidgetPrivate: Use member initialization
Task-number: QTBUG-74242
Change-Id: I9f243bf37c7685e38a4a961c1173d45925b1b0e3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-25 09:16:20 +00:00
Friedemann Kleint a1c37462ee Windows: Fix tooltip flicker on GL surfaces
QPlatformWindow::initialGeometry() would assign a default height to
the initial geometry of the QRollEffectClassWindow since it has height
of 0. This causes the obtained geometry to not match and subsequently
a geometry change being sent synchronously.

Introduce a new flag QWindowPrivate::resizeAutomatic similar to the
existing QWindowPrivate::positionAutomatic to prevent assigning a
default size and pass through the geometry as is where required.

Fixes: QTBUG-74176
Change-Id: I70c66490838a2c4dfe200ec86094d28bd984dd03
Reviewed-by: Kati Kankaanpaa <kati.kankaanpaa@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-21 13:39:51 +00:00
Christian Ehrlicher 905e40abb4 QDialog: be more specific on how to replace deprecated functions
QDialog::setOrientation/setExtension() was marked as deprecated without
a suggestion on how to replace those functions. Therefore add a
suggestion (taken from the documentation) now.

Change-Id: I13b2af2264064ca1c7c034cf6b920caaadcee113
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-20 16:48:24 +00:00
Qt Forward Merge Bot 6893919b0c Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/gui/kernel/qplatformintegration.cpp
	src/gui/kernel/qplatformintegration.h
	src/plugins/platforms/wasm/qwasmintegration.cpp
	src/plugins/platforms/xcb/qxcbconnection_screens.cpp

Change-Id: I15063d42e9a1e226d9d2d2d372f75141b84c5c1b
2019-03-20 14:09:30 +01:00
Simone Gaiarin c826e67765 QAction: add exclusionPolicy property
When set to ExclusiveOptional, the new exclusionPolicy property let the
user uncheck the active checkable action in an exclusive group.

[ChangeLog][QtWidgets][QActionGroup] Added new exclusionPolicy
property. Set it to ExclusiveOptional to allow unchecking the active
checkable action in an exclusive group.

Change-Id: I61a9885cfd076d631cddf8c08313e4b488e5dc38
Fixes: QTBUG-71160
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-19 13:46:43 +01:00
Friedemann Kleint eed9a8fbd3 Add accessors for QWindow and QScreen to QWidgetPrivate
Rewrite the existing accessor QWidgetPrivate::windowHandle() to
accept a mode enumeration that has an "Any" convenience.

Based on that, add QWidgetPrivate::associatedScreen(), which is seful
in many places where scaling is performed.

Prototypically simplify the code.

Task-number: QTBUG-62094
Task-number: QTBUG-73231
Change-Id: I516288363d329bce9bc94e4951106f9357bc6cde
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-06-18 10:15:26 +02:00
Giuseppe D'Angelo d73497cf77 QObject/QWidget::setParent: add assertions to prevent loops
It is perfectly possible to accidentally create a parent/child
loop. This can happens by direct means (a->setParent(b);
b->setParent(a);), or some more subtle means, e.g.

class MyClass : public QObject {
   MyClass() : QObject(this) {}
};

Since this is UB, add a few robustness checks to make sure the
code above crashes right away (at least in debug builds).

Change-Id: I6583c8514b4c1f8a90677b04c77b8e8f0c15dba3
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
2019-06-07 10:43:16 +02:00
Liang Qi b1a216649e Merge remote-tracking branch 'origin/5.13' into dev
Conflicts:
	qmake/generators/makefile.cpp
	qmake/generators/unix/unixmake2.cpp
	src/corelib/thread/qthread_unix.cpp
	tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp

Change-Id: I1df0d4ba20685de7f9300bf07458c13376493408
2019-06-14 13:45:18 +02:00
Shawn Rutledge dd3229e672 Remove a few usages of deprecated API
Change-Id: I94bad0b8d3891c6b4a55178836cfff2a4312e330
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2019-06-13 16:49:41 +02:00
Andy Shaw 1320b2f644 Fix memory leak when unregistering a gesture recognizer
When a gesture was unrecognized, then it would add itself to the
obsolete gestures hash. This was cleaned up only on application exit,
but as the unregister call happens whenever a widget that had registered
gestures was deleted then the hash could grow quite considerably.

In order to ensure the original intention of the code here, we only
call unregisterGestureRecognizer() when there is a QGestureManager in
place to call it on. Otherwise it would create a memory leak in itself.

Change-Id: I2342f3f737b28be4af7ed531d83f02197eb66c0e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-19 10:41:26 +00:00
Jan Arve Sæther 5dd4f18cef Improve documentation for opaque resize in QSplitter
This also fixes the documentation for QStyle::SH_Splitter_OpaqueResize

Change-Id: If8afb52ae300e9735a8bc6b065327f17d67f4323
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-03-18 10:06:34 +00:00
Friedemann Kleint 4554fa7b19 Fix some qdoc warnings
src/network/ssl/qsslsocket.cpp:1501: (qdoc) warning: Can't link to 'QSslConfiguration::defaultCaCertificates()'
src/network/ssl/qsslsocket.cpp:1482: (qdoc) warning: Can't link to 'QSslConfiguration::defaultCaCertificates()'
src/network/ssl/qsslsocket.cpp:1513: (qdoc) warning: Can't link to 'QSslConfiguration::defaultCaCertificates()'
src/network/ssl/qsslsocket.cpp:1119: (qdoc) warning: Can't link to 'QSslConfiguration::setDefaultCiphers()'
src/network/ssl/qsslsocket.cpp:1119: (qdoc) warning: Can't link to 'QSslConfiguration::defaultCiphers()'
src/gui/opengl/qopengltexture.cpp:4137: (qdoc) warning: Can't link to 'setComparisonFunction()'
src/widgets/dialogs/qfilesystemmodel.cpp:1215: (qdoc) warning: Undocumented return value (hint: use 'return' or 'returns' in the text
src/widgets/graphicsview/qgraphicswidget.cpp:1229: (qdoc) warning: Undocumented return value (hint: use 'return' or 'returns' in the text
src/widgets/graphicsview/qgraphicsscene.cpp:3313: (qdoc) warning: Undocumented return value (hint: use 'return' or 'returns' in the text
src/gui/painting/qpaintengine_raster.cpp:3438: (qdoc) warning: Undocumented return value (hint: use 'return' or 'returns' in the text
src/widgets/widgets/qtextedit.cpp:2544: (qdoc) warning: Overrides a previous doc
src/widgets/widgets/qplaintextedit.cpp:2932: (qdoc) warning: (The previous doc is here)

Change-Id: I0c68c59a87eb6a5d9e974f857af6aca0c6e0672d
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-03-15 13:13:00 +00:00
Andy Shaw edf2e69985 Don't increase the size of the layout unnecessarily when moving toolbars
When the toolbar was moved from one position to another it could end up
increasing the size of the saveState data due to extra lines. This
removes any needless ones that should not be included.

Change-Id: I1c5d094ae1405d6a82db5fcdc3cd081904706837
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-15 12:24:02 +00:00
Qt Forward Merge Bot a1808c5dbe Merge remote-tracking branch 'origin/5.12.2' into 5.12
Change-Id: I5f9d8090a07056411fb65d7de60eb679d00e99a3
2019-03-15 11:10:10 +01:00
Qt Forward Merge Bot e608b5d555 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I2bf3b4ceb79364330eae4cbf3cdee9a82d1be46d
2019-03-15 01:00:43 +01:00
Christian Ehrlicher b8d5e0b4ce QAbstractItemView: Don't let editor width exceed item width if not needed
The editor geometry was adjusted in RTL but not in LTR mode before
Qt5.11. 3ed91da499 fixed this but now all
editors are shown with their default size instead adjusting to the item
width. This works in most cases but fails for small column widths and
e.g. a QDoubleSpinBox. Therefore adjust the size policy for the editors
so their default size is ignored and therefore the column width is used.
Don't do this for a QDateTimeEdit since this makes no sense to only show
a cut of part of the editor.

Fixes: QTBUG-74327
Change-Id: Ie526155571bf24a2d8f38e988d8b2af4bfcc92ba
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-14 16:50:59 +00:00
Christian Ehrlicher fed9fa1714 Doc: replace 0 with \nullptr in documentation
Replace some more 0 with \nullptr.

Change-Id: I2af91bf3712eef5161b11da0c44614bc039ade03
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-03-13 10:57:25 +00:00
Qt Forward Merge Bot fbc9fb233d Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Ica3f89ace33585ad7854417a328156f5a68e2a00
2019-03-09 01:00:20 +01:00
Christian Ehrlicher 8b3463fdeb QAbstractItemView: make v-aligned items texts more user-friendly
Commit 25133a1b77 fixed the item view text
layouting correctly in a technical way. For a vertically aligned text
which does not fit into the given rect it is not user-friendly to show
some parts of the text. It is better to display the start of it and show
an elide marker in the last visible line.

Fixes: QTBUG-73721
Change-Id: Ia7453133ea0a229b24196467168c8371585c4d8f
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-03-08 12:04:46 +00:00
Friedemann Kleint 859f837d46 Fix some qdoc warnings
src/corelib/itemmodels/qtransposeproxymodel.cpp:166: (qdoc) warning: Unknown command '\details'
src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp:102: (qdoc) warning: '\brief' statement does not end with a full stop.
src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp:233: (qdoc) warning: Undocumented parameter 'index' in QConcatenateTablesProxyModel::flags()
src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp:165: (qdoc) warning: Undocumented parameter 'proxyIndex' in QConcatenateTablesProxyModel::mapToSource()
src/corelib/io/qresource.cpp:275: (qdoc) warning: Can't link to 'isCopressed()'
src/corelib/io/qresource.cpp:555: (qdoc) warning: Can't link to 'compressionType()'
src/network/ssl/qocspresponse.cpp:47: (qdoc) warning: '\brief' statement does not end with a full stop.
src/network/ssl/qocspresponse.cpp:47: (qdoc) warning: Can't link to 'QSslSocket::ocspResponse()'
src/gui/image/qimage.cpp:2247: (qdoc) warning: Undocumented parameter 'f' in QImage::convertTo()
src/gui/image/qimage.cpp:2247: (qdoc) warning: No such parameter 'format' in QImage::convertTo()
src/gui/text/qtextformat.cpp:1420: (qdoc) warning: Undocumented parameter 'styleName' in QTextCharFormat::setFontStyleName()
src/gui/text/qtextformat.cpp:1420: (qdoc) warning: No such parameter 'style' in QTextCharFormat::setFontStyleName()
src/widgets/dialogs/qdialog.cpp:151: (qdoc) warning: Unknown command '\p'
src/widgets/dialogs/qdialog.cpp:167: (qdoc) warning: Unknown command '\p'
src/widgets/dialogs/qdialog.cpp:167: (qdoc) warning: Unknown command '\p'
src/widgets/dialogs/qdialog.cpp:168: (qdoc) warning: Unknown command '\p'

Change-Id: Ide52b70f8e72d53767d489ce1a413cf4c2dce7df
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2019-03-07 15:39:07 +00:00
Tor Arne Vestbø 7a127fb4b6 Document that dialog parent relationship does not imply stacking order
On macOS, and most probably some X11 window managers, the parent/child
relationship of the dialog is not possible to propagate to the platform,
and the only determining factor of whether or not the windows stack on
top of each other is the modal state of the window.

Task-number: QTBUG-34767
Change-Id: I8b4b4910e3f905c44e577544fc347dbded373848
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2019-03-06 09:09:41 +00:00
Friedemann Kleint f58e47c2f3 QtWidgets: Fix deprecation warnings
Fix deprecation warnings where possible or add warnings scopes, fixing:

dialogs/qdialog.cpp:783:41: warning: ‘void QDialog::showExtension(bool)’ is deprecated [-Wdeprecated-declarations]                        ^~~~~~~~~~~~~
widgets/qcombobox.cpp:1386:37: warning: ‘void
QComboBox::currentIndexChanged(const QString&)’ is deprecated: Use currentTextChanged() instead [-Wdeprecated-declarations]=
dialogs/qfiledialog_p.h:168:38: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:590:38: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:617:27: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:617:27: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:645:27: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:1730:17: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:2637:43: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:2750:10: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:2786:49: warning: ‘bool QFileDialog::confirmOverwrite() const’ is deprecated: Use !testOption(DontConfirmOverwrite) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:3654:27: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:3843:48: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
dialogs/qfiledialog.cpp:3895:72: warning: ‘DirectoryOnly’ is deprecated: Use setOption(ShowDirsOnly, true) instead [-Wdeprecated-declarations]
styles/qwindowsstyle.cpp:836:19: warning: ‘PE_IndicatorViewItemCheck’ is deprecated [-Wdeprecated-declarations]
graphicsview/qgraphicswidget.cpp:2309:51: warning: ‘PM_MDIFrameWidth’ is deprecated [-Wdeprecated-declarations]
styles/qstylesheetstyle.cpp:4302:10: warning: ‘PE_FrameStatusBar’ is deprecated [-Wdeprecated-declarations]
styles/qfusionstyle.cpp:3676:10: warning: ‘SH_ScrollBar_StopMouseOverSlider’ is deprecated [-Wdeprecated-declarations]

Change-Id: I9e15f4a0996476ec88d8823b72f0c537dce97b9c
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-03-01 20:25:09 +00:00
Qt Forward Merge Bot 043f99954f Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: Icc9b061c56e969756f0351c936cdeb8063c86079
2019-02-28 01:00:15 +01:00
Alexander Volkov f657c74263 QListView: Fix Shift+click selection for non-default itemAlignment
QListView::setSelection() algorithm is designed for items to
occupy their cells completely, which is not the case when
itemAlignment is used. The middle part of the selection rect
goes beyond the column borders and extra items are selected.

Use the introduced cellRectForIndex() instead of rectForIndex()
to calculate the middle part correctly.

Fixes: QTBUG-73684
Change-Id: I4a1e42a056d56e85a16d8ae0ffe18b78d1d6deb7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-27 15:58:56 +00:00
Edward Welbourne 116a661791 Properly deprecate assorted enum members
This adds the first uses of Q_DECL_ENUMERATOR_DEPRECATED.
Prompted by API change review for 5.13, comment by Christian Ehrlicher.

Task-number: QTBUG-73484
Change-Id: Ic106048cec18960a91f88eb12650abab6abf0e97
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-02-27 12:49:53 +00:00
Andy Shaw 7e60858cbc Don't edit the item if we did not get the press event on the same item
With a QTreeView it is possible that collapsing an item can cause the
item under the mouse to be a new one and over the checkbox area for the
new item. As a result, a release can cause it to change the check state
even though it did not get the press for that item. This ensures that
it only allows the edit if it got the press as well.

Fixes: QTBUG-61476
Change-Id: I9a0821466afc84c97c9819755ccbacd729f7fbd7
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-02-26 14:18:18 +00:00
Robert Loehning 85b0ce8ca3 Fix can not -> cannot
Change-Id: Ie9992f67ca59aff662a4be046ace08640e7c2714
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-02-25 13:03:45 +00:00
Qt Forward Merge Bot 0c0c4a23bc Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I830beea26863323ab78a5d4b093f7763d77ad3da
2019-02-21 01:00:08 +01:00
Christian Ehrlicher a4b8e7141b QtGui/Network/OpenGl/Widgets/Xml: use \nullptr in documentation
Replace null and '\c nullptr' with \nullptr in the documentation.

Change-Id: I58934eea06943309ba895833f1991629870ab45b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-20 18:58:58 +00:00
Kari Oikarinen 33707f5b2f Merge 5.12 into 5.12.2
Change-Id: I3a5721aebd3afd8fa08d3f3df6bf61502fa9c347
2019-02-20 12:37:31 +02:00
Friedemann Kleint 655e8623af Fix QSplashscreen positioning on Android
Android does not use QPlatformWindow::initialGeometry(),
so the underlying assumption of 56e92dfdf2
was wrong. Try to explicitly find a screen and default to primary.

Fixes: QTBUG-73794
Change-Id: Iba3e70657a60babfcedf751335ca55cb971a4f99
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2019-02-19 19:48:15 +00:00
Kai Koehne 36a294d1aa Emit returnPressed() signal for the lineEdit embedded in QDateTimeEdit
f78842abe4 added the emission of the
signal in QAbstractLineEdit::keyPressEvent(). This patch also emits
it for QDateTimeEdit.

Fixes: QTBUG-73725
Change-Id: I66d577f5d4b60ad57987b26e7a1c1f20fad47782
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-19 10:39:36 +00:00
Qt Forward Merge Bot ef2ddcf551 Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I8cad26f17834dbc9f7151edc0f17786f9e32025d
2019-02-15 01:00:51 +01:00
Tor Arne Vestbø 37e545e0f1 Deduplicate QWidgetBackingStore::markDirty
Now that MSVC (presumably) supports templates, we can merge the QRect
and QRegion versions of the functions into one.

Change-Id: Ia4264096c4988d9043444e604ebb133e4ff2ace9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2019-02-13 13:26:02 +00:00
Alessandro Portale e1d42a40a2 Add missing "override" specifiers
Annotate this function with 'override' or (rarely) 'final'
[modernize-use-override]

Change-Id: If31ab03b46f885e4984ba3aaaf1ad8d46aae9d9c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-13 12:23:48 +00:00
Christian Ehrlicher d493f676a3 QToolBarLayout: replace deprecated calls to QLayout::margin()
Replace QLayout::margin() with QLayout::contentsMargins() and add two
new helper functions to get the correct margins.

Change-Id: I3ad24747e7c6323eaf4386c00c47029009d64f8c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-13 05:55:40 +00:00
Christian Ehrlicher 3c907d0f4a Replace QWidget::margin() with QWidget::contentsMargins()
Replace deprecated QWidget::margin/setMargin() calls with
contentsMargin/setContentsMargins().

Change-Id: I7fe8056196d73d1be97446d40a438cd0b1a13817
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-13 05:55:36 +00:00
Christian Ehrlicher 7c254024f3 QtWidgets: compile with QT_DISABLE_DEPRECATED_BEFORE=0x050d00
Don't call or implement functions which are not available when compiling
with QT_DISABLE_DEPRECATED_BEFORE=0x050d00

Change-Id: If427e20774b358dc16fa1c7d7ba8c0feba3e144b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-13 05:55:31 +00:00
Christian Ehrlicher 0e82e1bd23 QComboBox: deprecate signal currentIndexChanged(const QString &)
QComboBox has two overloaded signals currentIndexChanged(). This results
in a need to use QOverload<>::of or similar when using the new
signal/slot syntax.
Since there is already a signal 'currentTextChanged()' which is
emitted too, deprecate 'currentIndexChanged(const QString &)'.

Change-Id: Iadac8930de1721b042fa1daea097c8ab5378738e
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-12 17:12:55 +00:00
Christian Ehrlicher a7123de6c9 QFontComboBox: fix layouting in RTL mode
QFontComboBox did not work very well in RTL mode. The text was not
aligned right and the icon was not painted on the right side as it is
done for a normal combobox.
Fix it by using QStyle::alignedRect() for the icon position calculation
and passing the correct alignment when drawing text.

Fixes: QTBUG-19722
Change-Id: I47c5864519e78e0833ef4c07a1385e45ce4479f8
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-12 17:12:44 +00:00
Christian Ehrlicher afc7b26313 QtWidgets: mark QFileDialog functions as deprecated
Mark some long obsolete functions as deprecated so the can be removed
with Qt6:
 - QFileDialog::setConfirmOverwrite()/confirmOverwrite()
 - QFileDialog::setReadOnly()/isReadOnly()

Change-Id: I3cc1df76c8e40e95b8e9893ae06ef488fad26fb6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-12 17:12:41 +00:00
Tor Arne Vestbø 1a36cf5ea1 Deduplicate QWidgetPrivate::invalidateBuffer
Now that MSVC (presumably) supports templates, we can merge the QRect
and QRegion versions of the functions into one.

The function has been renamed to invalidateBackingStore to better
reflect what it's doing.

Change-Id: I0e94a0cabd286cf97f2ba718a42ee0425f59d3ec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2019-02-12 13:32:14 +00:00
Tor Arne Vestbø da55a1b041 Widgets: Only set WA_WState_ExplicitShowHide via public API
Calling QWindow::setVisible doesn't have the same semantics, so we
split off QWidget::setVisible into QWidgetPrivate::setVisible and
call that instead from QWidgetWindow.

Task-number QTBUG-67504

Change-Id: Ie50938d4a1d33ad4b59c742e75e3ca30f1b19399
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-02-12 12:11:24 +00:00
Mitch Curtis 7faec58d5c Fix crash when using Qt Virtual Keyboard with QCalendarWidget
For some reason, QCalendarWidget gets filtered press events that were
intended for Qt Virtual Keyboard's input panel (QQuickView), so we have
to make sure that the window is indeed a QWidget - no static_cast.

Change-Id: Ibc9dce956918ac50d1fed8231a445b7338aef09c
Fixes: QTBUG-72925
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-12 11:26:22 +00:00
Friedemann Kleint 4ce485a2eb Fix some QPainter-related deprecation warnings
text/qtextdocument.cpp:2666:48: warning: ‘QString QTextCharFormat::anchorName() const’ is deprecated: Use anchorNames() instead [-Wdeprecated-declarations]
text/qtextdocumentfragment.cpp:545:87: warning: ‘QString QTextCharFormat::anchorName() const’ is deprecated: Use anchorNames() instead [-Wdeprecated-declarations]
text/qtextdocumentfragment.cpp:546:68: warning: ‘QString QTextCharFormat::anchorName() const’ is deprecated: Use anchorNames() instead [-Wdeprecated-declarations]
painting/qpainterpath.cpp:3321:34: warning: ‘void QPainterPath::addRoundRect(const QRectF&, int, int)’ is deprecated: Use addRoundedRect(..., Qt::RelativeSize) instead [-Wdeprecated-declarations]
painting/qpainterpath.cpp:3342:48: warning: ‘void QPainterPath::addRoundRect(const QRectF&, int, int)’ is deprecated: Use addRoundedRect(..., Qt::RelativeSize) instead [-Wdeprecated-declarations]
painting/qpainterpath.cpp:3366:47: warning: ‘void QPainterPath::addRoundRect(const QRectF&, int)’ is deprecated: Use addRoundedRect(..., Qt::RelativeSize) instead [-Wdeprecated-declarations]
painting/qpainter.cpp:4233:49: warning: ‘void QPainter::drawRoundRect(const QRectF&, int, int)’ is deprecated: Use drawRoundedRect(..., Qt::RelativeSize) instead [-Wdeprecated-declarations]
painting/qpainter.cpp:8349:27: warning: ‘void QPainter::setMatrixEnabled(bool)’ is deprecated: Use setWorldMatrixEnabled() instead [-Wdeprecated-declarations]
painting/qpdf.cpp:1545:28: warning: ‘void QDataStream::unsetDevice()’ is deprecated: Use QDataStream::setDevice(nullptr) instead [-Wdeprecated-declarations]
widgets/qtabbar.cpp:2096:17: warning: ‘void QPainter::initFrom(const QPaintDevice*)’ is deprecated: Use begin(QPaintDevice*) instead [-Wdeprecated-declarations]

Change-Id: I76d98ea8146e7586d3763a5610781c7736d37204
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-02-08 16:41:54 +00:00
Liang Qi fbfacd33be Merge remote-tracking branch 'origin/5.12' into 5.13
Conflicts:
	src/android/templates/AndroidManifest.xml
	src/network/ssl/qsslsocket_mac.cpp
	src/widgets/styles/qstylesheetstyle.cpp
	tests/auto/corelib/kernel/qtimer/BLACKLIST
	tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
	tests/auto/testlib/selftests/expected_blacklisted.lightxml
	tests/auto/testlib/selftests/expected_blacklisted.tap
	tests/auto/testlib/selftests/expected_blacklisted.teamcity
	tests/auto/testlib/selftests/expected_blacklisted.txt
	tests/auto/testlib/selftests/expected_blacklisted.xml
	tests/auto/testlib/selftests/expected_blacklisted.xunitxml
	tests/auto/testlib/selftests/expected_float.tap
	tests/auto/testlib/selftests/expected_float.teamcity
	tests/auto/testlib/selftests/expected_float.txt
	tests/auto/testlib/selftests/expected_float.xunitxml

Done-With: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Done-With: Edward Welbourne <edward.welbourne@qt.io>
Done-With: Timur Pocheptsov <timur.pocheptsov@qt.io>
Change-Id: If93cc432a56ae3ac1b6533d0028e4dc497415a52
2019-02-08 12:31:02 +01:00
Morten Johan Sørvig 928cab5ff1 wasm: add public API for local file access
The web sandbox restricts access to the local file system,
which means Qt needs new public API to provide such
access to applications.

This adds a new static, asynchornous getOpenFileContent()
function to QFileDialog, which will show a file dialog,
read the file contents once a file has been selected, and
finally call the user-provided callback with the selected
file name and file data.

  auto fileReady = [](const QString &fileName, const QByteArray &fileContents) {
    // Process file
  }
  QFileDialog::getOpenFileContent("*.*", fileReady);

This API can be expanded in at least two ways in the
future: allow reading multiple files, and allow file
streaming by returning a QOIDevice.

Change-Id: I011b92fbcf21f0696604e66b7f9eb265c1a07aaa
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2019-02-07 06:49:31 +00:00
Christian Ehrlicher 7024090e1d QToolButton: fix handling multi-line texts
The patch to elide the QToolButton text when there is not enough space
introduced a regression with multi-line text.
Fix it by using the newly introduced common function to elide multi-line
text.

Fixes: QTBUG-72226
Change-Id: I066ebbd2f360add93406cc29bb4bbbebf599ba42
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-07 05:32:37 +00:00
Christian Ehrlicher a7ba79553c QCommonStyle: factor out elided text calculation
Factor out the calculation of the elided text from
QCommonStylePrivate::viewItemDrawText() so it can be used by other
painting functions.

Change-Id: I28e6bfd2fe4d7c552848446fa9913df78589d15b
Reviewed-by: Christian Andersen <csandersen3@gmail.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-07 05:32:30 +00:00
Friedemann Kleint ca65efb0cc Add deprecation exclusion around deprecated calls in deprecated code
Fix:
io/qdir.cpp:1087:16: warning: ‘static void QResource::addSearchPath(const QString&)’ is deprecated: Use QDir::addSearchPath() instead [-Wdeprecated-declarations]
io/qprocess.cpp:1178:34: warning: ‘void QProcess::finished(int)’ is deprecated: Use QProcess::finished(int, QProcess::ExitStatus) instead [-Wdeprecated-declarations]
image/qpixmap.cpp:997:48: warning: ‘static QPixmap QPixmap::grabWidget(QObject*, const QRect&)’ is deprecated: Use QWidget::grab() instead [-Wdeprecated-declarations]
text/qfont.cpp:2218:29: warning: ‘QString QFont::lastResortFamily() const’ is deprecated [-Wdeprecated-declarations]
itemviews/qitemdelegate.cpp:1008:41: warning: ‘static QPixmap* QPixmapCache::find(const QString&)’ is deprecated: Use bool find(const QString &, QPixmap *) instead [-Wdeprecated-declarations]

Change-Id: I51259edc175b1f55f61ded3af50ebfffd8c304a8
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-02-06 22:12:16 +00:00
Christian Ehrlicher edc455c69b QtWidgets: mark QDialog/QFileDialog functions as deprecated
Mark some long obsolete functions as deprecated so the can be removed
with Qt6:
 - QDialog::setOrientation()/orientation()
 - QDialog::setExtension()/extension()/showExtension()
 - QFileDialog::setNameFilterDetailsVisible()/isNameFilterDetailsVisible()
 - QFileDialog::setResolveSymlinks()/resolveSymlinks()

Change-Id: Ibbd5b4192ea8ab483d6b2a8dbf9879f29f9ee86d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-06 22:11:38 +00:00
Christian Ehrlicher d6d33f0b80 QtWidgets: mark obsolete functions as deprecated
Mark some long obsolete functions as deprecated so the can be removed
with Qt6:
 - QLayout::margin()/setMargin()
 - QComboBox::autoCompletion()/setAutoCompletion()
 - QComboBox::autoCompletionCaseSensitivity()
 - QComboBox::setAutoCompletionCaseSensitivity()
 - QTextStream& operator<<(QTextStream&, const QSplitter&)
 - QTextStream& operator>>(QTextStream&, QSplitter&);

Change-Id: Ic16b36bf647413b5b3ea2d9105981b95370b3178
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-06 22:11:33 +00:00
Alexander Volkov f6edb0ef72 Improve keyboard navigation in QListView when isWrapping is enabled
Search the previous item or the next item in a model instead
of searching them on visual layout. This way the cursor will
not stop at the beginning or at the end of a row or a column.

Fixes: QTBUG-14444
Change-Id: I0ef203a4dcd876e4c50559fb87e61585f07434d1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-06 09:50:58 +00:00
Kari Oikarinen eb60877fe9 QWizard: Correctly calculate watermark size hint
If we have have AA_EnableHighDpiScaling on and have loaded a @2x image, layout
calculations can't use the real pixels of the QPixmap directly.

Fixes: QTBUG-73401
Change-Id: I1891411a0e359e0148476f73b6cc3a128893a374
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-06 07:19:01 +00:00
Christian Ehrlicher 93cebb3837 QtWidgets/Graphics-/ItemViews: mark obsolete functions as deprecated
Mark some long obsolete functions as deprecated so the can be removed
with Qt6:
 - QGraphicsItem::matrix()/setMatrix()/resetMatrix()/sceneMatrix()
 - QGraphicsItemAnimation::reset()
 - QGraphicsScene::isSortCacheEnabled()/setSortCacheEnabled()
 - QAbstractItemDelegate::elidedText()
 - QAbstractItemView::setHorizontalStepsPerItem()/horizontalStepsPerItem()
 - QAbstractItemView::setVerticalStepsPerItem()/verticalStepsPerItem()

Change-Id: I7244078552ebeac9dfbcf3291b3ae0c44cc2c1d9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-05 16:55:23 +00:00
Christian Ehrlicher 1b90684948 QtWidgets: replace 0 with \nullptr in documentation
Replace 0 with \nullptr in the documentation.
As a drive-by also replace some 0 with nullptr in the corresponding
code.

Change-Id: I5e5bc1ae892f270d7c3419db1c179053561f1b26
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-02-05 16:55:13 +00:00
Christian Ehrlicher 3514aedbf3 QtWidgets documentation: cleanup
Cleanup the QtWidgets documentation:
 - use new signal/slot syntax
 - use range-based for loop instead foreach

Change-Id: I621b1ddac108d3df676209241d93d9b4f04a25fe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-02-05 16:54:53 +00:00
Christian Ehrlicher 0736e050cb QMenuItem: fix rendering with css styling
The rendering of a css styled menu item with icons or checkmark was
partially fixed with aa1bc47942 but
introduced some other painting regressions, especially in RTL mode.
Fix it by syncing the code with fusion and windows style. With this
patch a menu text with a check mark but no icon is now aligned exactly
the same as a menu text with a icon.

Fixes: QTBUG-66380
Fixes: QTBUG-70491
Fixes: QTBUG-72817
Change-Id: I83a95d15eb130e7f72471820b53c3cd5554d9334
Reviewed-by: Nick D'Ademo <nickdademo@gmail.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-02-05 08:25:00 +00:00
Christian Ehrlicher 2bfb89e133 QtWidgets: replace 0 with \nullptr in documentation
Replace 0 with \nullptr in the documentation.
As a drive-by also replace some 0 with nullptr in the corresponding
code.

Change-Id: Id8056dc2364a372e40bc04e8cb9fcc443e49fb18
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-02-02 12:49:39 +00:00
Christian Ehrlicher e56401818b QtGui/QPainter: mark obsolete functions as deprecated
Mark some long obsolete functions as deprecated so the can be removed
with Qt6:
 - initFrom()
 - setMatrix()/matrix()/deviceMatrix()/resetMatrix()
 - setWorldMatrix()/worldMatrix()/combinedMatrix()
 - setMatrixEnabled()/matrixEnabled()
 - drawRoundRect()
 - setRedirected()/redirected()/restoreRedirected()

Change-Id: I0daed72c0ef06c192309f02366a7201154e75ac9
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-02-02 12:49:30 +00:00
Christian Ehrlicher daee9af969 QtGui: mark obsolete QPixmapCache::find() functions as deprecated
QPixmapCache::find(QString) and QPixmapCache::find(QString, QPixmap&)
are deprecated since Qt4 times.
Explicit mark them as deprecated so they can be removed with Qt6.

Change-Id: Iaf185f69afe02203559a1c812fbb4a95c9049a1d
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2019-02-02 12:49:25 +00:00
Paul Wicking 2bc362c9fa Merge dev into 5.13
Change-Id: I8113c6d8735a151bd152e6096f8c8b8e63a05474
2019-02-01 13:33:26 +01:00
Allan Sandfeld Jensen fcba9fa861 Fix regression in QPlainTextEdit updating
It was incorrectly counting a block having more than one line as having
changed visibility.

Fixes: QTBUG-69310
Change-Id: I502cda1d3e8a4efb1c14122353cc0a4731d8581c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-01-31 11:59:23 +00:00
Nico Vertriest 3615e8aaa1 Doc: Correct minor link issue in qwidget.cpp
Change-Id: I3b69a18c65b75f3e0014a12284904af208ef058d
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2019-01-29 11:49:42 +00:00
Friedemann Kleint 201dde1f31 QFileDialog: Fix deprecation warning
Fix:
dialogs/qfiledialog.cpp:3698:43: warning: ‘QDir& QDir::operator=(const QString&)’ is deprecated: Use QDir::setPath() instead [-Wdeprecated-declarations]
    dir = getEnvironmentVariable(path2);

Change-Id: If8d93374cf2900974bcbd14caf2b1ef488409518
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-01-29 11:26:46 +00:00
Christian Ehrlicher 9f971ca816 QtWidgets: replace 0 with \nullptr in documentation
Replace 0 with \nullptr in the documentation.
As a drive-by also replace some 0 with nullptr in the corresponding
code.

Change-Id: I8d7e9c838da1399988a830669d58fc7f2f010696
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-01-28 19:37:26 +00:00
Liang Qi e3621dd6bd Merge "Merge remote-tracking branch 'origin/5.12' into dev" into refs/staging/dev 2019-01-28 19:30:32 +00:00
Andy Shaw f92ca83230 Don't enable the input method for the QListView in a QInputDialog
As the listview in an input dialog is only used for selecting the entry
in place of a combobox, then we should prevent the input method from
being enabled. This ensures that it does not show an invalid text
cursor on devices like iOS and Android.

Change-Id: Ifb854e509573ec2d63d4cbcfa61335ae5b251ab5
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-01-28 15:26:27 +00:00
Christian Andersen 8b91afe12e QMdiSubWindow: Avoid potential shaking motion when moving window
When using QMouseEvent::pos to change the position of a widget, the
widget may shift in a shaking motion. This is warned about in its
documentation. For example if the system has a bit of load, we might
receive multiple mouse move events from the OS, before QMdiSubWindow
gets the first move event. In that case the first mouse move is ok,
but subsequent move events, will use a ::pos value that now does not
make sense as the position of the window have changed. The fix is to
use QMouseEvent::globalPos.

Fixes: QTBUG-72646
Change-Id: I3211cc6627ff8fe26c9520ad0457872f01c32471
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-01-28 06:33:44 +00:00
Friedemann Kleint 5557b69304 QColorDialog: Remove flag Qt::MSWindowsFixedSizeDialogHint
The flag causes issues with High DPI scaling (the OS maintains
the size in device pixels when moving across screens).

It does not really make a difference (apart from the resize handle
appearing) since the dialog uses QLayout::SetFixedSize.

Fixes: QTBUG-73232
Change-Id: Iad08427796890582ac05758678d24e3cd707e669
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2019-01-27 20:53:49 +00:00
Liang Qi 980567b3a3 Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	src/android/templates/AndroidManifest.xml
	tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp

Change-Id: I4c9679e3a8ebba118fbf4772301ff8fde60455b9
2019-01-26 08:35:40 +01:00
Christian Ehrlicher 25133a1b77 QAbstractItemView: fix rendering centered/right aligned item text
Commit 5712c62d1c introduced a regression
for item texts which were aligned right or horizontally centered. The
layoutRect was calculated wrong and started below zero and later the
correct x offset could not be calculated since QTextLine::x() does not
return a calculated value.
Fix it by first calculating the complete string and pass it completely
to QTextLayout::draw() instead trying to draw the single lines on our
own - QTextLayout has a better working algorithm so no need to reinvent
the wheel here.

[ChangeLog][QtWidgets][ItemViews] Fixed a regression with wrongly drawn
centered/right aligned item texts

Fixes: QTBUG-34133
Fixes: QTBUG-56759
Fixes: QTBUG-72805
Fixes: QTBUG-72869
Change-Id: I0ed521c3a9d35446d190ac22aa9f2374814fd278
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-01-24 20:34:04 +00:00
Christian Ehrlicher 7bebdb472a QDrag: mark QDrag::start() as deprecated
QDrag::start() is deprecated since Qt4. Therefore annotate it with
Q_DEPRECATED so it can be removed in Qt6.

Change-Id: I5b82c482fa579f357cc67e38b86e6fe587f18ded
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-01-23 18:49:08 +00:00
Qt Forward Merge Bot e3da05f39a Merge remote-tracking branch 'origin/5.12.1' into 5.12
Change-Id: Icebd151eae0cf9d400319a42573290d1a911ce26
2019-01-23 10:13:29 +01:00
Allan Sandfeld Jensen e823c351c6 Fix resolve() on fonts returned from QWidget::font()
Set the inherited properties as resolved on the font, so non-default
values are passed on in contexts that does resolve logic like QPainter.

One test is updated as it actually tests what it is supposed to on
more configurations.

Fixes: QTBUG-39560
Change-Id: Ief668e992ccdc091337a259a4c1306a00e67c73f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-01-22 18:43:18 +00:00
Qt Forward Merge Bot f94ca82e0f Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	.qmake.conf

Change-Id: Ibfcb30053f3aacb8ec2ec480e146538c9bf440ea
2019-01-21 13:03:09 +01:00
Friedemann Kleint 3eac688ec0 Documentation: Add \nullptr macro and use where applicable
Qt for Python users reading the documentation assume that int(0) can
be passed for pointer parameters. Use the newly introduced \nullptr to
disambiguate this.

In a follow-up step, the \nullptr macro can be defined as None
when generating the Qt for Python documentation.

Task-number: PYSIDE-903
Change-Id: I3a45f87175a0668ab5f3f95f0aff409f7e3ef027
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2019-01-10 22:16:07 +00:00
Andy Shaw e70230405d Don't treat the ampersand in a titlebar as a mnemonic
As the mnemonic has no meaning when it is in a dockwidget title, we
should just treat it as a literal ampersand instead and display it
as such.

Fixes: QTBUG-54485
Change-Id: I96c856ce2771a68d226f48f8f47affc24f1c53cd
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2019-01-08 21:37:04 +00:00
Timur Pocheptsov 98552a84ce Emit paletteChanged and send ApplicationPaletteChange on theme change
Fixes: QTBUG-72575
Change-Id: I407e081295a456a7bdd36de91ca5bbf74bba6078
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-01-08 11:43:16 +00:00
Friedemann Kleint 56e92dfdf2 QSplashScreen: Fix positioning in multimonitor setups
Previously, QSplashScreen::setPixmap() used
QDesktopWidgetPrivate::screenGeometry().center() to determine
the screen position, which would always result in the primary screen
being used. That is counter to the documentation of QSplashScreen(QWidget *,
QPixmap), which states that a desktop screen widget can be passed
as parent to set the screen.

To fix that and make it easier to work with QScreen (which is the likely
outcome of QTBUG-62094), extract the setPixmap() to QSplashScreenPrivate
with an additional QScreen * parameter and add a helper to determine it. Do
not set a position in case no parent was passed so that
QPlatformWindow::initialGeometry() triggers, centering it over the cursor.

Fixes: QTBUG-72819
Task-number: QTBUG-62094
Change-Id: Ic38cfecd24c3ff6b82dff37702b627c5a50a3e1d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-01-08 11:12:38 +00:00
Liang Qi 0e96b5fe48 Merge remote-tracking branch 'origin/5.12' into 5.12.1
Conflicts:
	src/widgets/kernel/qtooltip.cpp

Change-Id: Ic2f9a425359050eb56b3a4e5162cf5e3447058c8
2019-01-08 09:34:24 +01:00
Christian Ehrlicher 52e0d9e23c Drag'n'Drop: fix dnd when dragMoveEvent() is not implemented
The refactoring of dnd with f8944a7f07
added a regression which results in a need to reimplement
dragMoveEvent() on the drop side. Before this change it was possible to
accept the dnd in dragEnterEvent() without again accepting it in
dragMoveEvent().
Fix it in a similar way it's done in
QGuiApplicationPrivate::processDrag() by prefilling the first simulated
QDragMoveEvent with the values from the previous QDragEnterEvent before
it is sent to the drop receiver.

Fixes: QTBUG-72844
Change-Id: I1300dd02b7f1d9dcd44ecefa8335f92ad6c6cafa
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-01-07 10:50:18 +00:00
Christian Ehrlicher 283008e123 Doc: replace QItemDelegate with QStyledItemDelegate
Since QStyledItemDelegate should be preferred over QItemDelegate the
documentation should point to QStyledItemDelegate instead.
Also mark some internal classes which derive from QItemDelegate so they
will not be forgotten during Qt6 porting.

Change-Id: I2dd17feedf8593afac5ca16d2546e1f0bc0250ae
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Konstantin Shegunov <kshegunov@gmail.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-01-06 17:07:45 +00:00
Christian Ehrlicher 3456d51650 QProgressDialog: remove unused QCursor member
The private member parentCursor was not populated since Qt4 times. This
lead to an unexpected behavior: When QProgressDialog::reset() was called
and value() was greater than 0, the cursor of the parent was set to a
default-constructed QCursor.
Therefore remove QProgressDialogPrivate::parentCursor.

Fixes: QTBUG-72660
Change-Id: I195688300e07ddbbb7c17a9f471513c542269c2a
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2019-01-06 13:40:06 +00:00
Christian Ehrlicher 0b736d91b7 QFormLayout: honor Qt::AlignHCenter for labelAlignment
The QFormLayout did not handle Qt::AlignCenter, only
Qt::AlignLeft/Right for the labelAlignment property.
Therefore also add the code for Qt::AlignHCenter to be consistent

Fixes: QTBUG-2780
Change-Id: I0d6dd61ba583e3ee37a003fae000d992505c08d1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-01-06 13:39:57 +00:00
Christian Ehrlicher 406d1dcfd7 Revert "QListView: Honor css :first/:middle/:last Pseudo-States"
This reverts commit 1aa3edf3f8 since it created a
regression within the windows styling.

Task-number: QTBUG-27110
Fixes: QTBUG-72748
Change-Id: I7e5004be6cf398ef0b533a25066d924310ed1e48
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2019-01-04 17:03:17 +00:00
Topi Reinio 3b03150aa2 Doc: Restore documentation for QTest functions in other modules
Qt Test library sources specific to Core, GUI and Widgets modules
were moved around in commit 88867e39b.

The new source locations must be referenced in Qt Test documentation
configuration. The same sources are excluded in their original doc
projects, and the related snippet file is moved over to qttestlib.

The commit also fixes the remaining documentation issues for Qt Test.

Change-Id: Ibe011aa83639e574d647f12bc9e53e618781bce6
Reviewed-by: Martin Smith <martin.smith@qt.io>
2019-01-04 12:16:56 +00:00
Kai Koehne 17fe5fc128 Restore behavior for QToolTip not wrapping by default
This partially reverts 7a1d77b6e4, which caused regressions
e.g. in Qt Creator.

The behavior of QToolTip for wrapping has been always special in
that wordWrap was enabled as soon as some HTML tags were
detected, while plain text was not wrapped. This is arguably bad API,
but by now a lot of applications depend on this exact behavior, so
I don't think it's worth to change this anymore.

What can be kept though is the check for overlong tooltips that do not
fit on the screen. In this case wrapping makes sense.

[ChangeLog][QtWidgets] Reverted a Qt 5.12.0 behavior change in
QToolTip that made plain tooltip text be wrapped automatically.

Fixes: QTBUG-72568
Change-Id: I6fa3e455f09cffaeb8ad1cdc6e81d71ae344dd34
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-01-04 11:25:47 +00:00
Liang Qi 03039979b5 Merge remote-tracking branch 'origin/5.12' into dev
Also blacklist tst_QRawFont::unsupportedWritingSystem() and
tst_QGlyphRun::mixedScripts() on windows for now.

 Conflicts:
	qmake/generators/makefile.cpp
	src/corelib/itemmodels/qstringlistmodel.cpp
	src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h
	tests/auto/corelib/itemmodels/qstringlistmodel/tst_qstringlistmodel.cpp
	tests/auto/gui/text/qglyphrun/BLACKLIST
	tests/auto/gui/text/qrawfont/BLACKLIST

Task-number: QTBUG-72836
Change-Id: I10fea1493f0ae1a5708e1e48d0a4d7d6b76258b9
2019-01-04 07:33:14 +01:00
Vitaly Fanaskov d8bbb5ee0e Respect roles of buttons added to QMessageBox
When a button added to QMessageBox has AcceptRole or YesRole, the signal
accepted() will be emitted upon click on the button. If the button has
RejectRole or NoRole, the signal rejected() will be emitted upon click
on the button. If a button has a different role, neither accepted() nor
rejected() will be emitted. This works for both standard and custom
buttons.
The signal finished() with result code will be sent regardless of a
clicked button role.
Also added documentation strings for some methods of private classes in
order to have better tooltips in IDE(s).

Task-number: QTBUG-44131
Change-Id: I521a4e5112eb4cf168f6fbb4c002dbe119aeeb09
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2019-01-03 18:38:12 +00:00
Nico Vertriest 651b4845de Doc: Fix linking errors qtbase
Change-Id: I225e59bea0a8eac14fd11ef2b091907ae955c447
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2019-01-03 09:45:23 +00:00
Alejandro Exojo 94daa69699 Remove unused pointers for PressDelayHandler
Change-Id: I7e2fcf828c6027737b176aa566ebd7e48c7953e7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-31 09:15:34 +00:00
Christian Ehrlicher 4c1313197b QbstractItemView: Allow Key_Space for keyboardSearch()
The keyboard search in QAbstractItemView did not handled Key_Space
because this is also an edit trigger. It was also consumed if no edit
was started.
This patch changes this behavior and triggers the keybaord search when
the editing was not started.

Fixes: QTBUG-48505
Change-Id: I58e0d283f863c9b12ac5d2f6171f15522bd7c30a
Reviewed-by: David Faure <david.faure@kdab.com>
2018-12-25 10:15:32 +00:00
Christian Ehrlicher f568bfce64 QTreeView: fix keyboard navigation when first or last item is disabled
The keyboard navigation did not consider the disabled state when trying
to find the new index under all circumstances. This lead to a
non-working PageUp/Down/Home/End navigation when the first or last item
was disabled or hidden.
Fix it by explicitly checking if the calculated item is hidden/enabled
and skip it in this case.

Fixes: QTBUG-44746
Fixes: QTBUG-34832
Change-Id: Ifa3b64a405e67b792db5db9d186d426fcfe183fb
Reviewed-by: David Faure <david.faure@kdab.com>
2018-12-25 10:15:29 +00:00
Alexander Volkov f05cc4144e QDialog: Pass transient parent as a parent to native dialogs
Sometimes it's needed to show a native dialog for another process,
for example in xdg-desktop-portal-kde. In this case we have WId
of a parent window which can be used for calling
QWindow::setTransientParent(QWindow::fromWinId(...)).

Pass this transient parent to a native dialog so it could use
it as a transient parent for itself. Rename
QDialogPrivate::parentWindow() for clarity.

Change-Id: I68974ddea35f9366a0ddffe602d9d028f45e26fa
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-24 16:51:14 +00:00
Christian Ehrlicher 844044f37b QTabWidget: properly horizontally align tab icon
When an icon used for a QTabWidget is smaller than the default size, it
was not properly aligned horizontally although it was done for the
vertical alignment.
Therefore also align it horizontally to be consistent.

Fixes: QTBUG-38108
Change-Id: I0e2e3af7ead699f2834aed1d8b67cbe775c897af
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-24 11:59:16 +00:00
Paul Wicking 0c95c11e65 Doc: Add missing \since to QLineEdit's inputRejected signal
The signal was introduced in 5.12.0, according to
qtbase/dist/changes-5.12.0 (which refers to QTBUG-57448).
Also confirmed in qtdoc/doc/src/whatsnew/whatsnew512.qdoc.

Added in commit c901cdadc0.

Fixes: QTBUG-72386
Change-Id: I291dfefe40eea0e9208bda6eed6dd96e41ba6d2b
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2018-12-23 18:29:59 +00:00
Kai Koehne f372714e96 Doc: Fix typo in QStyle
Change-Id: Ic979cb66acb3f8824aefb6ad858c0f746ce3e02b
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2018-12-22 09:57:42 +00:00
Andy Shaw c879fc2ab7 Pass the alignment to QFontMetrics::elidedText()
When the text is elided, it needs to account for the mnenomic if
there is one so it does not end up eliding the text unnecessarily.

Change-Id: I77c15067f3e8d57d8deca83090bcb80554c3733f
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-21 13:26:08 +00:00
Thorbjørn Lund Martsum 7fc427ba23 QToolTip - set correct screen before resize
In order to get a correctly not truncated size we need the hint to
be calculated based on the screen it is about to be shown on.
This patch places some code in QWidgetPrivate that is used by
QMenu and QToolTip + can be used to solve similar problems in the
future.

Task-number: QTBUG-72306
Change-Id: I58c058761f71b4a7675b6a078be62aa813ead752
Reviewed-by: Morten Kristensen <msk@nullpointer.dk>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2018-12-18 11:22:37 +00:00
Kai Koehne 5fd48d78d5 Bump copyright year to 2019
Task-number: QTBUG-72635
Change-Id: Idc9bd97fe873b332d7ff72cb44a00334a472404f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2018-12-18 07:51:10 +00:00
Christian Ehrlicher 7863be3115 QTableView: Fix keyboard navigation with disabled rows
The keyboard navigation with MovePageUp/Down and MoveEnd did not honor
disabled cells in all cases which lead to inconsistencies in the
navigation (esp. since MoveHome does honor them correctly).
Therefore make sure that all four move operations work consistent by
refactoring the code to use common functions.

Fixes: QTBUG-72400
Change-Id: I63fa3b626510d21c66f4f9b2b1bfb3261728ecaf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-18 05:33:52 +00:00
Christian Ehrlicher f4d72b3a12 Styles: replace deprecated QPalette functions
QPalette::foreground()/background() are deprecated since 5.13 - replace
those functions with their successors.

Change-Id: I158b6403437d3d48c0859360823133ca4ced2c23
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-17 19:49:03 +00:00
Christian Ehrlicher 108f0cc998 Widgets: replace deprecated QPalette functions
QPalette::foreground()/background() are deprecated since 5.13 - replace
those functions with their successors.

Change-Id: I80e49dadd7be1007d73ac920f6db2b8e608db06a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-17 19:46:51 +00:00
Samuel Gaist 649ee12aba QRegularExpression: anchor wildcard pattern
The current implementation of wildcardToRegularExpression doesn't
anchor the pattern which makes it not narrow enough for globbing
patterns. This patch fixes that by applying anchoredPattern before
returning the wildcard pattern.

[ChangeLog][QtCore][QRegularExpression] The wildcardToRegularExpression
method now returns a properly anchored pattern.

Change-Id: I7bee73389d408cf42499652e4fb854517a8125b5
Fixes: QTBUG-72539
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-12-15 13:24:16 +00:00
Qt Forward Merge Bot 4b04e47be9 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Iad06d8c07dfc288c9d1a9f7ee3520285cea60546
2018-12-15 01:00:31 +01:00
Nick D'Ademo 3364be7859 QDockWidget: Make floating docks respect DockWidgetMovable feature
Currently, even if DockWidgetFeature::DockWidgetMovable is unset
(i.e. moving docks to different dock areas is disabled), it is still
possible to move a dock to a different dock area after it is made
floating (i.e. the DockWidgetMovable setting is ignored). This
change prevents this unexpected/inconsistent behavior.

Fixes: QTBUG-71703
Change-Id: Iaecc293a5ba12dd5b53f5f0bd0cfe77ae54ab393
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-13 12:45:47 +00:00
Mitch Curtis 32fd79a20f QAbstractSlider: fix invertedControls having no effect for left/right keys
There was a comment in the code that said:

// It seems we need to use invertedAppearance for Left and right, otherwise, things look weird.

It's not clear what that was referring to, but in its current state,
a slider with invertedControls set to true will not behave as expected:
pressing the left arrow key will decrease its value instead of increasing it,
and vice versa for the right arrow key.

As stated in the documentation (and by its name), invertedAppearance only
controls the appearance of the slider, and not the effect of key events.

Remove the comment and use invertedControls instead.

Change-Id: I13296cbda9244413978ef0d7f0856065f74fd0bf
Fixes: QTBUG-25988
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-13 10:46:22 +00:00
Friedemann Kleint 4aac7b92c4 QFusionStyle: Fix deprecation warning about QFontMetrics::width()
Fix an oversight of 4d88d79aa5.

Change-Id: I03e403c6d6aefc4f3118ea8efd822fc563b7a514
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2018-12-13 07:13:36 +00:00
Qt Forward Merge Bot ad4f359f80 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I0fe623517af28e408b642c879efd59f633ab63ac
2018-12-13 01:00:11 +01:00
Sergio Martins da37291f28 When warning about invalid style override also print available ones
Change-Id: Ia017a342648a1f1e1185e74ddec1a77cb6dcfebe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-12 13:33:34 +00:00
Lars Knoll 51dc108e10 Use QMultiMap::insert() instead of insertMulti()
Change-Id: Ia989347730e68f9af0638292f76205bdca61d04f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-12 07:43:36 +00:00
Friedemann Kleint e209321966 Use Q_DISABLE_COPY_MOVE for private classes
Change-Id: I3cfcfba892ff4a0ab4e31f308620b445162bb17b
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2018-12-12 07:23:54 +00:00
Friedemann Kleint 589f9f179c QFileDialog: Remember last visited directory correctly
QFileDialogPrivate::init() sets the working directory derived
from the URL passed in, causing the lastVisitedDir to be set.
This in turn prevented the restoreState() logic from setting
the directory retrieved from the file. Clear lastVisitedDir
in init() in case the initial URL was invalid.

Fixes: QTBUG-70798
Change-Id: I19084e24eb6d469330c4dd8c50495b4996279189
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-12 07:22:29 +00:00
Alberto Mardegan 9ee29b826c QCommonStyle: fetch `flat` property from style option
The same information is available both from the QGroupBox API and from
the QStyleOption; we should prefer the latter, because this makes it
easier to use QStyle from QQuick.Controls (where a QGroupBox is not
instantiated).

Change-Id: I05ed1e3406676bde5d124d395d43caa0961c4f2d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-11 14:04:10 +00:00
Christian Ehrlicher e56c79dc9d QTreeWidget: mark is/setFirstItemColumnSpanned() as deprecated
Deprecate the QTreeWidget functions is/setFirstItemColumnSpanned() to
stay in sync with the other deprecated functions
(selected/expanded/hidden) so they can get removed in Qt6.
Also add a small unit test for them.

Change-Id: Ie1cb5d7163c2d56d653c21e841ccaf7d38569787
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-11 06:46:42 +00:00
Qt Forward Merge Bot a2fd99c430 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I91e684e74c36467efda8ded6ed19791baa0c1a1f
2018-12-11 01:00:13 +01:00
Christian Ehrlicher b688c7e99a DropSite example: fix documentation
The DropSite documentation mentioned the foreach keyword which was
removed some times ago in the code. Therefore also remove the
corresponding documentation snippet.

Change-Id: Id9dd3f01dbdd37eeda43fabe12b60ef9e0b32d10
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-10 18:38:56 +00:00
Edward Welbourne d43ac840e5 Specify the date-time spec when setting max time
QDateTimeEdit::setMaximumTime() constructed a QDateTime from the given
time and its current max date without propagating its existing spec;
it thus got a local time.  All other QDateTimeEdit methods setting
bounds do propagate the spec.  So bring setMaximumTime() in line with
the others.

Fixes: QTBUG-71311
Change-Id: Ic97d22185f76bed46bc8d2884b131942874d9a0a
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Konstantin Shegunov <kshegunov@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-12-10 15:39:20 +00:00
Sergio Martins 3464e1e5c7 Add a few qAsConst() to range-for to prevent detachments
places indicated by clazy

As a drive-by, fixed minor styling issues in the affected lines.

Change-Id: I88d3fc0c8573cde0e61f19a18dd9ea697ee40c34
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-12-10 11:47:28 +00:00
Andy Shaw d391d4db49 Fusion: Don't draw the background of the lineedit when drawing the frame
Since only the frame is being drawn here, it should only draw the
outline. Otherwise it will override any background drawing done via a
stylesheet.

Change-Id: I408fc44743747ad369c700b3d52935bfc8826f11
Fixes: QTBUG-71950
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-12-10 06:28:13 +00:00
Qt Forward Merge Bot 0a88c5e92b Merge remote-tracking branch 'origin/5.11' into 5.12
Change-Id: If49df791f73e9edf616baa094e0f301a44cb853d
2018-12-10 01:00:19 +01:00
Qt Forward Merge Bot fc11604964 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I10ae61ec6867b38601d85d6fc34e1f6a6ba0cc11
2018-12-09 01:00:43 +01:00
Christian Ehrlicher 25231c4048 QToolButton: Don't elide text if an icon is present
The previous fix which adds an automatic text elision when the
QToolButton is not large enough brought up an inconsistency between
QToolButton::sizeHint() and QCommonStyle::drawControl().
Fix it by syncing the magic numbers between QToolButton::sizeHint() and
QCommonStyle::drawControl().

Fixes: QTBUG-72226
Change-Id: If4a76792cb97bcdb918e18c6b29cb637730acec0
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2018-12-08 07:25:32 +00:00
Shawn Rutledge c4ee125891 Set QScroller's parent to its widget, for memory management
If the widget to which the scroller was assigned is deleted, the
QScroller ought to be deleted too, to avoid filtering events and then
following a dangling pointer while trying to react.

Fixes: QTBUG-71232
Change-Id: I62680df8d84fb630df1bd8c482df099989457542
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
2018-12-08 07:18:15 +00:00
Qt Forward Merge Bot f8c5c13564 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Ied1194730e75a6f30839bbf5429aa2699230288e
2018-12-08 01:01:00 +01:00
Friedemann Kleint e27f52a098 QScroller: Fix crash when multiple scrollers are registered
Ensure the scroller cannot be added multiple times to the
list of active scrollers. Patch as contributed on bug report.
Amends 8b8e53f726.

Change-Id: Ic4e7d3e981f36e330dfd28d468288c5ef4b74a4c
Fixes: QTBUG-72244
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-12-07 19:01:57 +00:00
Vitaly Fanaskov 0088f76043 Fix inability to edit lines in QGraphicsTextItem when pageSize is set
Previous implementation relies on the fact that the only text document
with height -1 can grow or shrink vertically, and, hence, a bounding
rect should be updated under this circumstances. But method
QTextDocument::setPageSize might set a height different from -1, and
QGraphicsTextItem will be growing/shrinking vertically as well.
So, we have to relax condition to cover all use cases. Bounding rect
will be updated if new size is different from current size. This also
doesn't affect performance.

Fixes: QTBUG-55527
Change-Id: Id2c8e15d859aff9dde62c8ee14a6859c0c03f0d4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-12-07 16:31:19 +00:00
Ivan Čukić b91e6befeb Preallocate buffer for QLineEdit when used for password input
While the user is entering the password, the string variable that
stores the value might have to reallocate its content from time
to time (when the string needs to grow beyond its current capacity).

When the reallocation happens, the old buffer is freed, but its
data is not zeroed-out. This means that a QLineEdit that serves as
a password input field might leak chunks of the password during
its lifetime, and the leaks will persist after its destruction.

Since the QLineEdit can not control the behavior of the QString
it uses to store the entered value, the only thing it can do is try
to make the reallocations rare.

This patch reserves the space for 30 characters for the string which
stores the QLineEdit value when said QLineEdit is used for password
input. This is enough to make sure no reallocation happens in
majority of cases as barely anyone uses passwords longer than 30
characters.

[ChangeLog][QtWidgets][QWidgetLineControl/security] Preallocate a buffer
for the string that contains the entered value when the QLineEdit serves
as a password input field to minimize reallocations.

Change-Id: I3e695db93e34c93335c3bf9dbcbac832fc18b62d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-07 15:47:39 +00:00
Lars Knoll 0023948f83 Remove the model pointer from QPersistentModelIndexData
It can be just as well received from the QModelIndex member.

Change-Id: I72f930206ca2afed730009778ded0e56e4e6f278
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-12-07 10:15:58 +00:00
Nick D'Ademo 1986392255 QMdiArea: Do not move active subwindow after tile rearrange
Currently, a tile rearrange will move the active subwindow (if any)
to position zero (top-left). This ignores any tiling order set via
setActivationOrder(). This change removes this move so that the set
tiling order is respected when a tile operation is performed.

Fixes: QTBUG-43356
Change-Id: I2c481f0ffe45e42e811c6b6d476eb4cb65aa5d1f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-06 09:06:18 +00:00
Ivan Komissarov a8dae3ad0b qgraphicslayoutstyleinfo: Improve memory handling
Change-Id: I3d699a89e8833570132cbd03aa575e4f4cf9249b
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2018-12-05 21:50:47 +00:00
Christian Ehrlicher e2f473f4d4 QListWidget: mark (is|set)Item(Selected|Hidden) as deprecated
QListWidget::(is|set)Item(Selected|Hidden)() are deprecated for a long
time but not marked as such. Therefore explicitly mark them as
deprecated so they can get removed with Qt6.

Change-Id: I4567e740f1ebb5841b2e5b50c601fb83a782950c
Reviewed-by: Konstantin Shegunov <kshegunov@gmail.com>
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-04 21:01:18 +00:00
Liang Qi 009a5538eb Merge "Merge remote-tracking branch 'origin/5.12' into dev" into refs/staging/dev 2018-12-04 19:41:52 +00:00
Liang Qi 5d5c00c676 Merge remote-tracking branch 'origin/5.12' into dev
Conflicts:
	src/gui/painting/qdrawhelper.cpp

Change-Id: I4916e07b635e1d3830e9b46ef7914f99bec3098e
2018-12-04 09:58:43 +01:00
Ivan Komissarov f5cfc36e3e qgraphicslayoutstyleinfo: Remove useless check
There is no sense in testing the 'm_widget' pointer against null, as the
memory was allocated using the 'new' operator. The exception will be
generated in the case of memory allocation error.

Task-number: QTBUG-71156
Change-Id: I898bac6d9b51b2abd7a5311aa71ac2492c7c042c
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2018-12-04 08:45:18 +00:00
Nick D'Ademo 4c58569085 QMdiArea: Take scroll bars into account when tiling subwindows
QMdiAreaPrivate::resizeToMinimumTileSize() does not take into account
scroll bars when calculating the minimum size for the QMdiArea widget.
As a result, if scroll bars are enabled or showing during a tiling
operation, the top-level widget incorrectly expands in size (instead of
utilizing the scroll bars). Therefore, we should only resize the
top-level widget if scroll bars are disabled.

Fixes: QTBUG-40821
Change-Id: I3a8b7582d23fdf12d2b09f3740eea6b60bb395c3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-04 07:39:16 +00:00
Christian Ehrlicher 8c38b08343 QFormLayout: Fix width calculation when a row has no label
The calculation of the minimum width assumes that when there is no label
for a row, the field occupies the full row. But this is only true when
QFormLayout::SpanningRole is set for this row. This lead to a to small
minimum size for the row / truncated widgets when the row in question is
the longest one in the form layout.
Fix it by checking if it is a spanned row instead if there is not label
when calculating the sizes.

Fixes: QTBUG-18308
Fixes: QTBUG-60800
Change-Id: I1a610c93ab5c7f9cac503721ae99b36f2710c634
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-12-04 07:00:37 +00:00
Lars Knoll 7f4d0405b4 Rename QList<T>::swap(int, int) to swapItemsAt()
The old name was confusing as it conflicted with
QList<T>::swap(QList &other), that was doing something
completely different.

Rename the method to swapItemsAt() which is a lot clearer.

Change-Id: Iac77a1e790a7256766f83a24d2a243c880d875f4
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-12-03 17:57:09 +00:00
Lars Knoll 972a0402be Use insert instead of insertMulti when operating on a QMultiHash
Change-Id: I96ebf6954d0a137f9f6f9632cdad6e18750519fe
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2018-12-03 12:40:11 +01:00
Marc Mutz dea7110b29 QGestureManager: clean up cleanupCachedGestures()
- use logarithmic QMap::find() instead of iterate-and-compare-with-key
  (linear)

- don't convert a QList to a QSet just to use QSet -=, just iterate
  over QSet::remove(): QSet::subtract() doesn't do anything more
  fancy, either (saves memory allocations)

- replace Q_FOREACH with ranged-for, avoid copies

Change-Id: I451f034767b079efa9ee19e2c1fe7dc4af2d9bea
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-06-04 15:12:09 +02:00
Marc Mutz ca0c9f82cb QGraphicsWidget: overload two margins-setters with actual QMarginsF overloads
Replace manual memory management with unique_ptr and manual
re-implementations of QMarginsF with The Real Thing™.

The only noticeable difference should be that the checks for 0 now use
qFuzzyCompare() (by way of QMarginsF::isNull() and its operator==).

[ChangeLog][QtWidgets][QGraphicsWidget] Added QMarginsF overloads of
setContentsMargins() and setWindowFrameMargins().

Change-Id: I6b3bb87015fa52fdde245b7528cca4b8f9ce41e1
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2019-05-27 15:51:55 +02:00
Shawn Rutledge 0eb26c1443 QTextBrowser: detect and load markdown rather than assuming HTML
So we add the QTextDocument::ResourceType::MarkdownResource enum value to indicate
the type.  QMimeDatabase is generally unable to detect markdown by "magic", so we
need to use the common file extensions to detect it (the same extensions as declared
in the mime database XML).

Change-Id: Ib71f03abd535c17e5a8c99bd92d0a6062e972837
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2019-05-30 16:37:23 +00:00
Tasuku Suzuki 3b756bdcf5 Fix build without feature.label
Change-Id: Ibe4d31d441ff691c4b354dde546e403653564ba4
Reviewed-by: David Faure <david.faure@kdab.com>
2019-05-26 00:28:46 +09:00
Marc Mutz a4084f6bf5 QAccessibleWidgets: re-enable NRVO in childWidgets()
... for poor compilers such as GCC.

Change-Id: Ifcf603657ff6242599972c21b135d7b6a0af4c35
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2019-05-29 09:14:15 +02:00
Giuseppe D'Angelo 0290525ffb QStyleSheetStyle: do not bypass the base class' overrides
Change-Id: Iae8e24dd6c511071724fde62277ea5054b9c5253
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
2019-05-28 12:43:00 +02:00
Kevin Funk 90f668c79f qtreeview.h: Fix minor typo
Change-Id: I62d494c0bd784ef14a7b7c1cb3b005a7529ba43e
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
2019-05-27 20:57:03 +02:00
Marc Mutz 0f9e48d6f4 QtWidgets: eradicate some indexed loops [needing qAsConst()]
... by replacing them with C++11 range-for loops.
To avoid detaches of these mutable Qt containers,
wrap the container in qAsConst().

Change-Id: I9b5c23c723be024b314a7ad873e21ad63b44b348
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2019-05-29 07:21:18 +00:00
Tasuku Suzuki f5bfb7a8db Fix build without features.itemviews
Change-Id: I9a7c3b2a3ad68ea76b1d6b79192b936e7cd1d44e
Reviewed-by: David Faure <david.faure@kdab.com>
2019-05-12 16:24:53 +09:00
Shawn Rutledge 2c8fa9700c Support clicking to toggle checkboxes in QTextEdit
Add QAbstractTextDocumentLayout::markerAt(pos) for hit testing.
(Qt Quick TextEdit needs it too.) Finds out whether the position
corresponds to a marker on a paragraph.  I.e. it finds checkboxes in
GitHub-flavored markdown.  This enables editor classes to toggle
checkboxes by clicking them.

Use it in QTextEdit to add the checkbox toggling feature.  Also show the
"pointing finger" cursor when hovering a toggleable checkbox.

Change-Id: I036c967ab45e14c836272eac2cc7c7d652543c89
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2019-05-24 15:37:04 +02:00