1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-17 08:30:06 +02:00

495 Commits

Author SHA1 Message Date
Paul Licameli
014d5ab93c Type safety in the use of command flags, and make enum wide, allowing more bits 2016-05-05 20:02:13 -04:00
Paul Licameli
c9b5f6bc37 Fix some display problems in scrolling play: mitigate scrollbar flashing, and...
... modified click on the transcription toolbar button leaves the button with
the correct appearance.
2016-05-03 23:37:59 -04:00
Paul Licameli
f48694ef47 Move the code that scrolls during scrub out of Scrubbing.cpp 2016-05-03 22:43:19 -04:00
Paul Licameli
2a257fc9bf Move a few steps in the construction of TrackPanel and AdornedRulerPanel 2016-04-30 22:48:54 -04:00
Paul Licameli
9ab0e42f29 Control scrub with motion, click, drag, wheel almost anywhere in main window...
... if the event is not handled and skipped by sub-windows first, such as for
toolbar button clicks.

(But track panel clicks are skipped even after doing something, so they may
also cause seeking besides other responses.  So click can seek AND set cursor.)

This is meant to make drag to seek and wheel for change of speed easier,
without needing to keep the mouse in the narrow time ruler.

Also lets you click in the ruler, then move in any direction, and not miss the
motion event that should start the scrub playback.

The event handling is a bit of a hack, using propagation.  It does not use
capture.
2016-04-26 12:12:06 -04:00
Paul Licameli
d34715d6ad Various other drags could crash Mac debug build if you option-W. Fixed too...
... And I think this fix is now exhaustive.
2016-04-25 01:49:54 -04:00
Paul Licameli
bc80ffe766 Windows build fixes 2016-04-24 01:12:42 -04:00
Paul Licameli
4fba13bd2a Improved behavior of scrubbing menu items: Checkmarks, and toggling behavior. 2016-04-23 15:07:45 -04:00
Paul Licameli
0c6a358666 Bug1236: Fix drag and drop of imported files onto main window, for Mac...
... As noted in Bugzilla, it was not broken for dragging onto the toolbar icon.

I believe the bug was introduced at bdcefb4850d2d9ab91c403984edc42a1bc01aa51
2016-04-23 09:41:01 -04:00
Paul Licameli
4fc4f529a0 Bug1053: Meaningful status bar messages for scrubbing 2016-04-18 19:28:56 -04:00
Paul Licameli
8b7ae748a3 Scrub speed as overlay; scrub event handling details out of TrackPanel.cpp 2016-04-18 14:31:36 -04:00
Paul Licameli
1722ee9e32 Define TrackPanelOverlay, use it to reimplement play indicator and cursor...
... but scrub speed display is disabled
2016-04-18 14:31:36 -04:00
Paul Licameli
5d28a05702 RAII object for pausing and unpausing OD manager 2016-04-13 17:57:10 -04:00
Paul Licameli
1033095696 RAII for locking of WaveTracks 2016-04-12 00:55:59 -04:00
Paul Licameli
f9da767cbd Remove a friend declaration from Project, privatize a pointer member...
... and make implementation of that pointer a smart one.
2016-04-11 14:42:57 -04:00
Paul Licameli
f00144e9a5 Sweep for filename copying: various 2016-04-10 22:26:28 -04:00
tip2tail
6686d0e314 Introduce further enhancement of the Timer Recording process:
* Disk space warning if the recording potentially will not fit in disk space available.
* ProgressDialog enhancements that allow the Stop/Cancel button to be confirmed and the elapsed time to be hidden.
* Messages enhanced to clearly show the actions being taken.
2016-04-09 14:23:28 +01:00
Paul Licameli
3481e678ea Manage the members of CommandOutputTarget with smart pointers 2016-04-06 16:06:12 -04:00
Paul Licameli
e8ad90b3c9 Manage Commands and CommandOutputTarget objects with smart pointers 2016-04-06 16:05:28 -04:00
tip2tail
4956ce3e68 Changes as per James's advice, allow Timer Recording to be used when project is empty if user has disabled warnings in prefs. Also resolved a further message whitespace issue. 2016-03-31 22:26:26 +01:00
tip2tail
aa5ffe99a7 Timer Recording Enhancements to allow Automatic Save and Export after
recording.  Also allows for additional options to be carried out after a
successful timer recording such as Exit, Retsrat and Shutdown.
2016-03-30 20:42:59 +01:00
Paul Licameli
a6ca36cdab TrackList holds smart pointers to tracks, Add() only takes rvalue refs to such 2016-03-26 15:41:31 -04:00
Paul Licameli
7d1ea7b82e Use a static unique_ptr for the global clipboard 2016-03-26 15:41:30 -04:00
Paul Licameli
c5a70126eb TrackList always deletes tracks on destruction or when cleared 2016-03-26 15:41:29 -04:00
Paul Licameli
824ff647f8 Import functions return containers of smart pointers to new tracks 2016-03-26 15:41:27 -04:00
Paul Licameli
bc5519a0e2 TrackList::Remove and TrackListIterator::RemoveCurrent always delete the track 2016-03-26 15:41:26 -04:00
Paul Licameli
3015a9c8d9 Track cut and copy functions return a unique_ptr argument...
... Because they are factory functions.
2016-03-26 11:50:13 -04:00
Paul Licameli
5ef4dd46a5 TrackFactory functions return std::unique_ptr, although some callers...
... release() them for now.
2016-03-26 11:50:12 -04:00
Paul Licameli
f42a953752 Track duplication methods return unique_ptr, although some callers...
... simply release() them for now.
2016-03-26 11:50:10 -04:00
Paul Licameli
43790cfa56 std::vector for wave track pointers; remove deprecated TrackList function; ...
... and some more uses of const
2016-03-01 20:54:48 -05:00
Paul Licameli
dfc84d030c Fix warnings for out-of-order initializers, with in-class member initializers 2016-02-26 14:56:30 -05:00
Paul Licameli
60bcd7aea2 Fix warnings for unused variables and functions 2016-02-26 14:56:26 -05:00
Paul Licameli
7824e94030 Harmlessly qualify classes as final (or explicitly comment not)...
... Should have no effect on generated code, except perhaps some slight faster
virtual function calls.  Mostly useful as documentation of design intent.

