]> git.street.me.uk Git - andy/viking.git/blobdiff - src/vikslippymapsource.c
Add options to start making a new track and finishing it from the TrackWaypoint layer...
[andy/viking.git] / src / vikslippymapsource.c
index a8f514a6e9c2b43c99f41a450161cf2d21e9ef02..0fd926bfdf6a0dc379f1bf921b32b9661cc401ed 100644 (file)
@@ -55,6 +55,7 @@
 static gboolean _coord_to_mapcoord ( VikMapSource *self, const VikCoord *src, gdouble xzoom, gdouble yzoom, MapCoord *dest );
 static void _mapcoord_to_center_coord ( VikMapSource *self, MapCoord *src, VikCoord *dest );
 
+static gboolean _is_direct_file_access (VikMapSource *self );
 static gboolean _supports_download_only_new (VikMapSource *self );
 
 static gchar *_get_uri( VikMapSourceDefault *self, MapCoord *src );
@@ -67,6 +68,7 @@ struct _VikSlippyMapSourcePrivate
   gchar *hostname;
   gchar *url;
   DownloadMapOptions options;
+  gboolean is_direct_file_access;
 };
 
 #define VIK_SLIPPY_MAP_SOURCE_PRIVATE(o)  (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIK_TYPE_SLIPPY_MAP_SOURCE, VikSlippyMapSourcePrivate))
@@ -82,6 +84,7 @@ enum
   PROP_FOLLOW_LOCATION,
   PROP_CHECK_FILE_SERVER_TIME,
   PROP_USE_ETAG,
+  PROP_IS_DIRECT_FILE_ACCESS,
 };
 
 G_DEFINE_TYPE (VikSlippyMapSource, vik_slippy_map_source, VIK_TYPE_MAP_SOURCE_DEFAULT);
@@ -98,6 +101,8 @@ vik_slippy_map_source_init (VikSlippyMapSource *self)
   priv->options.follow_location = 0;
   priv->options.check_file = a_check_map_file;
   priv->options.check_file_server_time = FALSE;
+  priv->options.use_etag = FALSE;
+  priv->is_direct_file_access = FALSE;
 
   g_object_set (G_OBJECT (self),
                 "tilesize-x", 256,
@@ -160,6 +165,10 @@ vik_slippy_map_source_set_property (GObject      *object,
       priv->options.use_etag = g_value_get_boolean (value);
       break;
 
+    case PROP_IS_DIRECT_FILE_ACCESS:
+      priv->is_direct_file_access = g_value_get_boolean (value);
+      break;
+
     default:
       /* We don't have any other property... */
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -202,6 +211,10 @@ vik_slippy_map_source_get_property (GObject    *object,
       g_value_set_boolean (value, priv->options.use_etag);
       break;
 
+    case PROP_IS_DIRECT_FILE_ACCESS:
+      g_value_set_boolean (value, priv->is_direct_file_access);
+      break;
+
     default:
       /* We don't have any other property... */
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -223,6 +236,7 @@ vik_slippy_map_source_class_init (VikSlippyMapSourceClass *klass)
        /* Overiding methods */
        grandparent_class->coord_to_mapcoord =        _coord_to_mapcoord;
        grandparent_class->mapcoord_to_center_coord = _mapcoord_to_center_coord;
+       grandparent_class->is_direct_file_access = _is_direct_file_access;
        grandparent_class->supports_download_only_new = _supports_download_only_new;
 
        parent_class->get_uri = _get_uri;
@@ -273,6 +287,13 @@ vik_slippy_map_source_class_init (VikSlippyMapSourceClass *klass)
                                   G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
        g_object_class_install_property (object_class, PROP_USE_ETAG, pspec);
 
+       pspec = g_param_spec_boolean ("use-direct-file-access",
+                                     "Use direct file access",
+                                     "Use direct file access to OSM like tile images - no need for a webservice",
+                                  FALSE  /* default value */,
+                                  G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE);
+       g_object_class_install_property (object_class, PROP_IS_DIRECT_FILE_ACCESS, pspec);
+
        g_type_class_add_private (klass, sizeof (VikSlippyMapSourcePrivate));
        
        object_class->finalize = vik_slippy_map_source_finalize;
@@ -307,6 +328,16 @@ vik_slippy_map_source_zoom_to_scale ( gdouble mpp ) {
   return 255;
 }
 
+gboolean
+_is_direct_file_access (VikMapSource *self)
+{
+  g_return_val_if_fail (VIK_IS_SLIPPY_MAP_SOURCE(self), FALSE);
+
+  VikSlippyMapSourcePrivate *priv = VIK_SLIPPY_MAP_SOURCE_PRIVATE(self);
+
+  return priv->is_direct_file_access;
+}
+
 gboolean
 _supports_download_only_new (VikMapSource *self)
 {