This summer is slowly coming to an end and with it the final month of Google Summer of Code. This blog post will serve as the final submission for my participation. I’ll go one by one over the Merge Requests that got accepted into Epiphany and give a short description of my work. 🙂
- !651 – This MR splits the source code files for the Preferences Dialog into several smaller ones with separate widgets for each of the individual pages. There was a lot of manual work here as it can be seen from size of the patch, but it was definitely worthwhile as the pages are now a lot easier to maintain and develop.
- !664 – This is a small fixup to the previous patch. I didn’t update the copyright headers after moving the files around and this patch adjusts that.
- !678 – I was certainly expecting that after the split landed there would be reports of stuff going wrong. 🙂 This MR fixes runtime warnings caused by some bad casts.
- !715 – Also as expected there was more than one thing that broke after the split. This patch fixes a crash in the webapps settings. In my defence webapps were not available in my local builds of Epiphany as they are not available with flatpak. This resulted in me spending several days trying to reproduce the crash and about several minutes to actually come up with a fix. 🙂
- !670 – This is the next big patch that landed this summer. It includes a bunch of UI changes to the Preferences Privacy page. With useful widgets from
libhandywe also implemented several mobile and touch friendly details.
- !731 – This is a fixup patch to the previous one. Surprisingly enough this isn’t a fix to something that was broken, but instead it’s simply a small adjustment to the UI. 🙂
- !733 – The time was finally arriving when I would move away from Preferences and go towards History. While I was playing around with the existing version of the History dialog, I noticed that errors were printed every time I would delete an item from the history list. I decided to fix this issue before applying my own changes and the small patch here solved the issue.
- !734 – Another small tweak in Preferences which marks some strings as translatable and adds mnemonics to some buttons.
- !741 – The rationale behind this patch is quite funny. When looking through the existing History dialog’s source code, I noticed there’s a function implemented which was supposed to be called every time the user selected an item from the history list. However the function wasn’t connected to the
row-selectedsignal of the list. As such the function was never called. I thought that the writer of the function would have wished the function to be called so I wrote a patch which connected the signal. 🙂
- !754, !768 – I’ve grouped these two together as they are both small fixes and tweaks regarding the previous big patch in Preferences UI
- !758 – Working on this patch was a very educational experience as it involved async function calls, a concept which I wasn’t very familiar with. I even had to implement an async function here, which proved to be much trickier than expected, but thanks to help received from the mentors it was a good learning experience.
- !740 – The next significant patch was implementing a selection mode for the History dialog. The selection mode is a fairly common pattern throughout GNOME applications. It’s used to select and manipulate a set of items from a list or grid. Here it’s used to delete or open in new tabs links from the history list.
- !790 – A tweak to the behaviour of the History selection mode UI.
- !793 – After the recent work done in the history dialog the source code files were left in a state which I found a bit difficult to read. This refactor patch rewrites the whole dialog in a single file such that all the logic is centralized and easier to follow. Contrary to expectations the new file wasn’t that large as the implementation was substantially simplified.
Work in Progress
Currently I am working on fixing this issue, which has proven to be a lot more stubborn than expected. 🙂
After that I’ll be on stand-by to implement some new design decisions in the History dialog. Currently these decisions haven’t been made and people are discussing here.
Thanks to Michael Catanzaro, Jan-Michael Brummer and Alexander Mikhaylenko for providing help and support throughout this summer !
Lastly, thank you for reading. I know this post was a bit more monotonic, but I wanted to keep it very tightly organized. 🙂
15 thoughts on “GSoC 2020 Final Submission”