Commit the changeset (main): Construct a changeset (edit_cb): Pass the
2002-01-11 Bradford Hovinen <hovinen@ximian.com> * file-types-capplet.c (apply_cb): Commit the changeset (main): Construct a changeset (edit_cb): Pass the changeset to service_info_new * service-info.c (set_string): Don't set the value if it is NULL (service_info_load): Store changeset in info structure (service_info_save): Don't require a changeset; use the one stored in the structure
This commit is contained in:
parent
a53fac33f2
commit
cd0aec7eaa
5 changed files with 28 additions and 16 deletions
|
@ -1,6 +1,13 @@
|
||||||
2002-01-11 Bradford Hovinen <hovinen@ximian.com>
|
2002-01-11 Bradford Hovinen <hovinen@ximian.com>
|
||||||
|
|
||||||
|
* file-types-capplet.c (apply_cb): Commit the changeset
|
||||||
|
(main): Construct a changeset
|
||||||
|
(edit_cb): Pass the changeset to service_info_new
|
||||||
|
|
||||||
* service-info.c (set_string): Don't set the value if it is NULL
|
* service-info.c (set_string): Don't set the value if it is NULL
|
||||||
|
(service_info_load): Store changeset in info structure
|
||||||
|
(service_info_save): Don't require a changeset; use the one stored
|
||||||
|
in the structure
|
||||||
|
|
||||||
* service-edit-dialog.c (store_data): Call service_info_save
|
* service-edit-dialog.c (store_data): Call service_info_save
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,8 @@
|
||||||
|
|
||||||
#include <gnome.h>
|
#include <gnome.h>
|
||||||
#include <glade/glade.h>
|
#include <glade/glade.h>
|
||||||
|
#include <gconf/gconf-client.h>
|
||||||
|
#include <gconf/gconf-changeset.h>
|
||||||
|
|
||||||
#include "mime-types-model.h"
|
#include "mime-types-model.h"
|
||||||
#include "mime-edit-dialog.h"
|
#include "mime-edit-dialog.h"
|
||||||
|
@ -43,6 +45,7 @@
|
||||||
#define WID(x) (glade_xml_get_widget (dialog, x))
|
#define WID(x) (glade_xml_get_widget (dialog, x))
|
||||||
|
|
||||||
static GList *remove_list = NULL;
|
static GList *remove_list = NULL;
|
||||||
|
static GConfChangeSet *changeset = NULL;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
add_cb (GtkButton *button, GladeXML *dialog)
|
add_cb (GtkButton *button, GladeXML *dialog)
|
||||||
|
@ -67,7 +70,7 @@ edit_cb (GtkButton *button, GladeXML *dialog)
|
||||||
gtk_tree_selection_get_selected (selection, &model, &iter);
|
gtk_tree_selection_get_selected (selection, &model, &iter);
|
||||||
|
|
||||||
if (model_entry_is_protocol (model, &iter))
|
if (model_entry_is_protocol (model, &iter))
|
||||||
edit_dialog = service_edit_dialog_new (service_info_load (model, &iter, NULL));
|
edit_dialog = service_edit_dialog_new (service_info_load (model, &iter, changeset));
|
||||||
else
|
else
|
||||||
edit_dialog = mime_edit_dialog_new (mime_type_info_load (model, &iter));
|
edit_dialog = mime_edit_dialog_new (mime_type_info_load (model, &iter));
|
||||||
}
|
}
|
||||||
|
@ -144,9 +147,6 @@ create_dialog (void)
|
||||||
return dialog;
|
return dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Stupid gnome-vfs install bug */
|
|
||||||
void gnome_vfs_mime_registered_mime_type_delete (const gchar *mime_type);
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
apply_cb (void)
|
apply_cb (void)
|
||||||
{
|
{
|
||||||
|
@ -155,6 +155,8 @@ apply_cb (void)
|
||||||
g_list_foreach (remove_list, (GFunc) gnome_vfs_mime_registered_mime_type_delete, NULL);
|
g_list_foreach (remove_list, (GFunc) gnome_vfs_mime_registered_mime_type_delete, NULL);
|
||||||
g_list_foreach (remove_list, (GFunc) g_free, NULL);
|
g_list_foreach (remove_list, (GFunc) g_free, NULL);
|
||||||
g_list_free (remove_list);
|
g_list_free (remove_list);
|
||||||
|
|
||||||
|
gconf_client_commit_change_set (gconf_client_get_default (), changeset, TRUE, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -168,6 +170,7 @@ main (int argc, char **argv)
|
||||||
|
|
||||||
gnome_program_init ("gnome-file-types-properties", VERSION, LIBGNOMEUI_MODULE, argc, argv, NULL);
|
gnome_program_init ("gnome-file-types-properties", VERSION, LIBGNOMEUI_MODULE, argc, argv, NULL);
|
||||||
|
|
||||||
|
changeset = gconf_change_set_new ();
|
||||||
dialog = create_dialog ();
|
dialog = create_dialog ();
|
||||||
|
|
||||||
g_signal_connect (G_OBJECT (WID ("main_apply_button")), "clicked", (GCallback) apply_cb, NULL);
|
g_signal_connect (G_OBJECT (WID ("main_apply_button")), "clicked", (GCallback) apply_cb, NULL);
|
||||||
|
|
|
@ -303,7 +303,7 @@ store_data (ServiceEditDialog *dialog)
|
||||||
g_strdup (gnome_file_entry_get_full_path (GNOME_FILE_ENTRY (WID ("custom_program_entry")), FALSE));
|
g_strdup (gnome_file_entry_get_full_path (GNOME_FILE_ENTRY (WID ("custom_program_entry")), FALSE));
|
||||||
|
|
||||||
service_info_update (dialog->p->info);
|
service_info_update (dialog->p->info);
|
||||||
service_info_save (dialog->p->info, NULL);
|
service_info_save (dialog->p->info);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -135,6 +135,7 @@ service_info_load (GtkTreeModel *model, GtkTreeIter *iter, GConfChangeSet *chang
|
||||||
info = g_new0 (ServiceInfo, 1);
|
info = g_new0 (ServiceInfo, 1);
|
||||||
info->model = model;
|
info->model = model;
|
||||||
info->iter = gtk_tree_iter_copy (iter);
|
info->iter = gtk_tree_iter_copy (iter);
|
||||||
|
info->changeset = changeset;
|
||||||
info->protocol = g_value_dup_string (&protocol);
|
info->protocol = g_value_dup_string (&protocol);
|
||||||
info->description = get_string (info, "description", changeset);
|
info->description = get_string (info, "description", changeset);
|
||||||
info->run_program = get_bool (info, "type", changeset);
|
info->run_program = get_bool (info, "type", changeset);
|
||||||
|
@ -150,20 +151,20 @@ service_info_load (GtkTreeModel *model, GtkTreeIter *iter, GConfChangeSet *chang
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
service_info_save (const ServiceInfo *info, GConfChangeSet *changeset)
|
service_info_save (const ServiceInfo *info)
|
||||||
{
|
{
|
||||||
set_string (info, "description", info->description, changeset);
|
set_string (info, "description", info->description, info->changeset);
|
||||||
|
|
||||||
if (info->app == NULL) {
|
if (info->app == NULL) {
|
||||||
set_string (info, "command", info->custom_line, changeset);
|
set_string (info, "command", info->custom_line, info->changeset);
|
||||||
set_string (info, "command-id", "", changeset);
|
set_string (info, "command-id", "", info->changeset);
|
||||||
} else {
|
} else {
|
||||||
set_string (info, "command", info->app->command, changeset);
|
set_string (info, "command", info->app->command, info->changeset);
|
||||||
set_string (info, "command-id", info->app->id, changeset);
|
set_string (info, "command-id", info->app->id, info->changeset);
|
||||||
}
|
}
|
||||||
|
|
||||||
set_bool (info, "type", info->run_program, changeset);
|
set_bool (info, "type", info->run_program, info->changeset);
|
||||||
set_bool (info, "need-terminal", info->need_terminal, changeset);
|
set_bool (info, "need-terminal", info->need_terminal, info->changeset);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -45,13 +45,14 @@ struct _ServiceInfo {
|
||||||
GnomeVFSMimeApplication *app;
|
GnomeVFSMimeApplication *app;
|
||||||
gchar *custom_line;
|
gchar *custom_line;
|
||||||
gboolean need_terminal;
|
gboolean need_terminal;
|
||||||
|
|
||||||
|
GConfChangeSet *changeset;
|
||||||
};
|
};
|
||||||
|
|
||||||
ServiceInfo *service_info_load (GtkTreeModel *model,
|
ServiceInfo *service_info_load (GtkTreeModel *model,
|
||||||
GtkTreeIter *iter,
|
GtkTreeIter *iter,
|
||||||
GConfChangeSet *changeset);
|
GConfChangeSet *changeset);
|
||||||
void service_info_save (const ServiceInfo *info,
|
void service_info_save (const ServiceInfo *info);
|
||||||
GConfChangeSet *changeset);
|
|
||||||
void service_info_update (ServiceInfo *info);
|
void service_info_update (ServiceInfo *info);
|
||||||
void service_info_free (ServiceInfo *info);
|
void service_info_free (ServiceInfo *info);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue