[Xfce4-commits] [xfce/xfce4-power-manager] 33/64: Change radiobuttons in advanced settings tab to comboboxes

noreply at xfce.org noreply at xfce.org
Mon May 26 06:00:28 CEST 2014


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository xfce/xfce4-power-manager.

commit 7d978ba3bdd703d653f1236f5203aabd5e9b78e4
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date:   Mon May 5 15:16:19 2014 +0200

    Change radiobuttons in advanced settings tab to comboboxes
---
 data/interfaces/xfpm-settings.ui |   92 +++++++++---------
 settings/xfpm-settings.c         |  195 ++++++++++++++++++++------------------
 src/xfpm-dpms.c                  |    2 +-
 src/xfpm-xfconf.c                |    2 +-
 4 files changed, 147 insertions(+), 144 deletions(-)

diff --git a/data/interfaces/xfpm-settings.ui b/data/interfaces/xfpm-settings.ui
index ebe5e4d..f5fff23 100644
--- a/data/interfaces/xfpm-settings.ui
+++ b/data/interfaces/xfpm-settings.ui
@@ -746,36 +746,22 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkRadioButton" id="inactivity-suspend">
-                        <property name="label" translatable="yes">Suspend</property>
+                      <object class="GtkComboBox" id="sleep-mode">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                        <signal name="toggled" handler="set_suspend_inactivity"/>
+                        <property name="model">model6</property>
+                        <signal name="changed" handler="on_sleep_mode_changed_cb"/>
+                        <child>
+                          <object class="GtkCellRendererText" id="renderer8"/>
+                            <attributes>
+                              <attribute name="text">0</attribute>
+                            </attributes>
+                        </child>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="top_attach">0</property>
-                        <property name="x_options"></property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkRadioButton" id="inactivity-hibernate">
-                        <property name="label" translatable="yes">Hibernate</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                        <property name="group">inactivity-suspend</property>
-                        <signal name="toggled" handler="set_hibernate_inactivity"/>
-                      </object>
-                      <packing>
-                        <property name="left_attach">2</property>
-                        <property name="top_attach">0</property>
-                        <property name="x_options"></property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                     <child>
@@ -792,36 +778,22 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkRadioButton" id="sleep-dpms-mode">
-                        <property name="label" translatable="yes">Standby</property>
+                      <object class="GtkComboBox" id="sleep-dpms-mode">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                        <signal name="toggled" handler="set_dpms_standby_mode"/>
+                        <property name="model">model6</property>
+                        <signal name="changed" handler="on_sleep_dpms_mode_changed_cb"/>
+                        <child>
+                          <object class="GtkCellRendererText" id="renderer9"/>
+                            <attributes>
+                              <attribute name="text">0</attribute>
+                            </attributes>
+                        </child>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="top_attach">1</property>
-                        <property name="x_options"></property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkRadioButton" id="suspend-dpms-mode">
-                        <property name="label" translatable="yes">Suspend</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                        <property name="group">sleep-dpms-mode</property>
-                        <signal name="toggled" handler="set_dpms_suspend_mode"/>
-                      </object>
-                      <packing>
-                        <property name="left_attach">2</property>
-                        <property name="top_attach">1</property>
                         <property name="x_options">GTK_FILL</property>
+                        <property name="y_options">GTK_EXPAND</property>
                       </packing>
                     </child>
                   </object>
@@ -1052,4 +1024,26 @@
       </row>
     </data>
   </object>
+  <object class="GtkListStore" id="model8">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Nothing</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkListStore" id="model9">
+    <columns>
+      <!-- column-name gchararray -->
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Nothing</col>
+      </row>
+    </data>
+  </object>
 </interface>
