X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/307abf546334216acfd05268ac6e5cf3f95eb5ff..86b25a6c3a10dd68b0ed525a73004a9ed376c879:/src/datasource_geotag.c diff --git a/src/datasource_geotag.c b/src/datasource_geotag.c index ed8e3ad2..a3a4ed41 100644 --- a/src/datasource_geotag.c +++ b/src/datasource_geotag.c @@ -2,7 +2,7 @@ /* * viking -- GPS Data and Topo Analyzer, Explorer, and Manager * - * Copyright (C) 2012, Rob Norris + * Copyright (C) 2012-2015, Rob Norris * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -43,14 +43,14 @@ static gchar *last_folder_uri = NULL; static gpointer datasource_geotag_init ( acq_vik_t *avt ); static void datasource_geotag_add_setup_widgets ( GtkWidget *dialog, VikViewport *vvp, gpointer user_data ); -static void datasource_geotag_get_cmd_string ( gpointer user_data, gchar **babelargs_or_shellcmd, gchar **inputfile_or_inputtype, gpointer not_used ); -static gboolean datasource_geotag_process ( VikTrwLayer *vtl, const gchar *cmd, const gchar *extra, BabelStatusFunc status_cb, acq_dialog_widgets_t *adw, gpointer not_used ); +static void datasource_geotag_get_process_options ( gpointer user_data, ProcessOptions *po, gpointer not_used, const gchar *not_used2, const gchar *not_used3 ); +static gboolean datasource_geotag_process ( VikTrwLayer *vtl, ProcessOptions *po, BabelStatusFunc status_cb, acq_dialog_widgets_t *adw, gpointer not_used ); static void datasource_geotag_cleanup ( gpointer user_data ); VikDataSourceInterface vik_datasource_geotag_interface = { N_("Create Waypoints from Geotagged Images"), N_("Geotagged Images"), - VIK_DATASOURCE_ADDTOLAYER, + VIK_DATASOURCE_AUTO_LAYER_MANAGEMENT, VIK_DATASOURCE_INPUTTYPE_NONE, TRUE, FALSE, // We should be able to see the data on the screen so no point in keeping the dialog open @@ -58,8 +58,8 @@ VikDataSourceInterface vik_datasource_geotag_interface = { (VikDataSourceInitFunc) datasource_geotag_init, (VikDataSourceCheckExistenceFunc) NULL, (VikDataSourceAddSetupWidgetsFunc) datasource_geotag_add_setup_widgets, - (VikDataSourceGetCmdStringFunc) datasource_geotag_get_cmd_string, - (VikDataSourceProcessFunc) datasource_geotag_process, + (VikDataSourceGetProcessOptionsFunc) datasource_geotag_get_process_options, + (VikDataSourceProcessFunc) datasource_geotag_process, (VikDataSourceProgressFunc) NULL, (VikDataSourceAddProgressWidgetsFunc) NULL, (VikDataSourceCleanupFunc) datasource_geotag_cleanup, @@ -119,12 +119,13 @@ static void datasource_geotag_add_setup_widgets ( GtkWidget *dialog, VikViewport // However not much point since these will have images associated with them! /* Packing all widgets */ - gtk_box_pack_start ( GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), userdata->files, TRUE, TRUE, 0 ); + GtkBox *box = GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))); + gtk_box_pack_start ( box, userdata->files, TRUE, TRUE, 0 ); gtk_widget_show_all ( dialog ); } -static void datasource_geotag_get_cmd_string ( gpointer user_data, gchar **babelargs_or_shellcmd, gchar **inputfile_or_inputtype, gpointer not_used ) +static void datasource_geotag_get_process_options ( gpointer user_data, ProcessOptions *po, gpointer not_used, const gchar *not_used2, const gchar *not_used3 ) { datasource_geotag_user_data_t *userdata = (datasource_geotag_user_data_t *)user_data; /* Retrieve the files selected */ @@ -139,13 +140,13 @@ static void datasource_geotag_get_cmd_string ( gpointer user_data, gchar **babel //GtkFileFilter *filter = gtk_file_chooser_get_filter ( GTK_FILE_CHOOSER(userdata->files) ); // return some value so *thread* processing will continue - *babelargs_or_shellcmd = g_strdup ("fake command"); // Not really used, thus no translations + po->babelargs = g_strdup ("fake command"); // Not really used, thus no translations } /** * Process selected files and try to generate waypoints storing them in the given vtl */ -static gboolean datasource_geotag_process ( VikTrwLayer *vtl, const gchar *cmd, const gchar *extra, BabelStatusFunc status_cb, acq_dialog_widgets_t *adw, gpointer not_used ) +static gboolean datasource_geotag_process ( VikTrwLayer *vtl, ProcessOptions *po, BabelStatusFunc status_cb, acq_dialog_widgets_t *adw, gpointer not_used ) { datasource_geotag_user_data_t *user_data = (datasource_geotag_user_data_t *)adw->user_data; @@ -164,7 +165,9 @@ static gboolean datasource_geotag_process ( VikTrwLayer *vtl, const gchar *cmd, g_free ( name ); } else { - g_warning ( _("Unable to create waypoint from %s"), filename ); + gchar* msg = g_strdup_printf ( _("Unable to create waypoint from %s"), filename ); + vik_window_statusbar_update ( adw->vw, msg, VIK_STATUSBAR_INFO ); + g_free (msg); } g_free ( filename ); cur_file = g_slist_next ( cur_file );