Index: trunk/src_plugins/gui/camv_gui.c =================================================================== --- trunk/src_plugins/gui/camv_gui.c (revision 801) +++ trunk/src_plugins/gui/camv_gui.c (revision 802) @@ -144,6 +144,7 @@ static char *last_project = NULL, *last_layer = NULL; const char *function = "Layer"; char *name = NULL; + int multisel = 0; if (last_layer == NULL) last_layer = dup_cwd(); if (last_project == NULL) last_project = dup_cwd(); @@ -154,10 +155,14 @@ RND_ACT_MAY_CONVARG(1, FGW_STR, Load, function = argv[1].val.str); - if (rnd_strcasecmp(function, "Layer") == 0) - name = rnd_hid_fileselect(rnd_gui, "Load layer", "Import a layer from file", last_layer, NULL, NULL, "layer", RND_HID_FSD_READ, NULL); - else if (rnd_strcasecmp(function, "Project") == 0) + if (rnd_strcasecmp(function, "Layer") == 0) { + name = rnd_hid_fileselect(rnd_gui, "Load layer", "Import a layer from file", last_layer, NULL, NULL, "layer", RND_HID_FSD_READ | RND_HID_FSD_MULTI, NULL); + multisel = 1; + } + else if (rnd_strcasecmp(function, "Project") == 0) { name = rnd_hid_fileselect(rnd_gui, "Load a project file", "load project (all layers) from file", last_project, ".lht", NULL, "project", RND_HID_FSD_READ, NULL); + multisel = 0; + } else { rnd_message(RND_MSG_ERROR, "Invalid subcommand for Load(): '%s'\n", function); RND_ACT_IRES(1); @@ -165,9 +170,19 @@ } if (name != NULL) { - if (rnd_conf.rc.verbose) - fprintf(stderr, "Load: Calling LoadFrom(%s, %s)\n", function, name); - rnd_actionl("LoadFrom", function, name, NULL); + if (multisel) { + char *n; + for(n = name; *n != '\0'; n += strlen(n)+1) { + if (rnd_conf.rc.verbose) + fprintf(stderr, "Load: Calling LoadFrom(%s, %s)\n", function, n); + rnd_actionl("LoadFrom", function, n, NULL); + } + } + else { + if (rnd_conf.rc.verbose) + fprintf(stderr, "Load: Calling LoadFrom(%s, %s)\n", function, name); + rnd_actionl("LoadFrom", function, name, NULL); + } free(name); }