]> err.no Git - libchamplain/commitdiff
Refactor zoom_in and zoom_out to eliminate code duplication
authorPierre-Luc Beaudoin <pierre-luc@pierlux.com>
Sun, 29 Mar 2009 21:26:24 +0000 (00:26 +0300)
committerPierre-Luc Beaudoin <pierre-luc@pierlux.com>
Sun, 29 Mar 2009 21:26:24 +0000 (00:26 +0300)
champlain/champlain-view.c

index 0afa142953c92b03ba8beaa754ecc42d2e510e29..345a4326cb50d94db2413b7b5ab5dafa8becb913 100644 (file)
@@ -1223,26 +1223,7 @@ champlain_view_zoom_in (ChamplainView *view)
 
   ChamplainViewPrivate *priv = GET_PRIVATE (view);
 
-  if (priv->map == NULL)
-    return;
-
-  if (ZOOM_LEVEL_OUT_OF_RANGE(priv, priv->zoom_level+1))
-    return;
-
-  ClutterActor *group = champlain_zoom_level_get_actor (priv->map->current_level);
-  if (!map_zoom_in (priv->map, priv->map_source))
-    return;
-
-  priv->zoom_level++;
-  resize_viewport (view);
-
-  clutter_container_remove_actor (CLUTTER_CONTAINER (priv->map_layer),
-      group);
-  clutter_container_add_actor (CLUTTER_CONTAINER (priv->map_layer),
-      champlain_zoom_level_get_actor (priv->map->current_level));
-  champlain_view_center_on (view, priv->latitude, priv->longitude);
-
-  g_object_notify (G_OBJECT (view), "zoom-level");
+  champlain_view_set_zoom_level (view, priv->zoom_level + 1);
 }
 
 /**
@@ -1260,26 +1241,7 @@ champlain_view_zoom_out (ChamplainView *view)
 
   ChamplainViewPrivate *priv = GET_PRIVATE (view);
 
-  if (priv->map == NULL)
-    return;
-
-  if (ZOOM_LEVEL_OUT_OF_RANGE(priv, priv->zoom_level-1))
-    return;
-
-  ClutterActor *group = champlain_zoom_level_get_actor (priv->map->current_level);
-  if (!map_zoom_out (priv->map, priv->map_source))
-    return;
-
-  priv->zoom_level--;
-  resize_viewport (view);
-
-  clutter_container_remove_actor (CLUTTER_CONTAINER (priv->map_layer),
-      group);
-  clutter_container_add_actor (CLUTTER_CONTAINER (priv->map_layer),
-      champlain_zoom_level_get_actor (priv->map->current_level));
-  champlain_view_center_on (view, priv->latitude, priv->longitude);
-
-  g_object_notify (G_OBJECT (view), "zoom-level");
+  champlain_view_set_zoom_level (view, priv->zoom_level - 1);
 }
 
 /**