Re: Help to solve bug 132326



Am Dienstag, den 03.01.2006, 22:24 +0100 schrieb Ferran Puig:
> I'm trying to provide a patch to bug 132326, since it seems to have
> been "abandoned" for some time.

Thanks for working on this, and welcome to the developer family!

> I attach the work I've done so far (against the gnome 2.12 branch),
> based on the original patch by Nirmal kumar and the comments provided,
> although there are two parts which I'm not sure how should be done:
> 
> 1. Now the "delete" command in the popup menu is always enabled (if
> the user has activated the option to show the command). Should I do
> exactly the same checks done in fm-directory-view.c before enabling it
> (file is not read only, file is not an special link and file is
> neither home nor desktop directory) ??

Yes, that would be great. This kind of consistency is really important. 

> 2. When I delete a file with this patch, the file is deleted, but
> nautilus crashes... obviously I'm missing something, but I don't know
> what it is? Any idea?

I cannot reproduce this with Nautilus HEAD. Maybe you could follow the
steps described at [1] to get a backtrace.

On the patch:

                gtk_widget_set_sensitive (view->details->popup_trash,
can_move_uri_to_trash (uri));
                g_free (uri);

+               if (show_delete_command_auto_value) {
+                       gtk_widget_show (view->details->popup_delete);
+                       gtk_widget_set_sensitive
(view->details->popup_delete, TRUE);
+               } else {
+                       gtk_widget_hide (view->details->popup_delete);
+               }

I'd prefer if you did

gboolean can_move_to_trash;

...

uri = ...
can_move_to_trash = can_move_to_trash (uri);
g_free (uri);

...

gtk_widget_set_sensitive (view->details->popup_trash,
can_move_to_trash);

and pass can_move_to_trash to the sensitivity call instead of TRUE (cf.
my comments on "1."). The menu functions from the directory view all
seem to follow that "initialize once - use multiple times" pattern for
boolean variables which involve some extra computation.

+       static gboolean setup_autos = FALSE;
+
+       if (setup_autos == FALSE) {
+               eel_preferences_add_auto_boolean
(NAUTILUS_PREFERENCES_ENABLE_DELETE,
+
&show_delete_command_auto_value);
+               setup_autos = TRUE;
+       }

eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_ENABLE_DELETE,
                                  &show_delete_command_auto_value);

should IMO be moved to fm_tree_view_class_init instead.

[1] http://live.gnome.org/GettingTraces

-- 
Christian Neumair <chris gnome-de org>

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil



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