- Updated the time zone map images
- Updated the city data from geonames.org - Fix a memory leak and potential crash with the locations list - Cycle through a smaller list of map locations on repeated clicks
This commit is contained in:
		
							parent
							
								
									ff29a1dbae
								
							
						
					
					
						commit
						28bd411837
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,2 +1,3 @@ | |||||||
| /libtimezonemap_0.4.1.tar.gz | /libtimezonemap_0.4.1.tar.gz | ||||||
| /libtimezonemap_0.4.2.tar.gz | /libtimezonemap_0.4.2.tar.gz | ||||||
|  | /timezone_pngs.tar.gz | ||||||
|  | |||||||
| @ -0,0 +1,71 @@ | |||||||
|  | From 604173ca272ffcdffb2c1846232bb6613a10e28f Mon Sep 17 00:00:00 2001 | ||||||
|  | From: David Shea <dshea@redhat.com> | ||||||
|  | Date: Tue, 24 Mar 2015 10:04:53 -0400 | ||||||
|  | Subject: [PATCH 1/2] Fix a memory leak and potential crash with the locations | ||||||
|  |  list | ||||||
|  | 
 | ||||||
|  | Store the head of the locations list separately so that the references | ||||||
|  | to list elements are not lost as the list is iterated over. If the end | ||||||
|  | of the list of reached, restart at the beginning. | ||||||
|  | ---
 | ||||||
|  |  src/cc-timezone-map.c | 19 +++++++++++++------ | ||||||
|  |  1 file changed, 13 insertions(+), 6 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
 | ||||||
|  | index 993f379..3de453e 100644
 | ||||||
|  | --- a/src/cc-timezone-map.c
 | ||||||
|  | +++ b/src/cc-timezone-map.c
 | ||||||
|  | @@ -68,6 +68,8 @@ struct _CcTimezoneMapPrivate
 | ||||||
|  |    CcTimezoneLocation *location; | ||||||
|  |    GHashTable *alias_db; | ||||||
|  |    GList *distances; | ||||||
|  | +  /* Store the head of the list separately so it can be freed later */
 | ||||||
|  | +  GList *distances_head;
 | ||||||
|  |   | ||||||
|  |    gint previous_x; | ||||||
|  |    gint previous_y; | ||||||
|  | @@ -594,9 +596,10 @@ cc_timezone_map_dispose (GObject *object)
 | ||||||
|  |        g_hash_table_destroy (priv->alias_db); | ||||||
|  |        priv->alias_db = NULL; | ||||||
|  |      } | ||||||
|  | -  if (priv->distances)
 | ||||||
|  | +  if (priv->distances_head)
 | ||||||
