1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-20 14:47:49 +02:00

222 Commits

Author SHA1 Message Date
Paul Licameli
903b42f84a Transport Menus 2018-10-24 12:16:35 -04:00
Paul Licameli
c65fd0ebe1 View and Toolbar Menus 2018-10-24 12:16:35 -04:00
Paul Licameli
fb8b5029e5 Select and Clip Menus 2018-10-24 12:16:33 -04:00
Paul Licameli
2792faa114 Edit and Label Menus 2018-10-24 12:14:05 -04:00
Paul Licameli
4d6cad8ebc File Menus 2018-10-24 12:14:01 -04:00
Paul Licameli
280e8d9bac Some machinery to add more menu handler object classes...
...without adding linkage dependencies to AudacityProject constructor
2018-10-24 11:02:33 -04:00
Paul Licameli
b7f35609ad Clarify inheritance of MenuCommandHandler 2018-10-24 11:02:33 -04:00
Paul Licameli
8ca9edc2a4 Move some label editing functions into class LabelTrack 2018-10-24 11:02:33 -04:00
David Bailes
5494185a88 Dialog for the name of a label: positioning fixes
Problems fixed:
1. When adding a label at playback position, the position of the dialog was calculated using the position of the edit cursor
2. When adding a label at selection, the dialog could be to the left of the Audacity Window, and indeed offscreen.
2018-10-24 11:07:17 +01:00
Paul Licameli
1b05ba9a78 A compile-time constant for the number of align menu items 2018-10-20 09:21:22 -04:00
Paul Licameli
474f80912a Some functions can be static, don't need to be members of MenuBuilder 2018-10-20 09:21:22 -04:00
James Crook
e8762a478f Add 'Quick Fix' menu item to Help.
This helps with 3 of the stuck-in-a-mode problems, adding fix buttons for the issues.
2018-10-19 18:31:44 +01:00
Paul Licameli
9ad88e091c Use weak pointers to simplify MenuCreator 2018-10-18 15:43:21 -04:00
Paul Licameli
2fafe5c328 Fix Linux build 2018-10-16 17:35:15 -04:00
Paul Licameli
ce9f2e2538 Include Menus.h directly, only where needed, not via Project.h 2018-10-16 16:45:26 -04:00
James Crook
708cbe173e Consitently use On<something> iff it is a direct menu handler.
Some former 'On' functions have been renamed 'Do' since they didn't directly handle the menu item.  Some functions that used 'Context' now use 'Project'.
2018-10-16 15:15:35 +01:00
Paul Licameli
fc6570646d MenuCommandHandler is not a base class of MenuManager...
... This forces a better placement of state variables in the appropriate
classes.

In future perhaps, MenuManager should be splintered into several classes, one
for each of the main toolbar menus.
2018-10-16 13:01:22 +01:00
James Crook
26086a4142 Split MenuCommandHandler into three classes.
Menus.cpp is over 10,000 lines.  The main point of the split is to make possible a new .cpp file for MenuCreator, which is responsible for the creation of the menu bar, and which contains the near 2,000 line function MenuCreator::CreateMenusAndCommands()

