From Fedora Project Wiki
m (Minor format fixes.)
(Final GSOC draft submitted.)
 
Line 1: Line 1:
= Chosen proposal: Adwaita and HighContrast style for QtQuickControls =
= Chosen proposal: Adwaita and HighContrast style for QtQuickControls =
I would like to work on and implement this proposal, if possible.


== OSS related work, contributions ==
== Summary - what is the proposal about ==
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.
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 ==


== Relation to OSS software ==
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.
In my very first years of using computers, I have received a boxed copy of SUSE. Yes, I know, it's not Fedora Core - but as far as I am aware there were no boxed Fedora Core copies back then. At least, not in my country. So I really loved all the different environments, the armada of programs available right out of the box and the DVD. And they were all free. It was surprising and awesome at the same time.


There was a bit of pause here because the country lagged behind in terms of internet, and without internet and Linux users around, you were not able to really do much. So as soon as I had my first always-on connection set up, I have started using different distributions, like most users do. Started out with Ubuntu, Debian, but I think I have tried all major and minor distributions (not kidding). Realized I enjoy fresh software and rolling release. That's when I moved to Arch, but updates broke half my system without notice. Moved to Sidux - it was truly a great system with a dedicated userbase. The IRC they had was amazing, it was based on Debian sid, it was blazing fast, yet stable.  
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.


Sadly the project ended after a while. During the years I have already used Fedora Core and then Fedora off and on. Once Sidux ended I went to Fedora and I  noticed how blazing fast it was. I know this seriously sounds like snake oil but I am not kidding. The KDE desktop it had, for example, had no useless effect and it flew. And then another thing hit me after being hooked on rolling rock release model - that I received fresh software. It's fast, stable, and the software is fresh. What's not to like?
== 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.


== What am I studying, why? ==
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.
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.<br />
Why did I start my studies here? Well, I was "the computer guy" who fixed things. Then my school teacher showed me programming and there was no stopping.<br />
Will I code for the rest of my life? I enjoy coding, I worked as a programmer (intern/student), I enjoyed it. But you never know what life brings. <br />
I also love working with Linux, administrating systems, deploying things - so who knows. We will see. :)


== Why do you want to work with the Fedora Project ==  
== OSS related work, contributions, relation to OSS ==
Because I like Fedora and hopefully this will be a chance to learn more about the inner workings.<br />
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.
How the organization works, how work is done inside the distribution and so on.<br />
This opportunity will also provide me a way to "see inside", where I could help out once the program is finished.


== Do you plan to continue contributing to the Fedora Project after GSoC? ==
== What am I studying, why? ==
First and foremost there is the proposal I would like to work on. <br />
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.
If I get accepted I want to complete it, deliver a complete product.
<br />
I am fairly sure there will be "we could also do this" parts about it. I will finish those once the program is done.<br />
There was already something mentioned by the mentor that would be a nice task.<br />
Once all is done, I have experience with packaging. <br />
As I wrote just in the previous section, I will know a lot more about the project once the program concludes.


== Why This Project? ==
== Why pick me over the other students? ==
Because I checked all the projects on the GSOC 2017 page and tried looking for familiar projects that I used, enjoyed.<br />
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.
And I thought it would be great to contribute back something while learning new things.


== Which specific project interests you? ==
== Why do I want to work with the Fedora Project ==
Adwaita and HighContrast style for QtQuickControls
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.


== Have you contacted the mentor(s) listed for the project? ==
== Contributing to the Fedora Project after GSoC ==
Yes, I have contacted the mentor as soon as possible, then I kept in touch as much as possible during the open period.<br />
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.
Thanks to his help I learned how QuickControls theming works, how the widgets are styled.<br />
How to track down if something is not displayed, how to see the valid attributes for each item.


== What relevant experience do you have for this project? ==
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.
During my studies I had several programming classes. During my first year of uni, I also worked at companies as a developer.<br />
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 built software, trying to fix broken updates, trying to debug issues, trying to help others. But, if you are reading this, I am sure you know how it is. :)


== What do you want to gain from this project? ==
== Have you contacted the mentor listed for the 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.<br />
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.
- Learn about how the Fedora team works together, how the project works.<br />
- "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.<br />


== Describe this project in your own words. What does it mean to you? What do you think the final deliverable is? ==
== My relevant experience for this project ==
It will provide a unified look for QtQuickControls applications on a Fedora workstation installation. Which install, I think represents the majority of desktop installations.
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.
To me, it means the desktop will have a neat look which I really like. I have been in love with the customization since Beryl was a thing.
Since then I messed with KDE themes, GTK, Qt engines, Icon themes, anything you can think of.


If you used KDE back in the 3.0 and early 4.0 days, you know how hard it was to set up a unified, good looking desktop.<br />
== What do I want to gain from this project? ==
Things are in a much better shape today, a lot of good work has been done to achieve this.<br />
* 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.
There is still work to be done - such as this idea, that I would like to implement.  
* Learn about how the Fedora team works together, how the project works.
<br />
* “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.
The final deliverable I think is having a complete Adwaita and HighContrast theme for QuickControls by the end of the period.


== Why should we choose you over other applicants? ==
== My plans from May to September ==
That is a good question. I think this is the hardest question asked here.
(eg: Exams in university, internships, vacations..etc)
I mean, I am not perfect. But I will try my best.


== Propose a rough schedule for this project. Ideally, you will have regular deliverables throughout the entire period. ==
There may be some end-of-the-year exams in the very beginning of May, but that is it.
Thanks to the mentor I have managed to style widgets already. So I think that will be the first step to creating a full set of widgets.<br />
No vacation.
Once I am done - and if everything goes as planned - I will work on the Gnome loading part to test my widgets on it as well.<br />
By "goes as planned" I mean I am not running out of time in the first period.


So if all is well, I have the Gnome load check done, and I have my not final widgets for Adwaita.
The second phase I would start working on HighContrast and CMake. See if I can get things to "automate". (Build, copy, install, run.)<br />
This should not take that long, so in the remaining time I would finish up Adwaita.


The third phase the rest of the widgets will be polished - tested - see if anything is broken / should have something added/taken away.<br />
Thank you for reading my proposal.
As I mentioned earlier the possibilities are nearly endless with Styles.
I am really looking forward to working with the Fedora team and my mentor!


Again this is only a very, very rough estimate. From the very first day, I will be in touch with my mentor.<br />
Yours sincerely,
There is the public blog asked by Fedora, and I will have my own shared Google Docs document shared with my mentor.<br />
Zsolt Peter Basak
Then there will be a bug tracker as well to track all the little things that I might find and forget along the way.


== What are you specific plans from May to September (eg: Exams in university, internships, vacations..etc) ==
There will be end-of-the-year exams in the beginning of May, but that is it.<br />
Who would have a vacation while you can code?<br />
But no, seriously, no such thing planned.


<br />
<br />


--[[User:Zspb|Zspb]] ([[User talk:Zspb|talk]]) 19:27, 31 March 2017 (UTC)
--[[User:Zspb|Zspb]] ([[User talk:Zspb|talk]]) 19:27, 31 March 2017 (UTC)

Latest revision as of 14:47, 3 April 2017

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)