diff --git a/Source/OBS.cpp b/Source/OBS.cpp index df71990f..81960d54 100644 --- a/Source/OBS.cpp +++ b/Source/OBS.cpp @@ -1327,7 +1327,7 @@ void OBS::RefreshStreamButtons(bool disable) int networkMode = AppConfig->GetInt(TEXT("Publish"), TEXT("Mode"), 2); bRecordingOnly = (networkMode == 1); bool canStream = networkMode == 0 && !bTestStream; - canRecord = (bRecordingOnly || AppConfig->GetString(L"Publish", L"SavePath").IsValid()) && !bTestStream; + canRecord = !bTestStream; bool canTest = !bRecording && (!bStreaming || bTestStream); EnableWindow(GetDlgItem(hwndMain, ID_STARTSTOP), !disable && canStream); diff --git a/Source/SettingsPublish.cpp b/Source/SettingsPublish.cpp index caca2f9d..a3a30a7d 100644 --- a/Source/SettingsPublish.cpp +++ b/Source/SettingsPublish.cpp @@ -69,6 +69,22 @@ void SettingsPublish::DestroyPane() void SettingsPublish::ApplySettings() { + String strSavePath = GetEditText(GetDlgItem(hwnd, IDC_SAVEPATH)); + String defaultPath = OSGetDefaultVideoSavePath(L"\\.flv"); + if (!strSavePath.IsValid() && defaultPath.IsValid()) + { + String text = Str("Settings.Publish.InvalidSavePath"); + text.FindReplace(L"$1", defaultPath); + if (OBSMessageBox(nullptr, text, Str("Settings.Publish.InvalidSavePathCaption"), MB_ICONEXCLAMATION | MB_OKCANCEL) != IDOK) + { + SetAbortApplySettings(true); + return; + } + SetWindowText(GetDlgItem(hwnd, IDC_SAVEPATH), defaultPath.Array()); + } + + //------------------------------------------ + int curSel = (int)SendMessage(GetDlgItem(hwnd, IDC_MODE), CB_GETCURSEL, 0, 0); if(curSel != CB_ERR) AppConfig->SetInt(TEXT("Publish"), TEXT("Mode"), curSel); @@ -126,12 +142,8 @@ void SettingsPublish::ApplySettings() //------------------------------------------ - String strSavePath = GetEditText(GetDlgItem(hwnd, IDC_SAVEPATH)); BOOL bSaveToFile = SendMessage(GetDlgItem(hwnd, IDC_SAVETOFILE), BM_GETCHECK, 0, 0) != BST_UNCHECKED; - if(!strSavePath.IsValid()) - bSaveToFile = FALSE; - AppConfig->SetInt (TEXT("Publish"), TEXT("SaveToFile"), bSaveToFile); AppConfig->SetString(TEXT("Publish"), TEXT("SavePath"), strSavePath); diff --git a/rundir/locale/en.txt b/rundir/locale/en.txt index 99170d19..c68dabf3 100644 --- a/rundir/locale/en.txt +++ b/rundir/locale/en.txt @@ -247,6 +247,8 @@ Settings.Publish.StopStreamHotkey="Stop Stream Hotkey:" Settings.Publish.StartRecordingHotkey="Start Recording Hotkey:" Settings.Publish.StopRecordingHotkey="Stop Recording Hotkey:" Settings.Publish.Username="User Name (if any):" +Settings.Publish.InvalidSavePath="The File Path is invalid, the default Path '$1' will be used instead" +Settings.Publish.InvalidSavePathCaption="Invalid File Path" Settings.Publish.Mode.FileOnly="File Output Only" Settings.Publish.Mode.LiveStream="Live Stream"