Keeping the fake parent window around in a created state means we're
wasting system resources such as native platform views/windows, and
makes it harder to debug the lifetime of these resources.
The fake window will be re-created if re-parented into at a later
point.
Change-Id: Ib82560e7e565af19d58afe121fd087669a6ffb95
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
If a focus frame is set around a widget that exist inside a
QAbstractItemView, both the focus frame and the widget will
be scrolled when the table is scrolled (since the focus frame
is a child of the view). The result is that after the widget
has been scrolled (which will move the focus frame to the
correct position as well), the focus frame will be scrolled
next, and therefore away from the widget.
This patch will catch this case by always adjusting the
focus frame position when someone tries to move it. Trying
to move the focus frame away from the widget it tracks
will anyway be flaky.
Fixes: QTBUG-63877
Change-Id: Ic2aacc4fafc219280e32092c258a7539d0db9cd0
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
If the time the widget is set to use falls in the gap skipped by a
spring-forward, setting the date to the day of the spring-forward
turned a valid date into an invalid date-time. So use the usual trick
to map the "draft" date-time to a valid one.
Fixes: QTBUG-64485
Fixes: QTBUG-58947
Change-Id: Ib8f0f092cd5d6dce3da31eb52cd42150ca0d1fcb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
The previous implementation leads to infinite chain of showing/hidden
line edit under circumstances described in QTBUG-54676. We basically got
the situation when size hint were calculated differently depending on
the line edit visibility state. In this case toolbar layout have to
show/hide extension button and line edit a lot of times and can never
leave this "loop" (please note, that the chain is much more complicated
in reality):
Resize toolbar -> Set layout geometry -> Size is OK to display line edit
-> Set layout geometry -> Hide extension button -> Set layout geometry
(wrong size is calculated here, so "run out of space") -> Hide line edit
-> Set layout geometry -> Show extension button -> Set layout geometry -
> Size is OK to display line edit ... And we're in the "loop"
Clear button is hidden if there is no text in a line edit.
In the previous implementation, the button was always visible, only
opacity was changing in order to "hide" the button. It resulted to
incorrect size hints (regular and minimum).
In the current implementation the button is really hidden/shown, and
size hints calculated correctly.
Also updated unit test for line edit.
Remove code duplication in functions for calculation text margin
Fixes: QTBUG-54676
Change-Id: I4549c9ea98e10b750ba855a07037f6392276358b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Amend the check introduced by bde6a04949
to not apply to embedded windows and plugin applications.
Fixes: QTBUG-71991
Task-number: QTBUG-7081
Change-Id: I80b3dc0fa20ee3447a4bc4bbb41e66d4d90ab726
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
State the policy that so far only exists in the localization wiki
and is currently not followed by all translators.
Task-number: QTBUG-57697
Change-Id: I2aa9f1bbd244b53e48e59f625520a7f86d2df347
Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
The code that used it was removed in 55fa3c189f 6 years ago.
Change-Id: I76e42f147342feb1bda9bc2c5aa882af62757812
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
By explicitly identifying the fake window created for the window
container.
Change-Id: Id67a6e22588d04e68f5ede09bc078bb387c12e0b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
QGraphicsProxyWidget::setWidget() is checking if the newly assigned
widget is already assigned to a child proxy widget without checking if
the child has a widget assigned at all which lead to a nullptr reference
if it is not the case.
Therefore check if the assigned widget is a valid pointer.
Fixes: QTBUG-15442
Change-Id: I006877f99895ca01975bdcad071cfcf90bea22ad
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
When a QScrollBar had a stylesheet the subControlRect() was not properly
mirrored which lead to a wrong scrolling behavior.
Fix it by adjusting the resulting rect with visualRect().
This reverts 00c9ec63a5 since it did not
completely fixed the issue for all use cases.
Fixes: QTBUG-27279
Fixes: QTBUG-38748
Fixes: QTBUG-40443
Change-Id: I19718287be7b4cfc9dbe6951fff99ae48264a855
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Flesh out the existing note on QFileDialog::setOptions(),
add it to QFileDialog::setOption() and add a small note
to the DontUseNativeDialogs option value.
Fixes: QTBUG-68590
Change-Id: I3a2011c8210d499114b01dfe09ad2dc797dfc2ab
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
The initial mouse press should create an implicit mouse grab so
that all subsequent mouse events are delivered to the widget that
was pressed first. After commit a4f7bb8733, every mouse press
would reset the implicit grab. This change checks the previous
button state, and does not reset the mouse grab if other buttons
are already pressed.
Fixes: QTBUG-70816
Change-Id: Icdd215c2f4aaee3c3f34607d68c1d8878155ec17
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
"the GNU LGPL version 3" -> "GNU (L)GPL" because some parts of Qt are
GPL v3 (Qt Charts, Qt VirtualKeyboard, etc.).
Fixes: QTBUG-57697
Change-Id: Iceb88244e28b6900c5282b070468fb65b2bf52d2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Foreign windows do not have Qt backingstore content,
and are also not capable of accepting Qt content.
Change-Id: I959c7cdc32e6f4322497e132a436ce7d610a4106
Fixes: QTBUG-71183
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The input validation did not check for unreasonable use of the group
separator character.
Fixes: QTBUG-65024
Change-Id: If9d70d990fc6d5b298f3bde5b1604bf7e16dce24
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
%p just prints a pointer. The operator<<(QObject*) member will print the
class type and object name.
Change-Id: Iba4b5c183776497d8ee1fffd1564951da0c6bebc
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
When a popup is active, we set the receiver of mouse events to
be the active popup widget. But when we send a mouse event to
the popup, the receiver might start a new QEventLoop (e.g by
executing a new dialog). And in the meantime, the popup will
be destroyed. This will cause a crash in the line after the
event delivery (where we sat "qt_last_mouse_receiver = receiver"),
since at that point, "receiver" would be a dangling pointer.
This patch will use a QPointer instead of a raw pointer to
store "receiver", to ensure that it's set to null for
such cases.
Fixes: QTBUG-71062
Change-Id: Ie017cfa97370513ecfdd62c056fcb0e6c991f9f6
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Also clean up QTextCodec usage in qmake build and some includes
of qtextcodec.h.
Change-Id: I0475b82690024054add4e85a8724c8ea3adcf62a
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Opt out of switching between the normal and OpenGL based flush paths.
Once a QOpenGLWidget or QQuickWidget becomes visible in a window, the
window contents will be composed using OpenGL from that point on, even
if said widgets become invisible afterwards. Now that Qt Creator does
not rely on QQuickWidget the issue is less burning anyways.
Task-number: QTBUG-68329
Change-Id: I177e6e6094ee06ea26d8d0343bd3d84aadfa5913
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Due to name conflict with file from qtdeclarative
Task-number: QTBUG-65769
Change-Id: I9ebf237701ce76b424f528feacb24e4158f06c0d
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
A hardcoded value of 16 was used in QColorDialogPrivate::_q_addCustom()
instead QColorDialogOptions::customColorCount()
Fixes: QTBUG-58425
Change-Id: I7ae9881abd5926e0c6b118d5c84c3f259c545d35
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
'QAbstractItemView::NoSelection' named constant with the value of 0 was
used in the bitwise operation
Task-number: QTBUG-71156
Change-Id: I2d5099f9ed03cc42061508cc78282412a09825cb
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
QTableWidget::takeItem() emitted cellChanged with row and column set to
-1. The internal functions searched for item after it was reset to
nullptr and therefore it was not found.
Since the modified cell is known because it's passed to the takeItem
function, the correct row/column can be retrieved from there.
Task-number: QTBUG-70478
Change-Id: I5ff5991c49f3200efe95fde4c7d0d28e19be7ebf
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Apparently it is a left-over from Qt 4.
Task-number: QTBUG-70240
Change-Id: I6b882728defef1ab78331b03e76459a7419cd386
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Trigger documentSizeChanged when block visibility changes, since block
count remains constant in this case.
Task-number: QTBUG-69310
Change-Id: I5ec7a4f9008f26ea8602356bcbaefbda293e54a3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This was a regression from Qt 4.
Before this patch, we supported filtering events only at QWindowSystemInterface
level, but to properly support filtering in QAbstractEventDispatcher::filterNativeEvent,
we have to filter the events earlier. Now it is possible to enable/disable this
feature for platforms that support native event filtering.
The mapping of which events are user input events were taken from
QWindowSystemInterfacePrivate::EventType.
Task-number: QTBUG-69687
Change-Id: I9a5fb9f999451c47abcdc83fdcc129b5eeb55447
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
We need to override this snippet for the documentation
we generate for Qt for Python, and it is easier to have
it on a separate file.
Task-number: PYSIDE-801
Task-number: PYSIDE-691
Change-Id: Ideb5b6af25024279f167137d3b65660bb9c96a7e
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
In some cases, a tool tip may be shown outside screen geometry, i.e. if:
- QToolTip::showText is invoked manually with a position outside.
- In tst_QToolTip::setPalette if there is no screen at (0, 0). This might
happen in a multi-monitor setups where one screen is taller than the other.
- On Wayland windows are (by design) not allowed to know their position on
the screen. This means that global positions can't be trusted.
This started crashing when QDesktopWidget::screenGeometry(pos) was replaced
with QGuiApplication::screenAt(pos)->geometry() because screenAt will return
null if no screen is found, while screenGeometry defaulted to the primary
screen.
This reverts to the old behavior of falling back to the primary screen.
This won't solve the issue completely for the Wayland case, but at least we
will stop crashing.
Change-Id: I42dd07cc21c2f9f0ea0d69f0c25bd46d8a2615a0
Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com>
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
The height of a line edit depends on the height of its font,
which in turn depends on DPI. So use the DPI-scaled icon size
from a style instead of hard-coded values.
Task-number: QTBUG-65627
Change-Id: Ic1f5af61b0d6346cfbc828817c4a3a39296a41ba
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Check on the application state before requesting activation.
Fixes: QTBUG-70810
Change-Id: I550137dc00209b17f4b3c033287ceef1b871ff50
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
The documentation for key bindings was a little bit unclear for key
asterisk. Also sync the names of the left and right key was not
consistent (Left/RightArrow - Left/Right)
Change-Id: Icee0821880fcc3ebc2ade939cf80127ebf0976ad
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Perform a @Nx image file lookup when loading pixmaps.
Make drawBackgroundImage() handle high-dpi pixmaps,
here the layout calculations needs to be in device-
independent pixels
Fixes: QTBUG-36825
Change-Id: I61e6f53c59f61f3bd88c34a036349e51e8c8ad92
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Usually we focus in when we receive a click or equivalent.
QGraphicsScene by default also transfers the focus when you start a
touch on a trackpad or similar. Most of the time this also generates a
synthetic mouse click, so people don't necessary notice. However, at
least on macOS you can configure this behavior. With focusOnTouch
switched off, QGraphicsScene behaves as one would expect on macOS.
Fixes: QTBUG-59442
Change-Id: Ib87112640eef6b77892ad2490d80eedd055e6dce
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
QAccessibleTable(Header)Cell::isValid() did not check if the view is
still valid as it is done in QAccessibleTable::isValid() which can lead
to a crash during destruction when e.g. operator<<(QAccessibleInterface)
is called.
Change-Id: I930bf4c22aa0aa6868f58a8e5d0dd1557f6b17af
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Do not override a custom font with the style default.
Task-number: QTBUG-70276
Change-Id: I58bf43f791aee5409e29459d579725365703e4f3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>