Re: Sharing the places sidebar between Nautilus and GTK+
- From: Alexander Larsson <alexl redhat com>
- To: Federico Mena Quintero <federico gnome org>
- Cc: gtk-devel-list <gtk-devel-list gnome org>, nautilus-list gnome org, jmccann redhat com
- Subject: Re: Sharing the places sidebar between Nautilus and GTK+
- Date: Wed, 07 Sep 2011 14:54:45 +0200
On Tue, 2011-09-06 at 17:44 -0500, Federico Mena Quintero wrote:
> Hi, everyone,
>
> There is a patch in [1], by Jon McCann, to make the shortcuts bar in
> GtkFileChooser be pretty much the same as the one in Nautilus.
>
> Rather than patch the wobbly edifice that is gtkfilechooserdefault.c,
> this sounds like the perfect time to actually pull out the shortcuts bar
> as a public class of its own, that is shared by both the file chooser
> and Nautilus.
>
> My plan is this:
>
> 1. Copy nautilus-places-sidebar.[ch] into the GTK+ sources.
>
> 2. s/nautilus/gtk
>
> 3. Remove obvious nautilus-isms like the use of nautilus_bookmark, which
> should be easy enough to replicate in GTK+ (or with things which already
> happen through the file chooser's code).
NautilusBookmarks is a horrible API that should be taken out in the
backyard and be put down quitely.
> 4. See what common, public interfaces we need. For example,
>
> nautilus_window_set_initiated_unmount (sidebar->window, TRUE);
>
> seems like it could be replaced with a signal on the GtkPlacesSidebar
> class, and then Nautilus can start a spinner or whatever when an unmount
> operation starts. Another common interface would be something like
> gtk_places_sidebar_select_path (sidebar, "file:///foo/selected") to
> highlight a particular item.
Sounds cool
> 5. See what nautilus-isms *should* be doable with plain GIO, and see if
> there is anything else that Nautilus needs to do about them via signals;
> maybe for something like
>
> nautilus_file_operations_mount_volume_full (NULL, volume,
> volume_mounted_cb,
> G_OBJECT (sidebar));
I did a sweep through it and it seems that the sidebar isn't doing much
actual I/O and thus does not really touch the nautilus async I/O
machinery. That means it should be quite doable to untangle it from
nautilus like this. I might have missed something though.
> 6. See what things should be available or not in the file chooser...
> when dropping files on the shortcuts bar, Nautilus can do
>
> nautilus_file_operations_copy_move (uris, NULL, drop_uri,
> real_action, GTK_WIDGET (tree_view),
> NULL, NULL);
>
>
> Same thing for
>
> nautilus_file_operations_empty_trash (GTK_WIDGET (sidebar->window));
These are availible via dbus on org.gnome.Nautilus.FileOperations, so
could potentially be used from Gtk+ too. That sort of places a
dependency on nautilus from Gtk+ though, and it will only work under
Gnome.
> I'm starting a branch in GTK+, "places-sidebar" to do this. Comments
> are appreciated, especially from Nautilus hackers who may know dark
> places in this code well.
>
> One little caveat: that part of Nautilus is GPL, and GTK+ is LGPL,
> although it *seems* that the places sidebar code may initially have come
> from GTK+ and then reworked heavily. I haven't checked the history
> closely. What do we do about this?
Hmm, cosimo would know this best.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]