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

800 Commits

Author SHA1 Message Date
Paul Licameli
7ab97c969c Use std::numeric_limits<...>::lowest...
... not the negation of max(), which is wrong for unsigned types, and not
min(), which gives least normalized positive value for floating point types.

lowest() wasn't available before C++11.
2018-09-29 12:57:53 -04:00
Paul Licameli
d852bd3783 Translated time (& freq & bandwidth) formats in numeric controls...
... This had been done correctly in the popup menu to change the format, but
not in the control itself.
2018-09-29 12:10:27 -04:00
Paul Licameli
9481587fa8 Move menu handling functions out of class AudacityProject 2018-09-29 12:10:27 -04:00
James Crook
e4bdd68c70 Bug 1981 - Mac: Background of pan/gain sliders wrong color in Light theme. 2018-09-19 16:48:52 +01:00
James Crook
e724ef0793 Bug 1970 - Missing tick marks in Timeline 2018-09-09 12:33:10 +01:00
Paul Licameli
af276ac4f9 Now implement scrubbing default to unpinned, see commit ac1017e...
... This was motivated by punch and roll recording:  it appears most convenient
to pin the head for recording purposes, and drag it near the right, but when
stopping and finding the splice point for the correction, it is better to
scrub unpinned.
2018-08-31 10:46:08 -04:00
James Crook
41959d4d54 Bug 1952 - Windows: Timer Record - debug failure msg
Now we show "11:07:29 +" for a time 100 years, 11 hours, 7 mins and 29 seconds in the future, rather than ASSERTing.
The + should probably be mentioned in the manual.  "In the countdown, times more than 24 hours ahead aren't shown fully.  A '+' sign after the time indicates that it is more than a day ahead."
2018-08-29 15:14:28 +01:00
Paul-Licameli
932734c89a Windows: don't crash if double-clicking on ruler during playback 2018-08-12 14:43:45 -04:00
Paul Licameli
04a69f0a4c Bug1931 -- Dbl-click ruler in Windows shouldn't violate assertion...
... This change isn't needed for Mac, but is harmless there.
2018-08-12 14:16:16 -04:00
Paul Licameli
3f1d9ab8c1 P & R recording: change color of pin button, as for play indicator 2018-08-11 00:26:34 -04:00
Paul Licameli
c95532012a Correctly update hot zones for quick-play cursor at button up 2018-08-10 12:05:25 -04:00
James Crook
3d6f3f1866 Fix our custom NumericText controls are scrambled in RTL layout.
Fix is to force them to be LTR (for now).
2018-08-09 19:01:45 +01:00
Paul Licameli
2472b128d3 Fix compilation of EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT 2018-08-08 17:08:54 -04:00
James Crook
0fe2659a7b Bug 1916 - Play at Speed - scrub widget appears unnecessarily 2018-08-08 17:59:18 +01:00
James Crook
0c73bc1356 Bug 1897 - Export corrupts/clears the Recent Files list 2018-08-07 15:53:09 +01:00
Paul Licameli
22f85f244b Bug1917: TrackPanel should keep focus after click or drag...
... though ruler won't, and if you start to drag in TrackPanel but abort it
with the ESC key, that too returns focus
2018-08-07 10:42:38 -04:00
Paul Licameli
27dc8ffead Draggable pinned play head, double click to re-center 2018-08-06 21:58:42 -04:00
Paul Licameli
2c28af05e8 Don't hit any TrackPanel or Ruler cells when mouse is out of window 2018-08-06 21:52:46 -04:00
Paul Licameli
7cfda551dd Move scrub click handling into a UIHandle, eliminate OnMouseEvents...
... And the one-shot hack can be simplified away.
2018-08-05 17:18:25 -04:00
Paul Licameli
153eb63b3e Rest of quick play mouse handling is invoked from UIHandle...
... and ESC key aborts the drag of play region
2018-08-05 17:18:25 -04:00
Paul Licameli
9491605cfc CellularPanel handles save/restore of focus for clicks in ruler...
... This lets the ESC key really work to abort drags
2018-08-05 17:18:25 -04:00
Paul Licameli
c85d2cdfa0 UIHandle objects now implement the context menus for the Ruler 2018-08-05 17:18:25 -04:00
Paul Licameli
0ae7f55fea Manage showing and hiding of quick play guide in CellularPanel base 2018-08-05 17:18:25 -04:00
Paul Licameli
af17e1ff95 Quick-play handle object manages lifetime of SnapManager 2018-08-05 17:18:24 -04:00
Paul Licameli
a70e2284b0 Manage ruler status messages and tooltips in CellularPanel base class 2018-08-05 17:18:24 -04:00
Paul Licameli
ba4ae4f7bd Manage ruler cursor changes in CellularPanel base class 2018-08-05 17:18:24 -04:00
Paul Licameli
ce48ac6307 Enable hit tests; let base class manage capture & release of mouse...
... also make popup menus at right up, not down, for consistency with other
popup menus in TrackPanel

