Author: olivier
Date: 2008-10-18 20:54:34 +0000 (Sat, 18 Oct 2008)
New Revision: 28296

Modified:
   xfce4-settings/trunk/ChangeLog
   xfce4-settings/trunk/NEWS
   xfce4-settings/trunk/dialogs/keyboard-settings/keyboard-dialog.glade
   xfce4-settings/trunk/dialogs/keyboard-settings/xfce-keyboard-settings.c
   xfce4-settings/trunk/xfce4-settings-helper/keyboard-layout.c
Log:
Add an option to disable keyboard settings.

Modified: xfce4-settings/trunk/ChangeLog
===================================================================
--- xfce4-settings/trunk/ChangeLog      2008-10-18 18:54:51 UTC (rev 28295)
+++ xfce4-settings/trunk/ChangeLog      2008-10-18 20:54:34 UTC (rev 28296)
@@ -1,3 +1,10 @@
+2008-10-18             olivier
+
+       * dialogs/keyboard-settings/xfce-keyboard-settings.c,
+         dialogs/keyboard-settings/keyboard-dialog.glade,
+         xfce4-settings-helper/keyboard-layout.c: Add an option to disable 
+         keyboard settings.
+
 2008-10-16             olivier
 
        * dialogs/keyboard-settings/xfce-keyboard-settings.c: Remove misleading

Modified: xfce4-settings/trunk/NEWS
===================================================================
--- xfce4-settings/trunk/NEWS   2008-10-18 18:54:51 UTC (rev 28295)
+++ xfce4-settings/trunk/NEWS   2008-10-18 20:54:34 UTC (rev 28296)
@@ -1,5 +1,6 @@
 4.5.92 (Xfce 4.6 beta2)
 
+  * Add an option to disable keyboard settings.
 
 4.5.91 (Xfce 4.6 beta1)
 

Modified: xfce4-settings/trunk/dialogs/keyboard-settings/keyboard-dialog.glade
===================================================================
--- xfce4-settings/trunk/dialogs/keyboard-settings/keyboard-dialog.glade        
2008-10-18 18:54:51 UTC (rev 28295)
+++ xfce4-settings/trunk/dialogs/keyboard-settings/keyboard-dialog.glade        
2008-10-18 20:54:34 UTC (rev 28296)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Mon Oct 13 01:03:42 2008 -->
+<!--Generated with glade3 3.4.5 on Sat Oct 18 21:05:03 2008 -->
 <glade-interface>
   <requires lib="xfce4"/>
   <widget class="XfceTitledDialog" id="keyboard-settings-dialog">
@@ -398,11 +398,49 @@
                   <widget class="GtkVBox" id="xkb_tab_layout_vbox">
                     <property name="border_width">12</property>
                     <child>
-                      <widget class="GtkFrame" id="frame1">
+                      <widget class="GtkFrame" id="frame5">
                         <property name="visible">True</property>
                         <property name="label_xalign">0</property>
                         <property name="shadow_type">GTK_SHADOW_NONE</property>
                         <child>
+                          <widget class="GtkAlignment" id="alignment5">
+                            <property name="visible">True</property>
+                            <property name="top_padding">6</property>
+                            <property name="bottom_padding">6</property>
+                            <property name="left_padding">12</property>
+                            <child>
+                              <widget class="GtkCheckButton" 
id="xkb_use_system_default_checkbutton">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="label" translatable="yes">_Use 
system defaults</property>
+                                <property name="use_underline">True</property>
+                                <property name="response_id">0</property>
+                                <property name="draw_indicator">True</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkLabel" id="label9">
+                            <property name="visible">True</property>
+                            <property name="label" 
translatable="yes">&lt;b&gt;Keyboard settings&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </widget>
+                          <packing>
+                            <property name="type">label_item</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkFrame" id="xkb_model_frame">
+                        <property name="visible">True</property>
+                        <property name="label_xalign">0</property>
+                        <property name="shadow_type">GTK_SHADOW_NONE</property>
+                        <child>
                           <widget class="GtkAlignment" id="alignment1">
                             <property name="visible">True</property>
                             <property name="bottom_padding">6</property>
@@ -438,7 +476,7 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GtkFrame" id="frame4">
+                      <widget class="GtkFrame" id="xkb_layout_frame">
                         <property name="visible">True</property>
                         <property name="label_xalign">0</property>
                         <property name="shadow_type">GTK_SHADOW_NONE</property>

