[Development] [Google Summer of Code] [Project Ideas] Qt Quick Controls 2 Sailfish Silica Style
Alexander Akulich
akulichalexander at gmail.com
Fri Apr 6 17:39:58 CEST 2018
Hi all,
I highly doubt that it can be done as a part of GSoC and I don't see
any point in moving this to QtProject as we don't have Sailfish OS
platform upstreamed. We just need this style to make QQC2 applications
look native on Sailfish OS. I think that we'll have to rely on
closed-yet components and the style is not going to look nice with
mocks.
That said, I see a number of issues and I hope that we'll discuss and
agree on some changes to the QQC2 API:
1) I would like to propose ComboDelegate — a pair of ComboBox and
Label, combined in a platform-specific way (similar to CheckDelegate
and RadioDelegate).
2) We also need a delegate to display a label and an associated value.
It is named "DetailItem" in Silica, but I would agree to go with a
name like ValueDelegate.
3) Yet another point is that we need to properly style delegate
descriptions, so I want to propose "description" property at least for
Combo, Radio and Switch delegates (we even don't have a 'buddy'
property here, though it still would be very hacky to go in this way).
Probably it makes sense to start another thread to discuss Qt Quick
Controls 2 API, but I need at least three weeks to think and
experiment with what we have right now. :-)
My work is available at
https://git.merproject.org/Kaffeine/qtsilicastyle (compatible with Qt
5.9 and 5.10), but I don't think that it can be interesting for anyone
in its current shape.
On Fri, Apr 6, 2018 at 4:11 PM, Alexey Andreyev
<yetanotherandreyev at gmail.com> wrote:
> Got it, thank you, Mitch! :)
>
> Yes, I have contacted Jolla devs, got answer:
>
>> Providing Sailfish support for Qt Quick Controls 2 would definitely be
>> valuable. Sailfish OS cannot build app ecosystem alone, and improving the
>> cross-platform story would help us getting Qt app contributions from other
>> platforms, and help 3rd party developers target multiple platforms like
>> Android and iOS with the same code base.
>
>> You are free to use what license you choose, but I would recommend
>> something permissive like BSD3 or LGPL2, which we also use in Sailfish OS
>> open source side
>
> Silica Componets source is not public, yes :( But I've got device where I
> have all up-to-date qml files and I'm it as hint.
>
> I've also played to run armv7h binaries from device repos (rpm packages) on
> archlinuxarm (wrote PKGBUILDs) with all the deps and some hacky qt5 linkage
> address patching for .so lib, it staring and not crashing but asking for
> more deps yet (like image resources deps, so work in progress)
>
> Alexander Akulich (Kaffeine) from Open Mobile Platform is helping me a lot
> too, he recently created:
>
> https://git.merproject.org/Kaffeine/qtsilicastyle
>
> So I'm going to contribute there.
>
> For now current state is:
>
> 5.10 private API chaged compating to 5.9:
> https://github.com/qt/qtquickcontrols2/commit/b18b6375d170ce02dc5a627bfb69ca49046ee05c#diff-7467cf01ad998520d6d9d2995867e8e2
>
> Alexander is testing with 5.9 LTS on SailfishOS
> and me with archlinuxarm 5.10
> so I'm thinking now how to provide better compabilty for both :)
>
> looks like #ifdef approarch is not helping yet, should investigate more time
>
>
> 2018-04-06 15:47 GMT+03:00 Mitch Curtis <mitch.curtis at qt.io>:
>>
>> Hi.
>>
>>
>>
>> We think this would be best in a repo outside of qtquickcontrols2.git.
>>
>>
>>
>> The process for creating a playground repo is documented here:
>>
>>
>>
>>
>> http://wiki.qt.io/Creating_a_new_module_or_tool_for_Qt#Getting_started_with_new_ideas_on_Qt_Project.27s_Playground.
>>
>>
>>
>> Have you discussed this project with the Sailfish devs, by the way?
>> Perhaps they would be interested in integrating your efforts upstream.
>>
>>
>>
>> One potential problem I see is that it seems that the source code is not
>> public:
>>
>>
>>
>>
>> https://together.jolla.com/question/6780/request-sourcecode-for-silica-core-components/
>>
>>
>>
>> The closest thing is this repo, which doesn’t seem to be complete:
>>
>>
>>
>> https://github.com/dm8tbr/sailfishsilica-qt5
>>
>>
>>
>> How do you plan on implementing the style in light of this?
>>
>>
>>
>> Speaking for myself: I would be happy to answer any questions you may have
>> with regards to implementing a Controls 2 style, but I don’t think I can put
>> aside enough time to be a mentor for this.
>>
>>
>>
>> Cheers.
>>
>>
>>
>> From: Alexey Andreyev [mailto:yetanotherandreyev at gmail.com]
>> Sent: Tuesday, 3 April 2018 2:14 PM
>> To: Aleksey Kontsevich <tantrido at ya.ru>
>> Cc: Mitch Curtis <mitch.curtis at qt.io>; development at qt-project.org
>>
>>
>> Subject: Re: [Development] [Google Summer of Code] [Project Ideas] Qt
>> Quick Controls 2 Sailfish Silica Style
>>
>>
>>
>> Hi, Aleksey Kontsevich! Thank you for your support, I do agree that
>> Sailfish OS is receiving a huge contribution from Russian speaking
>> developers and focusing on other local markets too. There's also related
>> AsteroidOS community about smartwatches. They have a demo [1]
>>
>>
>>
>> Talking about popularity: from my point of view, while Microsoft is
>> providing their Metro unified look for desktop and Intel-based tablets (and
>> Xbox) for example, looks like they do not have any plans for new mobile
>> devices (I mean arm-based) to provide. While Sailfish OS is mobile OS with
>> GSM-stack support for real arm-based systems. [1] Correct me if I'm wrong, I
>> do not want to mislead anyone.
>>
>>
>>
>> Mitch Curtis, thank you for your feedback sincerely. I do understand your
>> skepticism about yet another controls in mainline to support. (but I do not
>> share this personally :)
>>
>> I'm new to qqc2 internals. I've cloned qtquickcontrols2 repo 5.10.1 brach
>> (to play on my Arch Linux system). Dependency from some private APIs looks
>> tricky for me at first glance. I'm trying to sort out. I'm not against
>> providing silica style as some custom repo, the result I want to get is open
>> source solution to run Qt application in my personal environment with native
>> Silica look and feel. Will be happy to get any hints about basic repo draft
>> in that case (should I look at Kirigami approach?)
>>
>>
>>
>> Anyway, as I wrote at my GSoC proposal, GSoC campaign is just money
>> support, I love Silica style, using Sailfish OS for several years and can't
>> stand that no one is willing to port it to modern QQC2 approach :) I guess
>> it could radically change skepticism about qt quick controls approach in
>> general from ios and android developers.
>>
>>
>>
>> [1]: https://www.youtube.com/watch?v=Rd86KTs2Les
>>
>> [2]: https://wiki.merproject.org/wiki/Adaptations/libhybris
>>
>>
>>
>> 2018-04-03 13:38 GMT+03:00 Aleksey Kontsevich <tantrido at ya.ru>:
>>
>> Hi all, my 2 cents here:
>>
>> >The controls look nice, but my concern is how relevant the Silica style
>> > is these days (in the context of how many people are developing apps for the
>> >Sailfish OS).
>>
>> Sailfish OS become VERY popular in Russia and in Latin America, and for
>> people who wants their data and communication be secure. Market in Russia
>> growing very fast, Sailfish OS devices are hits of sales, leading
>> universities created courses for Sailfish OS, government certified
>> it for corporate and government use and since 2019 all mobile applications
>> from national software list (government and corporate use) should work in
>> Sailfish OS (according to import replacing law all applications should be
>> Russian-native and secure).
>>
>> --
>> Best regards,
>> Aleksey
>> Linked in https://www.linkedin.com/in/alekseykontsevich
>>
>>
>>
>> 03.04.2018, 13:13, "Mitch Curtis" <mitch.curtis at qt.io>:
>>
>> > Hi Alexey.
>> >
>> > The controls look nice, but my concern is how relevant the Silica style
>> > is these days (in the context of how many people are developing apps for the
>> > Sailfish OS).
>> >
>> > For each style we currently have, I would justify their inclusion into
>> > qtquickcontrols2.git for the following reasons:
>> >
>> > Default - extremely high performance at the cost of a very basic
>> > appearance. Tries to be neutral in terms of looks.
>> >
>> > Fusion - bridges the gap in terms of Desktop styling. An additional/more
>> > specific point that I think it is important here is that the controls are
>> > more compact (smaller) than any other pre-built style we offer (the Material
>> > style has a dense variant now, but that’s still larger if I recall
>> > correctly).
>> >
>> > Imagine - puts power in the hands of designers, frees up time for
>> > developers.
>> >
>> > Material - very relevant in terms of Android market share. Looks really
>> > nice; a good candidate for “non-native” cross-platform apps.
>> >
>> > Universal - relevant in terms of Windows market share.
>> >
>> > As mentioned, I do think the Silica controls look nice, but that’s the
>> > only justification I could think of for including them in
>> > qtquickcontrols2.git. For each new style we add, the maintenance cost
>> > increases, so this is something that we need to consider.
>> >
>> > What is your opinion on this?
>> >
>> > Cheers.
>> >
>> > From: Alexey Andreyev [mailto:yetanotherandreyev at gmail.com]
>> > Sent: Friday, 23 March 2018 8:49 PM
>> > To: Mitch Curtis <mitch.curtis at qt.io>
>> > Cc: development at qt-project.org
>> > Subject: Re: [Development] [Google Summer of Code] [Project Ideas] Qt
>> > Quick Controls 2 Sailfish Silica Style
>> >
>> > Thank you Mitch for the feedback!
>> > I've also tried to record current controls on a real device:
>> > https://youtu.be/T-qUZMuTGqw (hope not only 360p will be available soon)
>> >
>> > 2018-03-23 21:55 GMT+03:00 Alexey Andreyev
>> > <yetanotherandreyev at gmail.com>:
>> >> Silica cheat sheet:
>> >>
>> >> https://sailfishos.org/wp-content/uploads/2016/06/component_cheatsheet.png
>> >> Theme cheat sheet:
>> >> https://sailfishos.org/wp-content/uploads/2016/06/theme_cheatsheet.png
>> >> Icon reference:
>> >> https://sailfishos.org/wp-content/uploads/2016/06/icon_reference.png
>> >> code example:
>> >> https://gist.github.com/jaymzznoori/a980314f8248e0a1e7904c29c88ecdf3
>> >>
>> >> Youtube video with timestamp for platform-specific PulleyMenu element
>> >> example: https://youtu.be/jByW7UNmbxU?t=11m38s
>> >>
>> >> 2018-03-23 21:40 GMT+03:00 Mitch Curtis <mitch.curtis at qt.io>:
>> >>> Hello.
>> >>>
>> >>> Are there any screenshots of it? I read that entire page and the
>> >>> Silica docs but couldn’t see anything.
>> >>>
>> >>> Cheers.
>> >>>
>> >>> From: Development
>> >>> [mailto:development-bounces+mitch.curtis=qt.io at qt-project.org] On Behalf Of
>> >>> Alexey Andreyev
>> >>> Sent: Friday, 23 March 2018 5:39 PM
>> >>> To: development at qt-project.org
>> >>> Subject: [Development] [Google Summer of Code] [Project Ideas] Qt
>> >>> Quick Controls 2 Sailfish Silica Style
>> >>>
>> >>> Hello!
>> >>> My name is Alexey, what do you think about Silica Style for QQC2 as a
>> >>> gsoc project?
>> >>> I have some notes here: http://aa13q.ru/qqc2-silica-style-en/
>> >>>
>> >>> and want to create a proposal.
>> >
>>
>> > ,
>> >
>> > _______________________________________________
>> > Development mailing list
>> > Development at qt-project.org
>> > http://lists.qt-project.org/mailman/listinfo/development
>>
>>
>
>
>
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
More information about the Development
mailing list