GSoC final project report

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.

Project WorkFlow

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.

the project workflow

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 ?

  1. Building the Basic Page : UI building code in the function create_basic_page () was ported to use GtkBuilder template.
  2. Building the Permissions Page : UI building code in the function create_permissions_page () was ported to use GtkBuilder template.
  3. Building the Open-With Page : UI building code in create_open_with_page () was ported to use GtkBuilder template.
  4. Code Cleanup : the functions who lost their functionality to GtkBuilder were dropped from the codebase
  5. Code Refactoring : Here we made use of modern GLib utilities for dynamic memory management, to prevent memory leaks.
  6. 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.
  7. 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 :-

  1. Inherit GtkWindow instead of GtkDialog : GSoC week 1
  2. Building Basic Page using GtkBuilder template : GSoC’ 20 Week 2 & 3 & 4
  3. Building Permissions Page using GtkBuilder template : GSoC’ 20 Week 5 & 6
  4. Finishing Basic, Permissions page, and Start porting Open-With Page : GSoC ’20 week 7
  5. Code Clean-up : GSoC ’20 week 8
  6. Building Open-With Page and dropping NautilusMimeApplicationChooser class : GSoC ’20 Week 10
  7. Basic styling, Restoring Esc to close property of properties-window : GSoC ’20 Week 11
  8. Restyling of UI based on GNOME-HIG : GSoC ’20 Week 9
  9. Code Refactoring and Modernization : GSOC ’20 week 11 part-II
  10. Merge GSoC feature branch into master branch : Port Properties to GtkBuilder

What hasn’t been merged ?

  1. 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

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s