1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 07:39:42 +02:00

11372 Commits

Author SHA1 Message Date
Leland Lucius
6217351a12 Updates the cmake build system
It's still has some work, but it successfully builds on
all 3 main platforms.  Some of the outstanding items
include:

   Install target testing (mostly important for Linux)
   CMakeList clean up and comments
   Debug and Release build verification
   Audit of compile/link options
   Need a Mac signed and notarized build
   (and probably more)
2020-02-03 00:39:43 -06:00
Paul Licameli
3b77af5dfc Remove TranslatableStringArray.h 2020-02-02 18:02:32 -05:00
Paul Licameli
3a764279ba Some fixes for PopupMenuTable 2020-02-02 18:02:07 -05:00
Paul Licameli
6e57428e47 PopupMenuTable does not need TranslatableArray...
... because the strings in it are TranslatableString, not translated
2020-02-02 17:32:23 -05:00
Paul Licameli
48b5988c7d Be sure PopupMenuTable::DestroyMenu() gets called...
... though it didn't matter yet for any of the overrides
2020-02-02 17:16:11 -05:00
Paul Licameli
646afe9559 comments 2020-02-02 17:16:11 -05:00
Paul Licameli
c293a8fc18 Remove unnecessary #include from Menus.cpp 2020-02-02 17:10:36 -05:00
SteveDaulton
3e94dfdca0 bug 2300: Limit number of clips in *track* clips property
Nyquist has a limit (less than 2000) for the number of arguments
which may be exceeded when creating the *track* clips property.
In the event that there are more than 1000 clips in a track,
Audacity will now only add the first 1000 clips to the *track* property
and add NIL as the 1001th.
2020-02-02 21:24:44 +00:00
Leland Lucius
65c174015c Change the deployment target back to 10.9
temporarily
2020-02-02 12:35:53 -06:00
Leland Lucius
d5b1cbc151 Must always create the Info.plist.h header 2020-02-02 12:21:38 -06:00
Paul Licameli
675f59b21f Alternative Windows build fix, should fix the run too 2020-02-02 09:08:47 -05:00
Paul Licameli
79a4c519c0 Fix Windows build 2020-02-02 08:27:51 -05:00
Leland Lucius
080b746b66 Revert to using a wrapper when starting Audacity
But, this time use a "C" wrapper as posited by Paul in:

   https://bugzilla.audacityteam.org/show_bug.cgi?id=543#c6

Doing so should bypass the execve()/decontruction issue and
still allow entitlements to work.

This also sets the build system to Legacy so that a "clean"
action will not produce:

   error: Could not delete '...' because it was not created by
          the build system.

And, I'm not sure why the deployment target was 10.9, but it
should have been 10.7.
2020-02-02 02:46:53 -06:00
Paul Licameli
eb86a1eab7 Fix assertion in OnFullScreen command 2020-02-01 13:00:02 -05:00
Paul Licameli
7f4d61257a Command manager stores checkmark predicates...
... and we use them to simplify (the misnamed) MenuManager::ModifyToolbarMenus.

It looked wrong that statically constructed menu descriptions should ever hold
constant boolean checkmark values, rather than functions to re-eveluate the
checkmark state as needed.
2020-02-01 12:53:55 -05:00
Paul Licameli
c3bbdbc50f fix build 2020-02-01 11:44:38 -05:00
Paul Licameli
b7a9e55fa9 New toolbar id at the end of the enumeration, to be safe...
... in case toolbar ids persisted anywhere
2020-02-01 11:30:26 -05:00
Paul Licameli
93c5bfd86d Remove inappropriate uses of macro _ from commit 9bce51a 2020-02-01 09:45:15 -05:00
Paul Licameli
c96fd0d2be Register preference pages, importers, exporters without sequence nos. 2020-02-01 09:21:39 -05:00
Paul Licameli
5165353dbe Reimplement export plugin registation without sequence numbers 2020-02-01 08:56:05 -05:00
Paul Licameli
b1b8b034c8 Reimplement import plugin registation without sequence numbers 2020-02-01 08:39:52 -05:00
Paul Licameli
a333b7d35a Redefine PrefsPanel::Registration with new Registry system...
... preserving the existing ordering of pages with a combination of
preferences and ordering hints
2020-02-01 07:13:03 -05:00
Paul Licameli
2ee8a6440a Initialize ordering preference for Preference dialog pages 2020-02-01 07:13:03 -05:00
Paul Licameli
1664463444 Define registry item class and visitor for Preference pages 2020-02-01 07:13:03 -05:00
Paul Licameli
a729dfec3b Reusable preference-populating code for other registries than Menus 2020-02-01 07:11:38 -05:00
Paul Licameli
98e6a0e339 More fixes for visitation of registry 2020-02-01 04:22:27 -05:00
Paul Licameli
4d43967add Restore commit c1d129ec9863a877cdd678695fff54a5dab5a191 2020-01-31 23:51:12 -05:00
Paul Licameli
229e2673c7 Fix errors in d233cbd 2020-01-31 23:47:42 -05:00
Paul Licameli
2c25a37994 Revert to a465ce0046e1726b3d2d926091b91714e154a91e 2020-01-31 22:34:25 -05:00
Paul Licameli
c1d129ec98 Use menu item registration system to sever many link dependencies...
... Many of these dependencies were hidden ones, not reflected in the diagrams
generated by scripts/graph.pl, because they relied on extern declarations and so
not indicated in header files.
2020-01-31 21:23:38 -05:00
Paul Licameli
1061c98b9f ViewMenus not link dependent on ToolbarMenus 2020-01-31 21:22:47 -05:00
Paul Licameli
ffe101f9a2 TransportMenus not link dependent on SelectMenus or Scrubbing 2020-01-31 21:22:47 -05:00
Paul Licameli
09356f7fe7 EditMenus not link dependent on LabelMenus 2020-01-31 21:22:47 -05:00
Paul Licameli
02c5557054 Remove link dependencies on ClipMenus.cpp, register its menu items 2020-01-31 21:22:47 -05:00
Paul Licameli
6225043ff3 ExtraMenus.cpp not link dependent on external sub-menu definitions...
... They use the registry
2020-01-31 21:22:44 -05:00
Paul Licameli
a465ce0046 Naming of many menu sections, so they can be attachment sites 2020-01-31 21:12:36 -05:00
Paul Licameli
de08d9ff86 Menus.cpp no longer link dependent on top level menu definitions...
... They all use the registry.

