From 995e9fd9740d3e8baa88f97e24d23cb011358bc9 Mon Sep 17 00:00:00 2001 From: Guilhem Bonnefille Date: Tue, 22 Oct 2013 22:05:44 +0200 Subject: [PATCH] QA: factorize trw_layer_acquire* functions The module viktrwlayer is really huge. Any factorisation seems good, even really small like this. Furthermore, such minor refactoring would probably help to find a more significant refactoring. --- src/viktrwlayer.c | 55 ++++++++++++++--------------------------------- 1 file changed, 16 insertions(+), 39 deletions(-) diff --git a/src/viktrwlayer.c b/src/viktrwlayer.c index 8aa1ca98..aa7d08e0 100644 --- a/src/viktrwlayer.c +++ b/src/viktrwlayer.c @@ -3409,18 +3409,23 @@ static void trw_layer_geotagging ( gpointer lav[2] ) // 'Acquires' - Same as in File Menu -> Acquire - applies into the selected TRW Layer // -/* - * Acquire into this TRW Layer straight from GPS Device - */ -static void trw_layer_acquire_gps_cb ( gpointer lav[2] ) +static void trw_layer_acquire ( gpointer lav[2], VikDataSourceInterface *datasource ) { VikTrwLayer *vtl = VIK_TRW_LAYER(lav[0]); VikLayersPanel *vlp = VIK_LAYERS_PANEL(lav[1]); VikWindow *vw = (VikWindow *)(VIK_GTK_WINDOW_FROM_LAYER(vtl)); VikViewport *vvp = vik_window_viewport(vw); + a_acquire ( vw, vlp, vvp, datasource, NULL, NULL ); +} + +/* + * Acquire into this TRW Layer straight from GPS Device + */ +static void trw_layer_acquire_gps_cb ( gpointer lav[2] ) +{ vik_datasource_gps_interface.mode = VIK_DATASOURCE_ADDTOLAYER; - a_acquire ( vw, vlp, vvp, &vik_datasource_gps_interface, NULL, NULL ); + trw_layer_acquire ( lav, &vik_datasource_gps_interface ); } /* @@ -3428,12 +3433,7 @@ static void trw_layer_acquire_gps_cb ( gpointer lav[2] ) */ static void trw_layer_acquire_routing_cb ( gpointer lav[2] ) { - VikTrwLayer *vtl = VIK_TRW_LAYER(lav[0]); - VikLayersPanel *vlp = VIK_LAYERS_PANEL(lav[1]); - VikWindow *vw = (VikWindow *)(VIK_GTK_WINDOW_FROM_LAYER(vtl)); - VikViewport *vvp = vik_window_viewport(vw); - - a_acquire ( vw, vlp, vvp, &vik_datasource_routing_interface, NULL, NULL ); + trw_layer_acquire ( lav, &vik_datasource_routing_interface ); } /* @@ -3441,13 +3441,8 @@ static void trw_layer_acquire_routing_cb ( gpointer lav[2] ) */ static void trw_layer_acquire_url_cb ( gpointer lav[2] ) { - VikTrwLayer *vtl = VIK_TRW_LAYER(lav[0]); - VikLayersPanel *vlp = VIK_LAYERS_PANEL(lav[1]); - VikWindow *vw = (VikWindow *)(VIK_GTK_WINDOW_FROM_LAYER(vtl)); - VikViewport *vvp = vik_window_viewport(vw); - vik_datasource_url_interface.mode = VIK_DATASOURCE_ADDTOLAYER; - a_acquire ( vw, vlp, vvp, &vik_datasource_url_interface, NULL, NULL ); + trw_layer_acquire ( lav, &vik_datasource_url_interface ); } #ifdef VIK_CONFIG_OPENSTREETMAP @@ -3456,12 +3451,7 @@ static void trw_layer_acquire_url_cb ( gpointer lav[2] ) */ static void trw_layer_acquire_osm_cb ( gpointer lav[2] ) { - VikTrwLayer *vtl = VIK_TRW_LAYER(lav[0]); - VikLayersPanel *vlp = VIK_LAYERS_PANEL(lav[1]); - VikWindow *vw = (VikWindow *)(VIK_GTK_WINDOW_FROM_LAYER(vtl)); - VikViewport *vvp = vik_window_viewport(vw); - - a_acquire ( vw, vlp, vvp, &vik_datasource_osm_interface, NULL, NULL ); + trw_layer_acquire ( lav, &vik_datasource_osm_interface ); } /** @@ -3469,12 +3459,7 @@ static void trw_layer_acquire_osm_cb ( gpointer lav[2] ) */ static void trw_layer_acquire_osm_my_traces_cb ( gpointer lav[2] ) { - VikTrwLayer *vtl = VIK_TRW_LAYER(lav[0]); - VikLayersPanel *vlp = VIK_LAYERS_PANEL(lav[1]); - VikWindow *vw = (VikWindow *)(VIK_GTK_WINDOW_FROM_LAYER(vtl)); - VikViewport *vvp = vik_window_viewport(vw); - - a_acquire ( vw, vlp, vvp, &vik_datasource_osm_my_traces_interface, NULL, NULL ); + trw_layer_acquire ( lav, &vik_datasource_osm_my_traces_interface ); } #endif @@ -3484,12 +3469,7 @@ static void trw_layer_acquire_osm_my_traces_cb ( gpointer lav[2] ) */ static void trw_layer_acquire_geocache_cb ( gpointer lav[2] ) { - VikTrwLayer *vtl = VIK_TRW_LAYER(lav[0]); - VikLayersPanel *vlp = VIK_LAYERS_PANEL(lav[1]); - VikWindow *vw = (VikWindow *)(VIK_GTK_WINDOW_FROM_LAYER(vtl)); - VikViewport *vvp = vik_window_viewport(vw); - - a_acquire ( vw, vlp, vvp, &vik_datasource_gc_interface, NULL, NULL ); + trw_layer_acquire ( lav, &vik_datasource_gc_interface ); } #endif @@ -3500,12 +3480,9 @@ static void trw_layer_acquire_geocache_cb ( gpointer lav[2] ) static void trw_layer_acquire_geotagged_cb ( gpointer lav[2] ) { VikTrwLayer *vtl = VIK_TRW_LAYER(lav[0]); - VikLayersPanel *vlp = VIK_LAYERS_PANEL(lav[1]); - VikWindow *vw = (VikWindow *)(VIK_GTK_WINDOW_FROM_LAYER(vtl)); - VikViewport *vvp = vik_window_viewport(vw); vik_datasource_geotag_interface.mode = VIK_DATASOURCE_ADDTOLAYER; - a_acquire ( vw, vlp, vvp, &vik_datasource_geotag_interface, NULL, NULL ); + trw_layer_acquire ( lav, &vik_datasource_geotag_interface ); // Reverify thumbnails as they may have changed vtl->has_verified_thumbnails = FALSE; -- 2.39.5