Global progress bar
Currently, to show that the application is busy, Met.3D
- uses the
Processing...
label whenMTask
s are running - shows a progress bar in a separate window when either a session is loaded, a file is scanned initially, or a session is loaded.
This has the following problems:
- The
Processing...
label does not give information on how many tasks are queued, which tasks are running, or if the application gets stuck, which task is responsible. - The progress bar windows sometimes hang and don't close properly (see #410). This seems to happen if a progress bar window is opened while one is already open or in quick succession (within a UI render cycle). As we open lots of these windows during session load (compiling shaders for each actor), this happens quite often.
This MR removes the progress bar windows and the processing label and replaces these with a global progress bar displayed in the menu bar. Classes scheduling or starting tasks can register these tasks to the progress bar, and notify the task bar once the tasks are finished. An optional label can be displayed along the progress bar to show the user the task currently running.