Nexus-Mods / NexusMods.App

Home of the development of the Nexus Mods App
https://nexus-mods.github.io/NexusMods.App/
GNU General Public License v3.0
752 stars 43 forks source link

Generic Loading Overlay/Status bar #901

Open Al12rs opened 5 months ago

Al12rs commented 5 months ago

We need a generic reusable way to show in the UI that the App id doing something without having to add spinner or progressbar inside our views.

To do this we would need either an overlay or a status bar where we would show a loading indicator.

The plan is to use this in cases where the app might take a few seconds to do something and we aren't showing this information to the users, causing confusion.

Example is Managing a new game, or installing a new mod (the mod is first extracted without feedback).

Ideally in the future notable interactions will have their dedicated spinners and loading indicators, but having this would simplify development a lot without compromising user experience too much.

Details:

Al12rs commented 5 months ago

One issue I thought about during the weekend is that we could have multiple separate things 'loading', and a single text box and loading bar might not be enough for that.

Vortex has a separate notification with a loading bar for each thing that loads, but we know a lot of users don't enjoy that.

MO2 on the other hand has a single generic loading bar at the bottom of the screen that disables the entire UI when activated, with no text information. This is only used for shortish things (usually below 1s, can become longer for 2k mods), and when user interaction to the UI needs to be locked.

For other things MO2 either has a dedicated loading dialog (extracting downloads before showing installer), or doesn't use a loading bar at all and instead relies on the Log viewer to indicate that an operation has started or ended. Sometimes this is accompanied by a small overlay notification at the bottom of the screen.

(looks like this: image )

Vortex approach seems better tbh, so it might be worth understanding why users don't like it and if there is a good solution.

erri120 commented 5 months ago

One issue I thought about during the weekend is that we could have multiple separate things 'loading', and a single text box and loading bar might not be enough for that.

Wabbajack also uses multiple progress bar for each "task":

other_ss

This made sense for Wabbajack, since the user could do nothing but watch the progress bars while the program installs a modlist. We could reserve a large chunk of the UI for progress bars, since the user couldn't really interact with anything.

However, the Nexus Mods App already has a very busy UI, adding multiple progress bars will just make a mess. I think a single "global" progress bar at the bottom is fine, but clicking it will open some sort of "task manager" where the user can view all active tasks and their individual progress bars.

LukeNexusMods commented 4 months ago

WE should figure out all the scenarios where the user would want know that something is happening with the app and document it.