Bug 325024 [1] has the details and some screenshots. [1] http://bugzilla.gnome.org/show_bug.cgi?id=325024 -- Christian Neumair <chris gnome-de org>
Index: src/file-manager/fm-properties-window.c =================================================================== RCS file: /cvs/gnome/nautilus/src/file-manager/fm-properties-window.c,v retrieving revision 1.226 diff -u -p -r1.226 fm-properties-window.c --- src/file-manager/fm-properties-window.c 20 Dec 2005 16:37:33 -0000 1.226 +++ src/file-manager/fm-properties-window.c 31 Dec 2005 12:34:26 -0000 @@ -40,6 +40,7 @@ #include <eel/eel-wrap-table.h> #include <gtk/gtkalignment.h> #include <gtk/gtkcheckbutton.h> +#include <gtk/gtkdialog.h> #include <gtk/gtkdnd.h> #include <gtk/gtkeditable.h> #include <gtk/gtkentry.h> @@ -100,8 +101,9 @@ struct FMPropertiesWindowDetails { GtkWidget *icon_image; GtkWidget *icon_chooser; - GtkWidget *name_label; + GtkLabel *name_label; GtkWidget *name_field; + unsigned int name_row; char *pending_name; GtkLabel *directory_contents_title_field; @@ -216,7 +218,7 @@ static GtkLabel *attach_ellipsizing_valu const char *initial_text); GNOME_CLASS_BOILERPLATE (FMPropertiesWindow, fm_properties_window, - GtkWindow, GTK_TYPE_WINDOW); + GtkDialog, GTK_TYPE_DIALOG); static gboolean is_multi_file_window (FMPropertiesWindow *window) @@ -574,7 +576,11 @@ set_name_field (FMPropertiesWindow *wind } if (use_label) { - window->details->name_field = GTK_WIDGET (attach_ellipsizing_value_label (window->details->basic_table, 0, VALUE_COLUMN, name)); + window->details->name_field = + GTK_WIDGET (attach_ellipsizing_value_label + (window->details->basic_table, + window->details->name_row, + VALUE_COLUMN, name)); } else { window->details->name_field = nautilus_entry_new (); gtk_entry_set_text (GTK_ENTRY (window->details->name_field), name); @@ -583,7 +589,8 @@ set_name_field (FMPropertiesWindow *wind window->details->name_field, VALUE_COLUMN, VALUE_COLUMN + 1, - 0, 1, + window->details->name_row, + window->details->name_row + 1, GTK_FILL, 0, 0, 0); gtk_label_set_mnemonic_widget (GTK_LABEL (window->details->name_label), window->details->name_field); @@ -633,7 +640,11 @@ static void update_name_field (FMPropertiesWindow *window) { NautilusFile *file; - + + gtk_label_set_text_with_mnemonic (window->details->name_label, + ngettext ("_Name:", "_Names:", + get_not_gone_original_file_count (window))); + if (is_multi_file_window (window)) { /* Multifile property dialog, show all names */ GString *str; @@ -1822,23 +1833,6 @@ append_row (GtkTable *table) return new_row_count - 1; } -static GtkWidget * -append_separator (GtkTable *table) -{ - GtkWidget *separator; - guint last_row; - - last_row = append_row (table); - separator = gtk_hseparator_new (); - gtk_widget_show (separator); - gtk_table_attach (table, separator, - TITLE_COLUMN, COLUMN_COUNT, - last_row, last_row+1, - GTK_FILL, 0, - 0, 0); - return separator; -} - static void directory_contents_value_field_update (FMPropertiesWindow *window) { @@ -2020,7 +2014,7 @@ attach_title_field (GtkTable *table, int row, const char *title) { - return attach_label (table, row, TITLE_COLUMN, title, TRUE, TRUE, FALSE, FALSE, TRUE); + return attach_label (table, row, TITLE_COLUMN, title, FALSE, FALSE, FALSE, FALSE, TRUE); } static guint @@ -2077,6 +2071,16 @@ append_title_and_ellipsizing_value (FMPr return last_row; } +static GtkWidget * +append_blank_row (GtkTable *table) +{ + GtkWidget *separator; + + append_title_field (table, "", (GtkLabel **) &separator); + + return separator; +} + static void update_visibility_of_table_rows (GtkTable *table, gboolean should_show, @@ -2096,7 +2100,7 @@ update_visibility_of_table_rows (GtkTabl } for (i= 0; i < row_count; ++i) { - gtk_table_set_row_spacing (table, first_row + i, should_show ? GNOME_PAD : 0); + gtk_table_set_row_spacing (table, first_row + i, should_show ? 6 : 0); } } @@ -2130,7 +2134,7 @@ create_page_with_vbox (GtkNotebook *note vbox = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox); - gtk_container_set_border_width (GTK_CONTAINER (vbox), GNOME_PAD); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); gtk_notebook_append_page (notebook, vbox, gtk_label_new (title)); return vbox; @@ -2139,8 +2143,8 @@ create_page_with_vbox (GtkNotebook *note static void apply_standard_table_padding (GtkTable *table) { - gtk_table_set_row_spacings (table, GNOME_PAD); - gtk_table_set_col_spacings (table, GNOME_PAD); + gtk_table_set_row_spacings (table, 6); + gtk_table_set_col_spacings (table, 12); } static GtkWidget * @@ -2270,49 +2274,41 @@ static void create_basic_page (FMPropertiesWindow *window) { GtkTable *table; - GtkWidget *container; + GtkLabel *icon_label; GtkWidget *icon_aligner; - GtkWidget *icon_pixmap_widget; - - GtkWidget *hbox, *name_label; + GtkWidget *icon_widget; + unsigned int row; create_page_with_table_in_vbox (window->details->notebook, _("Basic"), 1, - &table, - &container); + &table, + NULL); window->details->basic_table = table; - - /* Icon pixmap */ - hbox = gtk_hbox_new (FALSE, 4); - gtk_widget_show (hbox); - gtk_table_attach (table, - hbox, - TITLE_COLUMN, - TITLE_COLUMN + 1, - 0, 1, - 0, 0, - 0, 0); - icon_pixmap_widget = create_image_widget ( - window, should_show_custom_icon_buttons (window)); - gtk_widget_show (icon_pixmap_widget); + /* Icon label */ + row = append_title_field (table, _("Ic_on:"), &icon_label); - icon_aligner = gtk_alignment_new (1, 0.5, 0, 0); + /* Icon image */ + icon_aligner = gtk_alignment_new (0.0, 0.5, 0, 0); gtk_widget_show (icon_aligner); - - gtk_container_add (GTK_CONTAINER (icon_aligner), icon_pixmap_widget); - gtk_box_pack_start (GTK_BOX (hbox), icon_aligner, TRUE, TRUE, 0); + + gtk_table_attach (table, icon_aligner, + VALUE_COLUMN, VALUE_COLUMN + 1, + row, row + 1, + GTK_FILL, 0, + 0, 0); + + icon_widget = create_image_widget (window, should_show_custom_icon_buttons (window)); + gtk_label_set_mnemonic_widget (icon_label, icon_widget); + gtk_widget_show (icon_widget); + gtk_container_add (GTK_CONTAINER (icon_aligner), icon_widget); window->details->icon_chooser = NULL; - /* Name label */ - name_label = gtk_label_new_with_mnemonic (ngettext ("_Name:", "_Names:", - get_not_gone_original_file_count (window))); - eel_gtk_label_make_bold (GTK_LABEL (name_label)); - gtk_widget_show (name_label); - gtk_box_pack_end (GTK_BOX (hbox), name_label, FALSE, FALSE, 0); - window->details->name_label = name_label; + /* Name label. The text will be determined in update_name_field */ + row = append_title_field (table, NULL, &window->details->name_label); + window->details->name_row = row; /* Name field */ window->details->name_field = NULL; @@ -2332,6 +2328,21 @@ create_basic_page (FMPropertiesWindow *w FALSE); } + if (should_show_link_target (window)) { + append_title_and_ellipsizing_value (window, table, + _("Link target:"), + "link_target", + _("--"), + FALSE); + } + + if (should_show_mime_type (window)) { + append_title_value_pair (window, table, _("MIME type:"), + "mime_type", + _("--"), + FALSE); + } + if (is_multi_file_window (window) || nautilus_file_is_directory (get_target_file (window))) { append_directory_contents_fields (window, table); @@ -2346,8 +2357,23 @@ create_basic_page (FMPropertiesWindow *w "where", _("--"), TRUE); - + + if (should_show_accessed_date (window)) { + append_blank_row (table); + + append_title_value_pair (window, table, _("Modified:"), + "date_modified", + _("--"), + FALSE); + append_title_value_pair (window, table, _("Accessed:"), + "date_accessed", + _("--"), + FALSE); + } + if (should_show_free_space (window)) { + append_blank_row (table); + append_title_and_ellipsizing_value (window, table, _("Volume:"), "volume", @@ -2358,35 +2384,6 @@ create_basic_page (FMPropertiesWindow *w _("--"), FALSE); } - - if (should_show_link_target (window)) { - append_title_and_ellipsizing_value (window, table, - _("Link target:"), - "link_target", - _("--"), - FALSE); - } - if (should_show_mime_type (window)) { - append_title_value_pair (window, table, _("MIME type:"), - "mime_type", - _("--"), - FALSE); - } - - /* Blank title ensures standard row height */ - append_title_field (table, "", NULL); - - append_title_value_pair (window, table, _("Modified:"), - "date_modified", - _("--"), - FALSE); - - if (should_show_accessed_date (window)) { - append_title_value_pair (window, table, _("Accessed:"), - "date_accessed", - _("--"), - FALSE); - } } static GHashTable * @@ -2425,7 +2422,7 @@ create_emblems_page (FMPropertiesWindow /* The emblems wrapped table */ scroller = eel_scrolled_wrap_table_new (TRUE, &emblems_table); - gtk_container_set_border_width (GTK_CONTAINER (emblems_table), GNOME_PAD); + gtk_container_set_border_width (GTK_CONTAINER (emblems_table), 12); gtk_widget_show (scroller); @@ -2814,7 +2811,7 @@ append_special_execution_flags (FMProper remember_special_flags_widget (window, append_special_execution_checkbox (window, table, _("_Sticky"), GNOME_VFS_PERM_STICKY)); - remember_special_flags_widget (window, append_separator (table)); + remember_special_flags_widget (window, append_blank_row (table)); ++window->details->num_special_flags_rows; update_visibility_of_special_flags_widgets (window); @@ -2963,7 +2960,7 @@ create_permissions_page (FMPropertiesWin FALSE); } - append_separator (page_table); + append_blank_row (page_table); checkbox_titles_row = append_title_field (page_table, _("Owner:"), &owner_perm_label); append_title_field (page_table, _("Group:"), &group_perm_label); @@ -3044,22 +3041,22 @@ create_permissions_page (FMPropertiesWin GNOME_VFS_PERM_OTHER_EXEC, other_perm_label); - append_separator (page_table); + append_blank_row (page_table); append_special_execution_flags (window, page_table); - + + /* translators: This refers to a symbolic representation + * of file permissions. For details, see man 1 chmod */ append_title_value_pair - (window, page_table, _("Text view:"), + (window, page_table, _("Symbolic view:"), "permissions", _("--"), FALSE); + /* translators: This refers to an octal representation + * of file permissions. For details, see man 1 chmod */ append_title_value_pair - (window, page_table, _("Number view:"), + (window, page_table, _("Octal view:"), "octal_permissions", _("--"), FALSE); - append_title_value_pair - (window, page_table, _("Last changed:"), - "date_permissions", _("--"), - FALSE); } else { if (!is_multi_file_window (window)) { file_name = nautilus_file_get_display_name (get_target_file (window)); @@ -3215,22 +3212,6 @@ startup_data_free (StartupData *data) } static void -help_button_callback (GtkWidget *widget, GtkWidget *property_window) -{ - GError *error = NULL; - - gnome_help_display_desktop_on_screen (NULL, "user-guide", "user-guide.xml", "gosnautilus-51", - gtk_window_get_screen (GTK_WINDOW (property_window)), -&error); - - if (error) { - eel_show_error_dialog (_("There was an error displaying help."), error->message, - GTK_WINDOW (property_window)); - g_error_free (error); - } -} - -static void file_changed_callback (NautilusFile *file, gpointer user_data) { FMPropertiesWindow *window = FM_PROPERTIES_WINDOW (user_data); @@ -3294,9 +3275,6 @@ static FMPropertiesWindow * create_properties_window (StartupData *startup_data) { FMPropertiesWindow *window; - GtkWidget *vbox; - GtkWidget *hbox; - GtkWidget *button; GList *l; window = FM_PROPERTIES_WINDOW (gtk_widget_new (fm_properties_window_get_type (), NULL)); @@ -3365,17 +3343,11 @@ create_properties_window (StartupData *s 0); } - /* Create box for notebook and button box. */ - vbox = gtk_vbox_new (FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); - gtk_widget_show (vbox); - gtk_container_add (GTK_CONTAINER (window), - GTK_WIDGET (vbox)); - /* Create the notebook tabs. */ window->details->notebook = GTK_NOTEBOOK (gtk_notebook_new ()); gtk_widget_show (GTK_WIDGET (window->details->notebook)); - gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (window->details->notebook), + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), + GTK_WIDGET (window->details->notebook), TRUE, TRUE, 0); /* Create the pages. */ @@ -3396,27 +3368,17 @@ create_properties_window (StartupData *s /* append pages from available views */ append_extension_pages (window); - /* Create box for help and close buttons. */ - hbox = gtk_hbutton_box_new (); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (hbox), FALSE, TRUE, 5); - gtk_button_box_set_layout (GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_EDGE); - - button = gtk_button_new_from_stock (GTK_STOCK_HELP); - gtk_widget_show (button); - gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (button), - FALSE, TRUE, 0); - g_signal_connect_object (button, "clicked", - G_CALLBACK (help_button_callback), - window, 0); - - button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); - gtk_widget_show (button); - gtk_box_pack_end (GTK_BOX (hbox), GTK_WIDGET (button), - FALSE, TRUE, 0); - g_signal_connect_swapped (button, "clicked", - G_CALLBACK (gtk_widget_destroy), - window); + gtk_dialog_add_buttons (GTK_DIALOG (window), + GTK_STOCK_HELP, GTK_RESPONSE_HELP, + GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, + NULL); + + /* FIXME - HIGificiation, should be done inside GTK+ */ + gtk_widget_ensure_style (GTK_WIDGET (window)); + gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (window)->vbox), 12); + gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (window)->action_area), 0); + gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (window)->vbox), 12); + gtk_dialog_set_has_separator (GTK_DIALOG (window), FALSE); /* Update from initial state */ properties_window_update (window, NULL); @@ -3641,6 +3603,36 @@ fm_properties_window_present (GList *ori } static void +real_response (GtkDialog *dialog, + int response) +{ + GError *error = NULL; + + switch (response) { + case GTK_RESPONSE_HELP: + gnome_help_display_desktop_on_screen (NULL, "user-guide", "user-guide.xml", "gosnautilus-51", + gtk_window_get_screen (GTK_WINDOW (dialog)), + &error); + if (error != NULL) { + eel_show_error_dialog (_("There was an error displaying help."), error->message, + GTK_WINDOW (dialog)); + g_error_free (error); + } + break; + + case GTK_RESPONSE_NONE: + case GTK_RESPONSE_CLOSE: + case GTK_RESPONSE_DELETE_EVENT: + gtk_widget_destroy (GTK_WIDGET (dialog)); + break; + + default: + g_assert_not_reached (); + break; + } +} + +static void real_destroy (GtkObject *object) { FMPropertiesWindow *window; @@ -3950,12 +3942,11 @@ fm_properties_window_class_init (FMPrope { G_OBJECT_CLASS (class)->finalize = real_finalize; GTK_OBJECT_CLASS (class)->destroy = real_destroy; + GTK_DIALOG_CLASS (class)->response = real_response; } static void fm_properties_window_instance_init (FMPropertiesWindow *window) { window->details = g_new0 (FMPropertiesWindowDetails, 1); - - eel_gtk_window_set_up_close_accelerator (GTK_WINDOW (window)); } Index: src/file-manager/fm-properties-window.h =================================================================== RCS file: /cvs/gnome/nautilus/src/file-manager/fm-properties-window.h,v retrieving revision 1.13 diff -u -p -r1.13 fm-properties-window.h --- src/file-manager/fm-properties-window.h 22 Nov 2004 15:24:38 -0000 1.13 +++ src/file-manager/fm-properties-window.h 31 Dec 2005 12:34:26 -0000 @@ -26,7 +26,7 @@ #ifndef FM_PROPERTIES_WINDOW_H #define FM_PROPERTIES_WINDOW_H -#include <gtk/gtkwindow.h> +#include <gtk/gtkdialog.h> #include <libnautilus-private/nautilus-file.h> typedef struct FMPropertiesWindow FMPropertiesWindow; @@ -45,12 +45,12 @@ typedef struct FMPropertiesWindow FMProp typedef struct FMPropertiesWindowDetails FMPropertiesWindowDetails; struct FMPropertiesWindow { - GtkWindow window; + GtkDialog dialog; FMPropertiesWindowDetails *details; }; struct FMPropertiesWindowClass { - GtkWindowClass parent_class; + GtkDialogClass parent_class; }; typedef struct FMPropertiesWindowClass FMPropertiesWindowClass;
Attachment:
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil