- Removed the very naughty interrupt swallowing used to detect if the process started correctly
under optimal arguments, replaced it with a busy-wait loop so the thread can still be used to
launch the application multiple times
This little chunk of code has been tweaked and cargo'd forward for years
with no documentation as to what's going on.
What I object to is the blatent disregarding of the width specified in
getdown.txt with something calculated internally. (width - x*2)
GIGO; fix your fucking getdown.txt.
- If we are not granted privileges, reading the metadata breaks, which
is why the fallback was first added.
- Later it was tweaked because getWidth() can sometimes report 0 and
that would cause the fallback width to be negative.
- Allow multiple percentages to be specified for a step. The lowest one that's
higher than the current percentage is used.
- It seems sometimes the UI is shown after some progress is made. Track
the percentage we're at when the UI is shown and reset that to be the new
0, scaling subsequent progress to fill the remainder.
I added this convinced I needed it, but now I'm seeing that it's always
at 0 when the UI is shown...
Perhaps I'll revisit that after I do some other stuff...
Ellipses on buttons/menu items typically means "pressing this
will not invoke an action directly because more information/customization
is needed". For example the ubiquitous "Print..." displays a
printing dialog, it doesn't actually start printing.
after the status, incrementing every second.
Even if the status or percentage doesn't update for a while, the user
will know that the updater is still "working".
This could cause problems but I believe that any time we display the
time remaining we are also showing a short status string.
Hand-massaged the translations, hopefully everything still makes sense
in each language.
but it wasn't doing the right thing. Fixed it.
I honestly have no idea how this was working. Maybe it just wasn't.
Maybe we never noticed before because with the per-step progress
bars we weren't seeing it exceed 100 percent.
And then use that instead of the UnifiedProgressObserver I wrote,
before I saw MetaProgressObserver.
Part 1: the unification.
Two things actually:
- If there are auxiliary groups, the resources from all groups were
downloaded all together, but patched individually. So each patcher
would restart the progress bar from 0-100%. Created a unified
progress observer that merely gives each patching phase an even
division of the percentage.
- I enumerated the major steps involved in getting down, and assigned
a completely arbitrary max progress percentage to each.
All percent progress reports are now bounded to the range of
the max for the current step and previous step's max reported
progress. Backwards progress is ignored, so if getdown goes
back and re-does some steps the bar may "stall".
If a step is skipped, the progress bar doesn't jump ahead, rather
it will use the range of any skipped steps to more fully
report the 0-100% progress of the current step.
I'm going to try this out and make adjustments.
This feature isn't done, part 2 is moving any time estimate
up to the "status" label (instead of the "progress" label).