1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-23 17:30:17 +01:00
Commit Graph

689 Commits

Author SHA1 Message Date
Paul Licameli
ac2fecf151 Don't rely on order of Bind to EVT_TRACK_PANEL_TIMER from project...
... instead, re-process the event, and let each handler bind to the one it
depends on.

This still leaves a critical ordering of construction of playback scroller and
play indicator overlay in AudacityProject::AudacityProject (reverse of the
previous), but that will be removed by other means.
2019-03-16 08:20:44 -04:00
Paul Licameli
a30000cf74 Use type aliases FilePath, FilePaths...
... for wxString and wxArrayStringEx, holding file paths (absolute or relative,
directory or plain file); to be replaced later with different types

(not yet using std::vector, becase of some uses of wxArrayString::Index with
two arguments)
2019-03-15 15:18:11 -04:00
Paul Licameli
06b3b42794 Remove unnecessary initializers for empty wxString 2019-03-15 15:18:11 -04:00
Paul Licameli
dfeb7e18aa Type aliases for some uses of ComponentInterfaceSymbol...
... to be replaced later with distinct types

Also changing FamilyId => Family in function names

Also NumericFormatId => NumericFormatSymbol
2019-03-14 17:26:20 -04:00
Paul Licameli
b8c0125143 Replace comparisons against wxEmptyString with empty() 2019-03-14 16:20:18 -04:00
Paul Licameli
50074f2cfe Replace comparisons against "" with empty() 2019-03-14 13:23:41 -04:00
Paul Licameli
da33daf197 Some replacements of wxArrayString with auto 2019-03-10 14:47:12 -04:00
Paul Licameli
c68e336247 More use of std:: style members of wxString...
... replacing:

Length => length
Len => length
2019-03-10 14:44:54 -04:00
Paul Licameli
2db49dc1f0 Use standard library style members of wxArrayString (and wxString) ...
... which will make it easier to change the types of those containers to
std::vectors of other string-like classes

for wxString,

IsEmpty => empty
Clear => clear
Alloc => reserve

for wxArrayString,

Count => size
GetCount => size
IsEmpty => empty
Add => push_back
Clear => clear
Empty => clear
Sort => std::sort (only with default comparator)
SetCount => resize
Last => back
Item => operator []
Alloc => reserve
2019-03-10 14:43:57 -04:00
Paul Licameli
9d18263be6 Bug2059: Save empty,record,save-as shouldn't delete old _data folder 2019-02-09 17:04:45 -05:00
Paul Licameli
0941eaa0d5 Bug2058: shouldn't lose data in original project when saving-as...
... Bug was introduced at commit e87e15f, which was part of an unsuccessful
attempt to fix performance Bug1979
2019-01-26 14:23:37 -05:00
Paul Licameli
340bd20fc6 Fix data loss saving a stereo track lossless or compressed...
... in case clip boundaries don't match and the right channel covers a greater
time extent than the left.

Don't lose those parts of the right channel, before or after, and also make the
start time of the project correct in case the right channel starts earlier.

