1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-07 16:07:44 +02:00

179 Commits

Author SHA1 Message Date
Paul Licameli
6f89c48873 Reimplement Track::Pointer using std::enable_shared_from_this...
... now the Track need not be owned yet by a TrackList
2019-03-16 13:11:32 -04:00
Paul Licameli
b8c0125143 Replace comparisons against wxEmptyString with empty() 2019-03-14 16:20:18 -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
Steve Daulton
6e75ff27c8 Bug 2022 Mixer Board does not automatically update
OnTrackSetChanged sets mUpToDate to false, which assumes that
MixerBoard::OnPaint(evt) will be called, but on Linux, the event
appears to be eaten by MixerTrackCluster::OnPaint and TrackClusters
were not updated.
2018-10-31 09:51:34 +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
0969d00b1b Comment out an unused UpdatePrefs function 2018-10-28 12:59:58 -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
723cecbeac Mixerboard uses events to detect start and stop of playback 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
fb8b5029e5 Select and Clip Menus 2018-10-24 12:16:33 -04:00
Paul Licameli
16ab48079b Don't include CommandManager.h in other headers 2018-10-18 09:25:14 -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
3f928a25b0 Bug2004: Opening Mixer Board with a Note track crashed...
... Just one null check was needed, but I also add another, and use a
wxWeakRef pointer, for more safety.
2018-10-06 11:20:30 -04:00
Paul Licameli
4aa990e835 Remove GetLink(ed) in various other places 2018-10-01 13:42:33 -04:00
Paul Licameli
968d63d5fd Rewrite many iterations over tracks and channels in various places 2018-10-01 13:35:51 -04:00
Paul Licameli
89748cbe3c Remove "skiplinked" argument of old track iterators 2018-10-01 10:35:46 -04:00
Paul Licameli
9481587fa8 Move menu handling functions out of class AudacityProject 2018-09-29 12:10:27 -04:00
Paul Licameli
67b679b7d1 Supply missing #includes that Travis build needs 2018-08-11 12:46:27 -04:00
James Crook
7f96f85676 Add some Right-To-Left language workarounds.
MixerBoard, LyricsWindow, Screenshot and most effects are now LTR in RTL locales.
Also added a pref so this can be overridden.  As RTL affects window creation, the language choice and this preference may only fully take effect after a restart of Audacity.
2018-08-10 18:39:33 +01:00
James Crook
4318cb6780 Bug 1886 - Sluggish behaviour caused by the large time taken to draw the Track Control Panel
All backing bitmaps (not just the one in track panel) now are set to 24 bits.
Big thanks to David Bailes for tracking down the root cause of slow BitBlts, and the comments at https://trac.wxwidgets.org/ticket/14403 which led to the fix.

In testing the bitmaps, I also fixed the sizer errors reported for Export.cpp that wxWidgets now reports as ASSERTS when running in debug builds.
2018-08-03 18:29:49 +01:00
Paul Licameli
e432883dec Fix deprecation warnings with wxFont, wxPen, wxBrush ctors...
... Replace some enum constants with the equivalent values from the more
special-purpose enums, as the wx header files recommend, so overloading
selects the ctors with non-int arguments.

