aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/calendar-weather/calendar-weather.c
diff options
context:
space:
mode:
authorDavid Trowbridge <trowbrds@cs.colorado.edu>2005-01-12 15:22:49 +0800
committerDavid Trowbridge <trowbrds@src.gnome.org>2005-01-12 15:22:49 +0800
commita7fe81b508b9119ba60301fc5670bf98b9b8b8c7 (patch)
tree399e994cb40c1a0cb43c0f3fbd96ae05a7472d2f /plugins/calendar-weather/calendar-weather.c
parent06091a255ef2fdbdf44629078b93c11b02e1aa31 (diff)
downloadgsoc2013-evolution-a7fe81b508b9119ba60301fc5670bf98b9b8b8c7.tar.gz
gsoc2013-evolution-a7fe81b508b9119ba60301fc5670bf98b9b8b8c7.tar.zst
gsoc2013-evolution-a7fe81b508b9119ba60301fc5670bf98b9b8b8c7.zip
use a single setting for metric/imperial rather than separate temperature
2005-01-12 David Trowbridge <trowbrds@cs.colorado.edu> * plugins/calendar-weather/(calendar-weather.c, org-gnome-calendar-weather.eplug.in): use a single setting for metric/imperial rather than separate temperature and snowfall settings svn path=/trunk/; revision=28369
Diffstat (limited to 'plugins/calendar-weather/calendar-weather.c')
-rw-r--r--plugins/calendar-weather/calendar-weather.c126
1 files changed, 30 insertions, 96 deletions
diff --git a/plugins/calendar-weather/calendar-weather.c b/plugins/calendar-weather/calendar-weather.c
index 6579b1f470..5009ee5484 100644
--- a/plugins/calendar-weather/calendar-weather.c
+++ b/plugins/calendar-weather/calendar-weather.c
@@ -34,8 +34,7 @@
GtkWidget *e_calendar_weather_location (EPlugin *epl, EConfigHookItemFactoryData *data);
GtkWidget *e_calendar_weather_refresh (EPlugin *epl, EConfigHookItemFactoryData *data);
-GtkWidget *e_calendar_weather_temperature (EPlugin *epl, EConfigHookItemFactoryData *data);
-GtkWidget *e_calendar_weather_snowfall (EPlugin *epl, EConfigHookItemFactoryData *data);
+GtkWidget *e_calendar_weather_units (EPlugin *epl, EConfigHookItemFactoryData *data);
gboolean e_calendar_weather_check (EPlugin *epl, EConfigHookPageCheckData *data);
void e_calendar_weather_migrate (EPlugin *epl, ECalEventTargetComponent *data);
int e_plugin_lib_enable (EPluginLib *epl, int enable);
@@ -587,107 +586,42 @@ e_calendar_weather_refresh (EPlugin *epl, EConfigHookItemFactoryData *data)
}
static void
-set_temperature_units (ESource *source, GtkWidget *option)
+set_units (ESource *source, GtkWidget *option)
{
- const char *format = e_source_get_property (source, "temperature");
- if (format == NULL)
- gtk_option_menu_set_history (GTK_OPTION_MENU (option), 0);
- else if (strcmp (format, "fahrenheit") == 0)
- gtk_option_menu_set_history (GTK_OPTION_MENU (option), 1);
- else
- gtk_option_menu_set_history (GTK_OPTION_MENU (option), 0);
-}
-
-static void
-temperature_units_changed (GtkOptionMenu *option, ECalConfigTargetSource *t)
-{
- int choice = gtk_option_menu_get_history (GTK_OPTION_MENU (option));
- if (choice == 0)
- e_source_set_property (t->source, "temperature", "celcius");
- else
- e_source_set_property (t->source, "temperature", "fahrenheit");
-}
-
-GtkWidget *
-e_calendar_weather_temperature (EPlugin *epl, EConfigHookItemFactoryData *data)
-{
- static GtkWidget *label;
- GtkWidget *option, *menu, *parent;
- GtkWidget *formats[2];
- int row, i;
- ECalConfigTargetSource *t = (ECalConfigTargetSource *) data->target;
- ESource *source = t->source;
- EUri *uri;
- char *uri_text;
- static GtkWidget *hidden = NULL;
-
- if (!hidden)
- hidden = gtk_label_new ("");
-
- if (data->old)
- gtk_widget_destroy (label);
-
- uri_text = e_source_get_uri (t->source);
- uri = e_uri_new (uri_text);
- g_free (uri_text);
- if (strcmp (uri->protocol, "weather")) {
- e_uri_free (uri);
- return hidden;
- }
- e_uri_free (uri);
-
- parent = data->parent;
-
- row = ((GtkTable*)parent)->nrows;
-
- label = gtk_label_new_with_mnemonic (_("_Temperature Units:"));
- gtk_widget_show (label);
- gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
- gtk_table_attach (GTK_TABLE (parent), label, 0, 1, row, row+1, GTK_FILL, 0, 0, 0);
-
- option = gtk_option_menu_new ();
- gtk_widget_show (option);
- formats[0] = gtk_menu_item_new_with_label (_("Celcius"));
- formats[1] = gtk_menu_item_new_with_label (_("Fahrenheit"));
- menu = gtk_menu_new ();
- gtk_widget_show (menu);
- for (i = 0; i < 2; i++) {
- gtk_widget_show (formats[i]);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), formats[i]);
+ const char *format = e_source_get_property (source, "units");
+ if (format == NULL) {
+ format = e_source_get_property (source, "temperature");
+ if (format == NULL) {
+ e_source_set_property (source, "units", "metric");
+ gtk_option_menu_set_history (GTK_OPTION_MENU (option), 0);
+ } else if (strcmp (format, "fahrenheit") == 0) {
+ /* old format, convert */
+ e_source_set_property (source, "units", "imperial");
+ gtk_option_menu_set_history (GTK_OPTION_MENU (option), 1);
+ } else {
+ e_source_set_property (source, "units", "metric");
+ gtk_option_menu_set_history (GTK_OPTION_MENU (option), 0);
+ }
+ } else {
+ if (strcmp (format, "metric") == 0)
+ gtk_option_menu_set_history (GTK_OPTION_MENU (option), 0);
+ else
+ gtk_option_menu_set_history (GTK_OPTION_MENU (option), 1);
}
- gtk_option_menu_set_menu (GTK_OPTION_MENU (option), menu);
- set_temperature_units (source, option);
- gtk_label_set_mnemonic_widget (GTK_LABEL (label), option);
- g_signal_connect (G_OBJECT (option), "changed", G_CALLBACK (temperature_units_changed), t);
- gtk_table_attach (GTK_TABLE (parent), option, 1, 2, row, row+1, GTK_FILL, 0, 0, 0);
-
- return option;
-}
-
-static void
-set_snowfall_units (ESource *source, GtkWidget *option)
-{
- const char *format = e_source_get_property (source, "snowfall");
- if (format == NULL)
- gtk_option_menu_set_history (GTK_OPTION_MENU (option), 0);
- else if (strcmp (format, "inches") == 0)
- gtk_option_menu_set_history (GTK_OPTION_MENU (option), 1);
- else
- gtk_option_menu_set_history (GTK_OPTION_MENU (option), 0);
}
static void
-snowfall_units_changed (GtkOptionMenu *option, ECalConfigTargetSource *t)
+units_changed (GtkOptionMenu *option, ECalConfigTargetSource *t)
{
int choice = gtk_option_menu_get_history (GTK_OPTION_MENU (option));
if (choice == 0)
- e_source_set_property (t->source, "snowfall", "centimeters");
+ e_source_set_property (t->source, "units", "metric");
else
- e_source_set_property (t->source, "snowfall", "inches");
+ e_source_set_property (t->source, "units", "imperial");
}
GtkWidget *
-e_calendar_weather_snowfall (EPlugin *epl, EConfigHookItemFactoryData *data)
+e_calendar_weather_units (EPlugin *epl, EConfigHookItemFactoryData *data)
{
static GtkWidget *label;
GtkWidget *option, *menu, *parent;
@@ -718,15 +652,15 @@ e_calendar_weather_snowfall (EPlugin *epl, EConfigHookItemFactoryData *data)
row = ((GtkTable*)parent)->nrows;
- label = gtk_label_new_with_mnemonic (_("_Snowfall Units:"));
+ label = gtk_label_new_with_mnemonic (_("_Units:"));
gtk_widget_show (label);
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_table_attach (GTK_TABLE (parent), label, 0, 1, row, row+1, GTK_FILL, 0, 0, 0);
option = gtk_option_menu_new ();
gtk_widget_show (option);
- formats[0] = gtk_menu_item_new_with_label (_("Centimeters"));
- formats[1] = gtk_menu_item_new_with_label (_("Inches"));
+ formats[0] = gtk_menu_item_new_with_label (_("Metric (celcius, cm, etc)"));
+ formats[1] = gtk_menu_item_new_with_label (_("Imperial (fahrenheit, inches, etc)"));
menu = gtk_menu_new ();
gtk_widget_show (menu);
for (i = 0; i < 2; i++) {
@@ -734,9 +668,9 @@ e_calendar_weather_snowfall (EPlugin *epl, EConfigHookItemFactoryData *data)
gtk_menu_shell_append (GTK_MENU_SHELL (menu), formats[i]);
}
gtk_option_menu_set_menu (GTK_OPTION_MENU (option), menu);
- set_snowfall_units (source, option);
+ set_units (source, option);
gtk_label_set_mnemonic_widget (GTK_LABEL (label), option);
- g_signal_connect (G_OBJECT (option), "changed", G_CALLBACK (snowfall_units_changed), t);
+ g_signal_connect (G_OBJECT (option), "changed", G_CALLBACK (units_changed), t);
gtk_table_attach (GTK_TABLE (parent), option, 1, 2, row, row+1, GTK_FILL, 0, 0, 0);
return option;