This is an old bug, going back as far as the git history.
2018-12-20 13:53:38 -05:00
James Crook
253aca7eec Bug 2035 - Save Project fails to display error message on Save with overfull disk 2018-12-02 21:55:58 +00:00
James Crook
5a87d5ea67 Bug 2040 - Linux: Assert on recording or generating when main Window minimised 2018-12-02 16:58:17 +00:00
Paul Licameli
50f8579475 Move AudacityProject::DoTrackMute and DoTrackSolo...
... also fixed the bug that muting and soloing from the mixer board did not
update accessibility.
2018-10-28 16:50:01 -04:00
Paul Licameli
51c3541716 Move AudacityProject::RemoveTrack 2018-10-28 16:45:38 -04:00
Paul Licameli
83f504e30f Move AudacityProject::SetTrackPan and SetTrackGain 2018-10-28 16:43:20 -04:00
Paul Licameli
edd23e2634 Move AudacityProject::GetZoomOf* 2018-10-28 16:43:17 -04:00
Paul Licameli
b2ea8ab6e9 Move AudacityProject::EditByLabel and EditClipboardByLabel 2018-10-28 16:30:39 -04:00
Paul Licameli
95cca91eb1 Move AudacityProject::Clear 2018-10-28 16:26:03 -04:00
Paul Licameli
012ea76132 Moved mixer board update code out of class AudacityProject...
... And we don't need GetMixerBoard() any more
2018-10-27 18:01:09 -04:00
Paul Licameli
1fc4c5724e MixerBoard no longer needs update at undo push...
... it does that sooner, and ony when needed, when relevant track data really
change, by listening to the TrackList.
2018-10-27 18:01:08 -04:00
Paul Licameli
ccc2bbe3ef MixerBoard listens for events for track sliders, mute, solo, name 2018-10-27 18:01:08 -04:00
Paul Licameli
5ab2faceea MixerBoard listens to TrackList for insert, delete, permute...
... Which is also sufficient to detect undo/redo/rollback

And detects more often than undo state changes, so that if you drag a track
in TrackPanel, the same permutation is seen at once in MixerBoard, even before
button-up
2018-10-27 18:00:52 -04:00
Paul Licameli
7150d43083 MixerBoard listens to TrackList for selection changes 2018-10-27 16:27:53 -04:00
Paul Licameli
96d104cb38 Lyrics panel listens; AudacityProject not responsible for updating it 2018-10-27 12:52:06 -04:00
Paul Licameli
ad8fafa6a0 History window listens for events 2018-10-27 12:52:06 -04:00
Paul Licameli
dbcf8ae59b AudacityApp emits an event when the global clipboard changes 2018-10-27 12:52:06 -04:00
Paul Licameli
4f7d308ca3 Some inversion of control flow when popping Undo state 2018-10-27 11:31:42 -04:00
Paul Licameli
303553ae4e Take class AdornedRulerPanel out of src/widgets...
... It's not a utility widget like RulerPanel.  It has a lot of application
specific logic in it.
2018-10-24 15:04:41 -04:00
Paul Licameli
492a44894b Move MenuManager functions out of Project.cpp 2018-10-24 15:04:41 -04:00
Paul Licameli
e048a4aacd Move a static function and an enumeration out of MenuCommandHandler 2018-10-24 12:16:46 -04:00
Paul Licameli
800f6500ba No more member definitions of AudacityProject inside Menus.cpp 2018-10-24 12:16:46 -04:00
Paul Licameli
9759c6bd4f Plugin Menus 2018-10-24 12:16:44 -04:00
Paul Licameli
1be1217d1d Tracks Menus 2018-10-24 12:16:40 -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
d1e2ec3b0f Remove some uses of MenuCommandHandler outside Menus.cpp...
... where the functions were simple call-throughs to something else
2018-10-24 11:02:32 -04:00
Paul Licameli
16ab48079b Don't include CommandManager.h in other headers 2018-10-18 09:25:14 -04:00
Paul Licameli
399e2d099d Fix spelling in an enum constant name 2018-10-17 12:53:25 -04:00
Paul Licameli
ce9f2e2538 Include Menus.h directly, only where needed, not via Project.h 2018-10-16 16:45:26 -04: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
scootergrisen
b4f7946e9b Remove some double space 2018-10-14 10:42:01 +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
e87e15f489 Proper deferring of DirManager's commit steps when saving-as 2018-10-13 12:55:29 -04:00
Paul Licameli
894f6f4f63 Remove SetLinked() and SetChannel() from importers 2018-10-01 13:42:36 -04:00
Paul Licameli
31d46ae624 Importer functions return a vector of vector of pointers to tracks...
... grouping the channels; rather than one flat vector.

OGG, GStreamer and FFmpeg import were written to allow multiple multi-channel
tracks; others always imported one group of channels.

All of that is reflected in the results returned by the importers, though it
makes no difference yet in AudacityProject::AddImportedTracks (where the
results are used).
2018-10-01 13:42:35 -04:00