Lmms: Use native file dialogs everywhere

Created on 14 Oct 2019  路  4Comments  路  Source: LMMS/lmms

Mainly for consistency with the rest of the interface, we currently use themed file dialogs everywhere, 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

VersionedSaveDialog

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.

gui

Most helpful comment

Some arguments in favour of this issue:

  • Qt's non-native file dialogs are really slow. This is difficult to measure precisely, but the native Windows file dialog can be many times faster for folders not currently in the disk cache. I've had LMMS hang for nearly 30 seconds navigating to my downloads folder, which is not an issue I've run into with any other application.
  • > Some native file dialogues are awful. Every time I have to use this browser I die a little inside.
Perhaps so, but I don't think it's our responsibility as the application to work around perceived bad UI/UX of the operating system.

  • > I wouldn't consider increment/decrement "useless" at all, it certainly seems more convenient than manually changing the number.
It would certainly seem so, but I recall discussion on Discord that suggested that a lot of people either don't use these or haven't even noticed them.

  • > A native dialogue reduces consistency between OSes. This fragments the userbase's experience, for example it makes tutorials/guides look different for different OSes.
It increases consistency within each OS though. I think it's more likely that users are using LMMS along with other programs on a single OS, rather than using LMMS on multiple OSes. Regarding tutorials/guides, can't we assume some basic computer literacy, that users can navigate their own OS's file browser?

All 4 comments

I disagree w/ this issue. Will post a proper explanation when I have time to type it out.

  • Some native file dialogues are awful. Every time I have to use this browser I die a little inside.
  • I don't know if it's possible for us to list our LMMS specific default locations in a native dialogue. If we can't list the working dir and stuff like that, the native dialogue is a downgrade.
  • I wouldn't consider increment/decrement "useless" at all, it certainly seems more convenient than manually changing the number.
  • A native dialogue reduces consistency between OSes. This fragments the userbase's experience, for example it makes tutorials/guides look different for different OSes.

The save dialogue's looks match the rest of LMMS, which I quite like. Blender does themed load/save as well to great effect, with custom functionality (like super easy custom format filtering, import options, etc.). Not to mention, it lists system bookmarks (which, as far as i can remember, LMMS already does for me too?)

Some arguments in favour of this issue:

  • Qt's non-native file dialogs are really slow. This is difficult to measure precisely, but the native Windows file dialog can be many times faster for folders not currently in the disk cache. I've had LMMS hang for nearly 30 seconds navigating to my downloads folder, which is not an issue I've run into with any other application.
  • > Some native file dialogues are awful. Every time I have to use this browser I die a little inside.
Perhaps so, but I don't think it's our responsibility as the application to work around perceived bad UI/UX of the operating system.

  • > I wouldn't consider increment/decrement "useless" at all, it certainly seems more convenient than manually changing the number.
It would certainly seem so, but I recall discussion on Discord that suggested that a lot of people either don't use these or haven't even noticed them.

  • > A native dialogue reduces consistency between OSes. This fragments the userbase's experience, for example it makes tutorials/guides look different for different OSes.
It increases consistency within each OS though. I think it's more likely that users are using LMMS along with other programs on a single OS, rather than using LMMS on multiple OSes. Regarding tutorials/guides, can't we assume some basic computer literacy, that users can navigate their own OS's file browser?

I've been thinking about this for a while (before reading this PR).
To me the OS file dialogs are more functional (speeder -yes, open the downloads folder is like forever-, the ability to change directory by cut-and-paste, the recent folders in the drop-down directory list, etc.) but certainly the themed file dialogs can have some positive features, keep consistency between OSes, look-and-feel following LMMS theme, etc.
How about a configuration setting in which the user can decide between OS or themed file dialog? In the same way that we have one with "Plugin Embeding"? So, let the user decide which one is best for her/him. And for the "added features" it can be explained in the manual that those can be lost if changed to the OS file dialog (I've never noticed the + - buttons -I've been using LMMS for two years now- and, in windows at least, the "save option" is not visible)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

demmm picture demmm  路  3Comments

victor00101 picture victor00101  路  3Comments

binyominzeev picture binyominzeev  路  3Comments

DeRobyJ picture DeRobyJ  路  3Comments

Firepal picture Firepal  路  3Comments