فهرست منبع

UI: Properly inform user if recording path is invalid

Lqlsoftware 5 سال پیش
والد
کامیت
046464884a
2فایلهای تغییر یافته به همراه23 افزوده شده و 0 حذف شده
  1. 20 0
      UI/window-basic-main.cpp
  2. 3 0
      UI/window-basic-main.hpp

+ 20 - 0
UI/window-basic-main.cpp

@@ -5416,6 +5416,12 @@ void OBSBasic::StartRecording()
 	if (disableOutputsRef)
 		return;
 
+	if (!OutputPathValid()) {
+		OutputPathInvalidMessage();
+		ui->recordButton->setChecked(false);
+		return;
+	}
+
 	if (LowDiskSpace()) {
 		DiskSpaceMessage();
 		ui->recordButton->setChecked(false);
@@ -7655,6 +7661,20 @@ const char *OBSBasic::GetCurrentOutputPath()
 	return path;
 }
 
+void OBSBasic::OutputPathInvalidMessage()
+{
+	blog(LOG_ERROR, "Recording stopped because of bad output path");
+
+	OBSMessageBox::critical(this, QTStr("Output.BadPath.Title"),
+				QTStr("Output.BadPath.Text"));
+}
+
+bool OBSBasic::OutputPathValid()
+{
+	const char *path = GetCurrentOutputPath();
+	return path && *path && QDir(path).exists();
+}
+
 void OBSBasic::DiskSpaceMessage()
 {
 	blog(LOG_ERROR, "Recording stopped because of low disk space");

+ 3 - 0
UI/window-basic-main.hpp

@@ -683,6 +683,9 @@ private:
 	void UpdatePause(bool activate = true);
 	void UpdateReplayBuffer(bool activate = true);
 
+	bool OutputPathValid();
+	void OutputPathInvalidMessage();
+
 	bool LowDiskSpace();
 	void DiskSpaceMessage();