1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-21 08:27:13 +01:00
Commit Graph

57 Commits

Author SHA1 Message Date
Paul Licameli
4d09705a73 Change XO to XXO in many more places, with no effects at all...
... because the two macros have the same expansion, and are both checked for
in the --keyword arguments passed to msgfmt by locale/update_po_files.sh.

This commit makes ONLY such changes, and comments in Internat.h.  It is big
but quite harmless.

The intention is to introduce a type distinction in a later release, by defining
XXO differently.  XXO is used where & characters in strings (for hotkeys of menu
items or control prompts) are permitted, XO where not.
2020-05-22 13:07:50 -04:00
Paul Licameli
06b2831d9b Some compilation fixes for EXPERIMENTAL_DA 2020-03-10 16:37:19 -04:00
Paul Licameli
446ee8ef6e Separate subclass ToolbarMenuVisitor from MenuVisitor 2020-02-04 12:15:24 -05:00
Paul Licameli
db224895b0 Bug2302: Don't make separators at bottoms of menus on Win & Linux...
... Fix it by demoting the logic for separators from the menu tree diagnostic
into the common MenuVisitor class, then reusing that.
2020-02-04 00:41:31 -05:00
Paul Licameli
4d43967add Restore commit c1d129ec98 2020-01-31 23:51:12 -05:00
Paul Licameli
2c25a37994 Revert to a465ce0046 2020-01-31 22:34:25 -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
a465ce0046 Naming of many menu sections, so they can be attachment sites 2020-01-31 21:12:36 -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
Paul Licameli
c7fac7ae09 Use class MenuSection in visitors 2020-01-30 11:50:48 -05:00
Paul Licameli
9639ba84f4 Reimplement commit 512c27d, fixing menus & shortcut keys on Windows 2020-01-29 13:39:19 -05:00
Paul Licameli
9093364b8c Fix other problems since commit f6e5696...
... Problem with static initialization order of ReservedCommandFlags, caused
wrong enablement of menu items (at least on Mac), such as Plot Spectrum or
Contrast enabled when there was no selection
2020-01-28 17:49:07 -05:00
Paul Licameli
103a6050a0 Registry::Visit doesn't require an AudacityProject 2020-01-26 16:22:49 -05:00
Paul Licameli
27ffd9c8fb Implement alpha-only diagnostic command to dump the menu tree...
... This demonstrates the possibility of visitation of the menu tree specifying
other actions.

This dumps the internal path identifiers of the registry -- not the user visible
names.

Note that lines don't exactly correspond with menu items, where there are
command groups such as Align, or special steps such as population of the
recent files sub-menu.

Perhaps this should be adapted as another case of the GetInfo macro command.
2020-01-25 15:10:02 -05:00
Paul Licameli
393a098b69 Store a string identifier in each menu item...
... which is not yet used for anything.

It could be used to describe textual paths for attaching plug-in menu items.

Strings are only path local, not necessarily globally unique, and may be
left empty for separators and for groups that should be transparent to
path identification.

It may also be empty for certain sub-menus, such as those that group effects
according to the changeable criteria in Preferences.
2020-01-24 18:05:56 -05:00
Paul Licameli
f6e5696146 Most functions defining menus compute once and cache the result...
... Except a few where project or plugin manager state or preferences are
needed to compute the items, so evaluation is delayed, often inside lambdas

