1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-14 15:48:21 +02:00

191 Commits

Author SHA1 Message Date
Paul Licameli
c46fbd919c rename function as AudacityProject::GetProjectName...
... So it does not hide inherited wxWindow::GetName().

And make it const.
2019-04-26 14:10:05 -04:00
Paul Licameli
8f55d55869 Remove two call-through functions to TrackPanel from AudacityProject 2019-04-26 14:05:57 -04:00
Paul Licameli
08c16b6eb7 Remove wx/{html/htmlwin,fileconf,dragimag,debug,dcclient}.h from *.h 2019-03-30 10:53:22 -04:00
Paul Licameli
2de696b461 Bug2086: Mixer board behavior...
... and also fixed analogous mistakes in some effects (Vamp, SoundTouch, and
SBSMS effects), found by review of all uses of TrackList::Channels.

The first member of the pair of iterators returned by TrackList::Channels
does not necessarily deference to a null pointer when it is incremented to
the end of the range.
2019-03-29 11:45:28 -04:00
Paul Licameli
0ff934e1c1 Remove AButton.h from header 2019-03-28 12:33:28 -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
71adb89342 Remove non-UI functions in TrackPanelListener 2019-03-27 04:06:15 -04:00
Paul Licameli
a915a510bd include <wx/setup.h> in all files where wxUSE* macros are used...
... even if it's redundant; improving on what was done at b47e2f9
2019-03-23 14:56:02 -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
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
Paul Licameli
906e55f047 Experimental.h in all .h or .cpp files that directly use EXPERIMENTALs...
... except Audacity.h; and in no others.

Do so even if Experimental.h gets multiply included, as in both the .h and
.cpp files.

This makes it easier to do a text scan to be sure there are no unintended quiet
changes of meaning because of omission of Experimental.h when the flag is
an enabled one.

Also move inclusions of Experimental.h earlier.

Also don't require Experimental.h to be preceded by Audacity.h to define
EXPERIMENTAL_MIDI_OUT correctly.
2019-03-17 22:54:00 -04:00
Paul Licameli
173a300427 Include nothing before Audacity.h, as comments say we should...
... and remove some duplicated inclusions
2019-03-17 21:41:39 -04:00
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