| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Remove the ASM language where no assembler files are used.
Pick-to: 6.5 6.8 6.9
Change-Id: I3c94f798803b054a432fc2c8d6d65c665572a202
Reviewed-by: Alexandru Croitor <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Never use module-wide inclusions. They blow up build times. For QtTest
this is usually just a typo (QTest was meant instead). Add missing
includes as needed.
In the diffs I've spotted other huge inclusions (QtQuick, QtQml), but
those need more attention.
Task-number: QTQAINFRA-7110
Pick-to: 6.9 6.8
Change-Id: I74bf3fe212f50a7a3a6af2b1c80bbcaabc2516d7
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
| |
Change-Id: I706714484d65b58360d72c7b680404f47285870e
Reviewed-by: Giuseppe D'Angelo <[email protected]>
|
|
|
|
|
|
| |
Pick-to: 6.9 6.8 6.5
Change-Id: I9a78932fe57029d53224ed190931c5db20f247fc
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add an option to benchmark files from "real" QDS projects. The QDS
projects do not exist in the qtdeclarative repository, so the paths to
the demo repos should be set via environment variable. Also, the QDS
specific QML Modules only exist in the QDS installation path, so add an
environment variable for this too. Finally, some extra paths are needed
for the examples to run, so add a third environment variable to enable
the heuristics that adds probable import paths needed by the examples.
Add a check to make sure the import paths were passed correctly: there
should not be any 'Failed to import' messages, otherwise we end up
benchmarking the wrong thing.
Add a script that prints the environment for the benchmarks, so that you
can copy paste the output into Qt Creator's run environment widget.
Task-number: QTBUG-133349
Change-Id: I974fbeb5d87ff36bd5eea0b5c83d7fae73d00ec3
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement QQuickHeaderViewDelegate as the base class for header view
delegates, introducing 'headerView' and 'orientation' properties.
Separate previous delegate settings into HorizontalHeaderViewDelegate
and VerticalHeaderViewDelegate components for Basic, Fusion, and Imagine
styles.
This change improves the modularity and reusability of header view
delegates across different styles. It also allows for more consistent
behavior and easier customization of header views.
A test suite has been added to verify default property settings and
ensure the new components work without warnings.
[ChangeLog][QtQuickControls][HeaderView] Add dedicated delegate
components for vertical and horizontal header views.
Task-number: QTBUG-70326
Change-Id: I8831e77f6909bdae13c3a7262145ab156f63a59a
Reviewed-by: Mitch Curtis <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't run the compiler checks (QQmlJSStorageGeneralizer,
QQmlJSStorageInitializer, QQmlJSShadowCheck) when the qmlCompiler
category is disabled. They take quite some time and their result is
ignored anyway if the qmlCompiler category is disabled.
This allows to make the propertyStressTestInts benchmark faster, while
the performance of the others stay the same.
Times in milliseconds on my laptop, on a release build, before and after
this patch:
function,file,runtime_before -> runtime_after
noPlugins,propertyStressTestInts.ui.qml,489 -> 323
noPlugins,propertyStressTestItems.ui.qml,612 -> 331
noPlugins,longQmlFile.ui.qml,175 -> 171
noPlugins,deeplyNested.ui.qml,197 -> 192
allPlugins,propertyStressTestInts.ui.qml, 493 -> 328
allPlugins,propertyStressTestItems.ui.qml, 630 -> 378
allPlugins,longQmlFile.ui.qml,192 -> 190
allPlugins,deeplyNested.ui.qml,215 -> 209
onlyQdsLintPlugin,propertyStressTestInts.ui.qml,535 -> 325
onlyQdsLintPlugin,propertyStressTestItems.ui.qml, 625 -> 336
onlyQdsLintPlugin,longQmlFile.ui.qml, 200 -> 180
onlyQdsLintPlugin,deeplyNested.ui.qml, 219 -> 206
Add another benchmark where compiler warnings are enabled in case we
want to optimize the compiler's runtime in the future.
Task-number: QTBUG-133349
Change-Id: Ia286d06c610b5134659f9c67ea18de3ca63955e9
Reviewed-by: Olivier De Cannière <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a benchmark to see how fast/slow QQmlJSLinter::lintFile() is. The
benchmark are done on four QML files, one that is deeply nested, one
which is large, and two that stresstest the propertypasses.
The files are called .ui.qml to also trigger the qdslintplugin, and are
linted with no plugins, all plugins and only the qdslintplugin.
Times in milliseconds on my laptop, on a release build, mean over three
executions:
function,file,runtime_mean
noPlugins,propertyStressTestInts.ui.qml,535
noPlugins,propertyStressTestItems.ui.qml,710.6666666666666
noPlugins,longQmlFile.ui.qml,196.33333333333334
noPlugins,deeplyNested.ui.qml,204.33333333333334
allPlugins,propertyStressTestInts.ui.qml,557.3333333333334
allPlugins,propertyStressTestItems.ui.qml,730.3333333333334
allPlugins,longQmlFile.ui.qml,217.66666666666666
allPlugins,deeplyNested.ui.qml,220.33333333333334
onlyQdsLintPlugin,propertyStressTestInts.ui.qml,536.6666666666666
onlyQdsLintPlugin,propertyStressTestItems.ui.qml,710
onlyQdsLintPlugin,longQmlFile.ui.qml,199
onlyQdsLintPlugin,deeplyNested.ui.qml,213.33333333333334
Task-number: QTBUG-133349
Change-Id: I7ec1f43694947e4878d1d2fa9df0416ed26fdc42
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DOM construction time is quite slow for the QDS use case, so add a new
minimal DomCreationOptions that ignores comments (as QDS has no need
for comments) because comments seem to take some time to construct.
Add the Minimal DomCreationOptions to the Benchmark to show that it is
faster then using the Default DomCreationOptions.
Measured on my machine, using a release build:
File | Default (ms) | Minimal (ms) | Speedup
tiger.qml | 83 | 38 | 2.18
deeplyNested.qml | 438 | 12 | 36.5
The 36.5 speedup does look weird at first, but a quick look in the
profiler shows that we spend 95% of the benchmark time for
deeplyNested.qml with Default DomCreationOptions in
* Path::component() and
* DomItem::field()
while trying to iterate on the Qml Document to find the comments.
So its not a bug, its just the linear complexity of Path::component()
and DomItem::field() that proves to be inadequate in our case:
* Path::component(i) returns the i.th path component, and needs to
iterate through all components to find it
* DomItem::field(f) returns the value of the field f, and uses
iterateDirectSubpaths() which is linear in the number of total fields,
and it seems the laziness there might not be working as expected.
Pick-to: 6.8 6.9
Task-number: QTBUG-92889
Change-Id: I51168b68e930ed14d1751cf0f6028b1b2879b774
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Olivier De Cannière <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
Make the benchmark populate the loaded QML file for it to give
comparable results (not all DomCreationOptions create lazy QMl files).
Pick-to: 6.8 6.9
Task-number: QTBUG-92889
Change-Id: I37b6692499e8337ecab496ac7d2a9888d70df57c
Reviewed-by: Olivier De Cannière <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Not all combinations are actually supported, so replace
DomCreationOptions with DomCreationOption.
We only need 2 options: a Default one for qmlformat and an extended
one with semantic analysis, script elements and recovery elements.
Task-number: QTBUG-92889
Change-Id: I7a2d52df1dd7b4186eab73d3bd11c9818c25f543
Reviewed-by: Olivier De Cannière <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enable changing vertex and index counts after calling allocate() so
that it is not necessary to re-allocate memory to render a different
number of vertices.
Previously, it was only possible to change the number of vertices and
indices by calling allocate(). Resizing a geometry node with allocate()
is expensive: all vertex and index data must be re-initialized and
malloc() may need to find another memory block. If there are a large
number of vertices or indices, this takes a lot of processor cycles,
all during graph sync time while the main thread is blocked.
Two new functions, setVertexCount() and setIndexCount(), allow resizing
the geometry object without reallocating memory. The user is
responsible for ensuring that the requested counts do not exceed the
number originally allocated using allocate(). The usage pattern is
similar to QList::reserve(): allocate the maximum number of vertices or
indices that will be needed and call setVertexCount() or setIndexCount()
to set the counts to what is currently needed.
Consider the use case of drawing a heart rate monitor graph. The zigzag
tracing line of the graph continuously grows longer from left to right,
drawing new data without erasing old data until the line reaches the
right side of the graph area, then starting over from the left. As the
line grows, most data remains unchanged; the only vertices that need
modification are ones that are newly exposed by increasing the vertex
count.
The benchmark "tst_bench_qsggeometry" shows the difference on different
processors between resizing via allocate() and setVertexCount(), as in
the heart rate graph use case described above.
Vertices allocate() setVertexCount()
i.MX6 800 MHz 2-17K | 1.7 msecs | 7 μs
20K-37K | 6.0 msecs | 10 μs
40K-57K | 10.1 msecs | 16 μs
Intel i5-8265U 3.8Ghz 2-17K | 166 μs | 0.20 μs
20K-37K | 644 μs | 0.44 μs
40K-57K | 1134 μs | 0.85 μs
AMD 7945HX 5.5GHz 2-17K | 34 μs | 0.06 μs
20K-37K | 140 μs | 0.09 μs
40K-57K | 244 μs | 0.12 μs
The benchmark for allocate() is slow because allocate() calls malloc()
and updates all vertices each time the vertex count changes whereas
the benchmark for setVertexCount() only calls allocate() once and only
updates newly exposed vertices when the vertex count changes.
There are manual tests in the "manual/qsggeometry" folder which
exercise setVertexCount() and setIndexCount() by drawing a spiral
with thousands of vertices.
Task-number: QTBUG-126835
Change-Id: I5a0a6c68e3b5a17ffba914f1abb5078601bc4e05
Reviewed-by: Andy Nichols <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch introduces TableViewDelegate to the Controls module.
Key features:
- Ready-made delegate assignable to TableView
- Handles table drawing using predefined styles
- Usable without customization
- Implements all required properties set by TableView
- Provides API for changing background and label
Test Suite:
- Verifies TableViewDelegate properties and functionalities
- Tests include:
- Verification of selected, current, and content text properties
- Validation of selection behavior and item clicking
BLACKLISTing two tests (dragToSelect and pressAndHoldToSelect), which
will be removed from the BLACKLIST in the next patch (to fix cell
selection on the Android platform).
Implementation derived from TreeViewDelegate, adapted for TableView use.
TreeViewDelegate patch: 0ddb0d4b9b0c70c4fd4058ef4660e38fd933523e
[ChangeLog][Controls] New delegate added: TableViewDelegate
Fixes: QTBUG-114636
Change-Id: Ibb8b0a7622016e0c6fd58d696e507e7bb76daced
Reviewed-by: Mitch Curtis <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, if an item changed geometry and it wasn't accessible, it
would find the closest accessible ancestor, and send an accessible
LocationChanged event to the closest accessible ancestor (but the
accessible ancestor didn't move, so it was pointless).
This also improves performance in some cases because there is no point
in traversing upwards in the hierarchy to find an accessible ancestor.
Therefore, the change contains both a benchmark and an autotest.
Performance summary
-------------------
moveItem(isActive) is 38.4x faster (72/8)/(60/256)
Details
-------
Config: Using QtTest library 6.9.0, Qt 6.9.0 (arm64-little_endian-lp64
shared (dynamic) release build; by Apple LLVM 15.0.0
(clang-1500.3.9.4)), macos 14.4
Without patch:
RESULT : tst_bench_accessibility::moveItem():"isActive":
9.0 msecs per iteration (total: 72, iterations: 8)
With patch:
RESULT : tst_bench_accessibility::moveItem():"isActive":
0.23 msecs per iteration (total: 60, iterations: 256)
Pick-to: 6.8
Change-Id: I1e3712ff043193705335a0e02ccbe876c915d8a4
Reviewed-by: Volker Hilsheimer <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Now developer build tests compile, but some are not working.
Functional fix will come later via separate tasks.
Task-number: QTBUG-122999
Change-Id: I0a0dfcf7affb73f928b8be62b3576a6a51658488
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, a DomEnvironment could load QML files with different
DomCreationOptions. This makes things more complicated when loading
dependencies, for example the implicit directory import might load a
qmldir file that imports another module that contains a certain QML
file, and then one has to remember which file triggered all of this
dependency loading and what DomCreationOptions it had.
In addition, there is currently no use case for something that
complicated.
Instead of that, move the DomCreationOptions to the DomEnvironment
itself. When a DomEnvironment is used to load a file and its
dependencies, it will use the DomCreationOptions set on this
DomEnvironment.
This ensures that all dependencies are loaded with the correct
DomCreationOptions, and avoids weird bugs in qmlls features due to
wrong DomCreationOptions used for dependencies.
Remove the DomCreationOptions from the FileToLoad struct, adapt the
DomEnvironment constructor and static factory method to expect a
DomCreationOptions parameter, and change all DomUniverse::load()
methods to have an extra DomCreationOptions parameter.
This commit will break the formatting tests so QSKIP them, at least
until the lazy-loading is done. The reason for the breakage is that the
Dom eagerly loads all QML files from imports, and that takes too much
time or crashes because it loads them now with the correct
DomCreationOptions instead of DomCreationOption::None.
For example, the formatting tests will implicitly load
nestedFunctions.qml via the implicit directory import with the
DomCreationOption::WithScriptExpressions and that will crash because
of the nested functions, see also QTBUG-122707.
Therefore QSKIP the formatting tests.
Also adapt the timeout for a test that imports QtQuick.Controls.Basic,
as the Dom also eagerly loads all the QML files from an imported module,
which takes much more time with the
DomCreationOption::WithScriptExpressions.
Task-number: QTBUG-122645
Change-Id: Icb7eb6d17df15fc6ea133e014c00153df5cd1492
Reviewed-by: Fabian Kosmale <[email protected]>
Reviewed-by: Qt CI Bot <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to QUIP-18 [1], all test files should be
LicenseRef-Qt-Commercial OR GPL-3.0-only
[1]: https://contribute.qt-project.org/quips/18
Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I26d72e8de04d4c7c57b3b7838af5d033265de5ba
Reviewed-by: Shawn Rutledge <[email protected]>
Reviewed-by: Kai Köhne <[email protected]>
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Includes some minor tweaks to the curve renderer itself, to facilitate
running it directly from C++, outside of the Shapes plugin in a Quick
application. These include exporting the class, and adding an addPath
method taking a QPainterPath directly, avoiding the need to construct
a QQuickPath.
Pick-to: 6.7
Change-Id: I91c66d8744af807bcff4132d054cff86d2453085
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Only defaultLoad is being used, hence it doesn't make sense to have them
at all at the current stage
Task-number: QTBUG-119550
Change-Id: I761e7c55d6aaafa29d234ace4b4b65bcc46a9855
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
| |
Change-Id: I4d9456dc910ade06febddb29d06e922c564bf015
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One of the goals of this refactoring is to move DomTop specific
functionality from DomItem API to the corresponding DomEnvironment
and DomUniverse.
This commit moves loading of the dependencies (which are added to
the pending load queue implicitly as part of the callbacks of the
loadFile when DomEnv is created without the flag "NoDependencies") to
the DomEnvironment interface
Moreover, once work with dependencies is happening through the
DomEnvironment explicitly, it allows us to get rid of "self"
parameter.
Task-number: QTBUG-119550
Change-Id: Ib3deb97eabe091ffded8c8c782ee08f8024468f2
Reviewed-by: Sami Shalayel <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As it was mentioned in the previous commits in the chain one of the
goals of the refactoring is to introduce clearer separation of
concerns.
Only DomTop types are allowed to load files, hence it's arguable
should be reflected in the interfaces explicitly.
With the help of previous commits the relevant pieces of this
function were moved to the corresponding DomEnvironment and DomUniverse
types.
This commit finally removes loadFile from the DomItem API.
*It's also worth noting that in order to minimaze refactoring
efforts and to keep the public API simple (not requiring
DomItem &self argument on the top level), this commit also makes
DomEnvironment a child of the std::enable_shared_from_this.
This somewhat "breaks" the initial design approach inscribed
in the DOM API allowing DomEnvironemt to get a shared_ptr to itself
bypassing corresponding DomItem.ownerAs<> API.
However, in the tradeoff of preserving consistency of the previous
design and the explicitness of the interface, I would value the latter,
hence I find this change acceptable.
Change-Id: Ic2ce3fc80876be6bdbec93e4d273e4c6b7a2b218
Task-number: QTBUG-119550
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
We almost never want non-const DomItems anywhere. There is exactly one
exception: From a MutableDomItem we need to poke into the internals of
the respective DomItem and const_cast them. However, MutableDomItem is
to be handled with care anyway.
Change-Id: I826f0669c049462beec9ad71dccb39c5191a1d3f
Reviewed-by: Sami Shalayel <[email protected]>
|
|
|
|
|
|
|
|
| |
It takes considerable time to finish as auto test, slowing down the
development speed. It should live in benchmarks.
Change-Id: I4cb6f7712774a6d36e000dec713db67019d84f6e
Reviewed-by: Sami Shalayel <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
Using qt_internal_add_test for a benchmark gives it a _check target, not
a _benchmark target. Use qt_internal_add_benchmark instead, link against
QuickTest, and set the QUICK_TEST_SOURCE_DIR variable explicitly.
Pick-to: 6.5
Change-Id: Id72f2623b7edaa538ef3ff2cb3f505506652ee5a
Reviewed-by: Joerg Bornemann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
Renames the pressed() getter of the pressed property in QQuickMouseArea
to isPressed() to avoid overloading the pressed()-signal.
Signals should not be overloaded. Also, it makes code generation in
qmltc more complicated.
Task-number: QTBUG-110029
Change-Id: I2373f4fe97b1e955b815825003bc746f2eaf43be
Reviewed-by: Shawn Rutledge <[email protected]>
|
|
|
|
|
|
| |
Task-number: QTBUG-99238
Change-Id: Ia11c9cbd7c06347319ab3674ec0cd8da0214747e
Reviewed-by: Alexandru Croitor <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt Quick Controls 2 was named that way because it was a follow-up to
Qt Quick Controls 1.x. Now that Qt Quick Controls 1 is no longer
supported, we don't need to have "2" in the name. Work on this was
already started for the documentation in
1abdfe5d5a052f2298b7bf657513dfa7e0c66a56.
By doing this renaming a few weeks before feature freeze, it won't
affect the release but still results in as little time possible spent
manually fixing conflicts in cherry-picks from non-LTS releases as a
result of the renaming.
This patch does the following:
- Renames directories.
- Adapts CMakeLists.txt and other files to account for the new paths.
A follow-up patch will handle documentation.
It does not touch library names or other user-facing stuff, as that
will have to be done in Qt 7.
Task-number: QTBUG-95413
Change-Id: I170d8db19033ee71e495ff0c5c1a517a41ed7634
Reviewed-by: Mitch Curtis <[email protected]>
|
|
|
|
|
|
|
|
|
| |
There was a typo in the auto test's target name, but fixing it also
requires renaming the benchmark which has the same name.
Pick-to: 6.2 6.4
Change-Id: I8e7b6de472ed84df0917584592f28d7015618331
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
Otherwise it's only possible to build these projects on the command
line with qt-cmake-standalone-test.
Task-number: QTBUG-93020
Pick-to: 6.2 6.3 6.4
Change-Id: I84e5bd2b6b3bb7cb8deac22ec417af793ae8c1d6
Reviewed-by: Alexandru Croitor <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a semantic patch using ClangTidyTransformator as in
qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8, but extended to
handle typedefs and accesses through pointers, too:
const std::string o = "object";
auto hasTypeIgnoringPointer = [](auto type) { return anyOf(hasType(type), hasType(pointsTo(type))); };
auto derivedFromAnyOfClasses = [&](ArrayRef<StringRef> classes) {
auto exprOfDeclaredType = [&](auto decl) {
return expr(hasTypeIgnoringPointer(hasUnqualifiedDesugaredType(recordType(hasDeclaration(decl))))).bind(o);
};
return exprOfDeclaredType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))));
};
auto renameMethod = [&] (ArrayRef<StringRef> classes,
StringRef from, StringRef to) {
return makeRule(cxxMemberCallExpr(on(derivedFromAnyOfClasses(classes)),
callee(cxxMethodDecl(hasName(from), parameterCountIs(0)))),
changeTo(cat(access(o, cat(to)), "()")),
cat("use '", to, "' instead of '", from, "'"));
};
renameMethod(<classes>, "count", "size");
renameMethod(<classes>, "length", "size");
except that on() was replaced with a matcher that doesn't ignoreParens().
a.k.a qt-port-to-std-compatible-api V5 with config Scope: 'Container'.
Change-Id: I58e1b41b91c34d2e860dbb5847b3752edbfc6fc9
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.
Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.
Task-number: QTBUG-99313
Change-Id: I601bf70f020f511019ed28731ba53b14b765dbf0
Reviewed-by: Shawn Rutledge <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a semantic patch using ClangTidyTransformator as in
qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8:
auto QtContainerClass = anyOf(
expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o),
expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o));
makeRule(cxxMemberCallExpr(on(QtContainerClass),
callee(cxxMethodDecl(hasAnyName({"count", "length"),
parameterCountIs(0))))),
changeTo(cat(access(o, cat("size"), "()"))),
cat("use 'size()' instead of 'count()/length()'"))
a.k.a qt-port-to-std-compatible-api with config Scope: 'Container',
with the extended set of container classes recognized.
Change-Id: Idb1f75dfe2323bd1d9e8b4d58d54f1b4b80c7ed7
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Compiler warns:
ignoring return value of function declared with 'nodiscard' attribute
[-Wunused-result]
Pick-to: 6.4
Change-Id: If10d41fad7dc77b36eecc8725de178b0908f32de
Reviewed-by: Mitch Curtis <[email protected]>
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-105718
Change-Id: Id89ed14990804a5024183e75382cc539d4293da1
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Jörg Bornemann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a version of TreeViewDelegate.qml to the Material
style, that looks more at home for that style (rather
than using the one in the Basic style).
This version is using the arrow-indicator from the
Material style as expand/collapse indicator, and
makes the height of each row match the height of a
normal Material button.
Pick-to: 6.4
Change-Id: I084532ca6e527593e5711d66aa53f240f0356d99
Reviewed-by: Mitch Curtis <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a version of TreeViewDelegate.qml to the Fusion
style, that looks more at home for that style (rather
than using the one in the Basic style).
This version is using the arrow-indicator from the
Fusion style as expand/collapse indicator, and
makes the height of each row match the height of a
normal Fusion button.
Pick-to: 6.4
Change-Id: I153bb5776e23476cf8c383fb6f76e63981e28639
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
For several reasons:
* It was renamed to QT_DISABLE_DEPRECATED_UP_TO
* Its value will be propagated from the general Qt build
Task-number: QTBUG-104858
Change-Id: I90c92dc05b884f6408467c573181c00f8e00e6b3
Reviewed-by: Alexandru Croitor <[email protected]>
|
|
|
|
|
| |
Change-Id: I1cd769f85d5f82c43639d6787d98e536619249e6
Reviewed-by: Alexey Edelev <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
CMakeLists.txt and .cmake files of significant size
(more than 2 lines according to our check in tst_license.pl)
now have the copyright and license header.
Existing copyright statements remain intact
Task-number: QTBUG-88621
Change-Id: I72c89a98c42bbc9234d8495e9e503bec81d11037
Reviewed-by: Jörg Bornemann <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.
Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge <[email protected]>
|
|
|
|
|
|
|
|
|
|
| |
tst_objectcount did not have its test data properly included. This
patch fixes it.
Pick-to: 6.2 6.3
Task-number: QTBUG-101865
Change-Id: I25e4e01eeb87fbddcd55d9e85411c9cb2d5d5c61
Reviewed-by: Assam Boudjelthia <[email protected]>
|
|
|
|
|
|
|
|
|
| |
A lot of CMakeLists.txt files defined QT_QMLTEST_DATADIR twice,
leading to a warning. This patch fixes these.
Pick-to: 6.2 6.3
Change-Id: I8b835fcddd3334f0ecac45cb72bd5763b3a5704d
Reviewed-by: Fabian Kosmale <[email protected]>
|
|
|
|
|
|
| |
Task-number: QTBUG-101408
Change-Id: Ic925751b73f52d8fa5add5cacc52d6dd6ea2dc27
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
| |
The engine parameter is no longer used.
Pick-to: 6.3
Change-Id: Ifc630eb4803a015d41df50210bd86947f6a5a472
Reviewed-by: Ulf Hermann <[email protected]>
|
|
|
|
|
|
|
|
| |
Calculate and pass the global pos explicitly.
Pick-to: 6.3
Change-Id: I6d16a21e95454a65a80d5366c6c46b3cacf33dd3
Reviewed-by: Shawn Rutledge <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds TreeViewDelegate to Controls.
TreeViewDelegate is a ready-made delegate that can be
assigned to TreeView. It takes care of drawing the
tree using the style, and can be used directly
without the need for customization.
It implements all the required properties set
by TreeView, and offers in addition a small API that
lets the developer change the indicator and the label.
[ChangeLog][Controls] New delegate added: TreeViewDelegate
Change-Id: I50fbc059afbc2b896d23d9d59717c8571e94bae6
Reviewed-by: Volker Hilsheimer <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Autotests in Qt are usually GPL3, or BSD. No point in using the LGPL
here.
This also gets rid of last references to LICENSE.LGPLv3 in this
repository, so we can delete both LICENSE.LGPLv3 and LICENSE.GPLv3,
which it references.
Change-Id: Idbdefe0c68cc8047ede72b439a4d7ff40dfd71b6
Reviewed-by: Volker Hilsheimer <[email protected]>
|
|
|
|
|
|
|
|
|
| |
Test at many moments from spring 1967 (before the epoch) to summer
2046 (after 32-bit time_t's sign-wrap).
Change-Id: I3932cc1553a868b8815fda9a8dfc7644e4485704
Reviewed-by: Ulf Hermann <[email protected]>
Reviewed-by: Qt CI Bot <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Inline the trivial constructor.
Get rid of the pointless destructor.
Use QDirIterator instead of QDir, to save collecting a bunch of
strings, only to iterate them, when we could simply iterate them.
Use QDirIterator::filePath() instead of adding fragments ourselves.
Use u"*.qml"_qs instead of constructing QString from ASCII.
Use QString::chopped(4) rather than left(size() - 4).
Use QScopedPointer to ensure tidy-up of allocated object.
Don't use 0 as a null pointer value.
Waste less vertical space.
Change-Id: I44f62f4e41f63de860f47114b2f47dddbf9746bc
Reviewed-by: Ulf Hermann <[email protected]>
|