Commit Graph

352 Commits

Author SHA1 Message Date
Paul Davis f92d821a72 working track drag-n-drop, re-picked from a 2nd implementation on a branch 2024-05-05 15:09:34 -06:00
Paul Davis 51d2b3329c more work catching button release after track drag 2024-05-05 15:03:12 -06:00
Robin Gareus bd4d6b4cba
Ellipsize inactive track-header name-label #9674 2024-03-21 17:44:33 +01:00
jean-emmanuel 404a206960 time axis view: remove selected track inner shadow / border (less fuzzy render, and allows using a more contrasted color for strip selection border in mixer view without messing up the time axis view) 2024-01-20 14:44:30 +01:00
Paul Davis 1b76e90246 when drawing range selection rect, use exclusive end semantics 2023-11-03 15:11:38 -06:00
Robin Gareus d6144ab8cf
partially revert db97db2513 - allow to activate sub-menu with LMB 2023-06-04 16:44:18 +02:00
Robin Gareus db97db2513
Activate track-header context menu items with RBM
Popup menu should handle the button that was used
to show the popup menu.
2023-06-03 15:13:04 +02:00
Robin Gareus dd542b8f4d
Use ARDOUR::PlaylistSet instead of local typedefs 2023-04-06 02:13:51 +02:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
David Robillard bdacfb8724 Fix invalid use of Doxygen "@param" command
This is never for inline references to parameters, only for starting parameter
documentation blocks.  The "@p" command is for this, although unfortunately
Doxygen doesn't actually do anything with it and it's just an alias for code
text.
2022-10-30 20:44:28 -04:00
Paul Davis 254297355e increment/decrement name changes ... out with old in with the new (gui) 2022-10-07 17:30:45 -06:00
Paul Davis 45e21de209 implement and adopt new conventions for AudioClock use
The class now has two separate methods for setting a duration or a point
value. They MUST be used appropriately, because their behavior is different.

When ::set_duration() is used in timecode mode, an extent (inclusive-end
length) is shown rather than a length.

Some objects, such as the TimeInfoBox, now deliberately shown an inclusive end
for their "end" clock, but this not universally followed, pending more feedback
from users and investigating of conventions in other DAWs.
2022-10-07 16:24:56 -06:00
Mads Kiilerich 7f649efd42
gtkmm: use set_can_focus() instead of deprecated Gtk::Widget::set_flags(CAN_FOCUS) 2022-04-08 21:11:06 +02:00
Paul Davis a3c5db5d51 ensure that non-drag track height changes cause a call to Editor::redisplay_track_views() 2022-04-05 20:52:10 -06:00
Robin Gareus 97fe05e4de
Improve GUI HiDPI support
* scale default track heights
* scale region-gain, automation lane control points
* scale max. MIDI note lane height
2022-01-29 22:33:07 +01:00
luz paz 364f2f0788 Fix typos in gtk2_ardour/ directory
Found via `codespell -q 3 -S *.po,./share/patchfiles,./libs -L ba,buss,busses,doubleclick,hsi,ontop,ro,seh,siz,sur,te,trough,ue`
2022-01-26 12:35:38 -05:00
Paul Davis aa56f4a16e GUI: moving along with timeline type conversion 2021-08-13 12:51:29 -06:00
Paul Davis 5b2a435e02 getting editor_drag.cc to compile 2021-08-13 12:51:29 -06:00
Paul Davis 7433bc27e0 intermediate, unfinished snapshot of ongoing timeline types work on GTK GUI 2021-08-13 12:51:29 -06:00
Paul Davis fe5c56ecca remove pointless line of code
If _size_menu was non-null, we just return it. Ergo, it was already null when we reached
this line, which makes calling delete on it completely pointless
2021-05-13 10:29:19 -06:00
Paul Davis 798b968610 do not test for gobj() being null when deciding if _size_menu exists
This test was added because of confusion about when/where dynamically constructed menus
were constructed and deleted. This should be consistent now, and this additional check
(on top of _size_menu itself being null) should be unnecessary
2021-05-13 10:29:19 -06:00
Paul Davis 95c674e3be rationalize where a TimeAxisView::_size_menu is detached from its parent menu
This happens before the parent menu is deleted and rebuilt
2021-05-13 10:29:19 -06:00
Robin Gareus 5c579ed52d
Remove unused #include<> (1/2)
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:43:28 +02:00
Robin Gareus 2a011e19cb
Update AxisView API: name_label is owned by the axis 2020-12-08 00:07:51 +01:00
Iurie Nistor 4e6a15938c
double click to expand / contract the track 2020-07-12 16:09:07 +02:00
Robin Gareus 68082abc22
Fix track-header visibility for inactive tracks
This supersedes 0708cdb6b4, an explicit `name_label.show()`
is not needed. The inactive label was missing an explicit call
to show.