Base class also does the event propagation "hack" for ScrubPoller
2018-08-05 17:18:24 -04:00
Paul Licameli
a853b7a3b4 Skeletal hit test and handle objects for quick play and scrubbing 2018-08-05 17:18:23 -04:00
Paul Licameli
bccb135e30 AdornedRulerPanel inherits from CellularPanel -- hit testing, still to do 2018-08-05 17:18:23 -04:00
James Crook
d3e6e92440 Fix Sizer Error. 2018-08-05 21:34:23 +01:00
Paul Licameli
aeece118e8 Rewrite the handling of quick play indicators...
... All updates of position are done in DoGetRectangle().  Ruler need only
expose one function, DrawOverlays().

Don't redraw indicators twice when dragging (hiding and showing again), making
some flicker.  Just do one update.
2018-08-04 15:35:36 -04: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
0dddcf44cb Some uses of wxWindowRef, a weak pointer that won't become dangling 2018-08-01 22:49:37 -04:00
Paul Licameli
5f27ae905c Changed misleading terminology in scrubber...
... It was confusing that HasStartedScrubbing() could be true
while also not IsScrubbing()
2018-07-29 14:20:11 -04:00
Paul Licameli
b33d3516f0 Rename a function in AdornedRulerPanel...
... Avoid confustion of "capture" meaning recording, with "capture" of the
mouse during drag
2018-07-29 14:18:08 -04:00
Paul Licameli
98a72acfb8 Remove unnecessary moves of return values 2018-07-24 21:25:22 -04: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
James Crook
6325b443d6 Possible fix for Bug 42 (Timer Record does not stop, moonphase)
This possible fix is based on the idea that YieldFor is flaky, and is holding up events that we SHOULD process.
Therefore we process ALL events, not just some, and we do two yields, in case we are getting behind on the queue.
2018-07-22 20:13:15 +01:00
James Crook
2115e9b5ac Play at speed pop-up dialog changes speed dynamically too.
In fact all the slider pop up dialogs now dynamically change their parent's value.
2018-07-21 18:20:14 +01:00
Paul Licameli
70f27d41d3 Rewrite AdornedRulerPanel with one less friend 2018-07-06 21:11:48 -04:00
James Crook
356fdeba40 Show Pin/Unpin button in red, if recording. 2018-06-29 17:00:25 +01:00
James Crook
20178b15e1 Fix some 'declaration hides' warnings.
We were for example getting many of these:
\audacity\src\widgets\numerictextctrl.h(171): warning C4458: declaration of 'value' hides class member

MSVC2013 didn't warn about these, but MSVC2017 does.
2018-06-27 12:36:13 +01:00
Henric Jungheim
68b7330b69 Avoid MSVC trying to use wxTabTraversalWrapper's move ctor. 2018-06-26 06:53:47 -07:00
David Bailes
4221549ec9 NumericTextCtrl: fix minor bug with NVDA screen reader
Problem: with using up/down arrow NVDA reads the updated field twice.

Fix: remove generation of an unnecessary event.
2018-05-16 14:10:53 +01:00
David Bailes
a13e7191c4 Add an option to use a dialog to enter the name of a new label
Motivation:
1. The text boxes in the label track are not fully accessible for users of screen readers, and I don't think that they can be made to be fully accessible using the accessibility API used by wxWidgets. When such an edit box becomes the focus, this is not announced, and for NVDA users typed characters are not echoed.

2. Provides a work around for bugs 1778 (cannot type diacritics into text label), and 1804 (Windows: Labels do not accept IME (Chinese/Japanese) input).

Fix: Provide an option for a dialog for entering the name. The text box in the dialog is accessible for screen readers. On windows the text box receives wm_keydown and wm_char messages and so is a work around for bug 1804. Being a standard text box, it will presumably be a work around for bug 1778.

1. There is a new option in track behaviors: "Use dialog for the name of new label", which is off by default.

2. When using the commands "Add label at selection" and "Add label at playback position", when the dialog closes, focus is returned to the track which was the focus before the dialog opened. I think this is more convenient for users of screen readers.
2018-05-11 10:23:48 +01:00
Paul Licameli
a9e7a7e5d5 movable_ptr(_with_deleter) -> std::unique_ptr 2018-05-10 00:56:37 -04:00
Paul Licameli
b8a8712ba0 make_movable -> std::make_unique 2018-05-10 00:56:36 -04:00
Paul Licameli
7a0475e39f Remove most uses of AUDACITY_OLD_STD 2018-05-10 00:56:36 -04:00
Steve Daulton
0d5fb01c97 Can't call Fit() on (negative) wxDefaultSize
and SetSizeHints will call Fit()
2018-05-02 16:11:35 +01:00
James Crook
121fdc5703 Fix non-ASCII characters in wxLogDebug
The LogDebugs aren't needed now, as we can get the info via Scripting.
2018-04-15 15:09:15 +01:00