From Fedora Project Wiki

Chosen proposal: Adwaita and HighContrast style for QtQuickControls

Summary - what is the proposal about

The proposal consists of three parts. The main part of the contribution will provide a set of Styles for Qt Quick Control applications. The second part is in charge of the installation of the styles. And the third part is the implementation of loading the style on Gnome by default.

How would the people benefit from the implementation

It will provide a unified look for Qt Quick Controls applications on a Fedora workstation installation. Which represents the majority of desktop Fedora installations. And since it is a style that any Qt Quick Controls application can use and the contribution will be open-source, any other distribution will also be able to use the new looks. Just like the style, the rest of the contribution can be also used up for any distribution.

What have I done so far in preparation, during preparation period

  • First and foremost. I have kept in touch with the mentor of the proposal.
  • Right off the bat, I have quickly learned about the difference between Qt Quick Controls and Qt Quick Controls 2.
  • Learned how Qt Quick Controls themes work, how they are built up.
  • Learned a how Style can be manipulated in Qt Quick Controls/QML.
  • Managed to modify the default themes a bit, so I would see the changes go live globally.
  • Discovered how to modify themes in depth, how to modify various aspects of the widgets.
  • Learned how one can query the state of a widget within the QML.
  • Gathered the Adwaita files which then would be used up. And already being used up.
  • Managed to create a set of widgets with the Adwaita style.

Timeline - schedule for the project

Note: During the work period, I plan on keeping in touch with my mentor. He is experienced and has already helped me out by clarifying things during our email exchanges. Thanks to his help I have managed to style a few widgets already. During work period I will adjust each the timeline as needed.

First phase:

  • Since I have a few widgets already in progress, the completion of the Adwaita style will be the first step.
  • Once the Style takes shape, I will move on to the Gnome loading aspect of the proposal. Because it is a crucial step to properly check and verify the contribution.
  • If there is enough time I will complete the CMake/installation part.

Second phase:

  • At this point, I will work on creating the style for HighContrast.
  • Time for bug squashing and finishing up any widget details there are left.

How will I keep track of my progress

I will use a bug tracker service to keep track of the tasks and bugs left. Then the public blog that every Fedora GSOC student will have to contribute to. And I will create a Google Docs document where I will blog my progress by date. A file that will share with my mentor, so he can monitor progress and comment on it, contact me if he notices something.

By that, I absolutely do not mean that I plan to work alone. Far from it, I believe this - besides the regular email exchanges - would only help interaction. And I think it’s also helpful for myself to see where I have been spending time and what other areas might require more attention.

Why this proposal, project

After opening the GSOC 2017 page for the first time and checking out the projects and ideas, I have made up my mind quickly. My biggest aim was to find an idea that others would benefit from and allow me to contribute back while also learning new things that I am interested in. Quite a few conditions, but then I just managed to find such an idea under the Fedora project.

After opening each project I found interesting and checking out the ideas, I ended up with this one. It would allow me to learn about QML, Quick Controls, Qt, CMake, and Gnome.

OSS related work, contributions, relation to OSS

Not sure if this counts as OSS work - but I have helped out on various IRC channels including the official Fedora ones for long years. I am also present on StackExchange sites including AskUbuntu, Unix, and SuperUser, trying to help folks whenever I can. I have also done quite a bit of translation work during the years for open-source projects. Everything's translation which is a really useful tool on Windows also has my name in the contributors. At the moment I am the server and forum administrator for the qBittorrent team, and I try to help the project wherever I can. I also steer the Hungarian translations by double-checking the submitted translations, fixing the mistakes and submit my own strings. I also handle the domains of the project and help to organize the reports on Github occasionally.

What am I studying, why?

I am studying software development at the Hungarian Eötvös Loránd University. If everything goes well, I will graduate one year later from now. Started my studies here because I was "the computer guy" who fixed all “computer things”. In my school years, my teacher introduced me to programming and there was no stopping.

Why pick me over the other students?

This is the hardest question the Fedora project has. I have programming experience from the classes, from doing assignments and from working as a programmer. I am also an avid Linux user, who will try his best during the program.

Why do I want to work with the Fedora Project

Because I like Fedora and hopefully this will be a chance to learn more about the inner workings. How the organization works, how work is done inside the distribution and so on. This opportunity will also provide me a way to "see inside", where I could help out once the program is finished.

Contributing to the Fedora Project after GSoC

By the end of the program, I will know a lot more about the Fedora project. How it works, how it operates. With this knowledge, I will know where my skills would be most useful.

The proposal comes first, though. If I get accepted I want to make sure I deliver a complete product. During the program, there will be "I could also do this" moments. The mentor also mentioned other things that could be implemented during one of our exchanges.

Have you contacted the mentor listed for the project?

Yes, I have contacted the mentor as soon as possible, then I kept in touch as much as possible during the application period. Thanks to his help I managed to quickly dive into QML and Quick Controls styles. Thanks to the skipping stone, I managed to quickly learn how Quick Controls theming works, how the widgets are styled. How to track down if something is not displayed and how to see the valid attributes for each item.

My relevant experience for this project

I have already completed all programming related classes. During my first year of uni, I also worked at companies as a student-intern developer. And last but not least, thanks to my distro hopping and heavy Linux use, I got my hands dirty thanks to making my own packages, trying to update my system with my own compiled software, trying to fix broken updates, trying to debug issues, trying to help others.

What do I want to gain from this project?

  • Experience. Each aspect of the proposal looks interesting - such as how the Styles work, how could I implement the best looks possible - the options are vast. Then figuring out how GNOME can be manipulated, learn more about Gnome's inner workings. And CMake. Build systems are useful for home projects, at work, everywhere. And let's not forget it's a useful knowledge when you are trying to fix things.
  • Learn about how the Fedora team works together, how the project works.
  • “Fun." I know this sounds weird, but you get this satisfaction from problem-solving. When you work hard on a problem and you finally get it working. It's also great that you make a team with the mentor, and that the proposal will result in something that people will be using.

My plans from May to September

(eg: Exams in university, internships, vacations..etc)

There may be some end-of-the-year exams in the very beginning of May, but that is it. No vacation.


Thank you for reading my proposal. I am really looking forward to working with the Fedora team and my mentor!

Yours sincerely, Zsolt Peter Basak



--Zspb (talk) 19:27, 31 March 2017 (UTC)