Re: libnautilus-extension: remove the ability to add toolbar items

Hi Pierre,

thanks for bringing this up.

On Tue, 2011-02-22 at 00:45 +0100, Pierre Wieser wrote:

> Is it possible to have some sort of rationale ? I am curious about
> it (and, yes, I have read the commit comment which is a bit short
> for my curiosity)

Yeah, of course; Nautilus 2.91.90 switched from using a 'Main Toolbar' +
'Location Bar' UI layout to a single per-pane toolbar, in order to match
the gnome-design mockups for 3.0 [1].
This kind of fixed layout does not allow us to have the same flexibility
on the number of toolbar items we can display, which have been greatly
reduced and now include only the pathbar, the back/forward navigation
controls, and a button to trigger the search bar. Hence extensions are
not allowed anymore to display additional toolbar items.

> Does Nautilus have some sort of runtime version that we could check
> at runtime, so that an extension would be able to dynamically address 
> the interface if it exists ?
> Or do we have to compile our extensions against specific versions
> of Nautilus ?

Yes, I think extensions should target specific version of Nautilus:
- libnautilus-extension does not have any kind of API guarantee
- with this development cycle we require GTK+ 3.0, and consequently GTK+
2.x extensions are not supported anymore, so extensions should at least
make a distinction between supporting Nautilus 2.x or 3.x

This should not be a problem for most of the commonly used extensions
out there (e.g. totem, nautilus-sendto, eog, file-roller), as they're
usually shipped bundled with a whole GNOME desktop of the same version;
I understand nautilus-actions is a bit of a special case here though.

What you could do is tweak your configure script to find out from
libnautilus-extension's pkg-config whether you're building against 2.x
or 3.x, and #ifdef the toolbar item method implementation accordingly,
or just require libnautilus-extension >= 2.91.90 if you feel like
dropping compatibility with 2.x for future releases.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]