diff --git a/ChangeLog b/ChangeLog index a7b9b0c519a7380a5f24bf9dbd198ac686345411..5d0babda925f4f0c100d8b2f1ee489c2e11e55d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-06-20: 19:50 Ali aliov@xfce.org + * Fix default values shown in the settings dialog. + * fix issue reading default values from xfconf. + 2009-06-20: 19:10 Ali aliov@xfce.org * Fix a DPMS storage values. diff --git a/libxfpm/xfpm-common.c b/libxfpm/xfpm-common.c index 34269c8999cc56b1d70141c2c7ce48a63b9f983b..bc3a4333556bc875ebcd6b5dd14558b477bedcb4 100644 --- a/libxfpm/xfpm-common.c +++ b/libxfpm/xfpm-common.c @@ -77,25 +77,6 @@ xfpm_load_icon (const char *icon_name, gint size) return icon; } -/* - * Map of int to strings shutdown values - */ -const gchar *xfpm_int_to_shutdown_string (gint val) -{ - if ( val == 0 ) - return "Nothing"; - else if ( val == 1) - return "Suspend"; - else if ( val == 2) - return "Hibernate"; - else if ( val == 3) - return "Shutdown"; - else if ( val == 4) - return "Ask"; - - return "Invalid"; -} - gint xfpm_shutdown_string_to_int (const gchar *string) { if ( xfpm_strequal("Nothing", string) ) diff --git a/settings/xfpm-settings.c b/settings/xfpm-settings.c index 0ca1b359216eb7cad10d65d19adeecee24a3ca47..81ab3fbd15668f806582c5d2df365bd779a553d8 100644 --- a/settings/xfpm-settings.c +++ b/settings/xfpm-settings.c @@ -799,7 +799,19 @@ xfpm_settings_on_battery (XfconfChannel *channel, gboolean user_privilege, gbool gtk_list_store_set (list_store, &iter, 0, _("Lock screen"), 1, LID_TRIGGER_LOCK_SCREEN, -1); val = xfconf_channel_get_uint (channel, "/" LID_SWITCH_ON_BATTERY_CFG, LID_TRIGGER_LOCK_SCREEN); - gtk_combo_box_set_active (GTK_COMBO_BOX (lid), val); + + 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) ) + { + gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter, + 1, &list_value, -1); + if ( val == list_value ) + { + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (lid), &iter); + break; + } + } } else { @@ -843,7 +855,9 @@ xfpm_settings_on_ac (XfconfChannel *channel, gboolean user_privilege, gboolean c GtkWidget *brg; GtkListStore *list_store; GtkTreeIter iter; - gint val; + guint val; + gboolean valid; + guint list_value; #ifdef HAVE_DPMS GtkWidget *dpms_frame_on_ac; @@ -909,8 +923,18 @@ xfpm_settings_on_ac (XfconfChannel *channel, gboolean user_privilege, gboolean c gtk_list_store_set (list_store, &iter, 0, _("Lock screen"), 1, LID_TRIGGER_LOCK_SCREEN, -1); val = xfconf_channel_get_uint (channel, "/" LID_SWITCH_ON_AC_CFG, LID_TRIGGER_LOCK_SCREEN); - - gtk_combo_box_set_active (GTK_COMBO_BOX (lid), val); + 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) ) + { + gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter, + 1, &list_value, -1); + if ( val == list_value ) + { + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (lid), &iter); + break; + } + } } else { @@ -959,6 +983,8 @@ xfpm_settings_general (XfconfChannel *channel, gboolean user_privilege, GtkWidget *notify; guint value; + guint list_value; + gboolean valid; gboolean val; GtkWidget *dpms; @@ -985,7 +1011,18 @@ xfpm_settings_general (XfconfChannel *channel, gboolean user_privilege, value = xfconf_channel_get_uint (channel, "/" SHOW_TRAY_ICON_CFG, SHOW_ICON_WHEN_BATTERY_PRESENT); - gtk_combo_box_set_active (GTK_COMBO_BOX (tray), value); + 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) ) + { + gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter, + 1, &list_value, -1); + if ( value == list_value ) + { + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (tray), &iter); + break; + } + } dpms = GTK_WIDGET (gtk_builder_get_object (xml, "enable-dpms")); #ifdef HAVE_DPMS @@ -1041,8 +1078,18 @@ xfpm_settings_general (XfconfChannel *channel, gboolean user_privilege, gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1); value = xfconf_channel_get_uint (channel, "/" POWER_SWITCH_CFG, XFPM_DO_NOTHING); - - gtk_combo_box_set_active (GTK_COMBO_BOX(power), value); + 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) ) + { + gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter, + 1, &list_value, -1); + if ( value == list_value ) + { + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (power), &iter); + break; + } + } } else { @@ -1086,8 +1133,18 @@ xfpm_settings_general (XfconfChannel *channel, gboolean user_privilege, gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1); value = xfconf_channel_get_uint (channel, "/" HIBERNATE_SWITCH_CFG, XFPM_DO_NOTHING); - - gtk_combo_box_set_active (GTK_COMBO_BOX (hibernate), value); + 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) ) + { + gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter, + 1, &list_value, -1); + if ( value == list_value ) + { + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (hibernate), &iter); + break; + } + } } else { @@ -1131,7 +1188,18 @@ xfpm_settings_general (XfconfChannel *channel, gboolean user_privilege, gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1); value = xfconf_channel_get_uint (channel, "/" SLEEP_SWITCH_CFG, XFPM_DO_NOTHING); - gtk_combo_box_set_active (GTK_COMBO_BOX (sleep_w), value); + 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) ) + { + gtk_tree_model_get (GTK_TREE_MODEL (list_store), &iter, + 1, &list_value, -1); + if ( value == list_value ) + { + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (sleep_w), &iter); + break; + } + } } else { diff --git a/src/xfpm-engine.c b/src/xfpm-engine.c index c5506b7657015d96077588fbc8e0138497275081..fb138609d05165333a625a2720f0fa39c399228a 100644 --- a/src/xfpm-engine.c +++ b/src/xfpm-engine.c @@ -146,6 +146,25 @@ xfpm_engine_do_shutdown (XfpmEngine * engine) return FALSE; } +/* + * Map of int to strings shutdown values + */ +const gchar *xfpm_int_to_shutdown_string (gint val) +{ + if ( val == XFPM_DO_NOTHING ) + return "Nothing"; + else if ( val == XFPM_DO_SUSPEND) + return "Suspend"; + else if ( val == XFPM_DO_HIBERNATE) + return "Hibernate"; + else if ( val == XFPM_DO_SHUTDOWN) + return "Shutdown"; + else if ( val == XFPM_ASK) + return "Ask"; + + return "Invalid"; +} + static void xfpm_engine_shutdown_request (XfpmEngine * engine, XfpmShutdownRequest shutdown, gboolean critical) @@ -159,7 +178,12 @@ xfpm_engine_shutdown_request (XfpmEngine * engine, if (xfpm_strequal (action, "Nothing")) { - TRACE ("Sleep button disabled in configuration"); + TRACE ("Button is disabled in configuration"); + return; + } + else if ( xfpm_strequal (action, "Ask") && xfpm_strequal (action, "Invalid")) + { + g_warning ("Invalid configuration action %s", action); return; } else if ( engine->priv->inhibited == TRUE && critical == FALSE ) @@ -227,7 +251,6 @@ xfpm_engine_button_pressed_cb (XfpmButton *button, { XfpmShutdownRequest req = XFPM_DO_NOTHING; - XFPM_DEBUG_ENUM ("Received button press event", type, XFPM_TYPE_BUTTON_KEY); if ( engine->priv->inhibited ) @@ -254,13 +277,14 @@ xfpm_engine_button_pressed_cb (XfpmButton *button, else if ( type == BUTTON_SLEEP ) { g_object_get (G_OBJECT (engine->priv->conf), - POWER_SWITCH_CFG, &req, + SLEEP_SWITCH_CFG, &req, NULL); + g_print ("req %d\n", req); } else if ( type == BUTTON_HIBERNATE ) { g_object_get (G_OBJECT (engine->priv->conf), - POWER_SWITCH_CFG, &req, + HIBERNATE_SWITCH_CFG, &req, NULL); } else diff --git a/src/xfpm-xfconf.c b/src/xfpm-xfconf.c index 202e09f4360047714d1b51b5e1aa0cd6b3d31a02..11ef2ed9aebaffd5298e71da0381f303cad4582e 100644 --- a/src/xfpm-xfconf.c +++ b/src/xfpm-xfconf.c @@ -146,18 +146,20 @@ xfpm_xfconf_load (XfpmXfconf *conf, gboolean channel_valid) for ( i = 0; i < nspecs; i++) { gchar *prop_name; - prop_name = g_strjoin ("/", specs[i]->name, NULL); + prop_name = g_strdup_printf ("/%s", specs[i]->name); + g_value_init (&value, specs[i]->value_type); - if (channel_valid ) + if (channel_valid) { if ( !xfconf_channel_get_property (conf->priv->channel, prop_name, &value) ) { - g_value_init (&value, specs[i]->value_type); + TRACE ("Using default configuration for %s", specs[i]->name); g_param_value_set_default (specs[i], &value); } } else { + TRACE ("Using default configuration for %s", specs[i]->name); g_param_value_set_default (specs[i], &value); } g_free (prop_name);