projects
/
belltower
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
171e1ff
)
fifty miles, eighty kilometres
author
Thomas Thurman
<tthurman@gnome.org>
Mon, 31 Aug 2009 23:11:24 +0000
(19:11 -0400)
committer
Thomas Thurman
<tthurman@gnome.org>
Mon, 31 Aug 2009 23:11:24 +0000
(19:11 -0400)
belltower.c
patch
|
blob
|
history
diff --git
a/belltower.c
b/belltower.c
index
dfcc66d
..
2a406bf
100644
(file)
--- a/
belltower.c
+++ b/
belltower.c
@@
-60,6
+60,11
@@
char **settings[] = {
gint settings_value[G_N_ELEMENTS (settings)] = { 0, };
typedef enum {
gint settings_value[G_N_ELEMENTS (settings)] = { 0, };
typedef enum {
+ SETTINGS_DISTANCES,
+ SETTINGS_TOWERSORT
+} Settings;
+
+typedef enum {
DISTANCES_MILES,
DISTANCES_KILOMETRES
} DistancesSetting;
DISTANCES_MILES,
DISTANCES_KILOMETRES
} DistancesSetting;
@@
-249,22
+254,28
@@
distance_to_tower (tower *details)
device->fix->longitude,
tower_lat,
tower_long);
device->fix->longitude,
tower_lat,
tower_long);
-
- return (int) (km_distance / km_to_miles);
+ if (settings_value[SETTINGS_DISTANCES]==DISTANCES_KILOMETRES)
+ return (int) km_distance;
+ else
+ return (int) (km_distance / km_to_miles);
}
static gchar*
distance_to_tower_str (tower *details)
{
}
static gchar*
distance_to_tower_str (tower *details)
{
- int miles = distance_to_tower (details);
+ int distance = distance_to_tower (details);
- if (miles==-1)
+ if (distance==-1)
{
return g_strdup ("unknown");
}
{
return g_strdup ("unknown");
}
+ else if (settings_value[SETTINGS_DISTANCES]==DISTANCES_KILOMETRES)
+ {
+ return g_strdup_printf("%dkm", (int) distance);
+ }
else
{
else
{
- return g_strdup_printf("%dmi", (int) miles);
+ return g_strdup_printf("%dmi", (int) distance);
}
}
}
}
@@
-511,12
+522,12
@@
get_counties_cb (tower *details,
static FilterResult
get_nearby_towers_cb (tower *details,
static FilterResult
get_nearby_towers_cb (tower *details,
- gpointer data)
+ gpointer distance)
{
if (details->serial==0)
return FILTER_IGNORE; /* header row */
{
if (details->serial==0)
return FILTER_IGNORE; /* header row */
- if (distance_to_tower (details) < 50)
+ if (distance_to_tower (details) <= GPOINTER_TO_INT (distance))
{
return FILTER_ACCEPT;
}
{
return FILTER_ACCEPT;
}
@@
-657,7
+668,7
@@
single_tower_cb (tower *details,
gchar *str;
gint tenor_weight;
gchar *primary_key = (gchar*) data;
gchar *str;
gint tenor_weight;
gchar *primary_key = (gchar*) data;
- gchar *miles;
+ gchar *distance;
if (strcmp(details->fields[FieldPrimaryKey], primary_key)!=0)
{
if (strcmp(details->fields[FieldPrimaryKey], primary_key)!=0)
{
@@
-680,9
+691,9
@@
single_tower_cb (tower *details,
buttons = gtk_vbox_new (TRUE, 0);
menu = HILDON_APP_MENU (hildon_app_menu_new ());
buttons = gtk_vbox_new (TRUE, 0);
menu = HILDON_APP_MENU (hildon_app_menu_new ());
- miles = distance_to_tower_str(details);
+ distance = distance_to_tower_str(details);
- add_table_field ("Distance", miles);
+ add_table_field ("Distance", distance);
add_table_field ("Postcode", details->fields[FieldPostcode]);
add_table_field ("County", details->fields[FieldCounty]);
add_table_field ("Country", details->fields[FieldCountry]);
add_table_field ("Postcode", details->fields[FieldPostcode]);
add_table_field ("County", details->fields[FieldCounty]);
add_table_field ("Country", details->fields[FieldCountry]);
@@
-690,7
+701,7
@@
single_tower_cb (tower *details,
add_table_field ("Practice night", details->fields[FieldPracticeNight]);
add_table_field ("Bells", details->fields[FieldBells]);
add_table_field ("Practice night", details->fields[FieldPracticeNight]);
add_table_field ("Bells", details->fields[FieldBells]);
- g_free (miles);
+ g_free (distance);
tenor_weight = atoi (details->fields[FieldWt]);
str = g_strdup_printf("%dcwt %dqr %dlb in %s",
tenor_weight = atoi (details->fields[FieldWt]);
str = g_strdup_printf("%dcwt %dqr %dlb in %s",
@@
-1028,7
+1039,11
@@
nearby_towers (void)
}
parse_dove (get_nearby_towers_cb,
}
parse_dove (get_nearby_towers_cb,
- NULL,
+ settings_value[SETTINGS_DISTANCES]==DISTANCES_KILOMETRES?
+ GINT_TO_POINTER (80) :
+ GINT_TO_POINTER (50),
+ settings_value[SETTINGS_DISTANCES]==DISTANCES_KILOMETRES?
+ "Towers within eighty kilometres of you":
"Towers within fifty miles of you");
}
"Towers within fifty miles of you");
}