Did you see what just happened with Nautilus? In case you didn’t, here’s what happened:
Yes, Nautilus now is able to display Other Locations view, and finally it caught up with Gtk+ file chooser! It’s already on master, so anyone can test it with jhbuild. Also, Nautilus 3.17.90 already includes it, so Fedora Rawhide users (and any other bleeding edge distro) will be able to test.
What’s happening?!
The Other Locations view was born to fix this issue:
The sidebar is enormous and my entire screen isn’t able to display it all. So we came up with the “Other Locations” idea: a place where we keep persistent, fixed things, and open space for the sidebar to display what really matters. The implementation progress in Gtk+ is well documented here, as well as in Nautilus.
Flies And Spiders
In order to be able to implement this Nautilus feature, a huge cleanup was needed. Summing things up, it was more than -12117/+15487 lines of code changed, considering only the last 30 days. Obviously we’re introducing new issues, but hopefully we’ll be able to fix them all before 3.18 release.
Here’s a list of happened:
- Search logic behind the scenes was completely reworked to be simpler and saner.
- The code to select, open & switch views was also reworked.
- Complete isolation underlying model of the files view.
- A new abstraction layer was added, so we could encapsule the Other Locations view and the files view.
- Code is much more clean and sweet (more on that below).
- Don’t show empty folder feedback on desktop.
Riddles In The Dark
I integrally agree when my (awsome) mentor Carlos Soriano says that “it’s better for us a clean code that fails an can be fixed, then a speghetti code that works and can’t be improved.”
A clean code attracts new contributors to work on. I can only imagine how many skillfull people that tried to do some work on Nautilus and gave up because of it’s complexity. Because of that, we were really engaged on making the Other Locations view work the right way – and, if that means reworking the delicate and intricate internals, so be it.
I sincerely hope that, with all the efforts we put on making the codebase a little bit easier an simpler, new contributors will appear. Maybe we can even have another Summer of Code project on Nautilus! And talking about Summer of Code…
There and back again
The landing of the Other Locations view on Nautilus marks the end of my Summer of Code project. It was a big journey, and lately I even forgot it was a GSoC project at all, such was the joyful and frantic pace of work. I learned an uncountable amount of things, specially regarding software stability, good and bad software design and team work.
While the project is over, I won’t stop contributing to Nautilus. Even with the interesting code, even with all the strange things surrounding it. Nautilus is like an ugly puppy: it may hurt your eyes, yet you still warmly love it.
Nautilus (All rights reserved to the author)
And… for those who like to see moving images, and to never loose the tradition, here’s a nice video of the work:
Leave a Reply