1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-17 00:20:06 +02:00

103 Commits

Author SHA1 Message Date
James Crook
35127c44b7 Bug 1548 - Newly recorded tracks do not acquire focus 2018-03-24 16:05:10 +00:00
Paul Licameli
29c98f27f6 Another fix for list iterators 2018-03-10 11:46:22 -05:00
Paul Licameli
bab8ea8393 Thanks for nothing, MSVC std::list<T>::iterator implementation...
... I worked around the unhelpful helps that made gratuitous runtime errors,
in debug builds but not in release.
2018-02-23 14:58:12 -05:00
Paul Licameli
2fbe04eda0 Replace more Connect with Bind; needed redeclaration of custom events 2018-02-21 19:30:40 -05:00
Paul Licameli
bf5228267a Calls to Disconnect or Unbind in destructors are not needed, if...
... it's either the source of the connection that is being destroyed, or other
object (such as an ancestor window) transitively owning it and so causing it to
be destroyed too;

or, the sink is being destroyed, and that sink is a wxEvtHandler (which is
always so for Disconnect, though not for Unbind in case Bind was passed a
member function of a non-wxEvtHandler).

wxWidgets takes care of erasing the connection in such cases.

This removes most calls to Disconnect and Unbind.  Many destructors shrank to
nothing.

Notably, in case of popup menu handling, the call to Disconnect is not removable
because the object being destroyed is neither the source nor the sink.
2018-02-21 19:28:06 -05:00
Paul Licameli
e0d826a542 Prohibit copy of TrackList, no longer needed; allow swap and move 2018-02-21 19:21:01 -05:00
Paul Licameli
539e870302 Add machinery to TrackList for pending changes to tracks 2018-02-21 19:20:56 -05:00
Paul Licameli
33cfd92c0a Define TrackId to identify tracks across undo states 2018-02-21 19:20:56 -05:00
Paul Licameli
3f05063681 Split "Do" functions out of the "Set" functions for some Track settings 2018-02-21 19:20:55 -05:00
Paul Licameli
242e9a5668 Some reimplementation of track iterators and GetLink() ...
... avoiding direct usage of the inherited end() and of the increment and
decrement of the std::list iterators
2018-02-21 19:20:55 -05:00
Paul Licameli
4ef8da8f16 Revert "Preliminaries to support better interaction of undo and recording"
This reverts commit 6e75ae58ac56d9c94af5a4ce97951f627808473a, reversing
changes made to 714d53e00f803643131bb775858ac930b39dd5b8.
2018-01-14 21:36:33 -05:00
Paul Licameli
950898dcb9 Revert "Bug 1823: Better interaction of undo and record..."
This reverts commit 1e8aba968da56374d74fb5589caa56caf5fe1283, reversing
changes made to 6e75ae58ac56d9c94af5a4ce97951f627808473a.
2018-01-14 21:27:41 -05:00
Paul Licameli
2409d46d4c Prohibit copy of TrackList, no longer needed; allow swap and move 2018-01-14 19:33:39 -05:00
Paul Licameli
ce5a67a9e9 Iterate over the pending tracks for drawing 2018-01-14 19:04:03 -05:00
Paul Licameli
a0c3a4b43c Add machinery to TrackList for pending changes to tracks 2018-01-14 19:03:57 -05:00
Paul Licameli
bd2c7e6abc Define TrackId to identify tracks across undo states 2018-01-14 19:03:54 -05:00
Paul Licameli
8b60e7f02d Split "Do" functions out of the "Set" functions for some Track settings 2018-01-14 19:03:52 -05:00
Paul Licameli
92ba1f10e1 Some reimplementation of track iterators and GetLink() ...
... avoiding direct usage of the inherited end() and of the increment and
decrement of the std::list iterators
2018-01-14 19:03:50 -05:00
Paul Licameli
0265b8792d More stl idiom for TrackList and its iterators 2018-01-14 16:58:19 -05:00
Paul Licameli
ba61e30cb2 More cautions with std::list::iterator on Windows 2018-01-14 15:37:21 -05:00
Paul Licameli
a30defe8ca Redo "Provide STL idiom for iterating tracks..." ...
... Being careful not to use operator == on a default-constructed
std::list::iterator, which violates assertions in the MSVC libraries.

This reverts commit 7fb5ec4b7ab4f9302bd94446db86924cd2b8d67f.
2018-01-14 14:25:02 -05:00
James Crook
7fb5ec4b7a Revert "Provide STL idiom for iterating tracks..."
Unsafe on MSVC 2013.
2018-01-14 14:24:21 +00:00
Paul Licameli
f9dab3679c Provide STL idiom for iterating tracks...
... and require qualified name access to use the underlying std::list iterators
that return shared_ptr to Track.

Which should not be done very much outside of class TrackList, but a few
places need it.
2018-01-13 19:37:05 -05:00
Paul Licameli
5407079c62 Remove EXPERIMENTAL_OUTPUT_DISPLAY...
... Maybe a good feature idea, but the implementation pollutes the code in
too many places.