(This link dependency was not shown in diagrams generated by scripts/graph.pl,
because it was not reflected in Menus.h but was done using extern declarations
within Menus.cpp.  That was a cheat, but it let all the other dependencies
be exposed in the graph and mitigated first.)
2020-01-31 21:12:36 -05:00
Paul Licameli
d9d3f95570 Several nonmodal top level window tools register their menu items...
... removing link dependencies on them from src/menus, so they are now suitable
for moving out into modules.

They are:
Mixer Board
Karaoke (also called Lyrics)
History
Contrast
Plot Spectrum

Their header files are now no longer included anywhere but in their own
implementation files!
2020-01-31 21:12:36 -05:00
Paul Licameli
d233cbd881 Improvements and comments in visitation and merging of registry items 2020-01-31 21:11:58 -05:00
Leland Lucius
6da68f2035 Remove obsolete config*.h files
These are ancient and "configunix.h" was being pulled in
via Types.h.  Nothing major, but they were generated for
a 32-bit system and "may" cause problems when used on
64-bit systems.

(That's unlikely though since they haven't all this time.)
2020-01-31 09:29:15 -06:00
David Bailes
46a6d21585 Bug 2299 - Keyboard preferences: names of commands contain &
Caused by this commit: 0021a98091a70b : Remove another unnecessary stripping of accelerators from labels

Unfortunately, the stripping was necessary.

Fix:
Reinstate stripping.

Derives from tag: Audacity-2.3.3 + 94 commits
2020-01-31 15:11:18 +00:00
Binary Wisdom
9bce51a60e Bug 624: Keyboard Prefs: importing XML file can cause duplicated bindings
The fix follows the agreed behavior (see emails from around October 25) . For the sake of convenience see the agreed behavior below:

_"- first, check the xml-file. If it contains illegal shortcut duplicates, refuse importing. Shortcut duplicates are LEGAL if default settings also have those operations with the matching shortcuts. A refusal to import shortcuts must happen with the message that warns the user of a failure and explains the reason.

if the xml-file looks ok, import the shortcuts. As discussed before, because different versions of Audacity might have different sets of operations with shortcuts, it is still possible to end up with illegal shortcut duplicates for a perfectly correct xml-file. This situation must be monitored. In case of any conflicts, the shortcut from the xml-file is used, and the pre-existing shortcut is wiped clean.
When telling the user the commands which have had their shortcut removed, I think it would be useful to tell the user the name of the command, the shortcut, and and name of the command which still has that shortcut."_

I didn't find a clean way to intercept the imported content before it makes its way to the shortcut preferences, so I had to jump through some hoops right in KeyConfigPrefs::OnImport().
In general, I tried to keep changes minimal.
2020-01-31 11:32:23 +00:00
Paul Licameli
f949a05952 Registration of plugin menu items; redo null & Nyquist modules...
... without ugly fragile hacks making assumptions about number and sequence of
other menu items.  Instead, specify where new items go with textual paths.
2020-01-30 15:16:28 -05:00
Paul Licameli
56cd24a062 Rewrite insertion of menu items by null and Nyquist modules...
... using the new registration system, and without the fragile hacks making
assumptions about the positions of menus within the menu bar.
2020-01-30 15:09:30 -05:00
Paul Licameli
baada94567 Define AttachedItem registration struct for menu items 2020-01-30 15:04:08 -05:00
Paul Licameli
c5495b3300 Ordering hints for insertion of newly discovered registry items...
... Now, a first-time registered item can specify that it go at the start or end
of the nodes under its parent, or before or after some named node.

Still it might happen that multiple first-time registrations might use the same
ordering hint, and so we must still sort by component name to resolve that
collision arbitrarily.
2020-01-30 14:46:35 -05:00
Paul Licameli
564a3ac708 Define the registry merging procedure...
... before we populate the registry.

This could apply to menu items, or more generally to other registries.

A registry is a tree of items identified by path names. Various code,
that need not coordinate, can specify items to attach to the tree, and the
merging procedure collects them into a single tree that can be visited.

Pathnames imply only an unordered tree.  Some visitation ordering must be
imposed on the nodes, and can be remembered in preferences for stability between
runs, independently of accidents of the unspecified sequence of initialization
of file-scope static objects in the various plug-ins.  It can be arbitrary --
not constrained to some fixed intrinsic criterion like alphabetical order.

Merging consults the preferences, and also updates them if previously unknown
items are found and inserted.  For now, such unknowns just go to the end of
the sequence of siblings, sorted by their path component names.
2020-01-30 14:18:26 -05:00
Paul Licameli
9d7f151cf6 No more Seperator items in menu descriptions...
... Instead, new grouping items describe the menu sub-sections, and names might
be attached to them, though not yet.
2020-01-30 12:15:05 -05:00
Paul Licameli
6b551d10c5 Fix indentations 2020-01-30 12:14:22 -05:00
Paul Licameli
a84da3dee1 Remove Separator items from menu descriptions; use Section(...) 2020-01-30 12:12:48 -05:00