Tried to mark every one of our classes that inherits from another, or is a
base for others, or has abstract virtual functions, and a few others besides.
2016-02-24 20:58:30 -05:00
Paul Licameli
88eeebcb8b Undoing and redoing of Tags...
Use reference counting (in std::shared_ptr) to avoid replicating Tags with each
Undo state.
2016-02-24 19:25:39 -05:00
Paul Licameli
e12a060751 Define UndoState 2016-02-24 19:10:40 -05:00
Paul Licameli
cd9bd79d83 Use an enumeration for UndoManager::PushState 2016-02-24 19:10:35 -05:00
Paul Licameli
73ced7b93f Remove UndoManager.h from other headers 2016-02-24 19:10:34 -05:00
Paul Licameli
9bf098c7d9 Sweep unnecessary wxString copies: rest 2016-02-23 02:15:56 -05:00
Paul Licameli
8e995d66d0 Avoid extra indirection in FormatList 2016-02-19 10:59:51 -05:00
Paul Licameli
1c07741d57 Sizers are owned by wxWindow objects when added, so use safenew, or...
... use unique_ptr in the interim between building them and adding.

This checks eliminates some naked news, which were not paired with deletes.
2016-02-18 18:58:38 -05:00
Paul Licameli
4d78e353c3 Revert "sizers"
This reverts commit 84c0a0b6663a1210be502a76ab9c48dd330b3919.
2016-02-18 14:50:52 -05:00
Paul Licameli
84c0a0b666 sizers 2016-02-18 02:54:50 -05:00
Paul Licameli
dbaa811577 Stack-allocate where possible! ...
... Removed many unnecessary naked news and deletes.
2016-02-17 18:15:57 -05:00
Paul Licameli
55d85f1b25 Remove more uses of at(); use a std::vector of bare pointers, not wx array 2016-02-16 09:35:03 -05:00
Paul Licameli
df6a7c5464 More uses of safenew for classes we derive from wxWindow classes...
... Also removed some unnecessary deletes of widgets that are managed by parent
windows
2016-02-14 20:39:28 -05:00
Paul Licameli
3f237daddc Use macro safenew for many allocations of wxWindow subclasses 2016-02-14 20:20:19 -05:00
Paul Licameli
6052b5f9be Throw by value, catch by reference: don't use pointers...
... that's what the better books on C++ recommend.
2016-02-14 19:36:17 -05:00
Paul Licameli
7c4c45a0d5 "new"->"NEW" in comments, easier to find remaining naked operator new 2016-02-14 18:52:41 -05:00
Paul Licameli
56e7653343 "delete"->"DELETE" in comments, easier to find remaining naked operator delete 2016-02-14 18:50:45 -05:00
Paul Licameli
51fbc697cf One less indirection accessing Sequence::mBlock 2016-02-03 22:17:08 -05:00