| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
QHighDpiScaling now computes scale factors based on
QPlatformScreen::logicalDpi(), instead of by calling
QPlatformScreen::pixelDensity() as done earlier.
We forgot the rename the internal state variables,
update them to indicate that platform screen DPI is
used.
Change-Id: Ib718a6176e0ac138395eea13b292f75f69dac3ad
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
| |
Doesn't touch qsharedpointer.h which already seems outdated and needs
a general overhaul.
Change-Id: I051cdeb1fe03a7ef16e333a483bb68e2fada3c25
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Display QTipLabel on the correct screen, also when the
parent widget spans multiple screens. In this case,
QWidget::screen() will return the main screen for the
widget, which will not necessarily be the screen at
the tool tip position.
Fixes regression introduced by 7e2fded5.
Change-Id: Iffb920b6658468c5032928eadbd749f58fe077a7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(This reverts commit 2ca1253b13e77643b3d2dd993a038ae2df882311).
This allowed use to avoid backing store RGB -> RGBA conversions
on the CPU back before macOS was layer backed. The conversion should be
GPU accelerated now, and we can return to the cross-platform default.
In addition, RGBA backingstores requires filling with transparent
pixels on each paint event, which causes increased CPU usage - often
for no reason if transparency effects are not used.
Change-Id: Ic795128b7e474b63f44f9f4f3526d0b205652e62
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
| |
Ensures that the backtrace is interleaved with the header and
footer that we print ourselves.
Change-Id: I728f4a05be31e345687cbb5fefe49f76dbe8ae36
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
|
|
|
|
|
|
|
|
|
| |
I'm not 100% sure that qdoc needs this, but in case it does,
here's the commit.
Change-Id: Ia3e17a56fd5df766c250f4875ba5e19e12b98d11
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
| |
Change-Id: I9eaadc7ce8ca03d64ff3a33c7b6641b073570a61
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
| |
This allows to use list-initialization when calling these functions,
for instance list.removeAll({}).
Change-Id: I2828d900a44bd0bc5aea5fba4777304b09190bc9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's no reason why they shouldn't be; one might want to do a
lookup passing an object which is comparable with the list's value
type (e.g. search with a QByteArrayView needle into a QByteArrayList
haystack). Insofar we've had to add overloads to QListSpecialMethods
for all these cases, which clearly doesn't scale and creates
top-tier and low-tier lists.
There is one downside, namely, calling QList<A>::indexOf(B) for a B
for which there isn't an operator==(A, B) but only a conversion
towards A. Before, B was converted only once (at call site), now
it's converted at every call of operator==.
In general: such types are broken and should be fixed on their own.
However let's avoid a possible regression in client code, so I've
left the QString overloads in QStringList in.
To get there: centralize the implementation of those methods in a
empty base class, which gets then inherited by QListSpecialMethods,
which is inherited by QList. This is there are still special methods
that may want to overload contains, e.g. QStringList which also
passes a case sensitivity).
The only breakages comes from code that was already broken, for
instance mixing signed and unsigned types, and the beauty of this is
that now we *detect* that instead of silently ignoring.
QVLA and other QList methods will be tackled in future commits.
[ChangeLog][QtCore][QList] The indexOf, lastIndexOf and contains
methods now take an object of any datatype -- and not just the
list's own value type. This allows for heterogenous lookup in
QLists.
Change-Id: Ib34812217eb2b0f926fad1fc195b33758196941c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
| |
QSaveFile needs QFileInfo::isWritable() to work, which 7e5f38aec667 caused
to always return false for content: URLs.
Change-Id: If839331e4bd176765ed242791cb253c2064f5f6d
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Use qSmartMaxSize to get the maximum size a widget can take.
[ChangeLog][QtWidgets][QSplitter] Respect QSizePolicy::Maximum and
QSizePolicy::Fixed layout policy of child widgets.
Fixes: QTBUG-87133
Change-Id: I166ef3f6608303b8695f5c05a7bf0d1be4653f4a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
| |
* Rearrange the documention to match the enumeration order.
Fixes: QTBUG-87037
Change-Id: Iad001351e0f309e694b8bbd503813017e6586a21
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-87101
Change-Id: I370c79e295489f4eaf8418bbd53b326f0a8e5123
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
|
|
|
|
|
| |
Change-Id: I1a84c437bb19dd3c667596c59e1404bbbf39978e
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
| |
Change-Id: I86b749ec14876df98d5d873cf2274facea49f0c5
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-86295
Change-Id: I547f4cf34d9721f56ba1cd665218f66597ffbb5c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
| |
It's been obsolete for a long time already. Make sure
the compiler now warns about it and remove all remaining
uses in qtbase.
Change-Id: I0ff80311184dba52d2ba5f4e2fabe0d47fdc59d7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This mostly reverts change 76e8e8e9c8093f093cb9f37d61d273f43398fefb.
The reason is that storing non relocatable types inline in
QVariants storage would implicitly make QVariant non relocatable.
Fixes: QTBUG-87686
Change-Id: I2a09b1dcdd907d60085dccf17f987086dcba878c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
Since QMetaType::fromType() is constexpr, it makes sense to also
make some of it's members constexpr.
Change-Id: Ia2d63a904abb680ed63c1f88cb68f1d0309d029c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
| |
Keep this in sync with the changes we have done in QTypeInfo.
Change-Id: Iaacb0f3cc5c46d3486084a1f6eca480a233d5e1a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
|
|
|
|
| |
Take the opportunity to clean up the implementation for QHash and
use the standard macro there instead of an inlined copy.
Fixes: QTBUG-86986
Change-Id: Iea846ca97bd8b9be5d6534b31d4c7707fd1a53e1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Support external build for device integration which uses
kms and gbm. QKmsScreenConfig supports inheritance
to consider platform specific screen configuration.
Task-number: QTBUG-85268
Change-Id: Iac58898a9cf0bb1d53237a719667a6ebd53d88b9
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was not during all of Qt 5, and nobody found a use for it when
transitioning to Qt 6. It's probably safe to assume that we will not
need it during Qt 6's lifetime either.
This changes shrinks QPaintDevice to 16 bytes (on 64bit systems), and
its child classes like QImage to 24 bytes, meaning that they fit into
QVariant's SSO buffer.
Change-Id: Ic3b020ad43afe45c76ca0c4056a440345a4e139e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
| |
Reduces ADL noise.
Change-Id: Id0aa4b32b7bb6d70ed9106b949452d895d9060a9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This has been the case for a _very_ long time, and I can't
believe this hasn't been documented anywhere.
Change-Id: Ib157edf14e87a6f546c155496f70a760ab218cca
Pick-to: 5.15 5.12
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When compiling the xcb qpa plugin we should check the value of the
'system_xcb_xinput' feature to decide whether to use the system
library or the bundled one, instead of checking for the existence of
the XCB::INPUT target.
This fixes -DINPUT_bundled_xcb_xinput=yes aka -xcb-native-painting
to influence what gets built into our release Linux packages.
Task-number: QTBUG-86053
Change-Id: I78c5eaacb7b6bd6e46afea49189e6111e198fb27
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Return immediately if processing events caused the
predicate to become true.
This gives us a nice speedup on tests with call
qWaitForWindowExposed() or qWaitForWindowActive(),
for example tst_QGraphicsView::itemsInRect_cosmeticAdjust:
cocoa 1164ms -> 825ms ~30% decrease
offscreen 296ms -> 15ms ~95% decrease
Change-Id: Ifbab0ca662c082e7dfb609d0cb4bc1161709067b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
| |
Correctly specify template parameters, fix typos, add \fn where missing,
explicitly specify scope in see-also references.
Change-Id: I8b04a2b76033b206098e816d1d07d105b838c260
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
| |
At least for qdoc, hidden friends are class members.
Change-Id: I6eaa21565937cd49c0905ee47b8b82b0c1765bc1
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
| |
QList::parameter_type is defined and used to give better
performance e.g. for arithmetic types. Let's use it consistently
in QList API instead of const T &
Change-Id: I2e12bd83f55679b55a14fbb23ab6172a9cf7bbcc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
| |
Change-Id: I4c416f52c7102750a77c3f91274dd0a235569d6e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
| |
Reduces the ADL noise on missing comparisons errors.
Change-Id: I16a17d73504917feb25a94053bb54db0b083118b
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Qt Quick, when we deliver an item-specific QTouchEvent that contains
only the subset of eventpoints that are inside the Item's bounds,
traditionally the Item can accept the event to tell the delivery logic
that the event is handled and doesn't need to be delivered further.
But an Item cannot be expected to have total scene awareness; so now,
the delivery is "done" only when all eventpoints in the original event
are accepted. This behavior has been working well enough already due to
logic in QQuickWindow that iterates the points and accepts them if the
event is accepted; but it seems appropriate to move this enforcement
into QPointerEvent itself. Making setAccepted() virtual gives us a
useful degree of freedom.
Event-handling code should alternatively use QEventPoint:setAccepted()
or QPointerEvent::setExclusiveGrabber() to take resonsibility for only
a subset of the touchpoints.
Another way to put it is that we treat QPointerEvent::setAccepted() as a
convenience method: accepting the QEventPoints is what counts (at least
in Qt Quick).
Change-Id: Icec42dc980f407bb5116f5c0852c051a4521105a
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previous fixes made QPushButton correctly respect the style sheet boxing
model (as it's documented to do), ignoring clicks that were within the
margin area of the button (ie outside the bevel). However, a hover state
selector in the style sheet would still be used for the entire widget.
Turn on mouse tracking for widgets that have a hover state selector, and
handle mouseMoveEvent to set an explicit hovered state only when the mouse
hits the button. Use that state to initialize the style option.
Fixes: QTBUG-87706
Change-Id: I2f423b760c85cfab9faac4be44a5c7dcf2ba1c23
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
g++-10.2 fails to compile qregion.cpp in RelWithDebInfo configuration,
with error message:
qregion.cpp:3617:12: error: ‘ET.EdgeTable::ymax’ may be used
uninitialized in this function [-Werror=maybe-uninitialized]
g++ is right here, for Count==1, 'ET' is not initialized but used.
This patch fixes this by Q_ASSUMEing Count > 1.
Pick-to: 5.15
Change-Id: I3b9f1f58de9f3811c60640a08334487e3f8f2b23
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
|
|
|
|
|
| |
Change-Id: Ic52b6d9ab4b250dc931c650c6def35c18803ba43
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
glib event sources can have a name, but it is not required.
Internal to glib, it is common to give them a name, see for example
https://git.io/JTZ8g .
This patch gives a name to each glib event source created in qtbase.
Task-number: QTBUG-84291
Change-Id: I4f04526dcec082242312e3a66da2adf37a22e626
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
|
|
|
|
|
| |
Change-Id: I087d7d949cfd43e48e8a008621a4eeaa9d104ceb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
| |
Change-Id: I5374618a34811d516eb8fd12c1429b851fd108c4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Looking up a locale with unspecified language got the C locale, due to
taking a short-cut that would make sense if no locale were found for a
specified language. Stop assuming the language was specified.
Task-number: QTBUG-74287
Pick-to: 5.15 5.12
Change-Id: I8b3c232da584fb187ebb6c190729c377d0083808
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
| |
Change-Id: I4f706a26d73f61e4a6022338e0fc0be48627e4a1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: David Faure <david.faure@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Moves them to class scope, which will avoid them showing up as
possibilities in error messages for missing operators.
Also consolidates how they are compared, so QRectF and QSizeF act
similar to QPointF.
Change-Id: I1e12cb7e5a5c65e85c32281878da03c6136c17de
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Index of the last visible tab was not updated, if a new tab was inserted
after the current tab and before the last tab.
When the new tab is inserted before the last visible tab, the index of
the last tab increments by one.
When the new tab is inserted after the last visible tab, then the newly
inserted tab becomes the last visible.
Fixes: QTBUG-86898
Change-Id: I2f4b7f705261ec35a5aa7b883ecdddba25f007b7
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Expose event would not be sent when window was resized
Fixes: QTBUG-69155
Pick-to: 5.15
Change-Id: I81bf2d54f830a0dabf15398e1f25b55ff7ff4479
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
|
|
|
|
|
|
|
| |
Done with selective application of clang-format
Change-Id: Iee6bf2426de81356b6d480629ba972f980b6d93d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using OpenFile portal and passing a file descriptor, we open the
file with qt_safe_open() which by defaults make the file descriptor
writable. However we didn't specify in options that the FD is writable
which leads into rejection on xdg-desktop-portal side as there is a
mismatch between writable FD and read-only request.
Pick-to: 5.15
Change-Id: I7a430339a9615f0a054e777e0f3de56e219d1706
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
This was the case on Android, and caused a crash
Fixes: QTBUG-83916
Pick-to: 5.15
Change-Id: Iabc17237498091d815241730a2b14ece5a45d0b9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
|
|
|
|
|
| |
Change-Id: Ibe796c398a8e5488b7203abb07aa54740744f1ab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Failure to copy m_inputEvent and m_pointerEvent actually left them
uninitialized, and resulted in random behavior in Qt Quick when
Flickable clones a pointer event for later replay.
Remove the comment about copying events being a "bad idea" in Qt 4,
while we're at it. Copying became more common in Qt 5, and we
probably won't be able to stop doing it now.
Change-Id: I40b6ba5ad696e7aaafbeefbca86eca00cab40616
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unlike the 32-bit version, we can't go to a bigger integer type to do
the multiplication with. So instead accept looping. Both libstdc++ and
libc++ implement std::uniform_int_distribution this way anyway, but in a
far more complex way.
There is no looping if the "highest" is a power of two. The worst-case
scenario is when "highest" is one past a power of two (like 65). In that
case, we'll loop until the number is in range. Since all bits have equal
probability of being zero or one, there's a 50-50 chance that the most
significant useful bit will be set[*], in which case we'll need to loop
and we again get the same probability. So on average, we only need two
iterations to get an acceptable result.
[*] There's also a possibility that the other bits are such that the
number is still in range. For 65, we'd need the other 5 bits to be zero
(64 is a valid result), but the probability of that is only 1/2^5 =
3.125%. The bigger "highest" is, the closer we get to zero, so
approximate by saying that never happens and instead calculate that the
most significant useful bit is the controlling one.
[ChangeLog][QtCore][QRandomGenerator] Added 64-bit versions of the
bounded() functions. They are useful in conjunction with Qt 6's 64-bit
container sizes, so code that used to call bounded(list.size()) in Qt 5
will continue to compile and work in Qt 6.
Fixes: QTBUG-86318
Change-Id: I3eb349b832c14610895efffd16356927fe78fd02
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|