1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-09-19 17:40:51 +02:00

622 Commits

Author SHA1 Message Date
David Bailes
660b8c07ad Fix Windows build - fix include paths 2019-06-21 09:29:32 +01:00
Paul Licameli
f75bf45478 Fix #include directives 2019-06-21 00:23:40 -04:00
Paul Licameli
5240c42cb6 No more LabelTrack::HasSelection...
... eliminating the last dependency of LabelTrack.cpp on LabelTrackView.h
2019-06-20 11:47:55 -04:00
Paul Licameli
f2869597b6 Move code from LabelTrack into LabelTrackView...
... and remove many #include directives from LabelTrack
2019-06-20 11:47:55 -04:00
Paul Licameli
6622f494fe Move code from LabelTrack into LabelTextHandle 2019-06-20 11:47:47 -04:00
Paul Licameli
e0c4a94cfd Move code from LabelTrack into LabelGlyphHandle 2019-06-20 10:47:26 -04:00
Paul Licameli
822183febc Remove friend LabelDefaultClickHandle 2019-06-20 10:47:26 -04:00
Paul Licameli
c9fa8424ce Move declarations again, to LabelTextHandle; remove a friend 2019-06-20 10:47:26 -04:00
Paul Licameli
bbc465920b Public functions get, set highlight boundaries, hit-test on text 2019-06-20 10:47:26 -04:00
Paul Licameli
6af9187003 Move declarations again, to LabelGlyphHandle; remove a friend 2019-06-20 10:47:25 -04:00
Paul Licameli
5eb5e24ab0 Make some hit testing utilities of LabelTrackView static and public 2019-06-20 10:47:25 -04:00
Paul Licameli
e3efd52026 Move many declarations into LabelTrackView & define its Copy() 2019-06-20 10:47:25 -04:00
Paul Licameli
604fbd0a2c Addition, deletion, sort of Labels communicated by events...
... and LabelTrack listens to its own events, to update certain state.

This is roundabout for now, but that state is view-related and will move into
another class.
2019-06-20 10:47:25 -04:00
Paul Licameli
aa5f9550bd LabelTrackView, not LabelTrack, handles focus changes when adding 2019-06-20 10:47:25 -04:00
Paul Licameli
0750f62e88 Track::SetSelected is not virtual...
... which will simplify later rewrites that associate selection state with
the track group, not the track.

Since LabelTrack isn't notified immediately of selection changes, instead it
always tests whether it is selected, before using the stored selected label
index.
2019-06-20 10:47:25 -04:00
Paul Licameli
0cecc6e48d Remove unnecessary assertion, that failed...
... Because, as the function now says, the selecting of the track is
purposely done later
2019-06-20 10:47:25 -04:00
Paul Licameli
87ef97abe2 Move code to PlayableTrackControls...
... eliminating some duplication in tables for Wave and Note track controls,
and freeing PlayableTrackButtonHandles from the big s.c.c, though in a cycle
yet with PlayableTrackControls
2019-06-19 19:02:56 -04:00
Paul Licameli
674b66128d New files for PlayableTrackControls 2019-06-19 18:34:48 -04:00
Paul Licameli
6a03e7c84a Global slider instances for control panels out of TrackPanel.cpp...
... and updating of them is accomplished privately in implementation files,
reducing intrusions into TrackPanel and ProjectWindow

This removes #include-s from TrackInfo.cpp, leaving dependency cycles better
than previously
2019-06-19 18:34:47 -04:00
Paul Licameli
627213cb74 Move drawing code specific to Wave or to Note track controls...
... making cycles of some TrackControls subclasses with their handles, which
perhaps means those files should be fused, but that's for later
2019-06-19 18:34:47 -04:00
Paul Licameli
52844d9200 Virtual in CommonTrackControls determines what to draw in the TCP...
... This adds #include-s to TrackInfo.cpp that temporarily worsen the
dependency cycles
2019-06-19 18:34:45 -04:00
Paul Licameli
23b584b529 Move code to TrackInfo.cpp 2019-06-19 12:59:08 -04:00
Paul Licameli
a99b746520 Move class ZoomInfo to separate files 2019-06-19 11:35:45 -04:00
Paul Licameli
ee68b69513 Fix #include 2019-06-18 19:23:28 -04:00
Paul Licameli
66e32ca35d Move Y position, height, and minimized state into TrackView...
... and eliminate some unnecessary calls to SubstitutePendingChangedTrack,
because the track and the substitute store Y and height in their shared
TrackView object.

