Browse Source

UI: Fix Import Profile in Portable Mode

QDir.mkpath seems broken with relative paths

Also adds a check for existing profiles
Matt Gajownik 5 năm trước cách đây
mục cha
commit
2cbe64a79a
1 tập tin đã thay đổi với 9 bổ sung7 xóa
  1. 9 7
      UI/window-basic-main-profiles.cpp

+ 9 - 7
UI/window-basic-main-profiles.cpp

@@ -505,10 +505,16 @@ void OBSBasic::on_actionImportProfile_triggered()
 		QFileInfo finfo(dir);
 		QString directory = finfo.fileName();
 		QString profileDir = inputPath + directory;
-		QDir folder(profileDir);
 
-		if (!folder.exists()) {
-			folder.mkpath(profileDir);
+		if (ProfileExists(directory.toStdString().c_str())) {
+			OBSMessageBox::warning(
+				this, QTStr("Basic.MainMenu.Profile.Import"),
+				QTStr("Basic.MainMenu.Profile.Exists"));
+		} else if (os_mkdir(profileDir.toStdString().c_str()) < 0) {
+			blog(LOG_WARNING,
+			     "Failed to create profile directory '%s'",
+			     directory.toStdString().c_str());
+		} else {
 			QFile::copy(dir + "/basic.ini",
 				    profileDir + "/basic.ini");
 			QFile::copy(dir + "/service.json",
@@ -518,10 +524,6 @@ void OBSBasic::on_actionImportProfile_triggered()
 			QFile::copy(dir + "/recordEncoder.json",
 				    profileDir + "/recordEncoder.json");
 			RefreshProfiles();
-		} else {
-			OBSMessageBox::warning(
-				this, QTStr("Basic.MainMenu.Profile.Import"),
-				QTStr("Basic.MainMenu.Profile.Exists"));
 		}
 	}
 }