Progress bar during load
S5 - Suggestion
1. Goto here
3. Choose 'MusicXML'.
4. Open MusicXML.
Result: Takes longer to open than a shorter score.
Discussion: Can there be a progress bar?
Using MuseScore 2.0 Nightly Build (0988848) - Mac 10.7.4.
I'll second the request for a progress bar on importing MusicXML. Came up in https://musescore.org/en/node/70096
This request is very valid, as normal user interface standards suggest a progress bar for any operation that takes longer than a few seconds. Loading complicated MusicXML files can easily take a lot longer.
The practical issue here is that most of the MusicXML import time (something like 80%) is in XML schema validation (which I'd rather not disable, as it still catches many file errors). Unfortunately, the GUI toolkit used to build MuseScore (Qt) does enable us to do schema validation (using QXmlSchemaValidator), but does not provide any way of displaying progress.
Practically this means we can:
- remove / disable MusicXML schema validation
- submit a request and wait for a Qt version that does allow progress reporting while validating
- customize (this part of) Qt specifically for MuseScore
- switch to a different XML validator that does allow progress reporting while validating
Neither of these alternatives easily leads to a solution. Furthermore, I am not aware of any available open source C++ toolkit that provides XML schema validation with progress reporting (and I spent several days searching).
What if the file loading is done on a separate thread?
That wouldn't give the user any meaningful feedback but it would at least keep the program responsive, which is better than a complete freeze.
There's a similar discussion about this at https://social.msdn.microsoft.com/Forums/vstudio/en-US/cf689dd9-7fd8-4f… and http://stackoverflow.com/questions/8099149/how-to-use-progress-bar-duri….
I second this feature request. Not just for MusicXML, but for all types that can be imported (including midi and mscz)
Regarding MusicXML schema validation time, how about to first have a message: "Verifying MusicXML schema..." that gets appended with "Done", so at least user knows what is going on (even though can't report progress on that). Then can have a progress bar for each stage of MuseScore processing that we can quantitatively report progress.
I second the use of a separate thread. Additionally, if user opens multiple scores at the same time (sometimes I drag and drop multiple midi files or multiple scores from my file manager into MuseScore), then it would be great if each could be processed in its own thread (maybe max of nCPUs threads).
Even opening big mscz files leads to hangs. It is very noticeable in Debug mode. I would add the progress bar after 2 seconds of loading to not bother users with blinking widgets if opening is fast enough.