diff --git a/settings/xfpm-settings.c b/settings/xfpm-settings.c
index 8fcfdc6..1fe7395 100644
--- a/settings/xfpm-settings.c
+++ b/settings/xfpm-settings.c
@@ -95,16 +95,10 @@ void        power_save_toggled_cb                  (GtkWidget *w,
 void        notify_toggled_cb                      (GtkWidget *w, 
 						    XfconfChannel *channel);
 
-void        set_hibernate_inactivity               (GtkWidget *w, 
+void        on_sleep_mode_changed_cb      (GtkWidget *w,
 						    XfconfChannel *channel);
 
-void        set_suspend_inactivity                 (GtkWidget *w, 
-						    XfconfChannel *channel);
-
-void        set_dpms_standby_mode                  (GtkWidget *w, 
-						    XfconfChannel *channel);
-
-void        set_dpms_suspend_mode                  (GtkWidget *w, 
+void        on_sleep_dpms_mode_changed_cb      (GtkWidget *w,
 						    XfconfChannel *channel);
 
 void        dpms_toggled_cb                        (GtkWidget *w, 
@@ -351,69 +345,51 @@ notify_toggled_cb (GtkWidget *w, XfconfChannel *channel)
 }
 
 void
-set_hibernate_inactivity (GtkWidget *w, XfconfChannel *channel)
+on_sleep_mode_changed_cb (GtkWidget *w, XfconfChannel *channel)
 {
-    gboolean active;
-    
-    active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+    GtkTreeModel     *model;
+    GtkTreeIter       selected_row;
+    gchar *value = "";
     
-    if ( active )
-    {
-	if (!xfconf_channel_set_string (channel, PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE, "Hibernate") )
-	{
-	    g_critical ("Cannot set value hibernate for property %s", INACTIVITY_SLEEP_MODE);
-	}
-    }
-}
+    if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
+	return;
 
-void
-set_suspend_inactivity (GtkWidget *w, XfconfChannel *channel)
-{
-    gboolean active;
+    model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
+
+    gtk_tree_model_get(model,
+                       &selected_row,
+                       0,
+                       &value,
+                       -1);
     
-    active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
-    if ( active )
+    if (!xfconf_channel_set_string (channel, PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE, value) )
     {
-	if (!xfconf_channel_set_string (channel, PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE, "Suspend") )
-	{
-	    g_critical ("Cannot set value suspend for property %s", INACTIVITY_SLEEP_MODE);
-	}
+	g_critical ("Cannot set value for property %s\n", INACTIVITY_SLEEP_MODE);
     }
 }
 
 void
-set_dpms_standby_mode (GtkWidget *w, XfconfChannel *channel)
+on_sleep_dpms_mode_changed_cb (GtkWidget *w, XfconfChannel *channel)
 {
-#ifdef HAVE_DPMS
-    gboolean active;
-    
-    active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+    GtkTreeModel     *model;
+    GtkTreeIter       selected_row;
+    gchar *value = "";
     
-    if ( active )
-    {
-	if (!xfconf_channel_set_string (channel, PROPERTIES_PREFIX DPMS_SLEEP_MODE, "standby") )
-	{
-	    g_critical ("Cannot set value sleep for property %s\n", DPMS_SLEEP_MODE);
-	}
-    }
-#endif
-}
+    if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (w), &selected_row))
+	return;
 
-void
-set_dpms_suspend_mode (GtkWidget *w, XfconfChannel *channel)
-{
-#ifdef HAVE_DPMS
-    gboolean active;
+    model = gtk_combo_box_get_model (GTK_COMBO_BOX(w));
+
+    gtk_tree_model_get(model,
+                       &selected_row,
+                       0,
+                       &value,
+                       -1);
     
-    active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
-    if ( active )
+    if (!xfconf_channel_set_string (channel, PROPERTIES_PREFIX DPMS_SLEEP_MODE, value) )
     {
-	if (!xfconf_channel_set_string (channel, PROPERTIES_PREFIX DPMS_SLEEP_MODE, "suspend") )
-	{
-	    g_critical ("Cannot set value sleep for property %s\n", DPMS_SLEEP_MODE);
-	}
+	g_critical ("Cannot set value for property %s\n", DPMS_SLEEP_MODE);
     }
-#endif
 }
 
 void
@@ -1374,67 +1350,100 @@ xfpm_settings_advanced (XfconfChannel *channel, gboolean system_laptop,
     GtkWidget *sleep_dpms_mode;
     GtkWidget *suspend_dpms_mode;
     GtkWidget *network_manager_sleep;
+    GtkWidget *sleep_mode;
+
+    gchar *list_str;
+    gboolean valid;
+    GtkListStore *list_store;
+    GtkTreeIter iter;
+
+    /*
+     * Computer sleep mode
+     */
+    list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
+    sleep_mode = GTK_WIDGET (gtk_builder_get_object (xml, "sleep-mode"));
+    label = GTK_WIDGET (gtk_builder_get_object (xml, "advanced_sleepmode_label"));
+    gtk_combo_box_set_model (GTK_COMBO_BOX(sleep_mode), GTK_TREE_MODEL(list_store));
     
-    GtkWidget *inact_suspend = GTK_WIDGET (gtk_builder_get_object (xml, "inactivity-suspend"));
-    GtkWidget *inact_hibernate = GTK_WIDGET (gtk_builder_get_object (xml, "inactivity-hibernate"));
-    
-    if ( !can_suspend )
+    if ( can_suspend )
     {
-	gtk_widget_set_sensitive (inact_suspend, FALSE);
-	gtk_widget_set_tooltip_text (inact_suspend, _("Suspend operation not supported"));
+	gtk_list_store_append (list_store, &iter);
+	gtk_list_store_set (list_store, &iter, 0, _("Suspend"), -1);
     }
     else if ( !auth_suspend )
     {
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (inact_hibernate), TRUE);
-	gtk_widget_set_sensitive (inact_suspend, FALSE);
-	gtk_widget_set_tooltip_text (inact_suspend, _("Suspend operation not permitted"));
+	gtk_widget_set_tooltip_text (sleep_mode, _("Suspend operation not permitted"));
+    }
+    else
+    {
+	gtk_widget_set_tooltip_text (sleep_mode, _("Suspend operation not supported"));
     }
     
-    if ( !can_hibernate )
+    if ( can_hibernate )
     {
-	gtk_widget_set_sensitive (inact_hibernate, FALSE);
-	gtk_widget_set_tooltip_text (inact_hibernate, _("Hibernate operation not supported"));
+	gtk_list_store_append (list_store, &iter);
+	gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), -1);
     }
