aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* QJSList: restore NRVO in slice(), join() specializationMarc Mutz5 days1-6/+6
| | | | | | | | | | | | | | | ... for <QQmlListProperty<QObject>, QObject *>>. Like in the primary template, return the same object in each return statement, fixing GCC -Wnrvo, which we're going to add to headersclean. Amends e84686415187455a7153d61ca82478053f13e3f9. Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-142146 Change-Id: I38e9e8374e51d147cdaf4276fa791489117ee4e3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QJSEngine: fix -Wnrvo in coerceValue() and fromVariant()Marc Mutz5 days1-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ... as a preparation of enabling the flag in headerscheck. The coerceValue() functions was actually flagged by GCC in a headerscheck including -Wnrvo, probably because it was instantiated for some type in inline code. The fromVariant() function was not flagged automatically, but found by manual inspection. Because the structure of code, with the pre-existing extra scope, lends itself naturally to it, wrap the code that doesn't already return rvalues in an IILE. Outside the lambda, the return is now RVO'ed, and inside, NRVO'ed. Manual inspection also found the qjsvalue_cast() overloaded functions, but I don't readily see a fix for them, so deferring. GCC doesn't warn for function templates unless instantiated, so for the purposes of headerscheck, we should be good with the status quo. Amends 7b29ed6f64a300d4d714371c2872fcba344beebd (coerceValue()) and d0f4e0c037cf61eb5bb559755ee7c9ce6cf6b7dc (fromVariant()). Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-142146 Change-Id: I2aa0ecb5a1cdc975c2ab8dffb9fe333bbeb7bc0f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Add alternate text for Qt Quick and Qt Quick Controls imagesJerome Pasion5 days78-11/+543
| | | | | | | | | | Alternate text (alt text) improves the documentation experience for screen readers and for other accessibility tools. Pick-to: 6.9 6.10 Task-number: QTBUG-135120 Change-Id: I975c3de11f893882fb9a27218079f244bd38a622 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* qqlmjs.g: Remove expect statementFabian Kosmale5 days1-1/+0
| | | | | | | We do, in fact, not expect any parsing conflict. Change-Id: I2df5e27f42dbdd7660eb0383da3c2bb01c6fc84e Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Remove redundant Q_FLAGS from classes that don't inherit from QObjectAhmad Samir5 days1-1/+0
| | | | | | Pick-to: 6.10 6.8 6.5 Change-Id: I810a7137470e0ee96c76819766ede2e9bc643d73 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix CalendarModel month count calculationJoni Poikelin5 days1-1/+1
| | | | | | | | | | CalendarModel used previously set from and to values to calculate the range and thus the count wasn't ever up to date. Fixes: QTBUG-141883 Pick-to: 6.10 6.8 Change-Id: Id3ef60810d2e8ebfcc060307e6d17cfca379cd78 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Stop flooding the log with animation timer typeJoni Poikelin5 days1-1/+1
| | | | | | | | | | This variable used to be static and the logic still looks like it expects it to be so. Static was probably removed in an error. This causes unnecessary environment variable reading and logs being printed as this function is being called for every frame. Change-Id: Id24d9cfecb0f509f92cef47f6a95800ff529259b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QmlPreview: Allow setting animation speedUlf Hermann5 days6-2/+28
| | | | | | | | | | | | | | | | | | | This is the same functionality we already have in the inspector service. However, we need it in the preview, too. For such a simple thing you shouldn't need to instantiate an extra debug service. The animation speed method in the preview service also doesn't invert the speed modifier. So, for double animation speed you need to pass 2, not 0.5. Fix the test to a, check the animation speed only on new output, rather than everything the application has printed before and b, actually check whether the number is in the intended range. Task-number: QTBUG-141569 Change-Id: Ie7f7b043fb295e7c5da333ab4501059f07f2e3cd Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* EventReplay: Ignore double-click events when replayingUlf Hermann5 days1-0/+3
| | | | | | | | | We receive the individual press and release events already. Those are enough to synthesize the double-click. The platform abstraction does not like to be explicitly told about double-clicks. Change-Id: Ie8da32de742e601dc99af3afee82d6177d8a7156 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QV4: Hotfix bump QV4_DATA_STRUCTURE_VERSION to invalidate broken cacheOlivier De Cannière5 days1-1/+1
| | | | | | | Task-number: QTBUG-142186 Pick-to: 6.10 Change-Id: I07228c1ddd9196532886ad3b39751d525c525432 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* CMake: Allow qmlls.build.ini generation to be skippedUlf Hermann5 days2-9/+19
| | | | | | | | | We don't want a qmlls.build.ini to be generated on a module that's intentionally hidden from the outside world. That won't work anyway. Change-Id: I4231361ab4d786d661db19f80b5cf0de84cc0b35 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* qmllint: don't mixup 'import' and 'import-file-selector' categoriesSami Shalayel5 days3-13/+14
| | | | | | | | | | | | | | | | | | Don't log warnings of the import-file-selector category using the import category, and only use the import-file-selector category for that. It seems the mixup happened when multiple import and import-file-selector warnings were emitted for the same file, so extend the current test by introducing another qmllint warning with Broken.qml, and make sure the import-file-selector warning is emitted via the correct category-warning-level. The import category has warning level 'warning' while import-file-selector has 'info'. Amends 3ab60f40d5e0b612c6a1eedba656f4f26d66c927. Pick-to: 6.10 Change-Id: I35acdef46284067a9f23288128108569faa9d90b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* qml generator: add functionality for animated (morphing) pathsEirik Aavitsland5 days8-10/+220
| | | | | | | | | | | | | | | | | Add a new Path item to the Helpers module: pathInterpolated, that holds a list of paths (specified as svg path texts) and has a settable interpolation factor property. Based on the value factor, the resulting path will be an interpolation between path #n and path#n+1, where n is the integer part of the factor. The fractional part determines the interpolation weight between the two. Replace the static QPainterPath in PathNodeInfo with an animated property holding QPainterPath values. During generation, if the property is found to be animated, a PathInterpolated item is generated instead of a static PathSvg item. Change-Id: Ic061005e135cbde1bd88ab1ac7c9e7840f55c232 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add iOS style for SearchFieldDilek Akcay5 days8-0/+111
| | | | | | | Task-number: QTBUG-137318 Pick-to: 6.10 Change-Id: Iead7b9ad0bf22c96d94ab70795fed854f613f6d7 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Doc: Add newly published Academy Course for Qt Quick and modify the course ↵Inkamari Harjula5 days1-1/+9
| | | | | | | | | | | listing Course link added and list modified. Task-number: QTBUG-142148 Pick-to: 6.10 Change-Id: I8a11394b110a80bb9625d88222b0c5a3a3e6aed4 Reviewed-by: Alexei Cazacov <alexei.cazacov@qt.io>
* qmlformat: Add GroupAttributesTogether optionXavier BESSON6 days8-18/+109
| | | | | | | | | | | | Equivalent to NormalizeOrder but reorder QML categories without sorting attributes (property definitions, property bindings, methods, signals, enums) Fixes: QTBUG-132060 Change-Id: Ib46ce4bb58ce46e3293d14954b0e363837b64b76 Original-patch-by: Oliver Kuss <oliver.kuss@okapp.de> Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Doc: Update links in qml-toc.qdocAlexei Cazacov7 days1-1/+5
| | | | | | Pick-to: 6.10 Change-Id: Id1cff25028f1e4b79bd53a44950b35643e08ce99 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Fill in the const iterator functions in the empty sequenceUlf Hermann7 days1-0/+11
| | | | | | | | | | Without these you may get an infinite sequence when trying to iterate using const iterators. Pick-to: 6.10 6.8 Task-number: QTBUG-142097 Change-Id: Iae93063b240ebe9426804197533ed7efd8e007bc Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* QtQml: Don't mark QJSValues on the AOT stackUlf Hermann7 days1-1/+10
| | | | | | | | | | | | QJSValue and QJSManagedValue hold persistent values which are marked elsewhere. QJSPrimitiveValue doesn't need to be marked at all. Amends commit 2d016a2653c59f10a57dc1903b817f71d16d0622. Pick-to: 6.10 6.8 Fixes: QTBUG-142097 Change-Id: I50d6405a684726a81ceee506b2d4f8b90330fcaf Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* a11y: Set a11y relation between FileDialog filter label and comboboxMichael Weghorn9 days5-0/+5
| | | | | | | | | | | | | | | Make use of the API introduced in 644349fecb9ce58659e590be7049ba93889d9f34 to set the accessible label-for/labelled-by relationship between the "Filter" label and the corresponding combobox in the QML FileDialog. This makes screen readers like Orca on Linux announce the label text when the combobox receives focus, so the meaning/context becomes clear. Change-Id: I06db7db7fb3afeb748b99ab29cb90e8bfd694279 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Doc: Use unambiguous link targets where possibleDavid Boddie10 days8-16/+18
| | | | | | | | | | | | | | Some links to sections within the same document were incorrectly going to other documents due to the way that QDoc handles duplicate section names. Additionally, documents containing duplicate section titles are not guaranteed to be handled as authors may expect. Links were changed to be more specific or removed in the case where the target was immediately after the original link. Change-Id: I78696519bd811dfe264561b799898a1d94b027dc Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* VectorImage: Add support for offset path animationsEskil Abrahamsen Blomfeldt10 days5-1/+256
| | | | | | | | | This implements the offset path animation in SVG by mapping it to the PathInterpolator in Qt Quick. Task-number: QTBUG-140751 Change-Id: Ib05e32b8e5190213744c38cc2fc1ca85ef1feaac Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
* qmllint: fix typo in warningSami Shalayel10 days1-1/+1
| | | | | | | | Add a missing i in "initalizer". Pick-to: 6.10 Change-Id: I3904fa88fcc499a0f7b2b8eb8884adecee10757b Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* Tooling: Add test for integrating event replay with qmlpreviewUlf Hermann10 days1-0/+4
| | | | | | | | | | | | This makes sure that the relevant debug services can coexist. In order for this to actually be true, we need to initialize the type loader before we initialize the various services. Otherwise the profiler service will initialize the type loader which will query the preview service for some directories, leading to a deadlock. Task-number: QTBUG-141569 Change-Id: Ia0873802b94b885654c693bdb9a96100cad492bf Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* doc: Document caveats of setting user input on Text componentEskil Abrahamsen Blomfeldt11 days1-2/+16
| | | | | | | | | | | | | | | | | | | | The HTML subset in Qt was never intended to be end user facing and is very specifically modelled to Qt's needs. Without precaution, an application can easily end up setting a user provided string as content on the Text component. This can cause both unexpected results for the end users (if they expect a compliant HTML engine) and arbitrary image loading/allocation. Since the default text format of Text is AutoText, we make sure to document that user provided data should not be set directly as content on the label unless the PlainText format is explicitly selected. Pick-to: 6.5 6.8 6.10 Change-Id: I4383389640ff140da1ccbdf58e198e2868ad9774 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Dialog(ButtonBox): Prioritize popupItem subFocusItem over buttonBoxOliver Eftevaag11 days1-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a followup to e323e508b61ce0a2615c9c8e8fbf897e27965173. In cases where a Dialog has an item with explicit focus, e.g: ``` Dialog { Button { focus: true text: "Foo" } footer: DialogButtonBox { standardButtons: DialogButtonBox.Ok } } ``` Then the "Foo" button should get focus, since it's explicitly set in QML. 4d1753b95f0343a68f80a1b482b8ab9a0397fecb changed this behavior to instead always give the buttonbox focus. If focus isn't explicitly set elsewhere, it should be fine to give it to the buttonbox. However, doing so unconditionally would be a significant behavior change that would break lots of user projects. Add a precondition to verify that the popupItem doesn't have a subFocusItem, before considering whether or not to give focus to the buttonbox. As a drive-by, also just call setFocus() instead of forceActiveFocus(). Both functions work for our purposes, so might as well use the less extreme option. Amends e323e508b61ce0a2615c9c8e8fbf897e27965173 Change-Id: Iea72f162669159082386966a1d9419c64abb7302 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Window: specify correct property typeFabian Kosmale11 days4-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | Given that the property was documented to only take a screen from Application's screen list, we can arguably do this change, especially that any usage with a non-QQuickScreenInfo would just end up setting a null-pointer, indicating some bug. Any code reading the property is fine anyway, as a QQuickScreenInfo is still a QObject. This also uncovers that the screengrabber base line test did not handle this correctly (it passed a QScreen to setScreen, which doesn't work). This would now fail to compile. Fix it by passing the actually expected object along. Amends d6dfbe8fd5d09388fc624d85c4aefa0269c20db9 [ChangeLog][Important Behavior Change][QtQuick][Window] Window and ApplicationWindow now enforce that the type of the property passed to the screen property is ScreenInfo. It used to accept any QObject, but would silently convert it to null if the type was not correct. Change-Id: I512c24c761ef5e6e9b7f241d222c98a34c6fafa4 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* qmllint: fix required property detection on shadowed propertiesSami Shalayel11 days1-1/+12
| | | | | | | | | | | | | | | When a derived type shadows a property from its base type, qmllint used to confuse the base property's `required` status with the derived property's `required` status. This used to lead to bogus warnings even when the shadowing property was correctly bound. The check now ensures that the property owner matches before treating a property as required, fixing false positives in such cases. Pick-to: 6.10 Fixes: QTBUG-141086 Change-Id: Ic2cf6558a1ebf78af1022911827c398164de5e31 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* CMake: QML: put test targets under the special case sectionDmitrii Akshintsev11 days1-11/+14
| | | | | | | | | | | | | | Arguably targets relevant to tests should be built once all the "source" targets have been built, since they might depend on them. For example, in the near future there is a need to include QmlDomPrivate target to the QuickTestUtils, which is defined only later. Moreover it's in general a good practice to have a clear separation between "source" and "test" targets. Change-Id: I2dd1b41ee4df2227733bab73f983e001daad305c Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QmlModels: Add QQmlDelegateModelItem::destroyObject() and use itUlf Hermann11 days3-32/+27
| | | | | | | | | | | | | | | The object held by a QQmlDelegateModelItem should not be destroyed from the outside. The old destroyObject() method is renamed to destroyObjectLater() since it actually calls deleteLater() on the object and handles the implications of that case. The new destroyObject() deletes the object right away. Task-number: QTBUG-141963 Change-Id: I38c6a6dca2cb844a70a8af22ac66d29e2150379b Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlJSAnnotation: mark relational operators noexceptMarc Mutz11 days1-3/+5
| | | | | | | | | | | | | | | | | (incl. qHash()) Because they are. Amends d226e24a5d4288a3e7f263c526cb6cbf72255388. Even though this breaks forward BC, we can pick this back since it's private API. Coverity-Id: 895832 Pick-to: 6.10 6.8 6.5 Change-Id: Ic9989afce02eb66dc0caf545ccfe7e54ccf99261 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QQmlJSAnnotation: say what you do (check valueless_by_exception())Marc Mutz11 days1-1/+1
| | | | | | | | | | | | | Yes, v.index() == std::variant_npos when v.valueless_by_exception(), but don't require readers to know that. Say what you're checking for, call valueless_by_exception(). Amends d226e24a5d4288a3e7f263c526cb6cbf72255388. Pick-to: 6.10 6.8 6.5 Change-Id: I6794adc320d5c4d0c188a9dbd1a8acb953bacfd4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Doc: Make module links more precise, fix markupDavid Boddie11 days13-42/+44
| | | | | | | | | | | QDoc can be inconsistent with link targets when there are duplicate page and section titles. Using link commands can help with more precise linking. In addition, code can be markup up as QML or using the \c command to make quoted content more accurate. Change-Id: I480b7cd301d5495201af926895a9bfec7b3bd9c8 Reviewed-by: Jerome Pasion <jerome.pasion@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QmlProfiler: Allow querying the event receiver for the number of eventsUlf Hermann12 days4-17/+14
| | | | | | | | In turn inline the isEmpty() method and make the clear() method purely virtual. Also, use qsizetype for the number of events and event types. Change-Id: I701aa27441489af28407cbae9123557a48a3a34e Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* QQmlJSAnnotation: use non-throwing std::variant inspectionMarc Mutz12 days1-4/+6
| | | | | | | | | | | | | | | | | | | | | | | Coverity complained that the get<>() calls can throw an exception that percolates all the way to main(). There are several errors that combine to generate this warning, not all of them in our code. E.g., Coverity should really not have a problem understanding that get<> won't throw if we checked for holds_alternative before. The qHash() function ought to have been marked as noexcept (qHash() mustn't throw; QHash isn't really prepared for that), std::visit() ought to have been used, though I appreciate the verbosity that would generate. So first try whether using get_if() shuts Coverity up. Incidentally, this makes the code DRY, improving readability. Amends d226e24a5d4288a3e7f263c526cb6cbf72255388. Pick-to: 6.10 6.8 6.5 Coverity-Id: 895832 Change-Id: I0ed444cf96d3bfd3792351b66901af58d8180a76 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QmlModels: Rename QQmlDMObjectData::objectUlf Hermann12 days2-13/+18
| | | | | | | | | | | It's modelData. Calling it "object" was rather confusing since the base class also has an "m_object" member which is however not the modelData but rather the delegate. Task-number: QTBUG-141963 Change-Id: Ib26f4549cd284654d3276b0b81d354e3c7d4c65a Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlModels: Better encapsulate QQmlDelegateModelItemUlf Hermann12 days8-346/+416
| | | | | | | | | | This is a purely mechanical change. It adds accessor methods for the various members and makes the members private. Where necessary some code is reordered and some members are cached in locals. Task-number: QTBUG-141963 Change-Id: Ibc02764c33865896d146aff0950252cfee6d0732 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QmlModels: Use destroyObject() for destroying a model objectUlf Hermann12 days1-4/+2
| | | | | | | | | | | We shouldn't poke into the internals of the model item like this and we should properly destroy the object including its context and attachment rather than leaving those around. Task-number: QTBUG-141963 Change-Id: Iddc835bbf8176b1a251f72f59d961f13308fc20a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* Fix QQuickItemPrivate::eventHandlingBounds()Shawn Rutledge12 days1-1/+1
| | | | | | | | | | The second two arguments are width and height, not bottom-right coordinates. So after shifting the rectangle left and upwards, we need to add twice the margin to width and height, to have the same margin all the way around. Amends 8115731466b579f33295d5c8a71506475750284e Change-Id: I83797ffd460ee47599170090aefcda544c3e4483 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* SearchField: Add Imagine styleDilek Akcay12 days167-0/+160
| | | | | | | Task-number: QTBUG-137318 Pick-to: 6.10 Change-Id: I3d5d9c35b214bc1c9878c7b81df32ceed1ac16fc Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Put QQuickVectorImage helper classes in namespaceEskil Abrahamsen Blomfeldt12 days2-0/+7
| | | | | | | | Avoid polluting the global namespace with these generic names. Pick-to: 6.10 Change-Id: I9126bea529789795323f1d7696f9c5490036e862 Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
* QmlModels: Add RAII wrappers around reference/releaseObjectUlf Hermann12 days2-39/+73
| | | | | | | | | | | This clarifies where we actually want to return a referenced object and where we only hold a temporary reference to prevent it from getting deleted. Task-number: QTBUG-141963 Change-Id: Ied505d798fe9195b4296fa09b719efb17cbd1ea5 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* Doc: Overhaul the Positioning with Anchors topicAlexei Cazacov12 days1-8/+34
| | | | | | | | | | | This commit slightly improves the topic. Now, the snippets on this page not only display "bad code" but do show how to do things properly. The formatting was also improved a bit. Task-number: QTBUG-141543 Pick-to: 6.10 Change-Id: Idc7a2bd8a4a86c96d9490c43d1b3dcf725b5581f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Optimize QQmlObjectCreator a bitUlf Hermann13 days1-9/+12
| | | | | | | | | std::move some strings into place, check condition only once, use constFind() and constEnd() where applicable. Coverity-Id: 897291 Change-Id: Icad3a49bc1137bc42de14f064cac111134993a2d Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
* QtQml: Reset JS libraries and ES modules on clearComponentCache()Ulf Hermann13 days1-2/+13
| | | | | | | | | | | | | We can't drop the respective compilation units without re-opening QTBUG-128638 and QTBUG-128782. However, we can empty them out and force them to be re-evaluated. Since you can store arbitrary data in those libraries, this is important for a proper clearing of the component cache. You may hold on to a QObject that in turn holds on to other compilation units. Change-Id: Ie6bd3878c0d45086a7efade76ad5696bf8428acb Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* Tooling: Add an event replay debug clientUlf Hermann13 days4-7/+139
| | | | | | | | | | | | The event replay debug client can either replay the input events from a .qtd trace recorded using qmlprofiler, or it can accept individual events given as instances of QQmlProfilerEvent. Given the client we can test the service. Fixes: QTBUG-141569 Change-Id: I2f20a84fc35bdadec51f15bb5656becdb2343f3e Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
* gc: Fix sweep logicFabian Kosmale13 days1-1/+43
| | | | | | | | | | | | | | | | | | | | | | | When sweeping chunks, we might end up allocating additional chunks in a custom destroy handler. This could cause the insertion of a new chunk into the chunk vetcor, in the worst case invalidating the iterators (in the slightly less worse case, we still have a chunk on which we don't call sweep, leading to meta-data corruption later on). Note that while the number of chunks can grow, it can't decrease. Therefore, we can fix the problem by replacing the iterator based partition with a size based one, which has additional checks in case the size has changed during the iteration. As a small optimization, wer run the loops without always checking for a size change first, and only afterwardts check for it (as allocating destroy handler aren't that common). Only afterwards we check if the size has changed, and rerun the loop on the remaining vector. Pick-to: 6.10 6.8 6.5 Initial-patch-by: Rafal Chomentowski <rafal.chomentowski@ge.com> Fixes: QTBUG-141963 Change-Id: If9429a4a9030ec64952426ac35c38d3ae250e18d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Dialog: Don't give buttonBox focus when empty or buttons are disabledOliver Eftevaag13 days1-2/+9
| | | | | | | | | | | | | | | | | Focus behavior was changed in 4d1753b95f0343a68f80a1b482b8ab9a0397fecb to give the buttonBox focus when a dialog is opened. This will fundamentally conflict with user projects that manually set the focus property. Further discussion will be needed to arrive on a good solution for when the focus property is manually set. For now, we can at least make sure that the new focus behavior is limited to cases where the buttonBox actually contains buttons (aka, not empty), with at least one of them being enabled. Fixes: QTBUG-141998 Change-Id: I704e6a707f5b579e5f4de7b6197abc2fc5dfdf3e Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
* Add spacing between label and icon in native stylesMitch Curtis14 days1-0/+2
| | | | | | | | Otherwise the text sits right against the icon, which is ugly. Pick-to: 6.8 6.10 Change-Id: Id20e7633c43183d9209b90893095940f2a7ffc59 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
* Set icon size for native stylesMitch Curtis14 days3-0/+9
| | | | | | | | Otherwise they use the implicit size of the image. Pick-to: 6.8 6.10 Change-Id: I29a57bd9339574e7107a5fe471f2d246d7f97b86 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>