[Development] Feature freeze exception for QTBUG-95587
André Somers
andre at familiesomers.nl
Tue Sep 14 12:20:27 CEST 2021
Hi,
On 14-09-2021 09:12, Shawn Rutledge wrote:
>
>> On 2021 Sep 13, at 20:58, Elvis Stansvik <elvstone at gmail.com
>> <mailto:elvstone at gmail.com>> wrote:
>>
>> Yes, URLs are
>> vital to QML I guess, but are they *that* vital? The bar should be
>> quite high IMO. In the apps I've worked on, URLs and URL handling is
>> really not central at all.
>
> We’re talking about potentially a lot of Image items though, Loaders,
> anything else that has a source url and gets used in a component which
> is instantiated in multiple contexts. If it looks like a path, it’s
> actually a URL. If it’s relative and Qt gets the base wrong, you need
> to worry about it. When 6.2 LTS comes out, we’re guessing a lot of
> apps will be ported, and this will come up a lot. It might cause some
> noise in Jira with the same bug report being written repeatedly: image
> doesn’t load, no idea why, it worked in Qt 5, blah blah. Even if they
> understand, they will be unhappy having to write this boilerplate
> Qt.resolvedUrl() all over, and still complain that Qt 5 worked better.
> But if we make a syntactic improvement: before you had to write
> Qt.resolvedUrl() and now you write something simpler, maybe that will
> ease the pain a bit?
I am wondering if the change was a good idea at all then. To me, it
feels like the change at the root of all this was not well thought out.
If it is expected that this change is going to hit so many users and
they need some facility to make it easier on them than littering their
code with Qt.resolvedUrl, it would perhaps have made more sense to go
the other way around and introduce an unresolved URL type, which can
then be resolved to a QUrl where needed without touching the default. It
feels like the support introduced for the more edge case use of
unresolved URLs as the default mode has ended up causing problems for
all those use cases where resolved URLs are needed. I don't _know_ what
discussion there has been around that at the introduction of this
change, but it _feels_ like it might be the result of a rushed in change.
And now, another fundamental change is suggested again to patch up the
problem caused by the first change.
I would suggest seriously considering reverting changes that cause the
issue, and solving the need for being able to handle an unresolved URL
in a different, backwards compatible way.
Perhaps something along these lines would be possible:
A URL in QML can be resolved or unresolved. If a URL is constructed for
a string (like we have been doing for ages in QML), it is directly
resolved automatically. If you need an unresolved URL, you use another
syntax to construct the URL setting some flag on it to indicate it needs
to be resolved at some later point using another context. Syntax could
be either some constructor function (like Qt.resolvedUrl()) or perhaps
as a fully fledged type `Url{url: "someUnresolvedUrl"; unresolved: true
/*=default*/}`.
Cheers,
André
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20210914/1d1c5fee/attachment.html>
More information about the Development
mailing list