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(_.) 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.

workflow-1 the project workflow

The work I did was performed on the work branch which is obtained from my fork of GNOME/nautilus : master.).

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 BasicPermissions 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
MilestoneMerge RequestBlog Post
GSoC Begins-The first Contribution, GNOME & GSoC
Building the Basic Page and inheriting GtkWindowInherit GtkWindow instead of GtkDialog, Building Basic Page using GtkBuilder templateThe First Milestone
Building the Permissions PageBuilding Permissions Page using GtkBuilder templateThe Second Milestone
Completing Basic and Permissions PageFinishing Basic, Permissions pageRevisiting Basic and Permissions Page
Building the Open-With PageBuilding Open-With PageThe Final Piece
Code CleanupCode Clean-upCelebration is in Order
Code RefactoringCode Refactoring and ModernizationCelebration is in Order
Finishing Properties DialogRestoring “Esc” to close,HIG RestylingCelebration is in Order
Stretch GoalsPort 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.)