Преглед изворни кода

UI: Fix problem with exporting scene collections/profiles

When exporting scene collections/profiles existing files are
not overwritten.

Closes jp9000/obs-studio#963
Michel пре 8 година
родитељ
комит
609334e427
2 измењених фајлова са 26 додато и 9 уклоњено
  1. 21 8
      UI/window-basic-main-profiles.cpp
  2. 5 1
      UI/window-basic-main-scene-collections.cpp

+ 21 - 8
UI/window-basic-main-profiles.cpp

@@ -524,15 +524,28 @@ void OBSBasic::on_actionExportProfile_triggered()
 
 		if (!folder.exists()) {
 			folder.mkpath(outputDir);
-			QFile::copy(inputPath + currentProfile + "/basic.ini",
-					outputDir + "/basic.ini");
-			QFile::copy(inputPath + currentProfile + "/service.json",
-					outputDir + "/service.json");
-			QFile::copy(inputPath + currentProfile + "/streamEncoder.json",
-					outputDir + "/streamEncoder.json");
-			QFile::copy(inputPath + currentProfile + "/recordEncoder.json",
-					outputDir + "/recordEncoder.json");
+		} else {
+			if (QFile::exists(outputDir + "/basic.ini"))
+				QFile::remove(outputDir + "/basic.ini");
+
+			if (QFile::exists(outputDir + "/service.json"))
+				QFile::remove(outputDir + "/service.json");
+
+			if (QFile::exists(outputDir + "/streamEncoder.json"))
+				QFile::remove(outputDir + "/streamEncoder.json");
+
+			if (QFile::exists(outputDir + "/recordEncoder.json"))
+				QFile::remove(outputDir + "/recordEncoder.json");
 		}
+
+		QFile::copy(inputPath + currentProfile + "/basic.ini",
+				outputDir + "/basic.ini");
+		QFile::copy(inputPath + currentProfile + "/service.json",
+				outputDir + "/service.json");
+		QFile::copy(inputPath + currentProfile + "/streamEncoder.json",
+				outputDir + "/streamEncoder.json");
+		QFile::copy(inputPath + currentProfile + "/recordEncoder.json",
+				outputDir + "/recordEncoder.json");
 	}
 }
 

+ 5 - 1
UI/window-basic-main-scene-collections.cpp

@@ -425,8 +425,12 @@ void OBSBasic::on_actionExportSceneCollection_triggered()
 
 	string file = QT_TO_UTF8(exportFile);
 
-	if (!exportFile.isEmpty() && !exportFile.isNull())
+	if (!exportFile.isEmpty() && !exportFile.isNull()) {
+		if (QFile::exists(exportFile))
+			QFile::remove(exportFile);
+
 		QFile::copy(path + currentFile + ".json", exportFile);
+	}
 }
 
 void OBSBasic::ChangeSceneCollection()