]> err.no Git - mapper/commitdiff
Use progress bar in toolbar on hildon and gtk builds. Use it for osm-db queries....
authorKaj-Michael Lang <milang@onion.tal.org>
Tue, 7 Aug 2007 13:33:18 +0000 (16:33 +0300)
committerKaj-Michael Lang <milang@onion.tal.org>
Tue, 7 Aug 2007 13:33:18 +0000 (16:33 +0300)
src/map.c
src/osm-db.h
src/poi.c
src/ui-common.c
src/ui-common.h

index e8f0f1c3677c1f34ddb6e76fa440ca94ec735720..62a4a3919efe37e5b351ad94c748225c5e7d8aea 100644 (file)
--- a/src/map.c
+++ b/src/map.c
@@ -27,6 +27,7 @@
 #include "utils.h"
 #include "map.h"
 #include "osm.h"
+#include "db.h"
 #include "osm-db.h"
 #include "poi.h"
 #include "route.h"
@@ -613,7 +614,9 @@ map_render_tile(guint tilex, guint tiley, guint destx, guint desty,
                                        map_pixbuf_scale_inplace(pixbuf, zoff,
                                                                 (tilex - ((tilex >> zoff) << zoff)) << (TILE_SIZE_P2 - zoff),
                                                                 (tiley - ((tiley >> zoff) << zoff)) << (TILE_SIZE_P2 - zoff));
+#ifdef DEBUG
                                        g_printf("I: %s (%d)\n", buffer, zoff);
+#endif
                                }
                        }
                }
@@ -635,15 +638,10 @@ map_render_tile(guint tilex, guint tiley, guint destx, guint desty,
 
 gboolean map_render_tile_idle(map_tile_rdata *mtr)
 {
-g_printf("IDLE RENDER\n");
 map_render_tile(mtr->tilex, mtr->tiley, mtr->destx, mtr->desty, FALSE);
-/*
-gtk_widget_queue_draw_area(_map_widget, mtr->destx, mtr->desty, 
-                                                       TILE_SIZE_PIXELS, TILE_SIZE_PIXELS);
-*/
+gtk_widget_queue_draw_area(_map_widget, mtr->destx, mtr->desty, TILE_SIZE_PIXELS, TILE_SIZE_PIXELS);
 
 g_slice_free(map_tile_rdata, mtr);
-
 return FALSE;
 }
 
@@ -1411,12 +1409,19 @@ gint ilat, ilon;
 gdouble lat,lon, dist;
 PoiInfo *p;
 gboolean fs;
+static gboolean inp=FALSE;
 
-unit2latlon(x, y, lat, lon);
+/* We run the gtk mainloop in progress callback so we can be called again, we don't like that */
+if (inp==TRUE)
+       return;
+inp=TRUE;
 
+unit2latlon(x, y, lat, lon);
 ilat=lat2mp_int(lat);
 ilon=lon2mp_int(lon);
 
+osm_progress_set_widget(_db, _progress_item);
+
 /* Check if we are still near the same way as last time */
 if (map_loc.street && osm_way_distance(ilat, ilon, map_loc.street->node_f, map_loc.street->node_t, &dist)==TRUE) {
        if (dist>15000.0) {
@@ -1466,6 +1471,8 @@ if (fs==TRUE && map_loc.secondary && map_loc.secondary->isin!=0) {
 }
 
 map_set_place_information(map_loc.street, map_loc.primary, map_loc.secondary, p);
+osm_progress_set_widget(_db, NULL);
+inp=FALSE;
 }
 
 gboolean map_cb_scroll_event(GtkWidget * widget, GdkEventScroll * event)
index 14a02d6f2eb44211645033ea1d1ca66ae375406c..2eea3e64a67ba6df34298ab464af24f81da2f0f5 100644 (file)
@@ -7,6 +7,8 @@
 gboolean osm_init(void);
 void osm_deinit(void);
 
+void osm_progress_set_widget(sqlite3 *db, GtkProgressBar *w);
+
 gboolean osm_way_get_nodes(osm_way *w);
 gboolean osm_way_get_name(osm_way *w);
 gboolean osm_way_get_ref(osm_way *w);
index 848d41f4c10b67d16a1222bc42a20a45ea3e6f4d..325c867bc6d18c75affb55b2a6b1d213742602f2 100644 (file)
--- a/src/poi.c
+++ b/src/poi.c
@@ -273,8 +273,10 @@ if (db_connect(db, data_db)) {
        poi_db_create(*db);
        if (poi_db_prepare(*db)==FALSE)
                g_printerr("Failed to prepare POI SQL statements");
-       if (osm_db_prepare(*db)==FALSE)
+       if (osm_db_prepare(*db)==FALSE) {
                g_printerr("Failed to prepare OSM SQL statements");
+               g_printf("SQLITE: %s\n", sqlite3_errmsg(*db));
+       }
        return TRUE;
 }
 return FALSE;
index ec0c422a3b3dda33688e17a18b947d07e3190632..2e8afaa219086ad48950ac26c870e28b6806aec3 100644 (file)
@@ -708,18 +708,13 @@ g_signal_connect (_toolbar_fullscreen_item, "clicked", G_CALLBACK (cb_fullscreen
 gtk_toolbar_insert (GTK_TOOLBAR (_toolbar), _toolbar_fullscreen_item, -1);
 #endif
 
-item = gtk_separator_tool_item_new();
+item=gtk_separator_tool_item_new();
 gtk_toolbar_insert (GTK_TOOLBAR (_toolbar), item, -1);
 
-#ifndef WITH_HILDON
-/* Add a progress bar to our toolbar if we are using plain gtk */
-item = gtk_tool_item_new();
+item=gtk_tool_item_new();
 _progress_item=gtk_progress_bar_new();
 gtk_container_add(item, _progress_item);
 gtk_toolbar_insert (GTK_TOOLBAR (_toolbar), item, -1);
-#else
-/* Hildon uses progress information box */
-#endif
 }
 
 void mapper_init_variables(void)
@@ -910,6 +905,8 @@ void mapper_init(gint argc, gchar ** argv)
        gtk_widget_show_all(vbox_main);
 #endif
 
+       /* gtk_widget_hide(_progress_item); */
+
        gtk_box_pack_start(GTK_BOX(mapvbox), info_banner.container, FALSE, FALSE, 0);
 
        gtk_box_pack_start(GTK_BOX(mapvbox), hbox, TRUE, TRUE, 0);
index e8a0b6dab41fbf8d55a96777ef0e57fa84517647..728ba0045703181aa244b4dbbc6a5b85f116e980 100644 (file)
@@ -131,7 +131,7 @@ GtkWidget *_menu_poi_item;
 
 /* Toolbar items */
 GtkToolItem *_toolbar_fullscreen_item;
-GtkWidget *_progress_item;
+GtkProgressBar *_progress_item;
 
 /* Menu items for the "Auto-Center" submenu. */
 GtkWidget *_menu_ac_latlon_item;