In a full rebuild of the debug project on Mac, this reduces the count of
warnings from 264 to 274.
2018-07-23 13:21:15 -04:00
Paul Licameli
b8a8712ba0 make_movable -> std::make_unique 2018-05-10 00:56:36 -04:00
James Crook
7c8d4dc26e Bug 1835 - Mixer Board track names do not update immediately on updating track names 2018-04-22 17:34:21 +01:00
James Crook
b1e0add67f Bug 1870 - Mixer Board on Windows - with a single track the window cannot be moved on the screen 2018-04-22 16:59:20 +01:00
James Crook
42fb02bf9c Remove 4x bevel on MixerBoard
Now that we use colour to show selected/not-selected the 4x bevel looks clunky.  So reduced to a single bevel.
2018-04-15 15:07:58 +01:00
James Crook
933c86dce3 Draw slider background in correct colour on MixerBoard. 2018-04-15 13:46:03 +01:00
James Crook
8ff80bde11 Bug 262 - Enh: Mixer Board: Track strip and border colours to match those in current TrackPanel 2018-04-12 14:45:08 +01:00
Henric Jungheim
d8da4015ef Make it possible to const'ify xpm. 2018-03-27 05:36:02 -04:00
James Crook
1d9477a455 SetClip, SetLabel, SetProject added
- SetTrack also updated with more options.
2018-02-24 14:20:24 -05:00
Paul Licameli
3b32d39b54 Remove wxArrays of pointers 2018-02-21 19:33:32 -05:00
Paul Licameli
080dd34e61 Get rid of wx object arrays, use std::vector 2018-02-21 19:33:27 -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
5e10ec0def Options for constructing ASlider, and can specify scroll increments 2018-02-21 19:21:05 -05:00
Paul Licameli
57ce726a25 Rename Meter as MeterPanel, and some DOxygen 2018-02-21 17:50:28 -05:00
Paul Licameli
2b3be3208e Fix repaint of Mixer board after change of track name...
... Problem was introduced in 2.2.0 at commit dc05b94

Also, in MixerBoard, change name whenever changing the label, which might
matter to screen readers.
2018-02-07 05:16:29 -05:00
Paul Licameli
1498958562 Hold safer shared_ptrs to tracks in MixerBoard 2018-02-05 20:33:54 -05:00
James Crook
41ac4cd47a Add Hover-Over-Down State for Button
Previously hovering over a down button made no difference.
Also tweaked the appearance of hover-over thumbs on dark theme sliders.
Also tweaked hover images and colours generally.

Classic retains the old style.
Hi Contrast does not distinguish between hover-up and hover-down.
2017-12-14 14:39:56 +00:00
James Crook
f463eda36c Clean up some dead code and MSVC warnings.
- Dead code from experiments in SelectionBar removed.
- Many warnings about unused parameters fixed with WXUNUSED()
- Many warnings about signed / unsigned comparisons cleaned up.
- Several 'local variable declared but not used' warnings fixed.
2017-12-08 15:20:39 +00:00
James Crook
dc05b94fd1 Bug 1701 - Mac: Text descriptors in Selection Toolbar become invisible after Open command
Problem was that on mac enable/disable clears the colour back to black.
The easiest workaround was to create a new class auStaticText that does all that we
need for wxStaticText.
2017-08-13 23:04:13 +01:00
James Crook
00495937f2 Style MixerBoard Mute/Solo as on TCP. 2017-06-22 19:08:44 +01:00
Paul Licameli
e37c337af8 Don't duplicate stereo track in mixer board 2017-06-22 11:40:05 -04:00
James Crook
389e286c78 Set font colour later.
Set font colour for MemDC AFTER having selected the bitmap object into it.  Not needed on Windows, but is needed on Mac and Linux.
2017-06-22 15:59:44 +01:00
James Crook
86901a00a1 Fix MixerBoard Theming
Fixed so that updates to theme are applied immediately.  Previously theming only worked properly after a restart with the new theme.  Paul found that you could create a Chimera MixerBoard with a track in each of the four different themes.

I chose to completely recreate the MixerBoard on a prefs update, rather than the more fiddly detail of retheming each component of it.
2017-06-22 11:53:49 +01:00
Paul Licameli
bd0603b66a Remove the duplicate button-drawing functions that are now unused 2017-06-15 08:21:37 -04:00
Paul Licameli
e2d77b399d Move one more selection function out of TrackPanel 2017-06-11 16:14:26 -04:00
James Crook
a9c417854c Bug 509 - Soloing/unsoloing in Mixer Board does not repaint waveform colour until window or Track Panel refresh 2017-05-14 18:14:39 +01:00