1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-16 08:34:10 +02:00

435 Commits

Author SHA1 Message Date
Paul Licameli
88c55c9687 remove a comment 2017-08-22 08:40:28 -04:00
James Crook
ab9bb2ae29 Bug 1532 - Toolbars fail to arrange correctly when maximizing or restoring main window size
Layout() needs to be done before and after toolbar packing.  See reasons in comments in revised code.
2017-08-17 20:44:49 +01:00
Paul Licameli
95560ad510 Bug1676, more: don't bother caching the first visible track...
... because the sequence of update of the cache and the use of it were wrong
on Linux, resulting in wrong display when dragging tracks.  Finding the
first visible track is too cheap to justify this memoizing of it.

Commit 8eb64f5f71d19a4c634cb8312fd1fa93ac75f17f was not sufficient to fix
the bug, but I think remains necessary.

It feels good to throw away this needless complication.
2017-08-07 18:51:06 -04:00
James Crook
eee58d9449 Bug 1292 - Enh: Zoom Normal (Ctrl+2) may move selection off screen
Selection is now centred after any zoom, if it will fit on screen.
2017-08-05 17:46:52 +01:00
Paul Licameli
a5594537bb "/DefaultOpenPath" is now in only one place 2017-08-03 08:05:22 -04:00
Paul Licameli
e3efc98a55 Remove the last defaulting to cwd 2017-08-03 08:05:22 -04:00
Paul Licameli
5d48e96942 Where FileSelector was used, default to Documents not cwd; save prefs 2017-08-03 08:02:33 -04:00
Paul Licameli
a9d4c2c05b Defaulting of file paths to Documents is defined in just one place 2017-08-03 08:02:19 -04:00
Paul Licameli
3e39771c53 MIDI imports, like other imports, are put into recent files list 2017-08-02 11:19:27 -04:00
Paul Licameli
fa42d4f661 Some null checks, might be needed when project is closing 2017-07-25 18:00:38 -04:00
Paul Licameli
2f178db700 Revert "Bug 1432 another case..." It's not safe for Windows...
... It made it possible to get into a state where some of the toolbars
stopped responding.

This reverts commit 67b858ed3ff1c6c84fdb1b505e6ccb882471d6f6.
2017-07-23 17:32:01 -04:00
Paul Licameli
67b858ed3f Bug 1432 another case...
...Mac, drag toolbar with the focus on or off dock, won't lose focus.

You still lose focus when dragging another bar to undocked.
2017-07-23 15:48:50 -04:00
Paul Licameli
503f3548a1 Bug1432 partial, keep correct focus in more cases, not all...
Works by using the newer and better logic of ToolManager for remembering which
window to focus.

It seems, at least on Windows, that when the toolbar with the focused control
is docked after the end of a docking (of itself or another bar), then focus
remains.

If the bar with the focus is undocked and another bar docks or undocks, focus
is still lost.
2017-07-23 14:57:19 -04:00
Paul Licameli
f0de38dec1 Scanned for bad naked new; found none; changed comments, used safenew 2017-07-23 09:35:01 -04:00
Paul Licameli
e61e60ad25 Update TrackPanel cursor for unmoving mouse, changing display...
... This fix might not be exhaust the possibilities.  Some examples covered:

When an undo state is pushed.  For instance:  Hover over bottom of sole track
for resize cursor, then Shift+C to delete it.  (Cursor change used to happen
at Shift key up, now sooner.  Maybe your shortcut does not include Shift.)

When an undo state is modified without a push.  For instance:  hover over right
edge of selection.  Hit Shift+Ctrl+A to remove the selection.  (Again, change
cursor before keys up, and even if no modifiers in the shortcut.)

When scrollbars change for any reason, such as pinned play or Shift+scrollwheel.
(Clip boundaries may pass your mouse.  Cursor change and also snap lines come
and go.)
2017-07-21 10:09:44 -04:00
Paul Licameli
69d6f36ef6 Bug1696: Drag-and-drop should import Midi file as a Note track 2017-07-20 13:34:21 -04:00
Paul Licameli
cfeb7bced1 Zoom to fit after any import (labels, audio, or midi) 2017-07-19 22:10:22 -04:00
Paul Licameli
8bf3791edf TrackList constructed only by factory function, to avoid more trouble 2017-07-14 21:55:32 -04:00
Paul Licameli
4ec6baf059 Cursor handling always relies on current mouse state, not remembered 2017-07-12 13:03:13 -04:00
Paul Licameli
16645f6b95 Back-pointer from Track to TrackList is weak (fixes crashes) 2017-07-10 11:48:11 -04:00
Paul Licameli
3a8280c562 Distinguish TrackPanelMouseState from TrackPanelMouseEvent...
... Let cell hit tests, and handle preview, know states only, not transitions.

Cell hit tests are passed a mouse state that does not always match the current,
but anticipates the button click to come; usually left, but if the Control
[sic] key on Mac is down, then right.

