Commit Graph

220 Commits

Author SHA1 Message Date
Paul Licameli d5a22dfb15 Eliminate last use of PluginManager by ModuleManager, breaking cycle 2021-06-30 21:15:20 -04:00
Paul Licameli 02b61532fe ModuleManager doesn't use PluginManager to initialize providers 2021-06-30 21:15:20 -04:00
Paul Licameli 2e7f7114d2 ModuleManager defines the ID strings for modules, not PluginManager 2021-06-30 21:15:19 -04:00
Paul Licameli 50b384adae Separate files for PluginRegistrationDialog...
... so that PluginManager can avoid using GUI
2021-06-30 21:15:19 -04:00
Paul Licameli 710ec976ff Move class PluginRegistrationDialog to a header file 2021-06-30 21:15:19 -04:00
Paul Licameli 04a0292d1d Simplify iterations over PluginManager; remove a friend 2021-06-30 21:15:19 -04:00
Paul Licameli 731ab8d554 Simplify repeated lookups and iterations in PluginManager 2021-06-30 21:15:19 -04:00
Paul Licameli 8fda526577 Simplify memory management in PluginManager 2021-06-30 21:15:19 -04:00
Paul Licameli 77dab158c3 Make Audacity build in C++17 ...
... Fixing many conditional operators with explicit construction of wxString
instead of simple string literals;

And fixing allocation of more strictly aligned structures on Mac, without need
for 10.14 as the minimum SDK, by means of some class-specific operators new
and delete.
2021-06-18 21:44:55 +03:00
Paul Licameli c35f7d35cc Startup without pluginregistry.cfg should not violate assertion 2021-05-27 11:07:39 -04:00
Paul Licameli d7f643768c Bugs 2778, 2339, Issue 887: Translation of some effect names...
... Those for which the internal name and the user-visible English names differ,
or that needed disambiguating context for i18n,  were always shown as English
in the menus.

Silence and Filter Curve were the only two examples. There are others.
2021-05-14 14:27:23 -04:00
Paul Licameli cf948ece52 Eliminate duplications of string literal "Nyquist Prompt" 2021-05-14 13:08:02 -04:00
Paul Licameli c5ebc396eb Audacity.h has shrunk to nothing, now remove it! 2021-05-10 00:05:23 -05:00
Paul Licameli e653b4aaf8 Eliminate Experimental.h, configure compile options instead...
... This makes it impossible to forget to include the EXPERIMENTAL definitions
(such as when cutting and pasting code) and so get unintended quiet changes of
behavior.

