From 2d1b0666af25c43d1cb89f6b5e2e105026e991ed Mon Sep 17 00:00:00 2001 From: Ryan Foster Date: Wed, 25 Nov 2020 02:12:21 -0500 Subject: [PATCH] UI: Prevent name collision during scene collection import The Scene Collection Importer would attempt to set the new filename using the name property of the scene collection. However, it would determine an unused filename, and then replace spaces with underscores, which could cause a name collision. This changes the importer to replace spaces with underscores first for the base filename, and then determine an unused filename. --- UI/window-importer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/UI/window-importer.cpp b/UI/window-importer.cpp index 8f466e8c..71c02e45 100644 --- a/UI/window-importer.cpp +++ b/UI/window-importer.cpp @@ -577,11 +577,12 @@ void OBSImporter::importCollections() json11::Json::object out = res.object_items(); QString file = res["name"].string_value().c_str(); + file.replace(" ", "_"); bool safe = !CheckConfigExists(dst, file); int x = 1; while (!safe) { file = name; - file += " ("; + file += "_("; file += QString::number(x); file += ")"; @@ -593,7 +594,7 @@ void OBSImporter::importCollections() std::string save = dst; save += "/"; - save += file.replace(" ", "_").toStdString(); + save += file.toStdString(); save += ".json"; std::string out_str = json11::Json(out).dump(); -- GitLab