]> err.no Git - mapper/blobdiff - src/import-gui.c
GpsBluez: cleanups
[mapper] / src / import-gui.c
index f64ac88ef955efcb5fd968a557072831d9a6737a..7efdd6ec2ddd26dfd33563721c12d4ca1bb9dfd2 100644 (file)
@@ -36,6 +36,7 @@
 #include "utils.h"
 #include "osm-db-import.h"
 #include "dialogs.h"
+#include "import-gui.h"
 
 static GtkWidget *progress;
 static GtkWidget *import_dialog;
@@ -43,7 +44,7 @@ static GtkWidget *import_dialog;
 static gboolean
 osm_import_progress_cb(gpointer data)
 {
-gtk_progress_bar_pulse(progress);
+gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progress));
 return TRUE;
 }
 
@@ -87,7 +88,7 @@ gtk_box_pack_start(GTK_BOX(vbox), entry_db, TRUE, TRUE, 0);
 
 gtk_widget_show_all(dialog);
 
-if (GTK_RESPONSE_ACCEPT==gtk_dialog_run(GTK_DIALOG(dialog))) {
+while (GTK_RESPONSE_ACCEPT==gtk_dialog_run(GTK_DIALOG(dialog))) {
        gchar *planet, *db;
 
        planet=gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(picker_planet));
@@ -96,16 +97,16 @@ if (GTK_RESPONSE_ACCEPT==gtk_dialog_run(GTK_DIALOG(dialog))) {
        if (planet && db) {
                progress=gtk_progress_bar_new();
                import_dialog=progress_dialog(window, "Importing OSM data...", progress);
+               gtk_widget_show_all(import_dialog);
 
-               if (osm_import_bg(planet, db, osm_import_progress_cb, osm_import_done_cb)==TRUE)
-                       gtk_widget_destroy(dialog);
-               else
+               if (osm_import_bg(planet, db, osm_import_progress_cb, osm_import_done_cb)==TRUE) {
+                       break;
+               else
                        popup_error(dialog, _("Failed to start import."));
        } else {
                popup_error(dialog, _("Missing file selection!"));
        }
-} else {
-       gtk_widget_destroy(dialog);
 }
+gtk_widget_destroy(dialog);
 return TRUE;
 }