The EXPERIMENTAL flags are now specified instead in new file Experimental.cmake
2021-04-27 12:40:07 -04:00
James Crook f5317775a0 Bug 2672 - Plug-ins listed in reverse alphabetic order in Plug-ins Manager 2021-04-02 19:49:07 +01:00
Leland Lucius 8e93cac1be Bug 2652 - User is not warned if they launch Audacity with a locked pluginsettings.cfg file 2021-01-31 12:49:43 -06:00
Paul Licameli c853450ce0 Hide two-phase construction of AudacityFileConfig in factory function 2021-01-31 11:22:48 -05:00
Paul Licameli 2c5c0f9dfd Class AudacityPrefs renamed, moved, reused in PluginManager...
... And construction of the main instance is hoisted into AudacityApp
2021-01-31 11:11:03 -05:00
Leland Lucius 21296b0cf1 New wrapper for wxFileConfig to fix several bugs
Bug 2135 - Audacity crashes if launched with a locked pluginregistry.cfg file
Bug 2651 - If pluginregistry.cfg gets locked while Audacity is active the Plug-in Manager is blocked - with no help
Bug 2650 - Virgin launch fails with no pluginregistry.cfg file created
Bug 1264 - Writing to locked audacity.cfg not reported to user
Bug 2649 - Launching Audacity with a locked audacity.cfg file gives not one but three error messages - and no help
Bug 2652 - User is not warned if they launch Audacity with a locked pluginsettings.cfg file
2021-01-31 04:24:35 -06:00
Leland Lucius 9e5ec6d9cc Bug 2135 - Audacity crashes if launched with a locked pluginregistry.cfg file 2021-01-28 15:05:10 -06:00
Paul Licameli 9360359e9d
Module manager (#549)
* Eliminate ModuleManagerInterface...

... It was there only to provide RegisterModule(), but that was not used
anywhere.  So simplify.

* Remove nested #include of ModuleInterface.h
2020-05-29 10:48:52 -05:00
Paul Licameli 4ff0a9d74e Can build for windows without precompiled headers...
... Requires some more wx header inclusions, a renaming of CopyFile (to avoid
colliding with a certain macro changing it to CopyFileW), and an explicit
deletion of a copy constructor and assignment (to avoid generation of
std::vector members for an incomplete type)
2020-05-27 17:36:25 -04:00
Paul Licameli 67ce74d5ef Some example uses of XC and XPC...
... Really needed only for "White" but harmless in the other uses.  Also more
i18n-hint comments.

There may be need to disambiguate other strings.
2020-05-24 14:55:08 -04:00
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 f8a070dde7 Rename macro wxPLURAL as XP (brief, and eliminates mention of "wx") 2020-05-22 12:48:49 -04:00
Paul Licameli 78c2c09ba2 Effect management dialog is sorted by name when it opens 2020-05-22 09:30:00 -04:00
Leland Lucius 6c9cdb4bc1 Plug-in list doesn't display properly on Mac
After sorting, the list doesn't completely update until you click
within it.  It this completely refreshes.  This fixes it...
2020-03-06 23:13:50 -06:00
Paul Licameli 96d8328aa3 fix a comment 2020-02-20 07:19:27 -05:00
Leland Lucius 85219e371c Fix minor issues when building for 64-bit Windows 2020-02-12 13:07:55 -06:00
Paul Licameli d1637c22c0 TranslatableString for explicit prompts and units in ShuttleGui 2019-12-23 19:22:03 -05:00
Paul Licameli c23451af9d TranslatableString for prompts of radio buttons 2019-12-23 19:02:21 -05:00
Paul Licameli 455d3185a8 TranslatableString for list control column headers, menus 2019-12-23 19:02:21 -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 1537930195 DiscoverPluginsAtPath reports error as TranslatableString 2019-12-20 22:06:18 -05:00
Paul Licameli dc39f22442 AudacityMessageBox takes TranslatableString message and caption 2019-12-20 21:32:50 -05:00
Paul Licameli e3ea93a624 Define and use function Verbatim...
... in cases of "TranslatableString" that are not really translated.

This makes it easier to scan the code for such unusual constructions of
TranslatableString, distinct from mere mentions of the TranslatableString type.
2019-12-19 22:49:23 -05:00
Paul Licameli 092033b284 Just one accessor for the name of a ComponentInterface...
... Translate it explicitly where needed.
2019-12-19 11:47:37 -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 a3bda5be97 Fix dangling reference bug 2019-12-14 18:53:05 -05:00
Paul Licameli 9a609fe1fe TranslatableString in ProgressDialog 2019-12-14 01:48:15 -05:00
Paul Licameli 02cdb4ab45 Define ComponentInterface::GetUntranslatedName() 2019-12-14 01:48:15 -05:00
Paul Licameli 626539d7a6 Remove Importer file description from PluginDescriptor...
... it was not used for anything but to write to config and read it again, and
it was improperly writing translated string values to the config file.
2019-12-14 01:24:42 -05:00
Paul Licameli 2e3ba2204f Rewrites of TranslatableString and reimplementation of wxPLURAL...
... including move-construction of the base string, debug string formatting,
and contexts (not fully implemented)
2019-12-11 14:55:29 -05:00
Paul Licameli 15260c2c95 TranslatableString can store a context and format arguments...
... Format arguments are substituted into the translation of the msgid, which
may not be known at the time the format arguments are captured (because locale
may change).  This allows TranslatableString with arguments to be constructed
at static initialization time.

There is also a special "verbatim" or null context which makes no translations
of msgids.

There is not yet any use of other contexts besides default or null.
2019-12-05 11:34:06 -05:00
Paul Licameli 64a96e6f01 Define and use ShuttleGui::ConnectRoot...
... And corrected improper connections in HistoryWindow and ContrastDialog,
improper because they got called with the wrong this pointer, to
the control instead of the dialog.  But that was harmless anyway because the
handlers did not use this.
2019-12-02 19:35:01 -05:00
Paul Licameli 1bfbfb9640 ShuttleGui::Style analogous to other functions 2019-12-02 17:23:34 -05:00
Paul Licameli 9eeef4713d Define and use ShuttleGui::Name and NameSuffix...
... For radio buttons, the name will default to the same as the prompt if not
otherwise specified
2019-12-02 16:55:46 -05:00
Paul Licameli 72df562c4a Conversion of TranslatableString to wxString is private 2019-12-01 18:17:57 -05:00
Paul Licameli ae353fe61f Specify list control columns and styles all in one call 2019-11-28 14:24:44 -05:00