Also make GetMinimizedHeight() virtual to avoid inclusion of TrackPanel.h in
TrackView.cpp.
2019-06-18 16:01:06 -04:00
Paul Licameli
3797a5227a Minimized state moved into TrackView 2019-06-18 16:01:06 -04:00
Paul Licameli
e581fa60d9 Move responsibilities from Track to TrackView classes...
... And Track no longer inherits TrackPanelCell, so be careful to rewrite
some dynamic_casts too to check instead for TrackView.  Those casts won't fail
to recompile if not rewritten.
2019-06-18 16:01:06 -04:00
Paul Licameli
e0b8bd78eb Move functions handling label keystrokes to class LabelTrackView 2019-06-18 16:01:06 -04:00
Paul Licameli
9d26eb7a41 Define LabelTrackView::Get(), LabelTrackView::FindLabelTrack() 2019-06-18 16:01:06 -04:00
Paul Licameli
c8b62f5d8a Define TrackView::Copy, cause all track duplications to invoke it...
... but it does nothing yet.

This will be important to preserve undo/redo behavior of view changes, when
view state is moved out of the proper Track objects.
2019-06-18 16:01:06 -04:00
Paul Licameli
b4c7a8ef2a TrackPanelResizerCell, also in 1-to-1 with TrackView, now owned by it 2019-06-18 16:01:06 -04:00
Paul Licameli
18b4c01c51 TrackVRulerControl is directly owned by TrackView not Track...
... in anticipation of making views to tracks many-to-one, but then the rulers
should be one-to-one with the views.  So go through the view to get the ruler.
The ruler is really a left-hand extension for each view.
2019-06-18 16:01:06 -04:00
Paul Licameli
e90943cfe1 Move code into CommonTrackView.cpp 2019-06-18 16:01:06 -04:00
Paul Licameli
e77799d62c Split out class CommonTrackView ...
... so base class TrackView can be used by TrackPanel to define its subdivision,
avoiding dependency on any special callbacks in CommonTrackView
2019-06-18 16:01:06 -04:00
Paul Licameli
059d7eaa42 Associate View object with Track, analogous with controls 2019-06-18 16:01:06 -04:00
Paul Licameli
18ba27a641 Define static accessor functions for VRulerControls and TrackControls...
... and use std::enable_shared_from_this

Temporarily putting TrackControls.cpp back into the big s.c.c, now 59 files

Future rewriting might even eliminate all mention of those classes in
the definition of the Track classes.
2019-06-18 16:01:06 -04:00
Paul Licameli
2259f12acb Move code into CommonTrackControls.cpp 2019-06-18 16:01:06 -04:00
Paul Licameli
e30ffc340a New files CommonTrackControls.cpp, CommonTrackView.cpp 2019-06-18 16:01:06 -04:00
Paul Licameli
bebd709e98 Define and use CommonTrackCell 2019-06-18 16:01:06 -04:00
Paul Licameli
2bb823e1b6 Split out class CommonTrackControls...
... so base class TrackControls can be used by TrackPanel to define its
subdivision, not depending on any special callbacks in CommonTrackControls
2019-06-18 16:01:06 -04:00
Paul Licameli
d7753f7acd Rename old .cpp files, add new .h files 2019-06-18 16:01:05 -04:00
Paul Licameli
bc2eda2ac8 Remove another unnecessary #include 2019-06-18 16:00:23 -04:00
Paul Licameli
1594fc0cb1 Remove some unncessary #include directives 2019-06-18 14:33:38 -04:00
Paul Licameli
4c5b65d7f6 Move some constants and GetVRulerOffset() out of TrackPanel.h 2019-06-18 11:36:50 -04:00
Paul Licameli
2b2d13d5be TimeShiftHandle.h doesn't need Track.h 2019-06-18 11:36:50 -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
352380d58f Scrubbing.cpp does not depend on TranscriptionToolBar...
... Freeing the latter from cycles, and also VoiceKey.

As with ToolsToolBar, use low-level ProjectSettings as the chalkboard for
sending a message.
2019-06-14 00:27:31 -04:00
Paul Licameli
1884eb8619 Fix #include 2019-06-13 10:21:51 -04:00
Paul Licameli
2f18c624f8 ToolsToolBar.cpp is free from cycles...
... Use ProjectSettings instead to communicate just an integer to the rest of
the program.
2019-06-13 10:13:09 -04:00
Paul Licameli
6b5161f9d9 NoteTrackVZoomHandle.cpp compilable with WaveTrack.h ...
... which it doesn't actually include, except with precompiled headers in
the Windows build
2019-06-11 03:44:28 -04:00