1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-04 09:39:42 +02:00

8865 Commits

Author SHA1 Message Date
Paul Licameli
bf82eaa4c6 Rewrite time ruler reusing CellularPanel; ESC aborts drags in it...
... And some improvement in prompt showing and hiding of the quick-play
guide line
2018-08-05 17:18:26 -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
71005cf125 Add File->Reset Menu Item (#ifdeffed out)
An compile-time optional menu item for checking the ResetProjectToEmpty() functionality.
2018-08-05 21:34:24 +01:00
James Crook
9357c90b43 Bug 1859 - Macros on files - Save Project causes overwrites. thus loses data
AudacityProject::Save() is now batch mode sensitive, and if in batch mode (and not overwriting) will save without prompting.
The loop for applying macros to multiple files now also clears down the project, using the new function ResetProjectToEmpty().
2018-08-05 21:34:24 +01:00
James Crook
d3e6e92440 Fix Sizer Error. 2018-08-05 21:34:23 +01:00
Paul Licameli
85074c3387 Factor base class CellularPanel from TrackPanel...
... The base class has all the logic for managing hit test handles and
context menus and changes of cursors and status messages as the mouse moves.

CellularPanel has no knowledge of tracks.  TrackPanel does, supplying the
policy for dividing the panel area into cells.

AdornedRulerPanel will be rewritten to reuse this base class with another
policy.

(And the notorious TrackPanel.cpp now becomes several hundred lines shorter!)
2018-08-05 14:55:27 -04:00
Paul Licameli
0fc4747742 CellularPanel handles leave and capture loss like other transitions 2018-08-05 14:55:27 -04:00
Paul Licameli
ff98ca5a32 CellularPanel saves and restores focus for each click-drag-release...
... while the project makes note of which window has temporarily given up the
focus; and TrackPanel can detect that, so that the yellow border of the focused
track is still drawn while the panel "lends" the focus.

Why do all this?  So that, when the ruler is another CellularPanel, ESC key
will work to abort drags in the ruler, but TrackPanel appearance won't change
during the drags.
2018-08-05 14:51:58 -04:00
Paul Licameli
7cbe85facf Add CellularPanel::LastCell 2018-08-05 14:34:56 -04:00
Paul Licameli
4e1a80f5ac Move CellularPanel data members into a state structure out of the .h file 2018-08-05 14:33:48 -04:00
Paul Licameli
f6609e5ffb Move class CellularPanel into its own files 2018-08-05 14:02:55 -04:00
Paul Licameli
7f84e71324 Context menu handling is also in CellularPanel 2018-08-05 14:02:55 -04:00
Paul Licameli
c08c17eafa Add a method to find the rectangle of a given cell...
... Cells are not responsible to remember that; the cells' container determines
that.
2018-08-05 14:02:55 -04:00
Paul Licameli
062066eb79 Split base class CellularPanel out of TrackPanel...
... To be reused with the Ruler too.

The new base class does all the handling of hit tests on cells and managing
of UIHandles, and keyboard events and focus.

It has no knowledge of tracks -- that all resides in overriding functions in
TrackPanel.

Still to do, of course, is reorganizing drawing with callbacks to the cell
objects.
2018-08-05 14:02:52 -04:00
Paul Licameli
d76777bef7 Each cell can define cursor, status, and tooltip in default of hit tests 2018-08-05 13:28:36 -04:00
Paul Licameli
98514194a4 ProcessUIHandleResult takes pointers to TrackPanelCell 2018-08-05 13:28:34 -04: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
Paul Licameli
7395e5acbd Remove pTrack from FoundCell; new function hides some casting 2018-08-04 15:35:36 -04:00
Paul Licameli
79067e43f0 ProcessUIHandleResult is a member function of TrackPanel 2018-08-04 15:35:36 -04:00
James Crook
c94df54157 Bug 1856 - Applying Macros to Files is no longer a batch process
This restores the 2.2.2 behaviour, with a subdirectory called 'cleaned'.  The problem was that 2.2.2 used special cases for MP3 Ogg and WAV exports, which were stripped out in favour of using the built-in Export command.  However, the differences in behaviour (prompting) between batch and non batch mode were not taken into account.
2018-08-04 19:16:32 +01:00
James Crook
9f7fa4e1f9 Bug 1914 - Enh: Clean install needed to update effect/generate/analyze/tools menu for changed plug ins
The original fix for this bug deleted pluginregistry.cfg.  That was judged to be too extreme.  This new modified fix updates pluginregistry.cfg, changing the Nyquist Prompt type and removing duplicated Sample Data Import/Export.  In future if we have further menu rearrangements of plug ins, we can make them using the same methods as in this fix.
2018-08-04 12:36:43 +01:00
James Crook
dcd9368af0 Don't load PluginTypeNone.
The code that did this was marked for removal with 2.1.1, and 2.3.0 is time to do so.
2018-08-03 19:11:57 +01:00
James Crook
233b1677dd Bug 1914 - Enh: Clean install needed to update effect/generate/analyze/tools menu for changed plug ins
This code now does the clean out of pluginregistry.cfg.
Nicer for the user would be to preserve the list of hand-added plug-ins.  But a clean restart is easier.
2018-08-03 19:08:40 +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
James Crook
3ccdde8fdb Bug 1912 - Play/Stop and Set Cursor no longer sets the cursor at the stopped play position 2018-08-03 17:16:31 +01:00
James Crook
d7346751c3 Bug 1900 - Sample Data Import/Export should both be in the new Tools menu
Now in tools menu and marked as generate.
2018-08-03 16:12:04 +01:00
James Crook
e670ee1e07 Bug 1903 - Sample Data Export has duplicate menu entries: Tools & Analyze
Now in tools menu and marked as analyze
2018-08-03 16:12:04 +01:00
James Crook
1192914460 Fix duplication of Nyquist Prompt.
Now just one Nyquist Prompt, and it's in the tools menu.
2018-08-03 16:11:44 +01:00
James Crook
ecd09a19de Preserve selection on exit from Nyquist prompt.
This is required, because AUD-DO could change the selection.
2018-08-02 16:51:23 +01:00
James Crook
37018181a1
Merge pull request #290 from Paul-Licameli/rewrite-aud-do
Rewrite commit 1bc0f0f without further changes to lib-src...
2018-08-02 09:16:27 +01:00
Paul Licameli
06eee27b9a Rewrite commit 1bc0f0f without further changes to lib-src...
... Reuse the external function registration added earlier in 2.3.0
development, for support of internationalization in Nyquist.

This way, we avoid making cyclic static linkage dependencies between the
library and the application.
2018-08-01 23:11:30 -04:00
Paul Licameli
0dddcf44cb Some uses of wxWindowRef, a weak pointer that won't become dangling 2018-08-01 22:49:37 -04:00
James Crook
703bf2b647 Merge branch 'scripting-with-nyquist' 2018-08-01 20:35:50 +01:00
James Crook
c21855bbca Change ";type tool" to not iterate through tracks or selection.
Also adds the options
;type tool
;type tool process
;type tool generator
;type tool analyze

These tools will appear in the Tools menu, but behave as their second argument (if any)
2018-08-01 20:32:30 +01:00
James Crook
1bc0f0f4d0 Make Nyquist support (AUD-DO)
Nyquist AUD-DO calls out to a new function that executes script commands, and returns results in a lisp string.
2018-08-01 20:32:03 +01:00
James Crook
b975956812 Add re-entrancy checks to Nyquist
These changes below are paving the way for aud-do:

Nyquist Effect now detects self reentrancy and skips reentry if so.
Nyquist Effect now detects if another effect has run during effect processing, and does not send Nyquist
output if so.

Neither of these preparatory changes have an effect in absence of AUD-DO (or other function
that allows Nyquist effect to call out to Audacity functions).
2018-08-01 20:31:03 +01:00
David Bailes
d554ea53d2 Fix Travis build
Which I broke with my last commit.
2018-07-30 11:58:16 +01:00
David Bailes
f123624806 Macro dialog: minor accessibility fixes
1. Set accessibility names for the buttons for applying a macro to the project or files. Note that although these names are not read by NVDA 2018.2, they will be read by NVDA 2018.3

2. Remove access keys from wxStaticText controls, as they do not work on this type of control.
2018-07-30 11:34:00 +01: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