The menu handlers are also (better) separated from the menu management.
2018-10-13 21:38:34 +01:00
Paul Licameli
2ee87082cb Track::GetLink and GetLinked are private, but SetLinked isn't yet 2018-10-01 13:42:34 -04:00
Paul Licameli
f276373f3c Remove GetLink(ed) in clip-moving functions 2018-10-01 13:42:29 -04:00
Paul Licameli
e17c4acd5d Rewrite sorting of tracks 2018-10-01 10:54:37 -04:00
James Crook
e7c4e8bde9 Help intellisense find MenuCommandHandlers
Once the struct definition is in the Menus.h file, intellisense can find the definitions of the functions.
2018-09-29 22:56:34 +01:00
Paul Licameli
9481587fa8 Move menu handling functions out of class AudacityProject 2018-09-29 12:10:27 -04:00
Paul Licameli
69bf7fd120 remove unused function 2018-09-04 23:04:18 -04:00
James Crook
0ea4ff1395 Add internationalization hints. 2018-08-28 16:35:06 +01:00
James Crook
71005cf125 Add File->Reset Menu Item (#ifdeffed out)
An compile-time optional menu item for checking the ResetProjectToEmpty() functionality.
2018-08-05 21:34:24 +01:00
Paul Licameli
2892dfd956 menu item, tentative shortcut Shift+D ("do-over") 2018-06-01 04:29:01 -04:00
Steve Daulton
419ecd411d Save lossless copy of project 2018-05-14 21:09:07 +01:00
David Bailes
a13e7191c4 Add an option to use a dialog to enter the name of a new label
Motivation:
1. The text boxes in the label track are not fully accessible for users of screen readers, and I don't think that they can be made to be fully accessible using the accessibility API used by wxWidgets. When such an edit box becomes the focus, this is not announced, and for NVDA users typed characters are not echoed.

2. Provides a work around for bugs 1778 (cannot type diacritics into text label), and 1804 (Windows: Labels do not accept IME (Chinese/Japanese) input).

Fix: Provide an option for a dialog for entering the name. The text box in the dialog is accessible for screen readers. On windows the text box receives wm_keydown and wm_char messages and so is a work around for bug 1804. Being a standard text box, it will presumably be a work around for bug 1778.

1. There is a new option in track behaviors: "Use dialog for the name of new label", which is off by default.

2. When using the commands "Add label at selection" and "Add label at playback position", when the dialog closes, focus is returned to the track which was the focus before the dialog opened. I think this is more convenient for users of screen readers.
2018-05-11 10:23:48 +01:00
James Crook
ce9b5bb9ee Add Select->Region->Track Start to End
Also fixed Select Track Start To cursor.
Also made two script IDs longer, so they will appear in command selection dialog.
2018-03-18 20:43:45 +00:00
James Crook
2d62013fac Add Macros Palette to Apply Macro -> submenu, 2018-03-16 18:38:06 +00:00
Paul Licameli
bb7b77cde0 Change expansion of XXO and pass more arguments to CommandManager 2018-03-15 23:29:27 -04:00
James Crook
dab9ad812f Condense SeekLeftOrRight code further. 2018-03-14 13:48:11 +00:00
Evan Short
7c4ca093f3 use enums instead of bool in seekLeftOrRight 2018-03-14 13:48:11 +00:00
Evan Short
3f29d1948d refactor SeekLeftOrRight 2018-03-14 13:48:10 +00:00
James Crook
c0dcba66dd Rename Chains to Macros.
Lots of renaming.
Did not rename the containing files (yet) since that will require makefile updates.
2018-03-03 19:17:18 +00:00
James Crook
e6a2d0f99a Add all chains into the Tools menu. 2018-03-03 12:57:35 +00:00
James Crook
8cd5d7f4fe Tools menu and EffectTypeTool
- Also add a 'Nyquist Prompt' to the Tools Menu.
- Currently it is the same as the Effects Nyquist Prompt.
- Chains moved into the Tools prompt.
2018-03-03 12:57:32 +00:00
James Crook
bcf0865c1a UnmuteAllTracks, not UnMuteAllTracks. 2018-02-24 14:20:28 -05:00
James Crook
99e18a8896 Implement ReloadPreferences for SetPreferences Command. 2018-02-24 14:20:25 -05:00
James Crook
1d9477a455 SetClip, SetLabel, SetProject added
- SetTrack also updated with more options.
2018-02-24 14:20:24 -05:00
James Crook
1c988b4e3a Automation: AudacityCommand
This is a squash of 50 commits.

This merges the capabilities of BatchCommands and Effects using a new
AudacityCommand class.  AudacityCommand provides one function to specify the
parameters, and then we leverage that one function in automation, whether by chains,
mod-script-pipe or (future) Nyquist.

- Now have AudacityCommand which is using the same mechanism as Effect
- Has configurable parameters
- Has data-entry GUI (built using shuttle GUI)
- Registers with PluginManager.
- Menu commands now provided in chains, and to python batch.
   - Tested with Zoom Toggle.

- ShuttleParams now can set, get, set defaults, validate and specify
the parameters.
- Bugfix: Don't overwrite values with defaults first time out.
- Add DefineParams function for all built-in effects.
- Extend CommandContext to carry output channels for results.

We abuse EffectsManager.  It handles both Effects and
AudacityCommands now.  In time an Effect should become a special case of
AudacityCommand and we'll split and rename the EffectManager class.

- Don't use 'default' as a parameter name.
- Massive renaming for CommandDefinitionInterface
- EffectIdentInterface becomes EffectDefinitionInterface
- EffectAutomationParameters becomes CommandAutomationParameters
- PluginType is now a bit field.

This way we can search for related types at the same time.

- Most old batch commands made into AudacityCommands.
The ones that weren't are for a reason.  They are used by mod-script-pipe
to carry commands and responses across from a non-GUI thread to the GUI
thread.

- Major tidy up of ScreenshotCommand
- Reworking of SelectCommand
- GetPreferenceCommand and SetPreferenceCommand
- GetTrackInfo and SetTrackInfo
- GetInfoCommand
- Help, Open, Save, Import and Export commands.
- Removed obsolete commands ExecMenu, GetProjectInfo and SetProjectInfo
  which are now better handled by other commands.

- JSONify "GetInfo: Commands" output, i.e. commas in the right places.

- General work on better Doxygen.
    - Lyrics -> LyricsPanel
    - Meter -> MeterPanel
- Updated Linux makefile.
- Scripting commands added into Extra menu.
- Distinct names for previously duplicated find-clipping parameters.
- Fixed longstanding error with erroneous status field number which
  previously caused an ASSERT in debug.
- Sensible formatting of numbers in Chains, 0.1 not 0.1000000000137
2018-02-24 14:20:22 -05:00
Paul Licameli
d77daa027e OnShowEffectsRack follows the unused argument convention 2018-02-22 00:17:30 -05:00
Paul Licameli
3b32d39b54 Remove wxArrays of pointers 2018-02-21 19:33:32 -05:00
Paul Licameli
9dd5b521ea Make the experimental effects rack window compilable and usable...
... though there remain crash bugs to figure out, turning it on and off
during play.
2018-02-21 19:20:54 -05:00
Paul Licameli
e57afb3729 Fix many unused argument warnings in Menus.cpp 2018-02-21 15:18:38 -05:00
Paul Licameli
f78a418df8 An alpha-only toggle command for extra dropout detection; default off 2018-01-17 20:35:56 -05:00
Paul Licameli
9777d3e880 Alert user to drop-outs during recording...
1) When the program detects this, insert zeroes into the recording to keep the
other good parts synchronized.

2) When recording stops, a message box alerts the user, and a label track is
added showing the lost parts, labelled with consecutive numbers.

3) A menu item visible in alpha builds only is added to Tools, to simulate
recording errors at random times and test the reporting feature.
2018-01-15 14:48:39 -05:00
David Bailes
6ca8cef34a Fix for select next/previous clip
Problem (at least on Windows 10): The commands no longer work properly. For a simple example, with one track selected, and the last clip selected, next clip moves to a non existant clip.
This was caused be commit baec816. In this commit, a member function was added to the struct FoundClip. Because FoundClip is no longer POD, statements such as:
AudacityProject::FoundClip result{}; no longer zero initialize the struct.

Fix: explicitly zero initialize the data members of FoundClip. I've also zero initialized the data members of FoundClipBoundary, where their are potentially similar problems, although there were no problems in my tests.
2018-01-09 11:24:57 +00:00
James Crook
0cc9c6bc3b Zoom Toggle
Added preferences for Zoom-Toggle and put into menus.
New helper functions for determining zoom scaling.

Optional EXPERIMENTAL_ZOOM_TOGGLE_BUTTON added, and Light theme updated.
Not enabled for 2.2.2.
2018-01-07 17:14:33 +00:00