Modified: 
xfce4-settings/trunk/dialogs/keyboard-settings/xfce-keyboard-settings.c
===================================================================
--- xfce4-settings/trunk/dialogs/keyboard-settings/xfce-keyboard-settings.c     
2008-10-18 18:54:51 UTC (rev 28295)
+++ xfce4-settings/trunk/dialogs/keyboard-settings/xfce-keyboard-settings.c     
2008-10-18 20:54:34 UTC (rev 28296)
@@ -142,6 +142,8 @@
 #ifdef HAVE_LIBXKLAVIER
 
 static gchar *                   xfce_keyboard_settings_model_description     
(XklConfigItem             *config_item);
+static void                      xfce_keyboard_settings_system_default_cb     
(GtkToggleButton           *toggle,
+                                                                               
XfceKeyboardSettings      *settings);
 static void                      xfce_keyboard_settings_set_layout            
(XfceKeyboardSettings      *settings);
 static void                      xfce_keyboard_settings_init_layout           
(XfceKeyboardSettings      *settings);
 static void                      xfce_keyboard_settings_add_model_to_combo    
(XklConfigRegistry         *config_registry,
@@ -304,6 +306,7 @@
   GtkWidget            *kbd_shortcuts_view;
   GtkWidget            *button;
 #ifdef HAVE_LIBXKLAVIER
+  GtkWidget            *xkb_use_system_default_checkbutton;
   GtkWidget            *xkb_tab_layout_vbox;
   GtkWidget            *xkb_model_combo;
   GtkWidget            *xkb_layout_view;
@@ -386,6 +389,15 @@
   xkb_tab_layout_vbox = glade_xml_get_widget (settings->priv->glade_xml, 
"xkb_tab_layout_vbox");
   gtk_widget_show (GTK_WIDGET (xkb_tab_layout_vbox));
 
+  /* USe system defaults, ie disable options */
+  xkb_use_system_default_checkbutton = glade_xml_get_widget 
(settings->priv->glade_xml, "xkb_use_system_default_checkbutton");
+  g_signal_connect (G_OBJECT (xkb_use_system_default_checkbutton),
+                    "toggled",
+                    G_CALLBACK (xfce_keyboard_settings_system_default_cb),
+                    settings);
+  xfconf_g_property_bind (settings->priv->keyboard_layout_channel, 
"/Default/XkbDisable", G_TYPE_BOOLEAN,
+                             (GObject *) xkb_use_system_default_checkbutton, 
"active");
+
   /* Keyboard model combo */
   xkb_model_combo = glade_xml_get_widget (settings->priv->glade_xml, 
"xkb_model_combo");
   gtk_cell_layout_clear (GTK_CELL_LAYOUT (xkb_model_combo));
@@ -1044,6 +1056,24 @@
 
 
 static void
+xfce_keyboard_settings_system_default_cb (GtkToggleButton *toggle, 
XfceKeyboardSettings *settings)
+{
+  GtkWidget *xkb_model_frame;
+  GtkWidget *xkb_layout_frame;
+  gboolean use_system_defaults;
+
+  use_system_defaults = gtk_toggle_button_get_active (toggle);
+  xkb_model_frame = glade_xml_get_widget (settings->priv->glade_xml, 
"xkb_model_frame");
+  xkb_layout_frame = glade_xml_get_widget (settings->priv->glade_xml, 
"xkb_layout_frame");
+
+  gtk_widget_set_sensitive (xkb_model_frame, !use_system_defaults);
+  gtk_widget_set_sensitive (xkb_layout_frame, !use_system_defaults);
+
+}
+
+
+
+static void
 xfce_keyboard_settings_set_layout (XfceKeyboardSettings *settings)
 {
   GtkWidget    *view;

Modified: xfce4-settings/trunk/xfce4-settings-helper/keyboard-layout.c
===================================================================
--- xfce4-settings/trunk/xfce4-settings-helper/keyboard-layout.c        
2008-10-18 18:54:51 UTC (rev 28295)
+++ xfce4-settings/trunk/xfce4-settings-helper/keyboard-layout.c        
2008-10-18 20:54:34 UTC (rev 28296)
@@ -66,6 +66,7 @@
 
     /* xfconf channel */
     XfconfChannel     *channel;
+    gboolean xkb_disable_settings;
 
 #ifdef HAVE_LIBXKLAVIER
     /* libxklavier */
@@ -105,6 +106,7 @@
 #endif /* HAVE_LIBXKLAVIER */
 
     /* load settings */
+    helper->xkb_disable_settings = xfconf_channel_get_bool (helper->channel, 
"/Default/XkbDisable", FALSE);
     xfce_keyboard_layout_helper_set_model (helper);
     xfce_keyboard_layout_helper_set_layout (helper);
     xfce_keyboard_layout_helper_set_variant (helper);
@@ -128,10 +130,13 @@
 #ifdef HAVE_LIBXKLAVIER
     gchar *xkbmodel;
 
-    xkbmodel = xfconf_channel_get_string (helper->channel, 
"/Default/XkbModel", helper->config->model);
-    g_free (helper->config->model);
-    helper->config->model = xkbmodel;
-    xkl_config_rec_activate (helper->config, helper->engine);
+    if (!helper->xkb_disable_settings)
+    {
+        xkbmodel = xfconf_channel_get_string (helper->channel, 
"/Default/XkbModel", helper->config->model);
+        g_free (helper->config->model);
+        helper->config->model = xkbmodel;
+        xkl_config_rec_activate (helper->config, helper->engine);
+    }
 #endif /* HAVE_LIBXKLAVIER */
 }
 
@@ -142,14 +147,17 @@
     gchar *default_layouts, *val_layout;
     gchar **layouts;
 
-    default_layouts  = g_strjoinv(",", helper->config->layouts);
-    val_layout  = xfconf_channel_get_string (helper->channel, 
"/Default/XkbLayout",  default_layouts);
-    layouts = g_strsplit_set (val_layout, ",", 0);
-    g_strfreev(helper->config->layouts);
-    helper->config->layouts = layouts;
-    xkl_config_rec_activate (helper->config, helper->engine);
-    g_free (val_layout);
-    g_free (default_layouts);
+    if (!helper->xkb_disable_settings)
+    {
+        default_layouts  = g_strjoinv(",", helper->config->layouts);
+        val_layout  = xfconf_channel_get_string (helper->channel, 
"/Default/XkbLayout",  default_layouts);
+        layouts = g_strsplit_set (val_layout, ",", 0);
+        g_strfreev(helper->config->layouts);
+        helper->config->layouts = layouts;
+        xkl_config_rec_activate (helper->config, helper->engine);
+        g_free (val_layout);
+        g_free (default_layouts);
+    }
 #endif /* HAVE_LIBXKLAVIER */
 }
 
