[gnome-maps/wip/jonasdn/vector-tiles] Add autoreload of stylesheet



commit 1c41224c794de4084d777035dc38975bc4d76b64
Author: Jonas Danielsson <jonas threetimestwo org>
Date:   Mon Apr 27 21:52:44 2015 +0200

    Add autoreload of stylesheet

 lib/maps-mapbox-renderer.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/lib/maps-mapbox-renderer.c b/lib/maps-mapbox-renderer.c
index cbb9b80..2798a70 100644
--- a/lib/maps-mapbox-renderer.c
+++ b/lib/maps-mapbox-renderer.c
@@ -116,13 +116,34 @@ maps_mapbox_renderer_set_view (MapsMapboxRenderer *renderer,
   champlain_view_add_layer (view, (ChamplainLayer *) renderer->priv->layer);
 }
 
+static void
+on_stylesheet_changed (GFileMonitor *monitor,
+                       GFile *file,
+                       GFile *other_file,
+                       GFileMonitorEvent event_type,
+                       VTileMapCSS *stylesheet)
+{
+  if (event_type == G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT)
+    vtile_mapcss_load (stylesheet, g_file_get_path (file), NULL);
+}
+
 void
 maps_mapbox_renderer_load_css (MapsMapboxRenderer *renderer,
                                const char *filename,
                                GError **error)
 {
+  GFile *file;
+  GFileMonitor *monitor;
+
   renderer->priv->stylesheet = vtile_mapcss_new ();
   vtile_mapcss_load (renderer->priv->stylesheet, filename, error);
+
+  file = g_file_new_for_path (filename);
+  monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, NULL);
+  g_signal_connect (monitor, "changed",
+                    G_CALLBACK (on_stylesheet_changed),
+                    renderer->priv->stylesheet);
+
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]