diff --git a/capplets/file-types/ChangeLog b/capplets/file-types/ChangeLog index a9dfb62a7..b3e4c86df 100644 --- a/capplets/file-types/ChangeLog +++ b/capplets/file-types/ChangeLog @@ -1,3 +1,21 @@ +2002-04-23 Jody Goldberg + + * model-entry.c (model_entry_save) : wrap in vfs freeze/unfreeze. + (model_entry_append_to_dirty_list) : delete. + (model_entry_remove_from_dirty_list) : delete. + (model_entry_commit_dirty_list) : delete. + (model_entry_append_to_delete_list) : delete. + (model_entry_commit_delete_list) : delete. + + * mime-category-edit-dialog.c (store_data) : make this instant apply. + * mime-edit-dialog.c (store_data) : ditto. + * service-edit-dialog.c (store_data) : ditto. + + * file-types-capplet.c (cb_file_type_dialog_response) : add help and + change the buttons to help & close to be HIG compliant. + (remove_cb) : make removal apply instantly. + * file-types-properties.glade : Make the buttons Help & Close + 2002-04-22 Jody Goldberg * mime-edit-dialog.c (validate_data) : tidy up. diff --git a/capplets/file-types/file-types-capplet.c b/capplets/file-types/file-types-capplet.c index 338fe2ede..1b19af3ad 100644 --- a/capplets/file-types/file-types-capplet.c +++ b/capplets/file-types/file-types-capplet.c @@ -171,7 +171,7 @@ remove_cb (GtkButton *button, GladeXML *dialog) entry = MODEL_ENTRY_FROM_ITER (&iter); model_entry_remove_child (entry->parent, entry, model); - model_entry_append_to_delete_list (entry); + model_entry_delete (entry); selection_changed_cb (selection, dialog); } @@ -179,9 +179,19 @@ remove_cb (GtkButton *button, GladeXML *dialog) static void cb_file_type_dialog_response (GtkDialog *dialog, gint response_id) { - if (response_id == GTK_RESPONSE_APPLY) - model_entry_commit_dirty_list (); - else + if (response_id == GTK_RESPONSE_HELP) { + GError *error = NULL; + + /* TODO : get this written */ + gnome_help_display_desktop (NULL, + "config-file-type", + "config-file-type.xml", + "CONFIGURATION", &error); + if (error) { + g_warning ("help error: %s\n", error->message); + g_error_free (error); + } + } else gtk_main_quit (); } diff --git a/capplets/file-types/file-types-properties.glade b/capplets/file-types/file-types-properties.glade index 11513f25d..42160c271 100644 --- a/capplets/file-types/file-types-properties.glade +++ b/capplets/file-types/file-types-properties.glade @@ -27,36 +27,36 @@ 8 yes - - - yes - yes - yes - gtk-apply - yes - yes - -10 - - + + + True + True + True + gtk-help + True + GTK_RELIEF_NORMAL + -11 + + - - - yes - yes - yes - gtk-close - yes - yes + + + True + True + True + gtk-close + True + GTK_RELIEF_NORMAL -7 - - + + - - 0 - no - yes - GTK_PACK_END - + + 0 + False + True + GTK_PACK_END + diff --git a/capplets/file-types/mime-category-edit-dialog.c b/capplets/file-types/mime-category-edit-dialog.c index 9019120e7..30a75127e 100644 --- a/capplets/file-types/mime-category-edit-dialog.c +++ b/capplets/file-types/mime-category-edit-dialog.c @@ -400,7 +400,7 @@ store_data (MimeCategoryEditDialog *dialog) dialog->p->info->use_parent_category = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WID ("use_category_toggle"))); - model_entry_append_to_dirty_list (MODEL_ENTRY (dialog->p->info)); + model_entry_save (MODEL_ENTRY (dialog->p->info)); mime_category_info_update (dialog->p->info); } diff --git a/capplets/file-types/mime-edit-dialog.c b/capplets/file-types/mime-edit-dialog.c index dd786cb0d..9e9e8a3fd 100644 --- a/capplets/file-types/mime-edit-dialog.c +++ b/capplets/file-types/mime-edit-dialog.c @@ -671,7 +671,7 @@ store_data (MimeEditDialog *dialog) } g_free (tmp); - model_entry_append_to_dirty_list (MODEL_ENTRY (dialog->p->info)); + model_entry_save (MODEL_ENTRY (dialog->p->info)); if (!cat_changed) { mime_types_model_construct_iter (MIME_TYPES_MODEL (dialog->p->model), diff --git a/capplets/file-types/model-entry.c b/capplets/file-types/model-entry.c index 41db90fc1..fb1a58f39 100644 --- a/capplets/file-types/model-entry.c +++ b/capplets/file-types/model-entry.c @@ -31,11 +31,6 @@ #include "service-info.h" #include "mime-types-model.h" -/* List of MimeTypeInfo structures that have data to be committed */ - -static GList *dirty_list = NULL; -static GList *delete_list = NULL; - ModelEntry * get_model_entries (GtkTreeModel *model) { @@ -164,6 +159,7 @@ model_entry_remove_child (ModelEntry *entry, ModelEntry *child, GtkTreeModel *mo void model_entry_save (ModelEntry *entry) { + gnome_vfs_mime_freeze (); switch (entry->type) { case MODEL_ENTRY_MIME_TYPE: mime_type_info_save (MIME_TYPE_INFO (entry)); @@ -180,6 +176,7 @@ model_entry_save (ModelEntry *entry) default: break; } + gnome_vfs_mime_thaw (); } void @@ -200,44 +197,3 @@ model_entry_delete (ModelEntry *entry) break; } } - -void -model_entry_append_to_dirty_list (ModelEntry *entry) -{ - if (g_list_find (dirty_list, entry) == NULL) - dirty_list = g_list_prepend (dirty_list, entry); -} - -void -model_entry_remove_from_dirty_list (ModelEntry *entry) -{ - dirty_list = g_list_remove (dirty_list, entry); -} - -void -model_entry_commit_dirty_list (void) -{ - gnome_vfs_mime_freeze (); - g_list_foreach (dirty_list, (GFunc) model_entry_save, NULL); - gnome_vfs_mime_thaw (); - - g_list_free (dirty_list); - dirty_list = NULL; -} - -void -model_entry_append_to_delete_list (ModelEntry *entry) -{ - model_entry_remove_from_dirty_list (entry); - delete_list = g_list_prepend (delete_list, entry); -} - -void -model_entry_commit_delete_list (void) -{ - g_list_foreach (delete_list, (GFunc) model_entry_delete, NULL); - - g_list_free (delete_list); - delete_list = NULL; -} - diff --git a/capplets/file-types/model-entry.h b/capplets/file-types/model-entry.h index 53d2740bf..1d4ba6a42 100644 --- a/capplets/file-types/model-entry.h +++ b/capplets/file-types/model-entry.h @@ -66,13 +66,6 @@ void model_entry_remove_child (ModelEntry *entry, void model_entry_save (ModelEntry *entry); void model_entry_delete (ModelEntry *entry); -void model_entry_append_to_dirty_list (ModelEntry *entry); -void model_entry_remove_from_dirty_list (ModelEntry *entry); -void model_entry_commit_dirty_list (void); - -void model_entry_append_to_delete_list (ModelEntry *entry); -void model_entry_commit_delete_list (void); - G_END_DECLS #endif /* __MODEL_ENTRY_H */ diff --git a/capplets/file-types/service-edit-dialog.c b/capplets/file-types/service-edit-dialog.c index 07a637fed..0419a542d 100644 --- a/capplets/file-types/service-edit-dialog.c +++ b/capplets/file-types/service-edit-dialog.c @@ -472,7 +472,7 @@ store_data (ServiceEditDialog *dialog) = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WID ("needs_terminal_toggle"))); } - model_entry_append_to_dirty_list (MODEL_ENTRY (dialog->p->info)); + model_entry_save (MODEL_ENTRY (dialog->p->info)); if (dialog->p->is_add) { model_entry_insert_child (get_services_category_entry (dialog->p->model),