Skip to content

frontend: Improve UX around recording paths#12395

Open
Warchamp7 wants to merge 1 commit intoobsproject:masterfrom
Warchamp7:recording-directory
Open

frontend: Improve UX around recording paths#12395
Warchamp7 wants to merge 1 commit intoobsproject:masterfrom
Warchamp7:recording-directory

Conversation

@Warchamp7
Copy link
Member

Description

Better approach to trying to solve the underlying issue I was working towards in #10974

  • Prompts to create the configured recording path folder if it does not exist
  • Attempting to save a screenshot to an invalid recording path no longer erroneously says the screenshot was saved
  • Display error when attempt to Show Recordings with an invalid path

Motivation and Context

I want to smooth out problems for users with bad recording directories.

How Has This Been Tested?

Started recordings, replay buffers and screenshots with a valid recording path, an invalid one in a valid parent directory, and with an invalid path to a non-existent drive.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • Tweak (non-breaking change to improve existing functionality)

Checklist:

  • My code has been run through clang-format.
  • I have read the contributing document.
  • My code is not on the master branch.
  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

@Warchamp7 Warchamp7 added the UI/UX Anything to do with changes or additions to UI/UX elements. label Jul 15, 2025
@Warchamp7 Warchamp7 force-pushed the recording-directory branch from 5611de6 to 71b9409 Compare July 15, 2025 19:03
@Warchamp7 Warchamp7 force-pushed the recording-directory branch from 71b9409 to e36ed5f Compare July 15, 2025 20:07
uint32_t cx;
uint32_t cy;
std::thread th;
bool success = false;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
bool success = false;
bool isScreenshotSaved = false;

Success by itself is ambiguous - did it successfully render the texture? Generate the image data? Store it to disk?

The only way to understand this is to go backwards from the Basic.StatusBar.ScreenshotSavedTo string being generated upon success but parsing the code that far shouldn't be necessary.

return path && *path && QDir(path).exists();
}

bool OBSBasic::promptCreateOutputPath()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
bool OBSBasic::promptCreateOutputPath()
bool OBSBasic::ensureOutputPathExists()

It's probably irrelevant to the calling code how this is ensured, but it only cares that it is ensured.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not ensured in this case since the user could click no. Would that still be appropriate here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO it's fine if the function that is supposed to ensure this path exists tells you it "couldn't do it", because then you know it wasn't able to fulfil its job. It also makes sense that the code will not continue, because a precondition isn't true.

@Warchamp7 Warchamp7 added this to the OBS Studio 32.0 milestone Jul 18, 2025
@WizardCM WizardCM added the Bug Fix Non-breaking change which fixes an issue label Jul 26, 2025
@PatTheMav PatTheMav moved this from In review to In progress in OBS Studio 32.0 PR Considerations Aug 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bug Fix Non-breaking change which fixes an issue UI/UX Anything to do with changes or additions to UI/UX elements.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants