From d404928209c0c1e568267ffc5b542a0c75b02545 Mon Sep 17 00:00:00 2001 From: Ivan Mahonin Date: Aug 10 2013 15:06:19 +0000 Subject: Import files by drag'n'drop now supports non-ASCII characters in filenames and paths. --- diff --git a/synfig-studio/src/gui/canvasview.cpp b/synfig-studio/src/gui/canvasview.cpp index 47b5022..c2bdcba 100644 --- a/synfig-studio/src/gui/canvasview.cpp +++ b/synfig-studio/src/gui/canvasview.cpp @@ -3669,8 +3669,15 @@ CanvasView::on_drop_drag_data_received(const Glib::RefPtr& con continue; } - // Strip the "file://" part from the filename - filename=synfig::String(filename.begin()+sizeof("file://")-1,filename.end()); + // Converts an escaped ASCII-encoded URI to a local filename + // in the encoding used for filenames + gchar *extractedFilename = g_filename_from_uri(filename.c_str(), NULL, NULL); + if (extractedFilename == NULL) { + synfig::warning("Cannot parse URI \"%s\"",filename.c_str()); + continue; + } + filename=synfig::String(extractedFilename); + g_free(extractedFilename); String ext(filename_extension(filename)); if (ext.size()) ext = ext.substr(1); // skip initial '.'