@@ -160,14 +168,17 @@
     gchar *default_variants, *val_variant;
     gchar **variants;
 
-    default_variants  = g_strjoinv(",", helper->config->variants);
-    val_variant  = xfconf_channel_get_string (helper->channel, 
"/Default/XkbVariant",  default_variants);
-    variants = g_strsplit_set (val_variant, ",", 0);
-    g_strfreev(helper->config->variants);
-    helper->config->variants = variants;
-    xkl_config_rec_activate (helper->config, helper->engine);
-    g_free (val_variant);
-    g_free (default_variants);
+    if (!helper->xkb_disable_settings)
+    {
+        default_variants  = g_strjoinv(",", helper->config->variants);
+        val_variant  = xfconf_channel_get_string (helper->channel, 
"/Default/XkbVariant",  default_variants);
+        variants = g_strsplit_set (val_variant, ",", 0);
+        g_strfreev(helper->config->variants);
+        helper->config->variants = variants;
+        xkl_config_rec_activate (helper->config, helper->engine);
+        g_free (val_variant);
+        g_free (default_variants);
+    }
 #endif /* HAVE_LIBXKLAVIER */
 }
 
@@ -179,10 +190,18 @@
 {
     g_return_if_fail (helper->channel == channel);
 
-    if (strcmp (property_name, "/Default/XkbModel") == 0)
+    if (strcmp (property_name, "/Default/XkbDisable") == 0)
     {
+        helper->xkb_disable_settings = g_value_get_boolean (value);
+        /* Apply all settings */
+        xfce_keyboard_layout_helper_set_model (helper);
         xfce_keyboard_layout_helper_set_layout (helper);
+        xfce_keyboard_layout_helper_set_variant (helper);
     }
+    else if (strcmp (property_name, "/Default/XkbModel") == 0)
+    {
+        xfce_keyboard_layout_helper_set_layout (helper);
+    }
     else if (strcmp (property_name, "/Default/XkbLayout") == 0)
     {
         xfce_keyboard_layout_helper_set_layout (helper);

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to