1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-04 18:53:24 +01:00
Commit Graph

54 Commits

Author SHA1 Message Date
Paul Licameli
cb403954fa Use std::[tr1::]unordered_(set|map), not the wxWidgets container macros 2018-01-08 18:22:51 -05:00
Paul Licameli
cd8ec5e6a8 Try another fix for AppVeyor. 2018-01-08 16:44:59 -05:00
Paul Licameli
6967925e48 Redo CommandManager::DescribeCommandsAndShortcuts with pairs...
... Later we may make other types for the members of that pair.
2018-01-08 14:14:22 -05:00
Paul Licameli
6dead232f2 Pair CommandHandlerFinder with functor everywhere, but not used yet 2018-01-05 09:27:25 -05:00
Paul Licameli
1e3ab82a01 Effect commands store PluginID in CommandEntry parameter, not functor 2018-01-05 09:27:21 -05:00
Paul Licameli
05984e8bfb CommandEntry stores a string parameter, passed in CommandContext 2018-01-05 09:27:19 -05:00
Paul Licameli
731a2ac40c Fix format of tooltip text for toolbar buttons in RTL languages...
... No translatable strings were added, two were removed
2017-09-11 22:08:06 -04:00
Paul Licameli
812fd2adea move function 2017-07-16 23:01:12 -04:00
James Crook
a9cbebcb0f Reduce number of shortcuts provided by default.
The full list of shortcuts, the maxList, is still available, and can be set in KeyboardPreferences.
2017-06-28 23:00:02 +01:00
James Crook
adc7312954 Auto-Select off by default.
I've implemented three states for what to do if no selection:
0 - Grey out (no longer used)
1 - Auto-select
2 - Give the warning message and try again.
2017-06-09 19:40:28 +01:00
James Crook
57b200884e Bug 1639 - Left and Right arrow keys don't work in docked toolbars, if bound to some action.
This fix works by detecting whether the focus window is the TrackPanel, in which case all keys are handled normally.  If it isn't the TrackPanel, then the problematic keys do not get sent to our own CommandHandler and proceed on to wxWidgets.

A problem that then follows is that the menu accelerators (which normally don't get a look in) may then convert the event to a menu event and stop it going any further.So it does not get to the focus window.

The fix/workaround for that is to NOT provide accelerators for up, down, left and right arrow in the menus.  I'd much rather be able to turn off those accelerators completely, yet still show them to users as hints.
2017-05-01 19:04:49 +01:00
James Crook
031f8413f4 Organise the occult commands in the Preferences Key View. 2017-04-21 15:50:25 +01:00
Paul Licameli
5036583549 Fewer inclusions of AudacityApp.h 2017-03-17 17:52:24 -04:00
Paul Licameli
81285ee0c1 More const and override 2017-03-17 17:52:20 -04:00
Paul Licameli
09a3854256 Use unique_ptr more properly in the fix for building mod-nyq-bench 2016-10-02 09:46:48 -04:00
Leland Lucius
2ab0c13101 Fix build of Nyquist Workbench 2016-10-01 14:05:53 -05:00
Paul Licameli
41efaeeef0 Fix Windows build 2016-08-14 09:35:04 -04:00
Paul Licameli
b6241c46d3 Remove a few more naked new in CommandManager.cpp 2016-08-13 10:37:52 -04:00
Paul Licameli
57afa1399e Remove some naked new amd delete in: commands 2016-08-08 07:53:29 -04:00
Paul Licameli
014d5ab93c Type safety in the use of command flags, and make enum wide, allowing more bits 2016-05-05 20:02:13 -04:00
Paul Licameli
367b2c1011 Move command functors to a new header file, and generalize with templates...
... so that member functions of other than AudacityProject may be called.

Will use this new generality soon for scrubbing menu items.
2016-04-23 02:05:36 -04:00
Paul Licameli
ce95bce85a Bug991: Pause button and command should be disabled during scrubbing...
... and they will be as soon as ctrl-mouse down.
2016-04-18 21:49:27 -04:00
Paul Licameli
de75a00c10 Define movable_ptr and make_movable, use __AUDACITY_OLD_STD__ in fewer places 2016-03-25 20:27:25 -04:00
Leland Lucius
9dc9348127 Fixes bug #1344 (mac build)
In addition, the Xcode project can now build against the 10.6
or 10.7 SDKs.  All that is needed is to change the SDK version
and the other settings will change automatically.
2016-03-07 00:29:26 -06:00
Paul Licameli
057ec565de Fix #includes 2016-03-04 14:32:24 -05:00
Paul Licameli
0c9deb398c Fix mac build. No standard headers in Audacity.h. 2016-03-01 12:22:37 -05:00
Paul Licameli
990080ae7d Replace virtual with override wherever possible; eliminate needless virtual...
... for functions in final classes.

override is like const -- it's not necessary, but it helps the compiler to
catch mistakes.

There may be some overriding functions not explicitly declared virtual and I did
not identify such cases, in which I might also add override.
2016-02-26 12:35:38 -05:00
Paul Licameli
7824e94030 Harmlessly qualify classes as final (or explicitly comment not)...
... 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.
2016-02-24 20:58:30 -05:00
Paul Licameli
0c182c3c0b Shrink the command functor objects by using more subclasses...
... Let virtual function dispatch do the work, don't write our own dispatch!
2016-02-24 15:17:06 -05:00
Paul Licameli
923a6ce4af Sweep unnecessary wxString copies: commands 2016-02-23 01:40:21 -05:00
Paul Licameli
cf3daebff6 Reviewed allocations of wxMenuBar items. 2016-02-20 20:23:54 -05:00
Paul Licameli
00db530c9b Don't eliminate indirection for CommandListEntry. Explain why. Use unique_ptr 2016-02-19 10:49:50 -05:00
Paul Licameli
d9c2ff6dc2 fix compilation 2016-02-19 01:39:44 -05:00
Paul Licameli
e0c88b1e53 Remove needless indirection for more little structures, in CommandManager...
... Also use std::shared_ptr for functors to simplify resource management
2016-02-18 20:19:27 -05:00
Paul Licameli
7c4c45a0d5 "new"->"NEW" in comments, easier to find remaining naked operator new 2016-02-14 18:52:41 -05:00
Paul Licameli
ca9928d533 Add missing critical inclusions of Experimental.h to other headers 2015-08-31 17:21:50 -04:00
Leland Lucius
7757297d82 Fix OSX special menu items (About, Preferences, Quit)
And convert a few more command manager arguments to const
2015-08-16 06:18:41 -05:00
Leland Lucius
e119ffcd78 Do NOT generate keyup, use the system one
David has been trying to beat it into my thick skull that the
command manager should use the system created key up event rather
than generating it, but I just wasn't getting it.

Actually, the documentation for the OSX method I needed to use
to get at the key event before the menus did said that a key up
event couldn't be captured on 10.6 (the oldest we support).  But,
testing showed that it can be, so I was able to do what David was
suggesting.
2015-08-12 18:05:50 -05:00
Leland Lucius
04d026e5bc Further fixes for keyboard handling
I'm pretty sure this gets all of the currently known issues, including
the SHIFT+M not working, the Play buttons responding to SHIFT and CTRL,
the ESC key canceling drags, and I'm pretty sure it even fixes
but #784.
2015-08-10 13:15:15 -05:00
Leland Lucius
2a0f9da32d Fix keyboard handling in Lyrics and MixerBoard windows
Apparently, this hasn't worked for a while.  At least back to 2.0.6
anyway.
2015-08-09 18:23:32 -05:00
Leland Lucius
f36fe29f96 Fixes for bugs 1122 and 1113
Several other issues were also fixed (hopefully ;-)).

