Other Locations on Nautilus (GSoC final report)

Did you see what just happened with Nautilus? In case you didn’t, here’s what happened:

Other Locations on Nautilus

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:

Endless sidebar

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:

Advertisements

6 thoughts on “Other Locations on Nautilus (GSoC final report)

  1. don’t know if this is a result of your work, but i hate that other partitions are now extra clicks away… i’ll probably be shifting away from nautilus… but thanks for doing code cleanup…

    Liked by 1 person

  2. I really don’t like this. Not too bad on small screens but really hard to notice the address bar at the BOTTOM on a larger screen. Breaks all sorts of standard expected behaviour and it’s really hard to use. It took me ages to find either the “connect to server” option or the address bar at the bottom of the screen when I was looking for it. Also it seems to have lost all my previous servers – when I went to connect to a server previously I would see a number of items in a list to choose from, now I do not.

    Like

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s