- /* tells us how many items there will be */
- if (strstr(line, "Xfer Wpt")) {
- w->progress_label = w->wp_label;
- }
- if (strstr(line, "Xfer Trk")) {
- w->progress_label = w->trk_label;
- }
- if (strstr(line, "PRDDAT")) {
- gchar **tokens = g_strsplit(line, " ", 0);
- gchar info[128];
- int ilen = 0;
- int i;
-
- for (i=8; tokens[i] && ilen < sizeof(info)-2 && strcmp(tokens[i], "00"); i++) {
- guint ch;
- sscanf(tokens[i], "%x", &ch);
- info[ilen++] = ch;
- }
- info[ilen++] = 0;
- set_gps_info(info);
- }
- if (strstr(line, "RECORD")) {
- int lsb, msb, cnt;
-
- sscanf(line+17, "%x", &lsb);
- sscanf(line+20, "%x", &msb);
- cnt = lsb + msb * 256;
- set_total_count(cnt);
- count = 0;
- }
- if ( strstr(line, "WPTDAT") || strstr(line, "TRKHDR") || strstr(line, "TRKDAT") ) {
- count++;
- set_current_count(count);
+ gdk_threads_enter();
+ if (interface->mode == VIK_DATASOURCE_ADDTOLAYER) {
+ VikLayer *current_selected = vik_layers_panel_get_selected ( w->vlp );
+ if ( IS_VIK_TRW_LAYER(current_selected) ) {
+ vtl = VIK_TRW_LAYER(current_selected);
+ creating_new_layer = FALSE;