]> git.street.me.uk Git - andy/viking.git/blobdiff - src/geonamessearch.c
[QA] Replace code by GObject macro (viklayer)
[andy/viking.git] / src / geonamessearch.c
index 4da17e45d785cecd41814891d295945537953bd8..f34b2ebbecae240d149ef9ebd578594f2a2813e4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * viking -- GPS Data and Topo Analyzer, Explorer, and Manager
  *
- * Copyright (C) 2003-2005, Evan Battaglia <gtoevan@gmx.net>
+ * Copyright (C) 2009, Hein Ragas
  *
  * 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
@@ -17,7 +17,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * Created by Quy Tonthat <qtonthat@gmail.com>
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -99,6 +98,7 @@ static void none_found(VikWindow *vw)
 
   GtkWidget *search_label = gtk_label_new(_("No entries found!"));
   gtk_box_pack_start ( GTK_BOX(GTK_DIALOG(dialog)->vbox), search_label, FALSE, FALSE, 5 );
+  gtk_dialog_set_default_response ( GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT );
   gtk_widget_show_all(dialog);
 
   gtk_dialog_run ( GTK_DIALOG(dialog) );
@@ -136,6 +136,13 @@ GList *a_select_geoname_from_list(GtkWindow *parent, GList *geonames, gboolean m
                                                   GTK_STOCK_OK,
                                                   GTK_RESPONSE_ACCEPT,
                                                   NULL);
+  /* When something is selected then OK */
+  gtk_dialog_set_default_response ( GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT );
+  GtkWidget *response_w = NULL;
+#if GTK_CHECK_VERSION (2, 20, 0)
+  /* Default to not apply - as initially nothing is selected! */
+  response_w = gtk_dialog_get_widget_for_response ( GTK_DIALOG(dialog), GTK_RESPONSE_REJECT );
+#endif
   GtkWidget *label = gtk_label_new ( msg );
   GtkTreeStore *store;
   if (multiple_selection_allowed)
@@ -189,6 +196,8 @@ GList *a_select_geoname_from_list(GtkWindow *parent, GList *geonames, gboolean m
   gtk_widget_show ( label );
   gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), view, FALSE, FALSE, 0);
   gtk_widget_show ( view );
+  if ( response_w )
+    gtk_widget_grab_focus ( response_w );
   while ( gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT )
   {
     GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
@@ -231,7 +240,7 @@ GList *a_select_geoname_from_list(GtkWindow *parent, GList *geonames, gboolean m
   return NULL;
 }
 
-GList *get_entries_from_file(gchar *file_name)
+static GList *get_entries_from_file(gchar *file_name)
 {
   gchar *text, *pat;
   GMappedFile *mf;
@@ -252,7 +261,6 @@ GList *get_entries_from_file(gchar *file_name)
 
   if ((mf = g_mapped_file_new(file_name, FALSE, NULL)) == NULL) {
     g_critical(_("couldn't map temp file"));
-    exit(1);
   }
   len = g_mapped_file_get_length(mf);
   text = g_mapped_file_get_contents(mf);
@@ -385,7 +393,7 @@ GList *get_entries_from_file(gchar *file_name)
 }
 
 
-gchar *download_url(gchar *uri)
+static gchar *download_url(gchar *uri)
 {
   FILE *tmp_file;
   int tmp_fd;
@@ -393,12 +401,12 @@ gchar *download_url(gchar *uri)
 
   if ((tmp_fd = g_file_open_tmp ("vikgsearch.XXXXXX", &tmpname, NULL)) == -1) {
     g_critical(_("couldn't open temp file"));
-    exit(1);
+    return NULL;
   }
   tmp_file = fdopen(tmp_fd, "r+");
 
-  // TODO: curl may not be available
-  if (curl_download_uri(uri, tmp_file, NULL)) {  // error
+  if (curl_download_uri(uri, tmp_file, NULL, 0, NULL)) {
+    // error
     fclose(tmp_file);
     tmp_file = NULL;
     g_remove(tmpname);