X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=modules%2Ftweakr-profile-status-menu-widget.c;h=84bec28e5c09f1521427a2c545f565ce18e59ed6;hb=b8354b059d6f402ef6b0afcf50b97dde010c70c0;hp=119978b978f174e177f6d64c40e19c3f1e9e31f7;hpb=c18161b66eb932c5b7a9c33bad06ab18122e9c88;p=tweakr diff --git a/modules/tweakr-profile-status-menu-widget.c b/modules/tweakr-profile-status-menu-widget.c index 119978b..84bec28 100644 --- a/modules/tweakr-profile-status-menu-widget.c +++ b/modules/tweakr-profile-status-menu-widget.c @@ -98,18 +98,25 @@ _preset_clicked (HildonButton *button, TweakrProfileStatusPlugin *plugin) const gchar *path = g_object_get_data (G_OBJECT (button), "path"); gchar *basename; - entries = gconf_client_all_entries (plugin->priv->gconf, path, NULL); + if (strcmp (path, "silent") == 0) + { + profile_set_profile ("silent"); + } + else + { + entries = gconf_client_all_entries (plugin->priv->gconf, path, NULL); - g_slist_foreach (entries, (GFunc) _process_entry, plugin); - g_slist_free (entries); + g_slist_foreach (entries, (GFunc) _process_entry, plugin); + g_slist_free (entries); - profile_set_profile ("general"); + profile_set_profile ("general"); - basename = g_path_get_basename (path); - hildon_button_set_value (HILDON_BUTTON (plugin->priv->button), basename); - gconf_client_set_string (plugin->priv->gconf, - GCONF_PATH "/current-preset", basename, NULL); - g_free (basename); + basename = g_path_get_basename (path); + hildon_button_set_value (HILDON_BUTTON (plugin->priv->button), basename); + gconf_client_set_string (plugin->priv->gconf, + GCONF_PATH "/current-preset", basename, NULL); + g_free (basename); + } gtk_dialog_response (GTK_DIALOG (plugin->priv->dialog), GTK_RESPONSE_OK); hildon_banner_show_information (NULL, NULL, @@ -161,10 +168,25 @@ _button_clicked (HildonButton *b, TweakrProfileStatusPlugin *plugin) presets = gconf_client_all_dirs (plugin->priv->gconf, GCONF_PATH, NULL); g_object_set (G_OBJECT (panarea), "height-request", - MIN (350, g_slist_length (presets) * 70), NULL); + MIN (350, (g_slist_length (presets) + 1) * 70), NULL); + /* For the hardcoded Silent: ^ */ g_slist_foreach (presets, (GFunc) _add_preset, plugin); + /* Add hard coded Silent profile. */ + { + GtkWidget *button; + + button = hildon_button_new_with_text + (HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL, + dgettext("osso-profiles", "profi_bd_silent"), NULL); + gtk_button_set_alignment (GTK_BUTTON (button), 0.0f, 0.5f); + gtk_box_pack_start (GTK_BOX (plugin->priv->box), button, FALSE, FALSE, 0); + g_object_set_data_full (G_OBJECT (button), "path", "silent", NULL); + g_signal_connect (button, "clicked", G_CALLBACK (_preset_clicked), + plugin); + } + gtk_widget_show_all (GTK_DIALOG (plugin->priv->dialog)->vbox); ret = gtk_dialog_run (GTK_DIALOG (plugin->priv->dialog)); gtk_widget_destroy (plugin->priv->dialog);