-    else if ( !auth_hibernate)
+    else if ( !auth_hibernate )
     {
-	gtk_widget_set_sensitive (inact_hibernate, FALSE);
-	gtk_widget_set_tooltip_text (inact_hibernate, _("Hibernate operation not permitted"));
+	gtk_widget_set_tooltip_text (sleep_mode, _("Hibernate operation not permitted"));
     }
-   
+    else
+    {
+	gtk_widget_set_tooltip_text (sleep_mode, _("Hibernate operation not supported"));
+    }
+
+    gtk_combo_box_set_active (GTK_COMBO_BOX (sleep_mode), 0);
+
     str = xfconf_channel_get_string (channel, PROPERTIES_PREFIX INACTIVITY_SLEEP_MODE, "Suspend");
-    if ( !g_strcmp0 (str, "Suspend") )
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (inact_suspend), TRUE);
-    else if ( !g_strcmp0 (str, "Hibernate"))
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (inact_hibernate), TRUE);
-    else 
+    for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
+	  valid;
+	  valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
     {
-	g_warning ("Invalid value %s for property %s ", str, INACTIVITY_SLEEP_MODE);
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (inact_suspend), TRUE);
+	gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
+			    0, &list_str, -1);
+	if ( g_strcmp0 (str, list_str) )
+	{
+	    gtk_combo_box_set_active_iter (GTK_COMBO_BOX (sleep_mode), &iter);
+	    break;
+	}
     }
-   
     g_free (str);
 
+    /*
+     * Display sleep mode
+     */
     sleep_dpms_mode = GTK_WIDGET (gtk_builder_get_object (xml, "sleep-dpms-mode"));
-    suspend_dpms_mode = GTK_WIDGET (gtk_builder_get_object (xml, "suspend-dpms-mode"));
-    
+
 #ifdef HAVE_DPMS
-    str = xfconf_channel_get_string (channel, PROPERTIES_PREFIX DPMS_SLEEP_MODE, "standby");
-    
-    if ( !g_strcmp0 (str, "standby" ) )
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sleep_dpms_mode), TRUE);
-    else if ( !g_strcmp0 (str, "suspend") )
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (suspend_dpms_mode), TRUE);
-    else 
+    list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT);
+    gtk_combo_box_set_model (GTK_COMBO_BOX(sleep_dpms_mode), GTK_TREE_MODEL(list_store));
+    gtk_list_store_append (list_store, &iter);
+    gtk_list_store_set (list_store, &iter, 0, _("Suspend"), -1);
+    gtk_list_store_append (list_store, &iter);
+    gtk_list_store_set (list_store, &iter, 0, _("Standby"), -1);
+
+    gtk_combo_box_set_active (GTK_COMBO_BOX (sleep_dpms_mode), 0);
+
+    str = xfconf_channel_get_string (channel, PROPERTIES_PREFIX DPMS_SLEEP_MODE, "Standby");
+
+    for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter);
+	  valid;
+	  valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (list_store), &iter) )
     {
-	g_critical ("Invalid value %s for property %s\n", str, PROPERTIES_PREFIX DPMS_SLEEP_MODE );
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sleep_dpms_mode), TRUE);
+	gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter,
+			    0, &list_str, -1);
+	if ( g_strcmp0 (str, list_str) )
+	{
+	    gtk_combo_box_set_active_iter (GTK_COMBO_BOX (sleep_dpms_mode), &iter);
+	    break;
+	}
     }
-    
+
     g_free (str);
     
 #else
     gtk_widget_hide (sleep_dpms_mode);
-    gtk_widget_hide (suspend_dpms_mode);
     gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (xml, "dpms-mode-label")));
 #endif
 
diff --git a/src/xfpm-dpms.c b/src/xfpm-dpms.c
index fdc573c..95b63f5 100644
--- a/src/xfpm-dpms.c
+++ b/src/xfpm-dpms.c
@@ -127,7 +127,7 @@ xfpm_dpms_get_sleep_mode (XfpmDpms *dpms, gboolean *ret_standby_mode)
 		  DPMS_SLEEP_MODE, &sleep_mode,
 		  NULL);
     
-    if ( !g_strcmp0 (sleep_mode, "standby"))
+    if ( !g_strcmp0 (sleep_mode, "Standby"))
 	*ret_standby_mode = TRUE;
     else
 	*ret_standby_mode = FALSE;
diff --git a/src/xfpm-xfconf.c b/src/xfpm-xfconf.c
index 5558e30..8c8e3b3 100644
--- a/src/xfpm-xfconf.c
+++ b/src/xfpm-xfconf.c
@@ -463,7 +463,7 @@ xfpm_xfconf_class_init (XfpmXfconfClass *klass)
                                      PROP_DPMS_SLEEP_MODE,
                                      g_param_spec_string  (DPMS_SLEEP_MODE,
                                                            NULL, NULL,
-                                                           "standby",
+                                                           "Standby",
                                                            G_PARAM_READWRITE));
 #endif /* HAVE_DPMS */
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list