-
Notifications
You must be signed in to change notification settings - Fork 199
Calls order of q_invokable method #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 6.2
Are you sure you want to change the base?
Conversation
|
Oliver Eftevaag seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
Instead of forcing a re-sign, we remove the signature first, which makes the operation silent in the success case. Change-Id: Ic312eacfd87a6eb5795a6bd1fe841b9c37d8359d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
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>
... 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 7b29ed6 (coerceValue()) and d0f4e0c (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>
... 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 e846864. Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-142146 Change-Id: I38e9e8374e51d147cdaf4276fa791489117ee4e3 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Its unused and unreadable. Task-number: QTBUG-142187 Change-Id: I9425347860ccd5375ad147c999a7ad8404929327 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
It has only one usage, has one line of code and clutters the already too full DomItem interface. Replace the only usage with the function code. Task-number: QTBUG-142187 Change-Id: I38349c1130bb382b344241710be6d71e7426cb94 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Move the code from dvValueLazy to its only usage. This helps uncluttering the DomItem interface that has too many of these methods. Task-number: QTBUG-142187 Change-Id: I31baf9a9ca96c2fa538b3eacd6ff5b2ce64698cd Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Move the code to its only usage, and remove the method. This helps unclutter the DomItem interface. Task-number: QTBUG-142187 Change-Id: I2b07a97eff0e2b6b20c6e2f27dd8138856feb6e5 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
Both only have one usage and are one-liners. Move them to their single usage location. This helps unclutter the DomItem interface. Task-number: QTBUG-142187 Change-Id: I583cf41cf31584284d16608d8cc1b7f3303a87d6 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
DomItem interface is already too cluttered, remove the comment indicating that yet another dv* method should be added. Task-number: QTBUG-142187 Change-Id: If4b76c031de663b7231fb7cf938048b51e027201 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
Move the code to the single usage of dvWrap, This unclutters the DomItem interface. Task-number: QTBUG-142187 Change-Id: I9482f0241330b25075600d62563770d5e6cba8f5 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
It has two usages and just calls a constructor. Move the code to their usages. This helps unclutters DomItem interface. Task-number: QTBUG-142187 Change-Id: Id602a5e833b42e4b0f60b0b1ddb62a11634bc382 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
Change-Id: I9833c9c690b89e57ca511dd2a43e7a979c97367a Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
QtC has a well-tested diff calculator which works in the core of DiffEditor plugin. Adapt it in qtdeclarative to be used as qmlls utility by modernizing a little and removing the unnecessary api that won't be needed. The first use case will be shifting highlights based on the calculated differences. Also, regexp-based highlighting would perform only on the diffed context rather than the entire source code. Task-number: QTBUG-140645 Change-Id: I5e88e4c6d77c1432b25eb226f9f5444928b9b156 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Add logic that shifts existing highlight tokens when the document is modified and becomes invalid. Introduce the applyDiffs helper, which takes a list of diffs between the current document and the last valid one. High-level strategy: Represent highlights as a map from offset to HighlightToken. Maintain a cursor into the old document that marks the current insertion point. For Diff::Equal, advance the cursor by the length of the equal text and leave all highlights unchanged. For Diff::Insert, compute insertion metadata and classify each existing token relative to the cursor. Tokens before the insertion remain unchanged. Tokens after the insertion are shifted forward by the inserted length. If the insertion is on the same line, adjust startColumn. If it contains newlines, update startLine and recompute startColumn. Tokens overlapping the insertion are expanded. If the insertion is in the middle of the token, extend the token until the first whitespace to avoid merging separate words. If the insertion begins before the token start, move the token start to the insertion point and adjust length and line or column values. After processing all diffs, build the shifted highlight set and swap it in. Task-number: QTBUG-140645 Change-Id: Ib0431c702100517e2658a48c8ae7f2ae141dbc8c Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Implement deletion handling for semantic highlight tokens so that tokens remain consistent after text removals. Classify tokens relative to the deleted range and apply one of: - keep tokens before the deletion - shift tokens after the deletion (adjust offset, line, column) - trim or move overlapping tokens (left/right fragment or drop) Add helpers for overlap detection, column/line adjustment, and an updateHighlightsOnDelete routine. Call it from Utils::applyDiffs. Add unit tests covering single-line and multi-line deletions. Task-number: QTBUG-140645 Change-Id: I55c1c41dc1bb58435d001a8960089b8b605ab1e9 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Task-number: QTBUG-140645 Change-Id: I72d3dbbe88f1902dc6f520cdefbc2577dea531ce Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Add a method to grab the owner of a method of a qqmljsscope, in the same way as ownerOfProperty() does. A later patch will use it to warn about shadowed methods. Task-number: QTBUG-141854 Change-Id: I21247151ee3d7d298329d0bdfb2f5e0e1dd51b33 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Warn when shadowing properties/signals/methods in qmllint. Move the already existing duplicate property check into its own static method warnForDuplicates, and extend it to check whether base types also have a property of the same name. Use it when analysing definitions of methods, signals and properties in qmljsimportvisitor to warn about shadowed properties. As a drive-by change, fix the sourcelocation of the duplicated property warning to point to the name of the property/signal/method instead of the "property" or "function" keyword. To avoid adding more testcases to the already big tst_qmllint::dirtyQmlSnippets_data(), create a new tst_qmllint::shadow_data() method for the shadow related tests, and make tst_qmllint::shadow() call dirtyQmlSnippet(). This allows to reuse the test code from dirtyQmlSnippet without making dirtyQmlSnippets_data grow even more. Adapt some existing test-cases by adding qmllint disable directives where shadowing was wanted, and disable the shadow category on tst_qqmljsscope (which does not make use of the qmllint code that reads qmllint disable directives), as it seems that tst_qqmljsscope tests that shadowing works as expected (shadowing is a feature, after all...). I guess this patch might need to be updated in the future once we have override and virtual properties in QML via QTBUG-98320. Make the qmlShadow warning non-critical for qmltc, as qmltc supports shadowing, to avoid breaking the qmltc tests. Task-number: QTBUG-141854 Change-Id: I74c1b413e2c19a0db34215b34a9b65d43fbef6ce Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Print the qml name of root file name components instead of its base type when using getScopeName. Task-number: QTBUG-141854 Change-Id: I53f830a03edeaf0a23251583d4fa20da9ee8f5d0 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Add some information what the original attribute is (a signal, method or property). Task-number: QTBUG-141854 Change-Id: Ia4c6ea889b99658df2a6f5ee80e7b5628e398c8c Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Fixes: QTBUG-141747 Change-Id: Icc194fb35da84f580b3bdfcb64944f5834b766dc Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
If the directory to be created or removed is at an absolute path, we can just as well use the root path to carry out the operation. The result will be as unrelated to the preview as any other mkdir/rmdir operation elsewhere. Task-number: QTBUG-141569 Change-Id: I156f230a7bbbd07215334649026319a977ff063e Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Found by GCC -Wnrvo, which we intend to add to headersclean. To fix, factor the tail part of the function into a private helper. This preserves git history on the complete original code, compared to the "usual" solution of wrapping the tail part of such functions in an IILE. Amends fa259ed. Note: The amended commit manually cherry-picked to 6.5, but only partially, and QQmlListProperty::toList() was not part of the pick. While this adds a new member function to a public class, this is forwards BC, because the added entity is a member function template. Member function templates are never part of the ABI, even if their class was inherited by a wholesale-exported class. Pick-to: 6.10 6.8 Task-number: QTBUG-142146 Change-Id: I3d559c6432b636608f94f29f03203111b6a95990 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
3 or 4 hex digit color names are fine, too: #abc is equivalent to #aabbcc and #abcd is equivalent to #aabbccdd Pick-to: 6.10 Change-Id: I2c6ed5926b921cb1a357bdaefbe456f845990b21 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
In a packaged build, svgtoqml is placed next to a qt.conf file. This caused it to fail to launch from anywhere except in its local directory, with an error that it could not find the QPA plugin. It turns out that this was triggered by trying to query the available QPA plugins before creating a QGuiApplication. We did this to avoid forcing the minimal plugin if it is not available, but other tools that hardcode this plugin does it unconditionally, so we do the same in svgtoqml. Pick-to: 6.11 Task-number: QTBUG-142792 Change-Id: I2b7c0aa20c251a8fbf4f2372b8bc5e0802e298b2 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
It seems that Q_UNREACHABLE triggers UB at runtime when hit in a release build, so remove it and log an error instead. Ignore the invalid part. Pick-to: 6.11 6.10 6.8 Fixes: QTBUG-142711 Change-Id: I445e46a6964f072a939cd6666c15c8d1ff5a0966 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
On macOS 26, the down indicator in editable ComboBoxes was drawn with scaling applied, causing it to appear distorted. In addition, the focus frame was misaligned for both editable and non-editable ComboBoxes. This patch ensures that ComboBoxes are drawn with 9-patch scaling disabled. Previously, enabling 9-patch scaling caused the down indicator to be scaled together with the background, resulting in incorrect rendering. The patch also adjusts margins to properly center the label and align the focus frame with the control’s frame. Pick-to: 6.11 6.10 6.8 6.5 Change-Id: I0aafd77dd7ec098589c92fbc161a530a777b1d91 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Previously, the padding was taken from NativeStyle.Frame, which effectively returned the margins from QQuickCommonStyle. These margins only account for the frame border width and nothing else. As a result, controls appear glued to the edge of a Frame when using the macOS style, unless the application explicitly overrides the margins. This patch therefore hard-codes margins matching those used by the Fusion style, giving Frame and GroupBox a bit more visual “air”, similar to the other styles. Pick-to: 6.11 6.10 6.8 6.5 Change-Id: I6a80530d07a43bcaa6761cf3fc2d8a14e1fd0977 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
The layout margins on macOS 26 was wrong, which meant a the focus ring on top of it would look really wrong (if button focus was enabled from system settings). This patch will adjust the layout rect so that it looks correct on macOS 26. Pick-to: 6.11 6.10 6.8 6.5 Change-Id: I828a4a25d3ffa58dd1fc942c25db1dcbb59f7525 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Adjust the focus ring slightly, so that it fits the TextField on both macOS 26 and macOS 16.4 (and before). Pick-to: 6.11 6.10 Change-Id: Iad1d23284f593a90a252bfdf7c5f6f4d79d309a9 Reviewed-by: Dilek Akcay <dilek.akcay@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
The title (content) margins for a button had different margins at the top compared to the bottom. The result was that the label didn't end up centered on the button on macOS 26. This patch will adjust the button title margins so that the button label ends up centered on macOS 26. It will also slighly adjust the margins on macOS16.4, and earlier, to make label (more) centered on those platforms as well. Pick-to: 6.11 6.10 6.8 6.5 Change-Id: Icd7571202add65ec312787b0aa94fd1bc49ef72a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
…r a theme change When macOS changes appearance, we need to inform the style that the system colors have changed. This patch will therefore listen for changes to the colorScheme and do just that. Since the colors we return should match the effective appearance, we need to wrap the NSColor calls inside an NSApp.effectiveAppearance block. Pick-to: 6.11 6.10 6.8 6.5 Change-Id: I282280909927136b85cd8f46f25892f825c8cb02 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Prevent auto-linking from occurring in places where QDoc will create an incorrect link. Pick-to: 6.8 6.10 6.11 Change-Id: I8a031a3545ea3a785e0cbe762e84c179899e694f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
The qmllint page describes qmllint as a standalone console tool, but users don't have to run it in terminal. The IDEs display qmllint output as you type. This functionality is included to the QML Language Server, which is used in IDEs. Fixes: QTBUG-139636 Pick-to: 6.11 6.10 Change-Id: Ib46116d341f59ae51a24504062e56ced8553b194 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Change-Id: I728f27668a5c2bdb4a8cd2e5e8384b6b076a1aa0 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
In theory you could call toString() without providing space for the return value. We generally check argv[0] before writing to it. Pick-to: 6.11 6.10 6.8 6.5 Change-Id: I496eca3f428d0f8452a5bc0b1cb8ea78ee3805bb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
We don't want to detach those containers by iterating. Change-Id: Ieb33fa37ed8013cd726211dfdabc80af3d238d7e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
affe09e caused the sidebar's text color to be the same as the background, making it unusable. Fix it by creating a binding pattern similar to Button.qml, except that it should use the same colors as FileDialogDelegate.qml. While fixing the text color, I also noticed that the background delegate for sidebar differed from FileDialogDelegate.qml, so lets make a reusable delegate that is used by both controls. Pick-to: 6.11 Change-Id: Ic220026c2271bac83fcc84827ffd993dfa793f1c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
In the SearchField testbench manual test for the macOS style, some warnings were appearing because the x and y positions of the indicators are used in this style, but are set to null in certain test cases. A condition was added to check whether the indicators are set before accessing their positions, preventing these warnings. Fixes: QTBUG-141882 Pick-to: 6.11 6.10 Change-Id: I1c7a208ff32e570e384a2c41689cbfbb6d218be6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
There is actually no guarantee that it's monotonic. Instead, use QElapsedTimer (we could also use monotonic_clock, but the Qt API is more convenient, except for the missing chrono return type). Pick-to: 6.11 6.10 Change-Id: Iccdc988d0ff54dd9403f99d05b2c22fe8459ebe2 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
QQmlImportInstance::resolveType is meant to resolve a type name to a type in the import represented by the instance. It should not find the QQmlType of a type sharing the same name in a different import. However. to find types defined in C++, it has to use QQmlMetaType::qmlType. It passes its URI to that function to filter out unrelated types. However, a directory import without a qmldir will have an empty URI. QQmlMetaType::qmlType will interpret this as "find the type in any module", which is obviously not what we want. Fixes: QTBUG-142407 Pick-to: 6.11 6.10 6.8 6.5 Change-Id: I45bcf1c764d7e7cf9d479283970587a4e6519ce4 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
We don't want clipRect to capture width and height. While technically that would make sense (after all, the clipRect does change if you modify width and height), it makes internal usage of the function problematic: We could end up creating binding loops if it's triggered by the width or height setter (which is the case with an upcoming change to transformChanged). Pick-to: 6.11 Change-Id: I3e19a9687a025e35969d16f300ca2d1b6fc8a624 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
...as well as to the cmake command to run svgtoqml at build time. Pick-to: 6.11 Change-Id: Ib9c2115f7ac34285cc5c9d67c64e2d2ebbcd738a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Pick-to: 6.11 Change-Id: I16d586f1a793206daa00c5a7d14b1fdac33f516d Reviewed-by: Robert Löhning <robert.loehning@qt.io> Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
…is null QQuickPopup::componentComplete() will automatically search for a parentItem in case there's no explicit binding on parent. Since componentComplete() also calls d->transitionManager.transitionEnter() in case visible was set to true via the visible property, it would make sense to simply set the visible member variable to true on a QQuickMenu::setVisible(true) call, and delay calling transitionEnter() on the transition manager until componentComplete() is called. If for whatever reason the parentItem is explicitly set to nullptr after componentComplete(), we can still prevent the menu from opening. I don't see any potential issues with having the safeguard in QQuickPopup::setVisible(), instead of QQuickMenu::setVisible(). Fixes: QTBUG-138193 Pick-to: 6.11 6.10 6.8 Change-Id: I869c81a6dc6977a4c7e1d88e2507ade08b84dabd Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
On WebAssembly, when clicking on a dialogs TitleBar, the dialog would just close. That's because the event would get forwarded to the dialog that the title bar belongs to, but since the non-client area is outside the dialog window, it would close itself. This behavior was unintended. Fix it by not closing the window if a non-client area was hit. Pick-to: 6.11 6.10 6.8 Change-Id: Id54da63e0eee22f9c3b01301762f633c99821255 Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Change-Id: Ia3da9ed5c163d9adf760f96471e07cc66297926a Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
Amends commit b5e586f. Fixes: QTBUG-141729 Pick-to: 6.11 6.10 6.8 Change-Id: Iecef73282837c38b0a65f04a52d83d148a58d2a6 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Fixes build error on macOS with -Werror: error: non-portable path to file '<QtGui/qguiapplication.h>'; specified path differs in case from file name on disk Amends 8a650ed. Pick-to: 6.11 6.10 6.8 6.5 Change-Id: I39287e9e1a6a45105b62eca5a882f3078a76ea7a Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
We were handling variable declarations both in VariableDeclarationList and in PatternElement itself. The same issue also occurs with catch statements. Avoid this by only inserting in PatternElement and removing the special handling of VariableDeclarationList completely, and by not inserting the identifier already when handling the top level catch statement. Pick-to: 6.10 6.11 Change-Id: Ibcfd583eda9a81f768f1e18ede51369401a50857 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Amending commit 9975c733be The previous commit introduced caching of path strings, as the same paths are typically used repeatedly. However, it failed to actually insert the generated strings into the cache. This patch amends that change by ensuring the cache is properly populated with the generated path strings. Pick-to: 6.11 Change-Id: I4222f083b722947b168f1dadfba265a9aa4be702 Reviewed-by: Doris Verria <doris.verria@qt.io>
Whenever three consecutive keyframes have the same value, the middle one is redundant. Simplify the produced QML code by removing such keyframes. The practical result is that consecutive PauseAnimations get squashed into one. For animated (morphing) paths, simplify further by detecting if two consecutive paths are identical. Then the second is redundant, so drop it and instead make the PathInterpolated factor point at the first one for the keyframe(s) for the second. Pick-to: 6.11 Change-Id: I7a77c73c6fd98f574fcf26f4dad45ca92a0def0b Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
The logic was performed in two different ways just a few lines apart. Change-Id: I2a4c964009edaee7c37421cb6ef4f95ea1935f7e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Use Q_D instead of getting the private manually through the static function on FixSuggestionPrivate. Change-Id: I138e5ac582cb6e3a88d79cc7944fc21e2dcdd7e2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
If there are 2 or more methods with the same name but reciving diferent arguments the QJSEngine Pickup the First One declared.
Example:
methodxyz(string)
methodxyz(objptr*)
It picks up the first one passing as argument a string and not the one that i was expecting an object as it was send.