Use native file dialogs everywhere
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 1.3k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 7
Description
Mainly for consistency with the rest of the interface, we currently [use themed file dialogs everywhere](https://github.com/LMMS/lmms/pull/4298), instead of native, but unlike native, they
- are slower
- aren't familiar to users,
- don't have bookmarks and quick access,
- don't have thumbnails,
- require more code (4 files & 413 SLOC).
@Wallacoloo once wrote:
> we should use OS-native dialogs instead of custom-themed ones (because, say, the gtk file chooser includes previews for image types whereas custom dialogs don't, or because OS-native file choosers include user-bookmarked locations, whereas custom dialogs don't, ...).
That being said, switching to native file dialogs everywhere has some implications.
Class `VersionedSaveDialog` has some added features that can't be implemented in native file dialogs:
1. *Increment/Decrement version number*
2. *Save options*

No. 1 is useless, as users just manually change the filename, so it should be removed.
I don't know what to do about No. 2, though. :thought_balloon:
---
Related: #3792, specifically: https://github.com/LMMS/lmms/issues/3792#issuecomment-439078098.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading the VersionedSaveDialog implementation and the discussion in related issue #3792. Determine how native file dialogs can replace the themed dialogs across the application, including how the remaining save options should work. Done means native dialogs are used everywhere and the obsolete version increment/decrement behavior is removed or otherwise resolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100