Hello again ! This is my GSoC final project report blog, so this is going to be a very simple and straightforward post without pictures(..but just one !) and jokes ! It will give you all the information about what work we did during GSoC and point you towards code and documentation produced during the project.
This will describe how the code written and modified by me eventually ends up in the master branch of the project through a careful process of code-review and testing and rebasing. Both GNOME/Nautilus and myself maintained a seperate feature branch for GSoC.
- Work Branch –apoos-maximus/nautilus : wip/apoosmaximus/gsoc2020
- GSoC-Staging Branch – GNOME/nautilus : wip/apoosmaximus/gsoc2020
The work I did was performed on the work branch which is obtained from my fork of GNOME/nautilus : master. A pull request was opened from my work branch to the GSoC-Staging-Branch maintained by GNOME/nautilus. After code-review and testing by my mentor Antonio, the code was merged into the staging branch. Later on when the main project goal was achieved the staging branch was rebased appropriatly and merged into GNOME/nautilus : master.The GSoC-Staging-Branch was updated weekly, with Merge Requests which represented the goals for the particular week.
What work was done ?
- Building the Basic Page : UI building code in the function
create_basic_page ()was ported to use GtkBuilder template.
- Building the Permissions Page : UI building code in the function
create_permissions_page ()was ported to use GtkBuilder template.
- Building the Open-With Page : UI building code in
create_open_with_page ()was ported to use GtkBuilder template.
- Code Cleanup : the functions who lost their functionality to GtkBuilder were dropped from the codebase
- Code Refactoring : Here we made use of modern GLib utilities for dynamic memory management, to prevent memory leaks.
- Finishing Properties Dialog : Making use of coding best-practices, and modifying the UI to stick to the GNOME-HIG guidelines, and fixing existing bugs in the properties-dialog.
- Stretch Goals : * porting Ctrl+S dialog to GtkBuilder
- porting list columns dialog : It was planned in the proposal but cancelled later as porting it to GtkBuilder offered no advantages over the current Implementation.
What was merged ?
Given below is a list of Merge Requests which were merged into the GSoC-Staging-Branch and eventually into the master as well :-
- Inherit GtkWindow instead of GtkDialog : GSoC week 1
- Building Basic Page using GtkBuilder template : GSoC’ 20 Week 2 & 3 & 4
- Building Permissions Page using GtkBuilder template : GSoC’ 20 Week 5 & 6
- Finishing Basic, Permissions page, and Start porting Open-With Page : GSoC ’20 week 7
- Code Clean-up : GSoC ’20 week 8
- Building Open-With Page and dropping
NautilusMimeApplicationChooserclass : GSoC ’20 Week 10
- Basic styling, Restoring
Escto close property of properties-window : GSoC ’20 Week 11
- Restyling of UI based on GNOME-HIG : GSoC ’20 Week 9
- Code Refactoring and Modernization : GSOC ’20 week 11 part-II
- Merge GSoC feature branch into master branch : Port Properties to GtkBuilder
What hasn’t been merged ?
- Building Ctrl+S dialog using GtkBuilder : WIP: Porting Ctrl+S dialog to use GtkBuilder
Current Status : It’s still under review and expected to get merged soon.
What’s Left to do ?
Well, Everything that was planned during the project proposal has been achieved and merged into the master branch, nevertheless we do have future plans for the properties-window’s design.
The Blog posts I wrote for each deliverable are summarised below in the form of a table
|Milestone||Merge Request||Blog Post|
|GSoC Begins||–||The first Contribution, GNOME & GSoC|
|Building the Basic Page and inheriting GtkWindow||Inherit GtkWindow instead of GtkDialog, Building Basic Page using GtkBuilder template||The First Milestone|
|Building the Permissions Page||Building Permissions Page using GtkBuilder template||The Second Milestone|
|Completing Basic and Permissions Page||Finishing Basic, Permissions page||Revisiting Basic and Permissions Page|
|Building the Open-With Page||Building Open-With Page||The Final Piece|
|Code Cleanup||Code Clean-up||Celebration is in Order|
|Code Refactoring||Code Refactoring and Modernization||Celebration is in Order|
|Finishing Properties Dialog||Restoring "Esc" to close,HIG Restyling||Celebration is in Order|
|Stretch Goals||Port Ctrl+S dialog to GtkBuilder (under review)||(under review)|
|GNOME Conference – GUADEC||–||My First GUADEC|
What are Future Plans ?
The future plans involve a complete redesign of the properties-window with the help of our new-found powers of UI modification which this project offers us. We are going to begin with dropping the GtkGrid widget and using GtkListBox instead. The design mockups which would be used for the same could be found here : Modernize the appearance of Properties