... except Experimental.h, but see preceding commit.
This is especially important in the header files.
Be sure there are no quiet changes of meaning when a header file is included
in a different context, not having seen Audacity.h. Rather include Audacity.h
even if redundantly.
Also, in some header files, move more inside the include-guard #ifdef-#endif
pair.
... so that USE_* macros will be seen first, and so
EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT, for one, is correctly defined.
I hesitated actually to include Audacity.h in Experimental.h. Maybe no
need for that hesitancy. But instead I use #error if Audacity.h has not been
seen yet.
Ran "autoreconf --force --no-recursive" for Linux build.
Add nyquist-plug-in-installer.ny to Windows build
Add Nyquist Plug-in Installer to mac build
Fix translation strings in plug-in installer
Problem:
Using the Narrator screen reader on Windows 10, there are a couple of problems:
1. When using the left/right arrow keys, Narrator reads the current field, rather than the digit which is now the focus.
2. Using up/down arrow keys, Narrator is silent.
Fixes:
1. The existing code assumes that NumericTextCtrlAx::GetName() is called only once after left/right arrow is pressed. However, Narrator causes this function to be called more than once. Solution: handle the case where the function is called, and neither the focus or the digits have changed, and use a cached value of the name.
2. If the focus has not changed, then after a focus event, Narrator does not read the name, even if the name has changed. Solution: add a name change event. (The focus event has been retained to keep Window-Eyes happy until we stop supporting it.)
Note:
One of the focus events has been removed from NumericTextCtrl::SetFieldFocus(), as it no longer appears to be necessary.
The same story as libexpat's one--native CMakeLists.txt does its job better
than the proxy. Also it seems to be able to otionally build with ASIO support
on Windows. And it successfully builds on linux, freebsd and osx.
... those taking wxString as default value, or reference to wxString as the
target variable.
There remain one that takes reference to int as target, and one taking
reference to double; and one taking a config path and a double default value,
passed by const reference. Some of the calls to the last pass an int default
value which was, and still is, implicitly converted to double.
It appeared to be usable on Windows but still wasn't flexible. I've
updated it with commands based on the autotools configs and now
filedialog can be built on linux, macos and freebsd using cmake.
... Reimplement the ESC key handling in TrackPanel and time ruler on all
operating systems so that it does not rely on the focused window, but instead
uses the application-wide event filter.
This includes reversion of 9491605cfc8a7d60117365884fd494996b5ebbaf
... generalizing the fix of commit 7591891 to other cases, making the iterators
safe for adaptation with std::reverse_iterator should the need ever arise
... except Audacity.h
This forces us to make each header contain all forward declarations or nested
headers that it requires, rather than depend on context.
... except Audacity.h; and in no others.
Do so even if Experimental.h gets multiply included, as in both the .h and
.cpp files.
This makes it easier to do a text scan to be sure there are no unintended quiet
changes of meaning because of omission of Experimental.h when the flag is
an enabled one.
Also move inclusions of Experimental.h earlier.
Also don't require Experimental.h to be preceded by Audacity.h to define
EXPERIMENTAL_MIDI_OUT correctly.
... addressing unfinished business mentioned in comment of commit b7e1cc0.
This eliminates a duplicate definition of track panel area subdivision, which
might grow inconsistent.
Now that subdivision is defined only by the tree of TrackPanelNodes built by
TrackPanel::Root() -- EXCEPT in the drawing code, which is still quite a lot
of other code needing its own difficult refactoring.
... so that we can use Track::SharedPointer without undefined behavior even on
tracks that don't yet belong to any TrackList.
Also fix the return type of function template TrackList::Add and remove some
casts.
... instead define new base classes in src/commands that those other
windows can inherit. The classes have nothing but a virtual destructor. This
lets CommandManager use dynamic_cast to detect the special windows.
See commits cbfde23 and 68e4bf6 which added the #include directives
cmake-proxies/expat/CMakeLists.txt seems to make more problems than it
solves. But the native one appears doing its job well on multiple
platforms. Tested on Windows, OSX, Linux and FreeBSD.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Author: Vitaliy Kirsanov <krokoziabla@yandex-team.ru>
# Date: Thu Mar 14 19:03:29 2019 +0300
#
# On branch tmp
# Your branch is up to date with 'my/tmp'.
#
# Changes to be committed:
# modified: cmake-proxies/CMakeLists.txt
# deleted: cmake-proxies/expat/CMakeLists.txt
# modified: lib-src/expat/CMakeLists.txt
#
# Changes not staged for commit:
# modified: lib-src/expat/CMakeLists.txt
#