Now enabling/disabling of the "Restore defaults" really works

This commit is contained in:
Sergey V. Udaltsov 2004-01-12 01:49:46 +00:00
parent 04bb3c9a3a
commit 2865c350b6
4 changed files with 41 additions and 1 deletions

View file

@ -26,6 +26,7 @@
#endif
#include <gnome.h>
#include <gdk/gdkx.h>
#include <gconf/gconf-client.h>
#include <glade/glade.h>
@ -117,6 +118,7 @@ cleanup_xkb_tabs (GladeXML * dialog)
{
XklConfigFreeRegistry ();
XklConfigTerm ();
XklTerm ();
}
static void
@ -176,9 +178,17 @@ reset_to_defaults (GtkWidget * button, GladeXML * dialog)
/* all the rest is g-s-d's business */
}
static void
update_model (GConfClient * client,
guint cnxn_id, GConfEntry * entry, GladeXML * dialog)
{
enable_disable_restoring (dialog);
}
void
setup_xkb_tabs (GladeXML * dialog, GConfChangeSet * changeset)
{
XklInit (GDK_DISPLAY ());
XklConfigInit ();
XklConfigLoadRegistry ();
@ -207,4 +217,30 @@ setup_xkb_tabs (GladeXML * dialog, GConfChangeSet * changeset)
g_signal_connect (G_OBJECT (WID ("keyboard_dialog")),
"destroy", G_CALLBACK (cleanup_xkb_tabs), dialog);
gconf_client_notify_add (gconf_client_get_default (),
GSWITCHIT_CONFIG_XKB_KEY_MODEL,
(GConfClientNotifyFunc)
update_model, dialog, NULL, NULL);
enable_disable_restoring (dialog);
}
void
enable_disable_restoring (GladeXML * dialog)
{
GSwitchItXkbConfig gswic;
GConfClient *confClient = gconf_client_get_default ();
gboolean enable;
memset (&gswic, 0, sizeof (gswic));
GSwitchItXkbConfigInit (&gswic, confClient);
g_object_unref (confClient);
GSwitchItXkbConfigLoad (&gswic);
enable = !GSwitchItXkbConfigEqualsToInitial (&gswic);
GSwitchItXkbConfigTerm (&gswic);
gtk_widget_set_sensitive (WID ("xkb_reset_to_defaults"), enable);
}

View file

@ -56,5 +56,7 @@ extern char *xci_desc_to_utf8 (XklConfigItem * ci);
extern void sort_tree_content (GtkWidget * treeView);
extern void enable_disable_restoring(GladeXML * dialog);
G_END_DECLS
#endif /* __GNOME_KEYBOARD_PROPERTY_XKB_H */

View file

@ -357,6 +357,7 @@ update_layouts_list (GConfClient * client,
guint cnxn_id, GConfEntry * entry, GladeXML * dialog)
{
fill_selected_layouts_tree (dialog);
enable_disable_restoring (dialog);
}
void

View file

@ -375,6 +375,7 @@ update_options_list (GConfClient * client,
guint cnxn_id, GConfEntry * entry, GladeXML * dialog)
{
fill_selected_options_tree (dialog);
enable_disable_restoring (dialog);
}
void