gnome-terminal r2726 - trunk/src



Author: chpe
Date: Thu May 29 19:48:39 2008
New Revision: 2726
URL: http://svn.gnome.org/viewvc/gnome-terminal?rev=2726&view=rev

Log:
Use the object/widget binding routine for the keybindings dialogue.


Modified:
   trunk/src/terminal-accels.c
   trunk/src/terminal-app.c

Modified: trunk/src/terminal-accels.c
==============================================================================
--- trunk/src/terminal-accels.c	(original)
+++ trunk/src/terminal-accels.c	Thu May 29 19:48:39 2008
@@ -221,8 +221,6 @@
 static int inside_gconf_notify = 0;
 static GtkWidget *edit_keys_dialog = NULL;
 static GtkWidget *edit_keys_dialog_treeview = NULL;
-static GtkWidget *edit_keys_dialog_mnemonics_checkbutton = NULL;
-static GtkWidget *edit_keys_dialog_menu_accel_checkbutton = NULL;
 
 void
 terminal_accels_init (void)
@@ -440,71 +438,6 @@
     }
 }
 
-#if 0
-static void
-mnemonics_change_notify (GConfClient *client,
-                         guint        cnxn_id,
-                         GConfEntry  *entry,
-                         gpointer     user_data)
-{
-  GConfValue *val;
-  
-  val = gconf_entry_get_value (entry);  
-  
-  if (strcmp (gconf_entry_get_key (entry),
-              CONF_GLOBAL_PREFIX"/use_mnemonics") == 0)
-    {
-      if (val && val->type == GCONF_VALUE_BOOL)
-        {
-          if (using_mnemonics != gconf_value_get_bool (val))
-            {
-              using_mnemonics = !using_mnemonics;
-
-              /* Reset the checkbuttons */
-              if (edit_keys_dialog_mnemonics_checkbutton)
-                {
-                  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (edit_keys_dialog_mnemonics_checkbutton),
-                                                !using_mnemonics);
-                }
-            }
-        }
-    }
-}
-
-static void
-menu_accels_change_notify (GConfClient *client,
-                           guint        cnxn_id,
-                           GConfEntry  *entry,
-                           gpointer     user_data)
-{
-  GConfValue *val;
-  
-  val = gconf_entry_get_value (entry);  
-  
-  if (strcmp (gconf_entry_get_key (entry),
-              CONF_GLOBAL_PREFIX"/use_menu_accelerators") == 0)
-    {
-      if (val && val->type == GCONF_VALUE_BOOL)
-        {
-          if (using_menu_accels != gconf_value_get_bool (val))
-            {
-              using_menu_accels = !using_menu_accels;
-
-              /* Reset the checkbuttons */
-              if (edit_keys_dialog_menu_accel_checkbutton)
-                {
-                  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (edit_keys_dialog_menu_accel_checkbutton),
-                                                !using_menu_accels);
-                }
-
-              /* Reset the actual feature; super broken hack alert */
-              update_menu_accel_state ();
-            }
-        }
-    }
-}
-#endif
-
 static gboolean
 binding_from_string (const char      *str,
                      guint           *accelerator_key,
@@ -887,59 +820,10 @@
   g_free (str);
 }
 
-static void
-disable_mnemonics_toggled (GtkWidget *button,
-                           gpointer   data)
-{
-#if 0
-  gboolean active;
-
-  active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
-
-  /* I confused myself by making the visible button opposite
-   * the gconf key
-   */
-  if (active != (!using_mnemonics))
-    {
-      GConfClient *conf;
-      
-      conf = gconf_client_get_default ();
-      gconf_client_set_bool (conf,
-                             CONF_GLOBAL_PREFIX"/use_mnemonics",
-                             !active, NULL);
-      g_object_unref (conf);
-    }
-#endif
-}
-
-static void
-disable_menu_accels_toggled (GtkWidget *button,
-                             gpointer   data)
-{
-#if 0
-  gboolean active;
-
-  active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button));
-
-  /* I confused myself by making the visible button opposite
-   * the gconf key
-   */
-  if (active != (!using_menu_accels))
-    {
-      GConfClient *conf;
-      
-      conf = gconf_client_get_default ();
-      gconf_client_set_bool (conf,
-                             CONF_GLOBAL_PREFIX"/use_menu_accelerators",
-                             !active, NULL);
-      g_object_unref (conf);
-    }
-#endif
-}
-
 void
 terminal_edit_keys_dialog_show (GtkWindow *transient_parent)
 {
+  TerminalApp *app;
   GtkWidget *dialog, *tree_view, *disable_mnemonics_button, *disable_menu_accel_button;
   GtkTreeViewColumn *column;
   GtkCellRenderer *cell_renderer;
@@ -961,30 +845,12 @@
                                         NULL))
     return;
 
