... Define lots of operators for disambiguation, but they will go away after
all conversions from sampleCount to built-in numerical types are forced
to be explicit.
... Should have no effect on generated code, except perhaps some slight faster
virtual function calls. Mostly useful as documentation of design intent.
Tried to mark every one of our classes that inherits from another, or is a
base for others, or has abstract virtual functions, and a few others besides.
In light of discussion about crazy things users do, decided to leave in the former "Temporarily replace..." options, but changed the wording to "Treat missing audio as silence" and warn that the waveform may not show silence.
Added FSCKstatus_SAVE_AUP flag (and returned FSCKstatus_* to being flags). FSCKstatus_SAVE_AUP is set for missing aliased files, so that AudacityProject does a save, fixing a bug where after "Close project immediately...", opening other projects failed in a way that made them incorrectly report missing _data folders, rather than go through Project Check (DirManager::ProjectFSCK).
Decided to continue with the fake-out fixes for missing aliased files and missing SimpleBlockFiles, i.e., writing zeroes instead of replacing with SilentBlockFiles. Replacing is difficult, and there are other places where the zeroes trick is used, e.g., after project check, if there's a disk error, such as a .au being inaccessible in the middle of edits.
Made the "permanent immediately" and "regenerate" options not do a PushState, because they were not possible to Undo.
Added a "Show Log for Details" button to MultiDialog so it does what the comments say, i.e., allows the user to look in the log to see which files are problematic (e.g., orphaned blockfiles.
Tightened up ProjectFSCK messages.
Added comments about remaining (long-standing!) problems in ProjectFSCK.
Comments about what's wrong with the DirManager::ProjectFSCK "Missing Aliased Files" dialog actions and what to do about it. (More to follow!)
Changed PushState for project repair from "Repair" to "Project Repair" to distinguish from Repair effect.
renames for clarity
code cleanup
naming improvements for clarity (e.g., aliasedFileName instead of aliasedFile for an instance of wxFileName -- it's not an instance of AliasedFile)
parens, not square brackets, for parenthetic phrases
Changed the descriptive static text to show the paragraph about missing files only if any are actually missing.
Added extra updating to enabling "Copy Selected Audio", e.g., for cases were all the aliased files are missing.
Made the dialog dismiss after "Copy Selected Audio" if all non-missing files have been copied in and all that remain are missing files, same as case where there are no missing files and all non-missing have been copied in.
Added extra updating to enabling "Copy All Audio", e.g., disabled when there are missing files in the list -- we cannot copy them.
Changed missing file entries in the list from italicized to prefixed with "MISSING " so screen readers can distinguish.
Fixed a formerly unnoticed crash bug. If user selected a subset of the dependency files list, then clicked "Copy Selected Audio Into Project", it removed the selected dependency/dependencies, but then crashed on bad reference trying to delete the non-selected dependency/dependencies. This was due to a consistent misuse of wxHashMap::operator[] to check for the existence of a hash element. If you call it with a key that's not in the hash map, yes it returns NULL, the first time, but it creates an entry for that key. So if you test it again with the same key it returns a bad entry. Replaced it with a correct call to wxHashMap::count(). Leland had fixed one of these, but there were 4 more.
RemoveDependencies() always returned true, and was never checked, so made it return nothing.
More readability improvements.
Update header block.
Move declarations that aren't used elsewhere, from .h file. No need to expose them there, used only in this file.
Working on first part of bug 113 where moved/deleted file is allowed to be copied into project:
* Made class AliasedFile know whether its original file exists in specified location.
* Dependency dialog:
** Updated so message states some original files were moved/deleted, and what to do about it.
** Missing dependencies shown in red, italic text.
** Missing dependencies cannot be selected for copying into project.
* Fixed bug where deselecting all items did not disable "Copy Selected..." button.
FindDependencies always returns true, so removed return value and its handling.
Sundry readability improvements: var names, {} brackets usage consistency, indenting, clearer names, etc.
Get rid of vim/emacs declarations. Matt said they're unnecessary, ages ago.