From: Guilhem Bonnefille Date: Wed, 6 May 2009 20:07:56 +0000 (+0200) Subject: Merge 'thread-pool' features from Jocelyn Jaubert X-Git-Url: https://git.street.me.uk/andy/viking.git/commitdiff_plain/81e629d5a1169150cace280ff185693d64f66e8e?hp=-c Merge 'thread-pool' features from Jocelyn Jaubert --- 81e629d5a1169150cace280ff185693d64f66e8e diff --combined src/vikmapslayer.c index 9c6ce07f,efe5b6b8..9c9e2904 --- a/src/vikmapslayer.c +++ b/src/vikmapslayer.c @@@ -117,7 -117,7 +117,7 @@@ static VikLayerParamScale params_scales VikLayerParam maps_layer_params[] = { { "mode", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Map Type:"), VIK_LAYER_WIDGET_RADIOGROUP, NULL, NULL }, - { "directory", VIK_LAYER_PARAM_STRING, VIK_LAYER_GROUP_NONE, N_("Maps Directory (Optional):"), VIK_LAYER_WIDGET_FILEENTRY }, + { "directory", VIK_LAYER_PARAM_STRING, VIK_LAYER_GROUP_NONE, N_("Maps Directory:"), VIK_LAYER_WIDGET_FOLDERENTRY }, { "alpha", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Alpha:"), VIK_LAYER_WIDGET_HSCALE, params_scales }, { "autodownload", VIK_LAYER_PARAM_BOOLEAN, VIK_LAYER_GROUP_NONE, N_("Autodownload maps:"), VIK_LAYER_WIDGET_CHECKBUTTON }, { "mapzoom", VIK_LAYER_PARAM_UINT, VIK_LAYER_GROUP_NONE, N_("Zoom Level:"), VIK_LAYER_WIDGET_COMBOBOX, params_mapzooms }, @@@ -405,7 -405,7 +405,7 @@@ static VikLayerParamData maps_layer_get VikLayerParamData rv; switch ( id ) { - case PARAM_CACHE_DIR: rv.s = (vml->cache_dir && strcmp(vml->cache_dir, MAPS_CACHE_DIR) != 0) ? vml->cache_dir : ""; break; + case PARAM_CACHE_DIR: rv.s = vml->cache_dir ? vml->cache_dir : ""; break; case PARAM_MAPTYPE: rv.u = map_index_to_uniq_id ( vml->maptype ); break; case PARAM_ALPHA: rv.u = vml->alpha; break; case PARAM_AUTODOWNLOAD: rv.u = vml->autodownload; break; @@@ -774,7 -774,7 +774,7 @@@ static void weak_ref_cb(gpointer ptr, G g_mutex_unlock(mdi->mutex); } - static void map_download_thread ( MapDownloadInfo *mdi, gpointer threaddata ) + static int map_download_thread ( MapDownloadInfo *mdi, gpointer threaddata ) { guint donemaps = 0; gint x, y; @@@ -789,7 -789,9 +789,9 @@@ mdi->mapcoord.scale, mdi->mapcoord.z, x, y ); donemaps++; - a_background_thread_progress ( threaddata, ((gdouble)donemaps) / mdi->mapstoget ); /* this also calls testcancel */ + int res = a_background_thread_progress ( threaddata, ((gdouble)donemaps) / mdi->mapstoget ); /* this also calls testcancel */ + if (res != 0) + return -1; if ( mdi->redownload == REDOWNLOAD_ALL) g_remove ( mdi->filename_buf ); @@@ -843,6 -845,7 +845,7 @@@ if (mdi->map_layer_alive) g_object_weak_unref(G_OBJECT(mdi->vml), weak_ref_cb, mdi); g_mutex_unlock(mdi->mutex); + return 0; } static void mdi_cancel_cleanup ( MapDownloadInfo *mdi )