-  edit_keys_dialog_mnemonics_checkbutton = disable_mnemonics_button;
-  g_signal_connect (disable_mnemonics_button, "destroy",
-                    G_CALLBACK (gtk_widget_destroyed),
-                    &edit_keys_dialog_mnemonics_checkbutton);
-
-#if 0
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (disable_mnemonics_button), !using_mnemonics);
-#endif
-  g_signal_connect (disable_mnemonics_button, "toggled",
-                    G_CALLBACK (disable_mnemonics_toggled),
-                    NULL);
-
-  edit_keys_dialog_menu_accel_checkbutton = disable_menu_accel_button;
-  g_signal_connect (disable_menu_accel_button, "destroy",
-                    G_CALLBACK (gtk_widget_destroyed),
-                    &edit_keys_dialog_menu_accel_checkbutton);
+  app = terminal_app_get ();
+  terminal_util_bind_object_property_to_widget (G_OBJECT (app), TERMINAL_APP_ENABLE_MNEMONICS,
+                                                disable_mnemonics_button, FLAG_INVERT_BOOL);
+  terminal_util_bind_object_property_to_widget (G_OBJECT (app), TERMINAL_APP_ENABLE_MENU_ACCELS,
+                                                disable_menu_accel_button, FLAG_INVERT_BOOL);
 
-#if 0
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (disable_menu_accel_button), !using_menu_accels);
-#endif
-  g_signal_connect (disable_menu_accel_button, "toggled",
-                    G_CALLBACK (disable_menu_accels_toggled),
-                    NULL);
-  
   edit_keys_dialog_treeview = tree_view;
   g_signal_connect (tree_view, "destroy",
                     G_CALLBACK (gtk_widget_destroyed),

Modified: trunk/src/terminal-app.c
==============================================================================
--- trunk/src/terminal-app.c	(original)
+++ trunk/src/terminal-app.c	Thu May 29 19:48:39 2008
@@ -938,6 +938,7 @@
 {
   TerminalApp *app = TERMINAL_APP (user_data);
   GConfValue *gconf_value;
+  gboolean enable;
 
   if (strcmp (gconf_entry_get_key (entry), ENABLE_MNEMONICS_KEY) != 0)
     return;
@@ -946,7 +947,11 @@
   if (!gconf_value || gconf_value->type != GCONF_VALUE_BOOL)
     return;
 
-  app->enable_mnemonics = gconf_value_get_bool (gconf_value);
+  enable = gconf_value_get_bool (gconf_value);
+  if (enable == app->enable_mnemonics)
+    return;
+
+  app->enable_mnemonics = enable;
   g_object_notify (G_OBJECT (app), TERMINAL_APP_ENABLE_MNEMONICS);
 }
 
@@ -958,6 +963,7 @@
 {
   TerminalApp *app = TERMINAL_APP (user_data);
   GConfValue *gconf_value;
+  gboolean enable;
 
   if (strcmp (gconf_entry_get_key (entry), ENABLE_MENU_ACCELS_KEY) != 0)
     return;
@@ -966,7 +972,11 @@
   if (!gconf_value || gconf_value->type != GCONF_VALUE_BOOL)
     return;
 
-  app->enable_menu_accels = gconf_value_get_bool (gconf_value);
+  enable = gconf_value_get_bool (gconf_value);
+  if (enable == app->enable_menu_accels)
+    return;
+
+  app->enable_menu_accels = enable;
   g_object_notify (G_OBJECT (app), TERMINAL_APP_ENABLE_MENU_ACCELS);
 }
 
@@ -1538,9 +1548,9 @@
 
 static void
 terminal_app_get_property (GObject *object,
-                            guint prop_id,
-                            GValue *value,
-                            GParamSpec *pspec)
+                           guint prop_id,
+                           GValue *value,
+                           GParamSpec *pspec)
 {
   TerminalApp *app = TERMINAL_APP (object);
 
@@ -1568,12 +1578,40 @@
 }
 
 static void
+terminal_app_set_property (GObject *object,
+                            guint prop_id,
+                            const GValue *value,
+                            GParamSpec *pspec)
+{
+  TerminalApp *app = TERMINAL_APP (object);
+
+  switch (prop_id)
+    {
+      case PROP_ENABLE_MENU_ACCELS:
+        app->enable_menu_accels = g_value_get_boolean (value);
+        gconf_client_set_bool (app->conf, ENABLE_MENU_ACCELS_KEY, app->enable_menu_accels, NULL);
+        break;
+      case PROP_ENABLE_MNEMONICS:
+        app->enable_mnemonics = g_value_get_boolean (value);
+        gconf_client_set_bool (app->conf, ENABLE_MNEMONICS_KEY, app->enable_mnemonics, NULL);
+        break;
+      case PROP_DEFAULT_PROFILE:
+      case PROP_SYSTEM_FONT:
+        /* not writable */
+      default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+        break;
+    }
+}
+
+static void
 terminal_app_class_init (TerminalAppClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
   object_class->finalize = terminal_app_finalize;
   object_class->get_property = terminal_app_get_property;
+  object_class->set_property = terminal_app_set_property;
 
   signals[QUIT] =
     g_signal_new (I_("quit"),
@@ -1598,14 +1636,14 @@
      PROP_ENABLE_MENU_ACCELS,
      g_param_spec_boolean (TERMINAL_APP_ENABLE_MENU_ACCELS, NULL, NULL,
                            DEFAULT_ENABLE_MENU_ACCELS,
-                           G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
+                           G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
 
   g_object_class_install_property
     (object_class,
      PROP_ENABLE_MNEMONICS,
      g_param_spec_boolean (TERMINAL_APP_ENABLE_MNEMONICS, NULL, NULL,
                            DEFAULT_ENABLE_MNEMONICS,
-                           G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
+                           G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
 
   g_object_class_install_property
     (object_class,



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