Audacity tries to run clean/distclean on subdirectories speculatively
and ignores errors of the clean/distclean call in subdirectories.
clean/distclean should only be run for subdirectories if they contain
a Makefile.
bug #115.
But, since there's some definite preferences on which is correct, I've
left the change in, but added a simple way (SNAP_TO_NEAREST define in Snap.c)
to change it once a decision is made.
If set SNAP_TO_NEAREST back to true since that is the current (as of 2.0.5)
behavior.
Completes James' TimeConverter work
This completes the work that James started. It moves most of the non-GUI
related processing from TimeTextCtrl to James' TimeConverter class.
Other changes include:
1) TimeTextCtrl now expects the format name instead of the format string to be
passed when creating a new instance. I found that almost all cases created the
instance with a blank format string and then set the string after creation.
2) To simplify maintenance and prevent a possible discrepancy between the two,
Increase() and Decrease() were merged into a single routine.
As a result:
1) All cases where a TimeTextCtrl was being used to extract information and
not actually display a control have been changed to use TimeConverter instead.
2) All cases where TimeTextCtrl was being created with an empty format and
then immediately followed by something like this:
tt.SetFormatString(tt.GetBuiltinFormat(c->GetFormat()))
have been changed to pass the format name instead of the format string when
creating the TimeTextCtrl instance.
The are pretty darn slick. There's an integer one and a floating point
one. They support automatic range limiting (ex., you can't even type a
number outside of the range), proper number formats (ex., you can't
enter a decimal point in an integer field), you can't enter bogus
numbers like "0.3-.2", thousands separators are supported, decimal
precision may be specified and proper number formatting for string
values (or automatic conversion to int, double, float, etc.).
Must more extensive review of saving state
Try this one David. I reviewed all actions in Menus.cpp and have added state
saving where it seemed to be missing. I had no idea it would be so many (22).
And that was only reviewing Menus.cpp. I believe that will get them all since
all keyboard actions are tied to a menu or command action and they all go
through Menus.cpp. (I still have a few to review in TrackPanel.cpp though)
This is part 2...
Improve performance of selection via Selection bar
This provides a similar type of speed up when selecting with the keyboard via
the Selection toolbar.
This is part 1...
Provides some relief to the selection "hang"
This patch adds the ability for the keyboard based commands (like cursor left,
extend selection right, etc.) to know when the key has been released.
When the patch is applied the current state is saved only when the key is
released and not every time it repeats.
Here's an example of the difference it makes.
This video show the selection "hang", but also watch the CPU usage. All I'm
doing is pressing SHIFT+RIGHT ARROW.
http://youtu.be/tdMntDwGSkM
This one is the same thing bug with the patch applied. Notice that the
selection "hang" no longer occurs and look at the CPU usage!
http://youtu.be/EpXNsQ4Cky0
Make Snap To project specific
This makes the Snap To setting in the selection bar project specific. Changing
it will no longer affect other open projects.
The state is saved to audacity.cfg when the checkbox is changed. This means
that the next project window to open will start with the new value. (As it
should be).
Relocates the translation tables to the bundle
This will change the location of the translation tables from:
<root>
Audacity.app/
Languanges/<langcode>/
to:
<root>
Audacity.app/Contents/Resources/<langcode>.lproj/
This will allow the menu items to be translated as expected.
This is an older one...originally from 2011. Bug says it all, but basically it allows logging
to begin immediately upon startup for all platforms. And it has multithreading protection, so
it should now be safe to log from the non-GUI threads.