|  |      { | ||||||
|  | -      g_list_free (priv->distances);
 | ||||||
|  | +      g_list_free (priv->distances_head);
 | ||||||
|  | +      priv->distances_head = NULL;
 | ||||||
|  |        priv->distances = NULL; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | @@ -991,10 +994,13 @@ get_loc_for_xy (GtkWidget * widget, gint x, gint y)
 | ||||||
|  |    if (x == priv->previous_x && y == priv->previous_y)  | ||||||
|  |      { | ||||||
|  |        priv->distances = g_list_next (priv->distances); | ||||||
|  | +      if (!priv->distances)
 | ||||||
|  | +          priv->distances = priv->distances_head;
 | ||||||
|  | +
 | ||||||
|  |        location = (CcTimezoneLocation*) priv->distances->data; | ||||||
|  |      } else { | ||||||
|  | -      g_list_free (priv->distances);
 | ||||||
|  | -      priv->distances = NULL;
 | ||||||
|  | +      g_list_free (priv->distances_head);
 | ||||||
|  | +      priv->distances_head = NULL;
 | ||||||
|  |        for (i = 0; i < array->len; i++) | ||||||
|  |          { | ||||||
|  |            gdouble pointx, pointy, dx, dy; | ||||||
|  | @@ -1007,9 +1013,10 @@ get_loc_for_xy (GtkWidget * widget, gint x, gint y)
 | ||||||
|  |            dy = pointy - y; | ||||||
|  |   | ||||||
|  |            cc_timezone_location_set_dist(loc, (gdouble) dx * dx + dy * dy); | ||||||
|  | -          priv->distances = g_list_prepend (priv->distances, loc);
 | ||||||
|  | +          priv->distances_head = g_list_prepend (priv->distances_head, loc);
 | ||||||
|  |          } | ||||||
|  | -      priv->distances = g_list_sort (priv->distances, (GCompareFunc) sort_locations);
 | ||||||
|  | +      priv->distances_head = g_list_sort (priv->distances_head, (GCompareFunc) sort_locations);
 | ||||||
|  | +      priv->distances = priv->distances_head;
 | ||||||
|  |        location = (CcTimezoneLocation*) priv->distances->data; | ||||||
|  |        priv->previous_x = x; | ||||||
|  |        priv->previous_y = y; | ||||||
|  | -- 
 | ||||||
|  | 2.1.0 | ||||||
|  | 
 | ||||||
							
								
								
									
										209
									
								
								0001-Remove-the-color-codes-map.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										209
									
								
								0001-Remove-the-color-codes-map.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,209 @@ | |||||||
|  | From c416784822821d7f69f77be6aa8814ab6f3c959f Mon Sep 17 00:00:00 2001 | ||||||
|  | From: David Shea <dshea@redhat.com> | ||||||
|  | Date: Mon, 2 Dec 2013 16:55:01 -0500 | ||||||
|  | Subject: [PATCH 1/6] Remove the color codes map. | ||||||
|  | 
 | ||||||
|  | cc.png is used to map locations on a map (usually mouse clicks) to time zone | ||||||
|  | offsets. However, in every case except one, the offset set by get_loc_for_xy() | ||||||
|  | is immediately overwritten by set_location(). For the exception case | ||||||
|  | (cc_timezone_map_get_timezone_at_coords), having the selected_offset property | ||||||
|  | change during the call is an unexpected side effect. | ||||||
|  | 
 | ||||||
|  | Furthermore, the data in the color_codes array was not entirely in sync with | ||||||
|  | the data in cc.png (e.g., no color_codes entry for UTC+14), and the borders | ||||||
|  | between zones in cc.png are feathered instead of being zones of a single pixel | ||||||
|  | value, so clicks around the borders would result in no zone being selected. If | ||||||
|  | cc.png is ever revived, it needs to be regenerated from the SVG source. | ||||||
|  | ---
 | ||||||
|  |  src/Makefile.am       |   1 - | ||||||
|  |  src/cc-timezone-map.c | 102 -------------------------------------------------- | ||||||
|  |  src/data/cc.png       | Bin 53948 -> 0 bytes | ||||||
|  |  3 files changed, 103 deletions(-) | ||||||
|  |  delete mode 100644 src/data/cc.png | ||||||
|  | 
 | ||||||
|  | diff --git a/src/Makefile.am b/src/Makefile.am
 | ||||||
|  | index 2eec6d7..fdf465c 100644
 | ||||||
|  | --- a/src/Makefile.am
 | ||||||
|  | +++ b/src/Makefile.am
 | ||||||
|  | @@ -3,7 +3,6 @@ CLEANFILES =
 | ||||||
|  |  uidir = $(pkgdatadir)/ui | ||||||
|  |  dist_ui_DATA = \ | ||||||
|  |  	data/bg.png \ | ||||||
|  | -	data/cc.png \
 | ||||||
|  |  	data/olsen_map.png \ | ||||||
|  |  	data/pin.png \ | ||||||
|  |  	data/timezone_0.png \ | ||||||
|  | diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
 | ||||||
|  | index 993f379..97d1221 100644
 | ||||||
|  | --- a/src/cc-timezone-map.c
 | ||||||
|  | +++ b/src/cc-timezone-map.c
 | ||||||
|  | @@ -46,15 +46,10 @@ typedef struct
 | ||||||
|  |  struct _CcTimezoneMapPrivate | ||||||
|  |  { | ||||||
|  |    GdkPixbuf *orig_background; | ||||||
|  | -  GdkPixbuf *orig_color_map;
 | ||||||
|  |   | ||||||
|  |    GdkPixbuf *background; | ||||||
|  | -  GdkPixbuf *color_map;
 | ||||||
|  |    GdkPixbuf *olsen_map; | ||||||
|  |   | ||||||
|  | -  guchar *visible_map_pixels;
 | ||||||
|  | -  gint visible_map_rowstride;
 | ||||||
|  | -
 | ||||||
|  |    gint olsen_map_channels; | ||||||
|  |    guchar *olsen_map_pixels; | ||||||
|  |    gint olsen_map_rowstride; | ||||||
|  | @@ -86,50 +81,6 @@ enum {
 | ||||||
|  |   | ||||||
|  |  static guint signals[LAST_SIGNAL]; | ||||||
|  |   | ||||||
|  | -
 | ||||||
|  | -static CcTimezoneMapOffset color_codes[] =
 | ||||||
|  | -{
 | ||||||
|  | -    {-11.0, 43, 0, 0, 255 },
 | ||||||
|  | -    {-10.0, 85, 0, 0, 255 },
 | ||||||
|  | -    {-9.5, 102, 255, 0, 255 },
 | ||||||
|  | -    {-9.0, 128, 0, 0, 255 },
 | ||||||
|  | -    {-8.0, 170, 0, 0, 255 },
 | ||||||
|  | -    {-7.0, 212, 0, 0, 255 },
 | ||||||
|  | -    {-6.0, 255, 0, 1, 255 }, // north
 | ||||||
|  | -    {-6.0, 255, 0, 0, 255 }, // south
 | ||||||
|  | -    {-5.0, 255, 42, 42, 255 },
 | ||||||
|  | -    {-4.5, 192, 255, 0, 255 },
 | ||||||
|  | -    {-4.0, 255, 85, 85, 255 },
 | ||||||
|  | -    {-3.5, 0, 255, 0, 255 },
 | ||||||
|  | -    {-3.0, 255, 128, 128, 255 },
 | ||||||
|  | -    {-2.0, 255, 170, 170, 255 },
 | ||||||
|  | -    {-1.0, 255, 213, 213, 255 },
 | ||||||
|  | -    {0.0, 43, 17, 0, 255 },
 | ||||||
|  | -    {1.0, 85, 34, 0, 255 },
 | ||||||
|  | -    {2.0, 128, 51, 0, 255 },
 | ||||||
|  | -    {3.0, 170, 68, 0, 255 },
 | ||||||
|  | -    {3.5, 0, 255, 102, 255 },
 | ||||||
|  | -    {4.0, 212, 85, 0, 255 },
 | ||||||
|  | -    {4.5, 0, 204, 255, 255 },
 | ||||||
|  | -    {5.0, 255, 102, 0, 255 },
 | ||||||
|  | -    {5.5, 0, 102, 255, 255 },
 | ||||||
|  | -    {5.75, 0, 238, 207, 247 },
 | ||||||
|  | -    {6.0, 255, 127, 42, 255 },
 | ||||||
|  | -    {6.5, 204, 0, 254, 254 },
 | ||||||
|  | -    {7.0, 255, 153, 85, 255 },
 | ||||||
|  | -    {8.0, 255, 179, 128, 255 },
 | ||||||
|  | -    {9.0, 255, 204, 170, 255 },
 | ||||||
|  | -    {9.5, 170, 0, 68, 250 },
 | ||||||
|  | -    {10.0, 255, 230, 213, 255 },
 | ||||||
|  | -    {10.5, 212, 124, 21, 250 },
 | ||||||
|  | -    {11.0, 212, 170, 0, 255 },
 | ||||||
|  | -    {11.5, 249, 25, 87, 253 },
 | ||||||
|  | -    {12.0, 255, 204, 0, 255 },
 | ||||||
|  | -    {12.75, 254, 74, 100, 248 },
 | ||||||
|  | -    {13.0, 255, 85, 153, 250 },
 | ||||||
|  | -    {-100, 0, 0, 0, 0 }
 | ||||||
|  | -};
 | ||||||
|  | -
 | ||||||
|  |  static const gchar * olsen_map_timezones[] = { | ||||||
|  |      "Africa/Abidjan", | ||||||
|  |      "Africa/Accra", | ||||||
|  | @@ -558,12 +509,6 @@ cc_timezone_map_dispose (GObject *object)
 | ||||||
|  |        priv->orig_background = NULL; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | -  if (priv->orig_color_map)
 | ||||||
|  | -    {
 | ||||||
|  | -      g_object_unref (priv->orig_color_map);
 | ||||||
|  | -      priv->orig_color_map = NULL;
 | ||||||
|  | -    }
 | ||||||
|  | -
 | ||||||
|  |    if (priv->olsen_map) | ||||||
|  |      { | ||||||
|  |        g_object_unref (priv->olsen_map); | ||||||
|  | @@ -580,15 +525,6 @@ cc_timezone_map_dispose (GObject *object)
 | ||||||
|  |        priv->background = NULL; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | -  if (priv->color_map)
 | ||||||
|  | -    {
 | ||||||
|  | -      g_object_unref (priv->color_map);
 | ||||||
|  | -      priv->color_map = NULL;
 | ||||||
|  | -
 | ||||||
|  | -      priv->visible_map_pixels = NULL;
 | ||||||
|  | -      priv->visible_map_rowstride = 0;
 | ||||||
|  | -    }
 | ||||||
|  | -
 | ||||||
|  |    if (priv->alias_db) | ||||||
|  |      { | ||||||
|  |        g_hash_table_destroy (priv->alias_db); | ||||||
|  | @@ -671,17 +607,6 @@ cc_timezone_map_size_allocate (GtkWidget     *widget,
 | ||||||
|  |                                                allocation->height, | ||||||
|  |                                                GDK_INTERP_BILINEAR); | ||||||
|  |   | ||||||
|  | -  if (priv->color_map)
 | ||||||
|  | -    g_object_unref (priv->color_map);
 | ||||||
|  | -
 | ||||||
|  | -  priv->color_map = gdk_pixbuf_scale_simple (priv->orig_color_map,
 | ||||||
|  | -                                             allocation->width,
 | ||||||
|  | -                                             allocation->height,
 | ||||||
|  | -                                             GDK_INTERP_BILINEAR);
 | ||||||
|  | -
 | ||||||
|  | -  priv->visible_map_pixels = gdk_pixbuf_get_pixels (priv->color_map);
 | ||||||
|  | -  priv->visible_map_rowstride = gdk_pixbuf_get_rowstride (priv->color_map);
 | ||||||
|  | -
 | ||||||
|  |    GTK_WIDGET_CLASS (cc_timezone_map_parent_class)->size_allocate (widget, | ||||||
|  |                                                                    allocation); | ||||||
|  |  } | ||||||
|  | @@ -946,7 +871,6 @@ get_loc_for_xy (GtkWidget * widget, gint x, gint y)
 | ||||||
|  |  { | ||||||
|  |    CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv; | ||||||
|  |    guchar r, g, b, a; | ||||||
|  | -  guchar *pixels;
 | ||||||
|  |    gint rowstride; | ||||||
|  |    gint i; | ||||||
|  |   | ||||||
|  | @@ -955,28 +879,11 @@ get_loc_for_xy (GtkWidget * widget, gint x, gint y)
 | ||||||
|  |    GtkAllocation alloc; | ||||||
|  |    CcTimezoneLocation* location; | ||||||
|  |   | ||||||
|  | -  rowstride = priv->visible_map_rowstride;
 | ||||||
|  | -  pixels = priv->visible_map_pixels;
 | ||||||
|  | -
 | ||||||
|  | -  r = pixels[(rowstride * y + x * 4)];
 | ||||||
|  | -  g = pixels[(rowstride * y + x * 4) + 1];
 | ||||||
|  | -  b = pixels[(rowstride * y + x * 4) + 2];
 | ||||||
|  | -  a = pixels[(rowstride * y + x * 4) + 3];
 | ||||||
|  | -
 | ||||||
|  | -
 | ||||||
|  |    if ((x - priv->previous_x < 5 && x - priv->previous_x > -5) && | ||||||
|  |        (y - priv->previous_y < 5 && y - priv->previous_y > -5)) { | ||||||
|  |      x = priv->previous_x; | ||||||
|  |      y = priv->previous_y; | ||||||
|  |    } | ||||||
|  | -  for (i = 0; color_codes[i].offset != -100; i++)
 | ||||||
|  | -    {
 | ||||||
|  | -       if (color_codes[i].red == r && color_codes[i].green == g
 | ||||||
|  | -           && color_codes[i].blue == b && color_codes[i].alpha == a)
 | ||||||
|  | -         {
 | ||||||
|  | -           priv->selected_offset = color_codes[i].offset;
 | ||||||
|  | -         }
 | ||||||
|  | -    }
 | ||||||
|  |   | ||||||
|  |    gtk_widget_queue_draw (widget); | ||||||
|  |   | ||||||
|  | @@ -1106,15 +1013,6 @@ cc_timezone_map_init (CcTimezoneMap *self)
 | ||||||
|  |        g_clear_error (&err); | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | -  priv->orig_color_map = gdk_pixbuf_new_from_file (DATADIR "/cc.png",
 | ||||||
|  | -                                                   &err);
 | ||||||
|  | -  if (!priv->orig_color_map)
 | ||||||
|  | -    {
 | ||||||
|  | -      g_warning ("Could not load background image: %s",
 | ||||||
|  | -                 (err) ? err->message : "Unknown error");
 | ||||||
|  | -      g_clear_error (&err);
 | ||||||
|  | -    }
 | ||||||
|  | -
 | ||||||
|  |    priv->olsen_map = gdk_pixbuf_new_from_file (DATADIR "/olsen_map.png", | ||||||
|  |                                                &err); | ||||||
|  |    if (!priv->olsen_map) | ||||||
|  | -- 
 | ||||||
|  | 2.1.0 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,56 @@ | |||||||
|  | From ed19e892a5f1e22d3141f81c1da04f9f91719643 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: David Shea <dshea@redhat.com> | ||||||
|  | Date: Tue, 24 Mar 2015 10:36:51 -0400 | ||||||
|  | Subject: [PATCH 2/2] Cycle through a smaller list of map locations on repeated | ||||||
|  |  clicks. | ||||||
|  | 
 | ||||||
|  | Cycling through the entire map causes erratic jumps between locations, | ||||||
|  | especially if starting in a sparsely populated area. Limit the candidate | ||||||
|  | locations to those within 50px of the mouse click, or the nearest | ||||||
|  | location if no location is within 50px. | ||||||
|  | ---
 | ||||||
|  |  src/cc-timezone-map.c | 21 +++++++++++++++++++++ | ||||||
|  |  1 file changed, 21 insertions(+) | ||||||
|  | 
 | ||||||
|  | diff --git a/src/cc-timezone-map.c b/src/cc-timezone-map.c
 | ||||||
|  | index 3de453e..ed80a01 100644
 | ||||||
|  | --- a/src/cc-timezone-map.c
 | ||||||
|  | +++ b/src/cc-timezone-map.c
 | ||||||
|  | @@ -999,6 +999,8 @@ get_loc_for_xy (GtkWidget * widget, gint x, gint y)
 | ||||||
|  |   | ||||||
|  |        location = (CcTimezoneLocation*) priv->distances->data; | ||||||
|  |      } else { | ||||||
|  | +      GList *node;
 | ||||||
|  | +
 | ||||||
|  |        g_list_free (priv->distances_head); | ||||||
|  |        priv->distances_head = NULL; | ||||||
|  |        for (i = 0; i < array->len; i++) | ||||||
|  | @@ -1016,6 +1018,25 @@ get_loc_for_xy (GtkWidget * widget, gint x, gint y)
 | ||||||
|  |            priv->distances_head = g_list_prepend (priv->distances_head, loc); | ||||||
|  |          } | ||||||
|  |        priv->distances_head = g_list_sort (priv->distances_head, (GCompareFunc) sort_locations); | ||||||
|  | +
 | ||||||
|  | +      /* Remove locations from the list with a distance of greater than 50px,
 | ||||||
|  | +       * so that repeated clicks cycle through a smaller area instead of
 | ||||||
|  | +       * jumping all over the map. Start with the second element to ensure
 | ||||||
|  | +       * that at least one element stays in the list.
 | ||||||
|  | +       */
 | ||||||
|  | +      node = priv->distances_head->next;
 | ||||||
|  | +      while (node != NULL)
 | ||||||
|  | +        {
 | ||||||
|  | +          if (cc_timezone_location_get_dist(node->data) > (50 * 50))
 | ||||||
|  | +            {
 | ||||||
|  | +              /* Cut the list off here */
 | ||||||
|  | +              node->prev->next = NULL;
 | ||||||
|  | +              g_list_free(node);
 | ||||||
|  | +            }
 | ||||||
|  | +
 | ||||||
|  | +          node = g_list_next(node);
 | ||||||
|  | +        }
 | ||||||
|  | +
 | ||||||
|  |        priv->distances = priv->distances_head; | ||||||
|  |        location = (CcTimezoneLocation*) priv->distances->data; | ||||||
|  |        priv->previous_x = x; | ||||||
|  | -- 
 | ||||||
|  | 2.1.0 | ||||||
|  | 
 | ||||||
							
								
								
									
										48083
									
								
								0005-Import-the-latest-data-from-geonames.org.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48083
									
								
								0005-Import-the-latest-data-from-geonames.org.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										28
									
								
								0006-Removed-timezone_-5.5.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								0006-Removed-timezone_-5.5.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | From dae825d29bfaaad2226aa4ad4b122ef2f28fcf59 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: David Shea <dshea@redhat.com> | ||||||
|  | Date: Tue, 3 Dec 2013 15:21:35 -0500 | ||||||
|  | Subject: [PATCH 6/6] Removed timezone_-5.5. | ||||||
|  | 
 | ||||||
|  | There is no UTC-5:30 zone, and the file itself is a misnamed copy of | ||||||
|  | timezone_-9.5.png. | ||||||
|  | ---
 | ||||||
|  |  src/Makefile.am            |   1 - | ||||||
|  |  src/data/timezone_-5.5.png | Bin 437 -> 0 bytes | ||||||
|  |  2 files changed, 1 deletion(-) | ||||||
|  |  delete mode 100644 src/data/timezone_-5.5.png | ||||||
|  | 
 | ||||||
|  | diff --git a/src/Makefile.am b/src/Makefile.am
 | ||||||
|  | index fdf465c..df23a83 100644
 | ||||||
|  | --- a/src/Makefile.am
 | ||||||
|  | +++ b/src/Makefile.am
 | ||||||
|  | @@ -29,7 +29,6 @@ dist_ui_DATA = \
 | ||||||
|  |  	data/timezone_4.5.png \ | ||||||
|  |  	data/timezone_-5.png \ | ||||||
|  |  	data/timezone_5.png \ | ||||||
|  | -	data/timezone_-5.5.png \
 | ||||||
|  |  	data/timezone_5.5.png \ | ||||||
|  |  	data/timezone_5.75.png \ | ||||||
|  |  	data/timezone_-6.png \ | ||||||
|  | -- 
 | ||||||
|  | 2.1.0 | ||||||
|  | 
 | ||||||
| @ -1,14 +1,27 @@ | |||||||
| Name:           libtimezonemap | Name:           libtimezonemap | ||||||
| Version:        0.4.2 | Version:        0.4.2 | ||||||
| Release:        5%{?dist} | Release:        6%{?dist} | ||||||
| Summary:        Time zone map widget for Gtk+ | Summary:        Time zone map widget for Gtk+ | ||||||
| 
 | 
 | ||||||
| Group:          System Environment/Libraries | Group:          System Environment/Libraries | ||||||
| License:        GPLv3 | License:        GPLv3 | ||||||
| URL:            https://launchpad.net/timezonemap | URL:            https://launchpad.net/timezonemap | ||||||
| Source0:        http://archive.ubuntu.com/ubuntu/pool/main/libt/libtimezonemap/%{name}_%{version}.tar.gz | Source0:        http://archive.ubuntu.com/ubuntu/pool/main/libt/libtimezonemap/%{name}_%{version}.tar.gz | ||||||
|  | # The binary portion of lp:~dshea/timezonemap/pixmaps-update | ||||||
|  | Source1:        timezone_pngs.tar.gz | ||||||
|  | 
 | ||||||
|  | # From lp:~dshea/timezonemap/glade-catalog | ||||||
| Patch1:         0001-Added-a-glade-catalog-file.patch | Patch1:         0001-Added-a-glade-catalog-file.patch | ||||||
| 
 | 
 | ||||||
|  | # From lp:~dshea/timezonemap/pixmaps-update | ||||||
|  | Patch2:         0001-Remove-the-color-codes-map.patch | ||||||
|  | Patch3:         0005-Import-the-latest-data-from-geonames.org.patch | ||||||
|  | Patch4:         0006-Removed-timezone_-5.5.patch | ||||||
|  | 
 | ||||||
|  | # From lp:~dshea/timezonemap/location-cycle | ||||||
|  | Patch5:         0001-Fix-a-memory-leak-and-potential-crash-with-the-locat.patch | ||||||
|  | Patch6:         0002-Cycle-through-a-smaller-list-of-map-locations-on-rep.patch | ||||||
|  | 
 | ||||||
| BuildRequires:  glib2-devel >= 2.26 | BuildRequires:  glib2-devel >= 2.26 | ||||||
| BuildRequires:  gtk3-devel >= 3.1.4 | BuildRequires:  gtk3-devel >= 3.1.4 | ||||||
| BuildRequires:  json-glib-devel | BuildRequires:  json-glib-devel | ||||||
| @ -34,7 +47,11 @@ files used for building applications that use %{name}. | |||||||
| 
 | 
 | ||||||
| %prep | %prep | ||||||
| %setup -q | %setup -q | ||||||
|  | %setup -a 1 | ||||||
| %patch1 -p1 | %patch1 -p1 | ||||||
|  | %patch2 -p1 | ||||||
|  | %patch3 -p1 | ||||||
|  | %patch4 -p1 | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
| ./autogen.sh | ./autogen.sh | ||||||
| @ -64,6 +81,12 @@ rm -f %{buildroot}%{_libdir}/*.la | |||||||
| %{_datadir}/glade/catalogs/TimezoneMap.xml | %{_datadir}/glade/catalogs/TimezoneMap.xml | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Fri May  1 2015 David Shea <dshea@redhat.com> - 0.4.2-6 | ||||||
|  | - Updated the time zone map images | ||||||
|  | - Updated the city data from geonames.org | ||||||
|  | - Fix a memory leak and potential crash with the locations list | ||||||
|  | - Cycle through a smaller list of map locations on repeated clicks | ||||||
|  | 
 | ||||||
| * Wed Jan 28 2015 David Shea <dshea@redhat.com> - 0.4.2-5 | * Wed Jan 28 2015 David Shea <dshea@redhat.com> - 0.4.2-5 | ||||||
| - Use %license for the license file | - Use %license for the license file | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user