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

673 Commits

Author SHA1 Message Date
Paul Licameli
13713aab67 Remove nullary overload of AudacityCommand::Apply...
... which by default used GetActiveProject(); do that call instead at a
higher level; so that AudacityCommand.cpp does not depend on Project.cpp.

We lose the override of that for CompareAudioCommand which just did nothing.

But in fact this overload of the base class method could only be used
by EffectUIHost constructed from a command, which never happened: it was only
ever constructed from effects.

This frees two files from dependency cycles
2019-05-18 20:31:17 -04:00
Paul Licameli
d81ca99643 CommandContext.cpp has fewer dependencies...
... freeing it (alone) from dependency cycles
2019-05-18 20:31:17 -04:00
Paul Licameli
9eb9104859 Remove CommandContext::GetProject() ...
... which called ::GetActiveProject(), but one purpose of the CommandContext
class was to eliminate many uses of that global function, because a
CommandContext must always be constructed from a reference to a project
(which was always in fact the active one), then passed around to where it is
needed!

Also, just use the project member directly -- because CommandContext was
intended as just a P.O.D (plain-old-data) structure.

This also eliminates a dependency of CommandContext.cpp on Project.cpp.

This is not enough by itself to break any dependency cycles.
2019-05-18 20:31:17 -04:00
Paul Licameli
1c0453106d CommandTargets.cpp has fewer dependencies...
... freeing two files from dependency cycles
2019-05-18 20:31:17 -04:00
Paul Licameli
87a9f34c22 ScreenshotCommand uses hooks in AudacityCommand and Effect dialogs...
... so that they don't have a static linkage dependency on it, and that frees
it from dependency cycles, to a high level
2019-05-18 20:31:17 -04:00
Paul Licameli
db8c4c5e5a Global keyboard capture handling into new files, better comments...
... and break its compile dependency on CommandManager.h by letting it install
callbacks.

This also removes Objective-C mixed code from CommmandManager.

This also eliminates four inclusions of Project.h!

Capture handler state is also global, not per project, though the
CommandManager's callbacks still do depend on the active project.
2019-05-18 15:14:18 -04:00
Paul Licameli
78a1263163 Move ShuttleGetDefinition to its own files...
... so Shuttle need not include CommandTargets.h
2019-05-18 15:10:07 -04:00
Paul Licameli
6e3ebc0938 ScriptCommandRelay.cpp is not link dependent on AudacityApp.cpp ...
... Let it send an event to the application instead of calling the handler
directly.
2019-05-17 16:29:41 -04:00
Paul Licameli
6c57948d8f Remove unnecessary #include-s from .cpp files...
... Unnecessary because transitively included.

But each .cpp file still includes its own .h file near the top to ensure
that it compiles indenendently, even if it is reincluded transitively later.
2019-05-16 17:21:00 -04:00
Paul Licameli
548192fcf3 Remove redundant #include-s from .h files...
Redundant, because transitively implied.  But don't do this for inclusions of
Audacity.h or Experimental.h.
2019-05-16 14:58:34 -04:00
Paul Licameli
56f51d8176 Revert "Remove redundant #include-s from .h files..."
This reverts commit b7fe62d17067b4441530dd36b25052cea3ad44b5.
2019-05-16 14:33:55 -04:00
Paul Licameli
b7fe62d170 Remove redundant #include-s from .h files...
Redundant, because transitively implied.  But don't do this for inclusions of
Audacity.h or Experimental.h.
2019-05-16 14:15:05 -04:00
Paul Licameli
9bf29f5582 CommandManager keys by CommandId, not plain wxString 2019-05-16 12:30:29 -04:00
Paul Licameli
19bf094893 Change CommandManager terminology: "Numeric id" not just "Id" ...
... because I will use CommandId for string identifiers instead, and those
are the really persistent identification
2019-05-16 12:30:29 -04:00
Paul Licameli
11c8377460 NormalizedKeyString redefined as TaggedIdentifier 2019-05-16 12:30:29 -04:00
Paul Licameli
7ad6897598 Move class ShuttleGuiGetDefinition near its only point of use 2019-05-16 12:30:27 -04:00
Paul Licameli
74128156bf ModuleInterface::GetFileExtensions() returns const reference...
... avoiding repeated array allocation
2019-05-16 12:30:23 -04:00
Paul Licameli
bf005c0dec PrefsPanel::Factory is a specialization of std::function...
... We don't need to define a class for it
2019-05-16 12:14:51 -04:00
Paul Licameli
f6adeed47b Remove some unnecessary #include directives 2019-05-15 14:14:18 -04:00
Paul Licameli
2b32884596 Remove some unnecessary toolbar related declarations, fix comments 2019-04-23 17:02:04 -04:00
James Crook
c0235f7f70 Fix mute and solo not working from scripts 2019-04-11 21:19:41 +01:00
James Crook
691666bf79 Bug 2051 - Shortcut for Edit>Clip>Boundaries>Split (Ctrl+i) should be in the Standard shortcut set 2019-04-06 14:34:04 +01:00
Paul Licameli
911d468700 Add #include in CommandManager.cpp 2019-04-04 12:34:40 -04:00
Paul Licameli
0b733eed3f Remove (or comment) ProgressDialog.h in headers...
... For ImportPlugin, use unique_ptr not Maybe to hold it, and take constructors
out-of-line.
2019-04-04 09:47:57 -04:00
David Bailes
d994ad430a Bug 1762: Importing keystrokes not in standard set
Problem:
1. Use either no prior config files, or set the default shortcuts to standard.
2. If a set of keyboard shortcuts is imported, then any shortcut for a command which only has a default shortcut in the full set is not set, unless it differs from the default shortcut.

