Now it resets the toolbars, and fixes three common 'stuck-in-a-mode' issues.
Paul wrote: "I would move that function [OnResetToolBars(context)] into ToolManager.cpp so it can be called from ToolBarMenus.cpp and HelpMenus.cpp, with neither of those two dependent on the other."
Only modify label tracks with sync lock, when they are also part of the sync lock group. This corrects a problem where edits in a wave track culd affect later label tracks that were not in its group.
* Eliminate ModuleManagerInterface...
... It was there only to provide RegisterModule(), but that was not used
anywhere. So simplify.
* Remove nested #include of ModuleInterface.h
... The graph.pl script now makes nodes for header files that do not have
corresponding .cpp files.
With more nodes, more dependency cycles can be revealed that were not detected
before.
Two previously known cycles, and two newly revealed cycles, are broken up by
easy means (cutting and pasting of code to new files, changes of #include
directives) that don't involve more risky transformations.
extern declarations were also reviewed. extern declarations should not be in
.cpp files (at least for anything Audacity defines) but instead in .h files.
Definitions for those declarations should be in the corresponding .cpp files,
so that the graph generated by the script really shows all the link
dependencies.
To obey that rule requires supplying new .cpp files for existing .h files.
A similar rule applies for member funtions of classes.
So another large, hidden cycle was broken by defining PrefsPanel.cpp.
... Require the declarations to be in .h files, to be sure graph.pl detects the
dependencies.
Only one more #include was needed in Nyquist.cpp. This doesn't reveal any
more hidden cycles.
... in four cases; not in some other .cpp file.
This is another move that causes the generated graph to reflect dependencies
correctly.
This fixes other large, hidden cycles that involved PrefsDialog.cpp: there was
link dependency on that when PrefsPanel.h was used for the base class. No
longer.
Also cycles involving TrackPanel.cpp, which contained the default
implementations for TrackPanelCell and related abstract base classes.