This is a major change to accelerator handling and keyboard
capturing.  Menu shortcuts, non-menu commands, label editing,
navigation, and basically anything else were you might use
the keyboard should be thoroughly tested.
2015-08-08 00:01:24 -05:00
Leland Lucius
4cd7757cf4 Batting 1000 tonight...make sure navigation works on Windows. 2015-08-04 22:41:52 -05:00
Leland Lucius
5bdfcff97d Menu shortcut hiding has been removed
It had been causing problems in Unity for a while now and they
were missing on OSX as well in wx3.  So, the old menu Open/Close
method of hiding has been removed and replaced with an event
filter/monitor which looks for wxEVT_CHAR_HOOK events to pass
key events to the handler that has the keyboard captured.
2015-07-28 14:35:09 -05:00
lllucius
4b756ce7d6 Give the keyboard user the ability to move among all modeless windows
With realtime preview, the keyboard user will need this to get
back and forth between the effect and the project window.  Actualy,
the "problem" existed before this since the keyboard user couldn't
switch between project and Plot Spectrum windows.

The normal flags-based keyboard handling would not work since it
depends on the state of the project and requires a project window
to have the current focus.

In this new case, a modeless dialog may actually have the focus and
using the "switch window" key combo may happen in nearly any mode, like
while playing.

So, I "created" the concept of "meta" commands...ones that do not have
the restrictions mentioned above.  The should be used sparingly and
you must be careful about what happens within their handlers.
2014-11-26 18:17:38 +00:00
lllucius
1eeb4d979a The fabled realtime effects...
I've made it where you can enable and disable via experimentals:

EXPERIMENTAL_REALTIME_EFFECTS
EXPERIMENTAL_EFFECTS_RACK

You will notice that, as of now, the only effects currently set up for
realtime are VSTs.  Now that this is in, I will start converting the
rest.

As I start to convert the effects, the astute of you may notice that
they no longer directly access tracks or any "internal" Audacity
objects.  This isolates the effects from changes in Audacity and makes
it much easier to add new ones.

Anyway, all 3 platforms can now display VST effects in graphical mode.
Yes, that means Linux too.  There are quite a few VSTs for Linux if
you search for them.

The so-called "rack" definitely needs some discussion, work, and attention
from someone much better at graphics than me.  I'm not really sure it should
stay in as-is.  I'd originally planned for it to be simply a utility window
where you can store your (preconfigured) favorite effects.  It should probably
revert back to that idea.

You may notice that this DOES include the API work I did.  The realtime effects
were too tied to it and I didn't want to redo the whole thing.  As I mentioned
elsewhere, the API stuff may or may not be very future proof.

So, let the critter complaints commence.  I absolute KNOW there will be some.
(I know I'll be hearing from the Linux peeps pretty darn quickly.  ;-))
2014-10-26 03:24:10 +00:00
lllucius
03f5088b6a Bug 406 - Label creation/other non-dialogue editing and keyboard selection hang on long projects
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
2013-10-23 18:01:14 +00:00
lllucius
b0e65b57c2 Adding EXPERIMENTAL_KEY_VIEW that provides a new keyboard binding view. 2013-10-01 06:00:13 +00:00
lllucius
ec8e203676 One possible idea for improving shortcuts list. This is NOT final.
Just want to get opinions.
2013-09-26 08:18:37 +00:00
martynshaw99
4ce2643d5f Remove the
// Indentation settings for Vim and Emacs
etc. lines from all files, as Campbell's patch (except for other changes to Languages.cpp)
2013-09-24 00:14:37 +00:00
james.k.crook@gmail.com
5125ee20d3 Removed extra prefix CommandManager:: which is OK in MSVC but not gcc. 2012-03-30 14:55:16 +00:00