This occurs because in CommandManager::HandleXMLTag(), the imported shortcut is only used if it's different from the default shortcut. But for all commands, even those commands which only have a default shortcut in the full set, GetDefaultKeyFromName() returns the default shortcut.

Fix:
Use the imported shortcut, regardless of whether it is different from the default shortcut. (I've left the function GetDefaultKeyFromName(), even though it is not longer used.)

Note:
This results in a change of behaviour:
 Before: if you'd customized the shortcut for a command, then if you imported a set of shortcuts, that customized shortcut would only have been changed if the imported shortcut was also customized.
 Now: If you import a set of shortcuts, then these become your shortcuts, regardless of any customizations present before the import.
 I think the new behaviour is what a user would expect.
2019-04-02 14:24:42 +01:00
James Crook
32bf03b54e Fix DLL_API linkage warning. 2019-03-31 20:46:07 +01: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
48b184f072 Remove an unnecessary nested #include 2019-03-31 13:27:18 -04:00
Paul Licameli
77f747daeb Remove wx/{checklst,wfstream,version,variant,types}.h from *.h 2019-03-30 12:59:21 -04:00
Paul Licameli
34f318cd41 Remove wx/{imaglist,generic/dragimgg,gauge,dynarray}.h from *.h 2019-03-30 12:51:12 -04:00
Paul Licameli
2e05d2d884 Remove wx/{radiobut,ownerdrw,menuitem,menu,listbox}.h from *.h 2019-03-30 12:15:53 -04:00
Paul Licameli
c982cf6a41 Remove wx/intl.h, wx/brush.h, wx/bitmap.h from headers 2019-03-30 11:45:20 -04:00
Paul Licameli
ec2f26e48c Remove wx/pen.h, wx/thread.h from headers 2019-03-30 10:17:18 -04:00
Paul Licameli
3a7324984c wx/hashmap.h no longer used anywhere 2019-03-30 10:06:52 -04:00
Paul Licameli
de60edc62f Remove wx/{app,statbmp,spinctrl,scrolbar,dynlib,dcmemory}.h from *.h 2019-03-30 07:57:37 -04:00
Paul Licameli
4e9c3cfb5f Remove wx/{dc,tokenzr,tglbtn,statusbr,simplebook}.h from *.h 2019-03-29 06:29:35 -04:00
Paul Licameli
d71a54b4e9 Remove wx/checkbox.h from headers 2019-03-28 12:55:34 -04:00
Paul Licameli
70e88782fe Remove wx/{grid,font,ffile,colour,button,bmpbuttn}.h from headers 2019-03-28 12:27:10 -04:00
Paul Licameli
803d8b9559 Remove wx/filename.h, wx/choice.h, wxFileNameWrapper.h from headers 2019-03-28 03:12:42 -04:00
Paul Licameli
8cf6874555 Remove wx/textctrl.h from headers 2019-03-28 01:43:53 -04:00
Paul Licameli
4018b191b4 Remove Get/Set functions for selection bounds from AudacityProject 2019-03-27 13:32:53 -04:00
Paul Licameli
c3aad2e026 Remove wx/event.h from headers 2019-03-27 04:36:51 -04:00
Paul Licameli
40b4361732 Remove wx/arrstr.h from headers 2019-03-26 12:41:44 -04:00
Paul Licameli
1d0247607a Remove wx/string.h from headers 2019-03-26 11:33:55 -04:00
Paul Licameli
ce4ba9762b Move more functions out-of-line 2019-03-23 11:41:01 -04:00
Paul Licameli
0dd0a5cb5a Remove <wx/menu.h> from CommandManager.h, moving inline functions out 2019-03-23 10:56:43 -04:00
Paul Licameli
957e5eee63 Remove unnecessary #include from LoadCommands.h and LoadEffects.h 2019-03-22 13:35:13 -04:00
Paul Licameli
f45300f032 This is only comments, in files where USE_ macros are tested...
... following the comment convention used in the preceding commit.
2019-03-22 12:38:30 -04:00
Paul Licameli
b4ce681867 WaveTrack.h does not include WaveClip.h 2019-03-18 01:44:42 -04:00
Paul Licameli
5e7d41ec07 Each .cpp/.mm file includes corresponding header before any other...
... except Audacity.h

This forces us to make each header contain all forward declarations or nested
headers that it requires, rather than depend on context.
2019-03-17 22:54:52 -04:00