Falkon: Add qt quickcontrols{, 2} as optional dependencies for QML extensions

Juraj Oravec jurajoravec at mailo.com
Thu Feb 16 21:20:49 GMT 2023


Hello again,

> I was actually just (as in 3 minutes ago) discussing a very very
> similar topic with TQtC folks. The problem with QML is that there is
> no way to know beforehand that you depend on a certain qml module,
> except maybe looking at the source code of the application itself.

You are exactly right on this.
We have no way of knowing in advance what is needed, that is why I 
thought of adding optional dependencies, at least as an example.

> Yes, we could make Falkon depend on more QML packages, but what would
> happen if at some point the whole set of Falkon extensions covers 80%
> of the QML world? Should a user install that amount of QML modules
> "just in case" it is needed at some point?
> 
> If Falkon can use QML in it's extensions *ideally* it should be making 
> explicit which qml modules it needs.

There are 2 categories for this.
1. It could be a QML extension directly included in Falkon source code.
2. A "random" extension provided on the Falkon store.

In case "1." the dependency should be listed, but we do not have 
extensions like that. The integrated extensions are mostly C++ based 
(some in Python, but I found that many distributions do not ship it for 
multiple reasons).

In case "2." it is questionable how it should be handled by 
distributions. My opinion on this is that some basics should be provided 
At least on AppImages, Snaps, Flapaks and portable builds. In case of 
distribution package I would go with optional dependencies.

> So the question is: what is exactly/how do you define a QML module? The 
> approach at Debian (which I'm not saying it's correct or "the law",
> just our approach) is:
> 
> https://qt-kde-team.pages.debian.net/qmlmodulesnaming.html

I don`t know this QML very much, and that is also why I asked here and 
provided my thoughts on this issue. From my experience with using Debian 
based distribution I remember that Debian packages are often cut to very 
small pieces which may be a disadvantage in this case.

> If we could somehow tell the user "in order to install this extension
> you need foo and var QML modules" then it would be just great.

This is a bit tricky but it can at least partially be done (I think). In 
Falkon the extension loader now prints to the console the error message 
provided by QML component when it failed to load the extension. This 
contains at least a module name which is missing and maybe more 
information can be extracted (we can get a list of QQmlError) and 
presented to user in more visible/sensible way. Here it will fall on 
distribution to provide packages with similar names, which I know from 
experience can be tricky.


Conclusion (for now):
I will work on showing user the information when the QML extension fails 
to load to let him know the reason.


Thank you for your opinion.

Best regards,
Juraj



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/distributions/attachments/20230216/5c622f5d/attachment.sig>


More information about the Distributions mailing list