Thus, pressing and releasing Mac Control in multi-tool switches in and out of
the magnifier cursor.
2017-07-09 06:38:55 -04:00
David Bailes
4de3264d60 Remove Track: improvement for screen readers.
After a focused track is removed by pressing shift+c, the new focus is often not correctly read by screen readers, especially nvda.
The fixes:
1. In AudacityProject::RemoveTrack, set the new focus after the track has been deleted, rather than before. (If it is set before, then the childId can be wrong after the track is deleted.

2. In TrackPanelAx::SetFocus, send an object focus event if there are no tracks. This is so the focus is correctly set when there are no tracks after a track has been deleted.

3. In TrackPanelAx::GetFocus, given the change in 2. , only call SetFocus if the focus has changed, to avoid sending unnecessary focus events. (Screen readers are normally tolerant of this, but Window Eyes became a bit too talkative.)
2017-07-04 14:41:00 +01:00
Gale Andrews
7c4aa4cfa0 Colon before recording space value, per Wording 2017-07-01 02:33:05 +01:00
David Bailes
69ab49c3a4 Fix for Audacity crashing when running Jaws on Windows 10 1703
Problem: On Windows 10 1703, with the Jaws screen reader running, additional paint messages are sent to Audacity compared with when Jaws is not running. My assumption is this is probably a Jaws bug. In particular, when a project is closed, ToolDock::OnPaint, and AdornedRulerPanel::OnPaint are called.

Fix: changes ensure that these OnPaint functions can be called without causing a crash.
2017-06-28 10:42:13 +01:00
Paul Licameli
2806b509e2 Fix crashes in repainting, and update first visible track correctly 2017-06-26 15:20:35 -04:00
Paul Licameli
4ac40d12c0 Use weak_ptr in track selection state 2017-06-25 13:35:16 -04:00
Paul Licameli
750fc34fac Clarify what the TrackList events are for...
Also fixes this bug:

Vertical rulers did not narrow as needed after deletion of the lowest track.
2017-06-25 03:00:28 -04: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
770b3b52ef TrackPanel no longer implements the selection tool or MIDI stretch...
This one's big!

Also restores the effect of ctrl-click on label track.

Also adds ESC key handling for the Stretch.
2017-06-15 08:54:59 -04:00
Paul Licameli
8ef5f696d8 Define BackgoundCell, move some things into it 2017-06-15 08:21:41 -04:00
Paul Licameli
6b5c5a0335 More simplifications by use of SelectionStateChanger 2017-06-11 11:21:36 -04:00
Paul Licameli
d834bcdbd1 Move some command handlers for selection and focus out of TrackPanel 2017-06-11 11:03:28 -04:00
James Crook
7341bff9e0 Disallow AutoSelect on dangerous commands.
Commands flagged with NoAutoSelect will not auto select, even if the user has asked for it.  This is used for Cut and 3 different kinds of delete.  We later might extend it to fades and repair.
2017-06-09 22:36:05 +01:00
James Crook
adc7312954 Auto-Select off by default.
I've implemented three states for what to do if no selection:
0 - Grey out (no longer used)
1 - Auto-select
2 - Give the warning message and try again.
2017-06-09 19:40:28 +01:00
Paul Licameli
a33ec61ddf Move code for toggling spectral selection (Q key) out of TrackPanel 2017-06-08 12:48:28 -04:00
Paul Licameli
5395f253bf Reviewed use of Track::GetY; don't use in NoteTrack; fix off-by-1's 2017-06-04 00:15:29 -04:00
James Crook
eaec68a014 Bug 1642 - (Windows) Adding a shortcut or toggling Extra Menus causes ENTER on dropdown to open new project 2017-05-15 23:25:54 +01:00
James Crook
2f10c1ce25 Bug 1532 - Toolbars fail to arrange correctly when maximizing or restoring main window size 2017-05-14 16:08:02 +01:00
James Crook
35fe313f30 Smarter SelectAllIfNone
Now if there is a time selection and no tracks selected, then just select all the tracks, preserving the time selection.
This helps in the case a user has made a time selection, e.g. with selection toolbar, and then clicked on track panel, losing the selection of tracks but preserving the time selection.

I also shortened some repeated cut-and-pasted code.
2017-05-11 22:36:55 +01:00
James Crook
57b200884e Bug 1639 - Left and Right arrow keys don't work in docked toolbars, if bound to some action.
This fix works by detecting whether the focus window is the TrackPanel, in which case all keys are handled normally.  If it isn't the TrackPanel, then the problematic keys do not get sent to our own CommandHandler and proceed on to wxWidgets.

A problem that then follows is that the menu accelerators (which normally don't get a look in) may then convert the event to a menu event and stop it going any further.So it does not get to the focus window.

The fix/workaround for that is to NOT provide accelerators for up, down, left and right arrow in the menus.  I'd much rather be able to turn off those accelerators completely, yet still show them to users as hints.
2017-05-01 19:04:49 +01:00
Paul Licameli
94d8c2cff7 fix the previous 2017-04-24 13:13:14 -04:00
Paul Licameli
967e1fcf02 More exception safety for selection states of tracks 2017-04-24 13:08:31 -04:00
James Crook
fefc856901 Update slider in tracks on theme change. 2017-04-05 20:16:12 +01:00
James Crook
028ed19d90 Sync with DarkAudacity 2017-04-02 23:07:13 +01:00
Paul Licameli
e1473dfe76 void return, not boolean success, from some Track virtual functions...
... The return codes were mostly ignored anyway, and exceptions will be thrown
instead.

It seems there was also confusion whether the return values of Track::Paste
and Track::SyncLockAdjust were to indicate success or indicate whether there
was any change.  No matter now.
2017-03-31 18:26:52 -04:00
Paul Licameli
6c4cf46c06 Move mute and solo state into PlayableTrack 2017-03-29 13:45:08 -04:00
Paul Licameli
b2ab9b5087 Simplify MixerBoard.cpp using the PlayableTrack type 2017-03-29 13:42:51 -04:00
windinthew
e2a7282690 Fix wording issues reported on Wiki
No ellipses in title bar of file open/import dialogs
Auto Recovery Discard dialogs say only recoverable projects are discarded
Capitalised button in Dependency dialogue per MS guidelines.
2017-03-27 05:36:10 +01:00
Paul Licameli
1552ff188f When opening a file into a new project, delete the project on failure 2017-03-21 14:11:28 -04:00
Paul Licameli
7159966eb4 Comment that cache-filling should be no-fail (we don't use it anyway) 2017-03-21 14:11:26 -04:00