]> git.street.me.uk Git - andy/viking.git/commitdiff
Improved feedback/feature availability when no direction routing engines are available.
authorRob Norris <rw_norris@hotmail.com>
Sun, 15 Jan 2017 19:45:13 +0000 (19:45 +0000)
committerRob Norris <rw_norris@hotmail.com>
Sun, 22 Jan 2017 18:24:39 +0000 (18:24 +0000)
src/datasource_routing.c
src/vikwindow.c

index 3eca78a61800485b8718af0572cd7adbb3812205..030c9e3592a6fa23a6ef5d7f5d8c58127e2e3271 100644 (file)
@@ -47,6 +47,7 @@ static gchar *last_from_str = NULL;
 static gchar *last_to_str = NULL;
 
 static gpointer datasource_routing_init ( acq_vik_t *avt );
+static gchar *datasource_routing_check_existence ();
 static void datasource_routing_add_setup_widgets ( GtkWidget *dialog, VikViewport *vvp, gpointer user_data );
 static void datasource_routing_get_process_options ( datasource_routing_widgets_t *widgets, ProcessOptions *po, DownloadFileOptions *options, const gchar *not_used2, const gchar *not_used3 );
 static void datasource_routing_cleanup ( gpointer data );
@@ -60,7 +61,7 @@ VikDataSourceInterface vik_datasource_routing_interface = {
   TRUE,
   TRUE,
   (VikDataSourceInitFunc)              datasource_routing_init,
-  (VikDataSourceCheckExistenceFunc)    NULL,
+  (VikDataSourceCheckExistenceFunc)    datasource_routing_check_existence,
   (VikDataSourceAddSetupWidgetsFunc)   datasource_routing_add_setup_widgets,
   (VikDataSourceGetProcessOptionsFunc)  datasource_routing_get_process_options,
   (VikDataSourceProcessFunc)            a_babel_convert_from,
@@ -82,6 +83,13 @@ static gpointer datasource_routing_init ( acq_vik_t *avt )
   return widgets;
 }
 
+static gchar *datasource_routing_check_existence ()
+{
+  if ( vik_routing_number_of_engines (VIK_ROUTING_METHOD_DIRECTIONS) > 0 )
+    return NULL;
+  return g_strdup ( _("No routing engines with directions available") );
+}
+
 static void datasource_routing_add_setup_widgets ( GtkWidget *dialog, VikViewport *vvp, gpointer user_data )
 {
   datasource_routing_widgets_t *widgets = (datasource_routing_widgets_t *)user_data;
index d8beffbe47f7e9f3dbfe47c83624a9fa3f312aaf..6d2e4e60d4f8a41f74c357adbdd9e26f18dd8fe5 100644 (file)
@@ -42,6 +42,7 @@
 #include "vikexttool_datasources.h"
 #include "garminsymbols.h"
 #include "vikmapslayer.h"
+#include "vikrouting.h"
 #include "geonamessearch.h"
 #include "vikutils.h"
 #include "dir.h"
@@ -4773,6 +4774,14 @@ static void window_create_ui( VikWindow *window )
   gtk_ui_manager_ensure_update (uim);
   
   setup_recent_files(window);
+
+  if ( vik_routing_number_of_engines(VIK_ROUTING_METHOD_DIRECTIONS) == 0 ) {
+    GtkWidget *widget = gtk_ui_manager_get_widget ( uim, "/ui/MainMenu/File/Acquire/AcquireRouting" );
+    if ( widget ) {
+      g_object_set ( widget, "sensitive", FALSE, NULL );
+    }
+    g_warning ( "No direction routing engines available" );
+  }
 }