|
From: <qto...@us...> - 2007-08-24 15:46:30
|
Revision: 403
http://viking.svn.sourceforge.net/viking/?rev=403&view=rev
Author: qtonthat
Date: 2007-08-24 08:46:28 -0700 (Fri, 24 Aug 2007)
Log Message:
-----------
Give more instructive message for attempting to download maps in wrong mapmode
Point users to View menu and suggest what mode to select.
Signed-off-by: Quy Tonthat <qto...@gm...>
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/vikmapslayer.c
trunk/src/vikviewport.c
trunk/src/vikviewport.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-08-24 14:29:07 UTC (rev 402)
+++ trunk/ChangeLog 2007-08-24 15:46:28 UTC (rev 403)
@@ -2,6 +2,8 @@
Quy Tonthat <qto...@gm...>:
* New google version number.
* Better checking to detect downloaded text instead of images.
+ * Give more instructive message for attempting to download maps in
+ wrong mapmode.
2007-08-20
Guilhem Bonnefille <gui...@gm...>:
Modified: trunk/src/vikmapslayer.c
===================================================================
--- trunk/src/vikmapslayer.c 2007-08-24 14:29:07 UTC (rev 402)
+++ trunk/src/vikmapslayer.c 2007-08-24 15:46:28 UTC (rev 403)
@@ -1055,6 +1055,7 @@
{
VikMapsLayer *vml = vml_vvp[0];
VikViewport *vvp = vml_vvp[1];
+ VikViewportDrawMode vp_drawmode = vik_viewport_get_drawmode ( vvp );
gdouble xzoom = vml->xmapzoom ? vml->xmapzoom : vik_viewport_get_xmpp ( vvp );
gdouble yzoom = vml->ymapzoom ? vml->ymapzoom : vik_viewport_get_ympp ( vvp );
@@ -1066,12 +1067,17 @@
vik_viewport_screen_to_coord ( vvp, vik_viewport_get_width(vvp), vik_viewport_get_height(vvp), &br );
VikMapsLayer_MapType *map_type = MAPS_LAYER_NTH_TYPE(vml->maptype);
- if ( map_type->drawmode == vik_viewport_get_drawmode ( vvp ) &&
+ if ( map_type->drawmode == vp_drawmode &&
map_type->coord_to_mapcoord ( &ul, xzoom, yzoom, &ulm ) &&
map_type->coord_to_mapcoord ( &br, xzoom, yzoom, &brm ) )
start_download_thread ( vml, vvp, &ul, &br, redownload );
+ else if (map_type->drawmode != vp_drawmode) {
+ gchar *err = g_strdup_printf("Wrong drawmode for this map.\nSelect \"%s Mode\" from View menu and try again.", vik_viewport_drawmode_name(map_type->drawmode));
+ a_dialog_error_msg ( VIK_GTK_WINDOW_FROM_LAYER(vml), err );
+ g_free(err);
+ }
else
- a_dialog_error_msg ( VIK_GTK_WINDOW_FROM_LAYER(vml), "Wrong drawmode / zoom level for this map." );
+ a_dialog_error_msg ( VIK_GTK_WINDOW_FROM_LAYER(vml), "Wrong zoom level for this map." );
}
Modified: trunk/src/vikviewport.c
===================================================================
--- trunk/src/vikviewport.c 2007-08-24 14:29:07 UTC (rev 402)
+++ trunk/src/vikviewport.c 2007-08-24 15:46:28 UTC (rev 403)
@@ -1005,3 +1005,19 @@
vvp->google_calcx_rev_fact = 1 / vvp->google_calcx_fact;
vvp->google_calcy_rev_fact = 1 / vvp->google_calcy_fact;
}
+
+const gchar *vik_viewport_drawmode_name(VikViewportDrawMode mode)
+{
+ static gchar *names[] = {
+ "UTM",
+ "Expedia",
+ "Old Google",
+ "Old KH",
+ "Google"
+ };
+
+ if (mode < VIK_VIEWPORT_NUM_DRAWMODES)
+ return names[mode];
+ return NULL;
+
+}
Modified: trunk/src/vikviewport.h
===================================================================
--- trunk/src/vikviewport.h 2007-08-24 14:29:07 UTC (rev 402)
+++ trunk/src/vikviewport.h 2007-08-24 15:46:28 UTC (rev 403)
@@ -141,8 +141,10 @@
void vik_viewport_pan_sync ( VikViewport *vvp, gint x_off, gint y_off );
typedef enum { VIK_VIEWPORT_DRAWMODE_UTM=0, VIK_VIEWPORT_DRAWMODE_EXPEDIA,
- VIK_VIEWPORT_DRAWMODE_GOOGLE, VIK_VIEWPORT_DRAWMODE_KH, VIK_VIEWPORT_DRAWMODE_MERCATOR } VikViewportDrawMode;
+ VIK_VIEWPORT_DRAWMODE_GOOGLE, VIK_VIEWPORT_DRAWMODE_KH, VIK_VIEWPORT_DRAWMODE_MERCATOR, VIK_VIEWPORT_NUM_DRAWMODES } VikViewportDrawMode;
+/* Do not forget to update vik_viewport_drawmode_name() if you modify VikViewportDrawMode */
+const gchar *vik_viewport_drawmode_name(VikViewportDrawMode mode);
void vik_viewport_set_drawmode ( VikViewport *vvp, VikViewportDrawMode drawmode );
VikViewportDrawMode vik_viewport_get_drawmode ( VikViewport *vvp );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|