This also fixes MIDI track MIDNAM Selector visibility
2020-07-10 18:16:18 +02:00
Paul Davis 8f8099d8cc respond to changes in UI ellipsize track name mode 2020-07-01 12:17:43 -06:00
Paul Davis 94c4c7b16e use ellipsizing mode in track headers 2020-07-01 12:17:43 -06:00
Ben Loftis 8fced29372
Visibility fixes for detached editor and Show-Sends buttons
Detaching the editor would cause the inactive_name labels and
to mixer-strip elements to appear (due to show_all).
2020-03-31 01:37:38 +02:00
Robin Gareus 81c3bf175a
Keep track/bus number visible when disabling track 2020-01-22 01:45:18 +01:00
Ben Loftis d8d737adc4 Make it more obvious when a track is Inactive
Inactive tracks will now hide all controls and display only the track name
 in parenthesis.

Color-change is not sufficient by itself to distinguish an inactive track
 from an active one  (consider the case of just 2 tracks...)
2020-01-20 16:03:22 -06:00
Robin Gareus 065c09e418
Rweak selection+color semantics 2019-09-26 19:35:31 +02:00
Robin Gareus 1f05baa881
Tweak deletion, emit CatchDeletion() only once
Parent class d'tor runs after derived class d'tor. By the time
~TimeAxisView() is called, the actual object has already been
deleted and dyanamic_cast<RouteTimeAxisView*> or
dynamic_cast<AutomationTimeAxisView*> will fail.

CatchDeletion() needs to be emitted from the actual d'tor of the object.

There are currently three non-virtual TAVs:
 * RouteTimeAxisView
 * AutomationTimeAxisView
 * VCATimeAxisView

The first two already directly emit CatchDeletion(), there's no need to
call it again from ~TimeAxisView().
2019-08-24 18:42:51 +02:00
Robin Gareus 4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
Paul Davis 81dbb977c5 fixups for rebase of show-region-name option 2019-05-29 17:37:48 -06:00
Paul Davis 8463fb728f add option to show/hide region names 2019-05-29 15:24:40 -06:00
Robin Gareus c285229423
Follow up f5bc64d00e - add gap to range-selection rect as well 2019-04-18 16:46:44 +02:00
Robin Gareus b799c05c1a
Found another one -- does this ever end? :)
Undo s/sample/frame/ replacement.
2019-04-12 22:23:48 +02:00
Robin Gareus 9f1293bfe5
Tab to prev/next name-entry: skip only rec-armed tracks 2018-12-04 22:07:27 +01:00
Robin Gareus a593a81db3 Fix size-request call
use  Requisition Gtk::Widget::size_request () 	const;
and not deprecated
void Gtk::Widget::size_request 	(const Requisition&);

Found by PVS-Studio - https://www.viva64.com/en/b/0540/
2017-11-23 09:53:09 +01:00
Paul Davis 997f70d9cb switch from std::auto_ptr<> (deprecated) to boost::scoped_ptr<> 2017-10-26 15:41:47 -04:00
Paul Davis ea5fa64c0b manually fix up various cases where Gtk:Frame foo_frame had been changed to foo_sample 2017-09-18 14:59:11 -04:00
Paul Davis 30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Robin Gareus a3dd948c02 Allow to rename VCAs in the editor 2017-07-28 02:12:19 +02:00
Robin Gareus 3d50563620 Properly propagate TAV TimeSelection 2017-07-21 15:49:28 +02:00
Robin Gareus 92a1d3619b Const'ness where const'ness is due 2017-07-19 22:15:22 +02:00
Robin Gareus 601c317d70 Clean up library inheritance (colors.h, utils.h)
make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.
2017-07-17 21:06:04 +02:00
Robin Gareus eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
Robin Gareus b5e9451bc7 Remove unused sources & includes 2017-07-17 21:06:04 +02:00
Robin Gareus f6e182b937 Move Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00