It's a special case of the more general idea of many-to-one associations
between screen rectangles and track objects.  More generalized ways to
accommodate that should be sought.
2018-01-12 12:08:09 -05:00
Paul Licameli
c975de8c5e More use of shared_ptr to Track, for safety...
... This even makes it possible to remove the prohibition of undo and redo
during transport, not that we want to though.  Playback and recording will
continue, using track objects that might not be in the current project.
2018-01-10 20:05:11 -05:00
James Crook
a49f14ad02 doxygen. Class list completed for letter 'A'. 2017-11-09 18:32:29 +00:00
Paul Licameli
5dd72acc02 Bug1770: fix crash applying chains 2017-11-04 20:59:55 -04:00
James Crook
68897d8932 Some cppcheck fixes by David Binderman 2017-11-04 17:47:39 +00:00
Paul Licameli
8bf3791edf TrackList constructed only by factory function, to avoid more trouble 2017-07-14 21:55:32 -04:00
Paul Licameli
903cebafe1 Bug1669: Close and Menu buttons should never disappear...
... As they did with Ctrl+Shift+F, with a certain minimimum number of wave
tracks that depends on screen resolution.  On my Macbook, that was 13 tracks.

This bug was a consequence of James' TCP layout changes making buttons a little
taller plus my changes to hide any top controls for which there is not
sufficient height.

The fix makes the height of tracks after Ctrl+Shift+F a bit more (44 pixels
not 40) than in 2.1.3.

This fix also replaces some more "magic numbers" with calculation from
tabled data about TCP layout.
2017-07-14 12:03:16 -04:00
Paul Licameli
54af4f1ff7 More precautions about the back-pointers of tracks to their lists 2017-07-14 10:03:11 -04:00
Paul Licameli
16645f6b95 Back-pointer from Track to TrackList is weak (fixes crashes) 2017-07-10 11:48:11 -04:00
Paul Licameli
708d84ac22 CommonTrackPanelCell::FindTrack returns shared_ptr 2017-06-27 23:09:35 -04:00
Paul Licameli
2806b509e2 Fix crashes in repainting, and update first visible track correctly 2017-06-26 15:20:35 -04:00
Paul Licameli
d635535241 Fix another error in Mac build 2017-06-25 16:00:30 -04:00
Paul Licameli
d3c9a1decb JAWS fix?: Now do the delay of event handling...
... Queue, don't immediately process, TrackList events, and if listeners want
to hold pointers to tracks, let them use weak_ptr or shared_ptr
2017-06-25 13:35:17 -04:00
Paul Licameli
bd5d2bf114 Accessor for shared pointer to track, given only a bare pointer 2017-06-25 13:35:15 -04:00
Paul Licameli
1fce8b54f2 Remove oudated comment 2017-06-25 13:35:14 -04:00
Paul Licameli
750fc34fac Clarify what the TrackList events are for...
Also fixes this bug:

Vertical rulers did not narrow as needed after deletion of the lowest track.
2017-06-25 03:00:28 -04:00
Paul Licameli
c48bf4f37d Fix old unreported minor bug with vertical rulers of Label tracks...
New project; create a label track; undo; redo.  Used to see no vertical ruler.
2017-06-25 01:46:20 -04:00
Paul Licameli
68dfdab843 Store tracks in TrackList with shared_ptr ...
... but still use unique_ptr from track factories and importers.
2017-06-23 15:05:50 -04:00
Paul Licameli
91c86fd937 TrackPanelCellIterator visits all cells, and FindCell simply uses it 2017-06-17 03:01:40 -04:00
Paul Licameli
14d45eda33 Define and use the UIHandle and TrackPanelCell protocols, but...
...no actions reimplemented to them yet.

Later commits will move special cases one at a time from TrackPanel, preserving
all click and drag capabilities at each step.  With a few exceptions, but those
lost abilities are restored in yet later commits.  (Ctrl+Click on the Label
track being one.)
2017-06-15 08:20:56 -04:00
James Crook
d8a71c40eb Tweak TCP minimize button Position
It now doesn't impinge on the bottom edge of the TCP, and it is left aligned flush with the left edge.
Minimum track height increased accordingly.
2017-06-10 10:10:38 +01:00
Paul Licameli
f0c149b890 Default MIDI track height is enough to display velocity slider...
... It is computed from the layout table, and in fact comes to 158 pixels,
versus 150 for other tracks.
2017-06-06 22:39:30 -04:00
Paul Licameli
721faf89c6 Avoid possible dangling pointer problems with EVT_TRACKLIST_UPDATED 2017-06-01 14:40:05 -04:00
James Crook
028ed19d90 Sync with DarkAudacity 2017-04-02 23:07:13 +01:00
Paul Licameli
e1473dfe76 void return, not boolean success, from some Track virtual functions...
... The return codes were mostly ignored anyway, and exceptions will be thrown
instead.

It seems there was also confusion whether the return values of Track::Paste
and Track::SyncLockAdjust were to indicate success or indicate whether there
was any change.  No matter now.
2017-03-31 18:26:52 -04:00
Paul Licameli
6b84dc1c1d Factory methods will return non-NULL or throw 2017-03-31 18:14:29 -04:00
Paul Licameli
a936aed643 Another use of type AudioTrack 2017-03-30 20:48:27 -04:00