Comment "Delayed evaluation" wherever there are exceptions
2020-01-24 18:05:56 -05:00
Paul Licameli
512c27d422 Simplify the FN macros in src/menus/*.cpp...
... Eliminate repetitious passing of the finder function into each of the
calls to Command and CommandGroup.
2020-01-24 18:05:56 -05:00
Paul Licameli
f0b75832b4 Remove uses of GetActiveProject in some dialogs 2020-01-04 13:55:34 -05:00
Paul Licameli
aa39f9ade2 Rewrite FileNames::SelectFile using FileTypes...
... And more uniformity in the descriptions of file types used in more than
one place

Also fixes missing translations in VSTEffect.cpp
2019-12-29 15:35:04 -05:00
Paul Licameli
13417b6d5b ShuttleGui::AddFixedText takes TranslatableString 2019-12-23 19:02:19 -05:00
Paul Licameli
b404eb7800 TranslatableString for static text box captions 2019-12-23 18:52:37 -05:00
Paul Licameli
1944ac2040 TranslatableString for labels of ShuttleGui buttons 2019-12-23 15:35:48 -05:00
Paul Licameli
dc39f22442 AudacityMessageBox takes TranslatableString message and caption 2019-12-20 21:32:50 -05:00
Paul Licameli
ae42397d64 FileNames::SelectFile takes TranslatableString for message 2019-12-20 13:40:20 -05:00
Paul Licameli
53ee9c9800 TranslatableString for titles, names, labels of wxDialogWrappers...
... Found one missed translation in CommandTargets.cpp
2019-12-16 10:58:05 -05:00
Paul Licameli
a8de4d9e50 Construct MenuItem with untranslated label, so it can be static...
... and other storage of TranslatableString instead of naked wxString, for
management of menu items, in CommandManager
2019-12-12 15:49:00 -05:00
Paul Licameli
70ec69fa3d Pass untranslated command labels to CommandManager...
... and deduce whether to exclude from macros inside NewIdentifier, simplifying
argument lists further

Also fix the localization of "..." added to names by PluginMenus.cpp
2019-12-12 15:15:59 -05:00
Paul Licameli
1bfbfb9640 ShuttleGui::Style analogous to other functions 2019-12-02 17:23:34 -05:00
Paul Licameli
d6317ae6af Merge LinkingHtmlWindow into HelpSystem...
... they cooperated closely in a cycle of two not worth breaking
2019-07-10 10:34:04 -04:00
Paul Licameli
b6077fd3cd Lower DoReloadPreferences into PrefsDialog.cpp 2019-06-25 00:14:53 -04:00
Paul Licameli
f8c40dc8e7 Move DoHelpWelcome out of HelpMenus 2019-06-25 00:14:52 -04:00
Paul Licameli
c0adb35839 Command flag functions out of Menus.cpp, reducing its dependencies...
... Mostly into CommonCommandFlags.cpp, but some elsewhere, to avoid giving
that new file problematic dependencies on LabelTrack, ControlToolBar, and
EffectManager.

Note that CutCopyAvailableFlag is critically ordered, for message purposes,
only with AudioIONotAvailableFlag, the only flag with a message that it combines
with in menu item definitions.

The dependency on LabelTrack.cpp might not be a bad one later, if the track and
its view can be separated, and that would allow CutCopyAvailableFlag to be
put with the others.  But much other work on LabelTrack must happen first.
2019-06-16 01:21:05 -04:00
Paul Licameli
42a4f55ffe Prepare to split AudioIOBase from AudioIO...
... New files, but (almost) empty; don't use the global variable gAudioIO,
but use one of two accessor function names (which are the same function for
now).

AudioIOBase will have fewer dependencies than AudioIO -- in particular, no
dependency on tracks.

It won't include StartStream.  It will contain functions to query the
present state of streams, and device capabilities.
2019-06-10 20:48:38 -04:00
Paul Licameli
997bf9781d New files for ProjectSelectionManager 2019-06-09 12:10:49 -04:00
Paul Licameli
186f2f6ac7 Split class ProjectSelectionManager from ProjectManager...
... handling the callbacks from the selection toolbars.

Next ProjectFileManager will be split out of ProjectManager, and
ProjectSelectionManager will be used by it during file opening, so separating
files for it avoids a cycle.
2019-06-09 12:10:48 -04:00
Paul Licameli
4f940c855d New files for ProjectWindow 2019-06-03 01:43:26 -04:00
Paul Licameli
fee5582826 New files for ProjectManager 2019-06-03 01:21:12 -04:00
Paul Licameli
4274d44ab7 New attached structure ProjectManager handles project lifetime...
... that is, a factory function, open, close, import, undo/redo/rollback.

Also the callbacks from AudioIO, which need to invoke undo history push when
recording stops.

It is meant as a high-level class using several of the other things attached
to the project, while AudacityProject will be a low level class acting mostly
as just the container of the attached structures.
2019-06-03 01:18:12 -04:00
Paul Licameli
82663892dc Accessors to get the project window...
... as a preparation for splitting up class AudacityProject.

Use ProjectWindow as an alias for AudacityProject, and fetch it from the
project with a static member function, where certain of its services are used;
pretending they are not the same class.

Use global accessor functions to get wxFrame from the project where only
wxFrame's member functions are needed, so there will be less dependency on
ProjectWindow when it becomes a distinct class.
2019-05-28 23:18:13 -04:00
Paul Licameli
c2d57d9e9b Rearrange the setting of project snap-to...
... Just one low-level function to simply set the variable, and one
high-level function that also pushes notifications.  The danger of infinite
recursion in the toolbar code, as in the previous commit, doesn't exist here.
2019-05-28 19:26:13 -04:00
Paul Licameli
f86403378b Move AudacityMessageBox to its own files...
... breaking cycles among low-level files introduced by 273ba9f
2019-05-20 14:48:36 -04:00
Paul Licameli
d68db39b5c HelpSystem.cpp has fewer dependencies...
... There was no reason to store the help location preferences as per-project
state.  Also move the dialog for quick fixes near its only use in
HelpMenus.cpp.

This takes 22 files out of the big strongly connected component, notably
the much used lower level utilities, ErrorDialog and AudacityException.

HelpSystem itself is still in a small cycle with LinkingHtmlWindow.
2019-05-18 20:29:25 -04:00
Paul Licameli
56b1d531b2 HelpText.cpp has fewer dependencies...
... freeing it to a low level and AboutDialog.cpp to a high level, by moving
functions from the latter into the former
2019-05-18 20:29:25 -04:00
Paul Licameli
b04387a21d Move AudacityApp::GenerateCrashReport to its own files 2019-05-17 16:29:31 -04:00
Paul Licameli
8da6529329 Remove AudacityApp::GetLogger() & HelpActions::DoShowLog() 2019-05-17 16:29:04 -04:00
Paul Licameli
e4a8d6c3fc Don't call AudacityApp::OnMenuAbout directly from HelpMenus.cpp 2019-05-17 16:29:04 -04:00
Paul Licameli
544d9aa580 Don't use AudacityApp where you only need wxApp...
... I want to have fewer inclusions of AudacityApp.h.  More work on removing
them will happen in the next version.
2019-04-26 11:54:28 -04:00
Paul Licameli
44d664c7bb Remove ErrorDialog.h from .h files (one function moves out of line) 2019-03-31 15:39:55 -04:00
Paul Licameli
e2c5444c1d Move class HtmlTextHelpDialog out of header 2019-03-31 14:58:33 -04:00