Commit Graph

1273 Commits

Author SHA1 Message Date
Paul Davis e2e6274956 libardour: change API of Session::request_locate() to include "force" argument (GUI edition) 2022-05-27 18:49:23 -06:00
Paul Davis 399a5b3f25 convert use of operator* for tim::line types with ::scale(ratio_t) (GUI edition) 2022-05-27 12:47:44 -06:00
Robin Gareus b11f76d748
Do not select re-imported tracks
Stem-export defaults to use selected tracks. This retains
the selection, so focus remains. Repeat stem export will use
previously exported tracks if the selection is empty, or the
current selection (again).
2022-05-16 04:54:14 +02:00
Robin Gareus 8d4516228a
Update default time-domain logic
MinSec, CD-Frame, and Timecode grid should use AudoTime
2022-04-27 15:08:34 +02:00
Mads Kiilerich a86aa31747
gtkmm: use get_visible() instead of deprecated Gtk::Widget::is_visible() 2022-04-08 20:20:10 +02:00
Mads Kiilerich d52c727ec5
gtkmm: use get_mapped instead of deprecated Gtk::Widget::is_mapped() 2022-04-08 20:20:10 +02:00
Paul Davis ca22ba77e1 Constification: make Stateful::get_state() const, with all other required const-ness added (GUI) 2022-04-06 21:56:59 -06:00
Paul Davis a287499f75 queue ::redisplay_track_views() in an idle handler right after ::idle_resize()
Both of these are currently needed: idle_resize() is required for
::set_height() to take effect on all affected tracks, and
::redisplay_track_views() is needed to reposition all other tracks as
necessary.
2022-04-05 20:52:10 -06:00
Paul Davis c1fb7bc05d we do not need to queue ::redisplay_track_Views() for track height changes
This may be incorrect, since track height changes may be driven
directly (e.g. via menu items) rather than by mouse drags. This may
need revisiting and there may need to be a way to separate dragged height
changes from others.
2022-04-05 20:52:10 -06:00
Paul Davis da20e4ed60 change return type of Editor::process_redisplay_track_views() to bool
This allows it to be used in an idle callback. If we use
::redisplay_track_views() directly, we do not disconnect the idle
connection. This will happen automatically since the callback will return
false, but it seems better to explicit about this. Even better would be to use
::connect_once() but this may not be available in the version of glibmm that we
are using at present.
2022-04-05 20:52:10 -06:00
Paul Davis f2e6798e66 change idle priority of Editor::redisplay_track_views()
It appears that GDK/glib will not run idle callbacks with a lower priority than
HIGH_IDLE+10 *if* a new user input event is pending. This means that if mouse
motion events are arriving and causing resizes of selected tracks, the call
to ::redisplay_track_views() which is needed to update all the other tracks,
will not take place if a new motion event arrives. Changing the priority to
same as is used for the ::idle_resize() callback prevents new motion events
from being handled before ::redisplay_track_views() is called.
2022-04-05 20:52:10 -06:00
Robin Gareus 7e10061d16
Disambiguate "Meter" use "Time Signature for music meter
In general we should use
* "meter": signal level meter
* "time-signature": music meter / metrum
2022-04-05 18:56:10 +02:00
Ben Loftis 93207d45c5 editor: clip picker expects set_session(0) to avoid dangling session-handle refs 2022-03-15 15:59:35 -05:00
Ben Loftis 2a611f1d40 editor: add clip-picker list to the editor 2022-03-15 09:03:40 -05:00
Ben Loftis b0276fd524 ripple (gui part): when Ripple is selected, RippleMode widget appears 2022-03-14 21:35:30 -05:00
Ben Loftis 2eb286eb76 make range+region Bounce dialogs more consistent
* cleaner table layout
* explicit options for bouncing to Trigger and Clip List
* any bounce is added to Source list, so remove that from menu
* format context menus to match "(with processing)"
* use same code structure where possible
2022-03-13 19:42:00 -05:00
Robin Gareus 2cffca4c40
Restore rulers as saved with the session
This fixes an issue with the videotimeline not being shown
when reloading a session. Editor::set_state() restores the grid,
which in turn changes ruler visibility. This triggers
store_ruler_visibility() and the saved session state was lost.
2022-03-07 05:55:26 +01:00
Robin Gareus 6c4c827575
Fix snap, PH to prev/next grid 2022-03-04 20:47:44 +01:00
Robin Gareus 9dabe047f1
NO-OP: clean up and consolidate PH next/prev grid code 2022-03-04 18:29:43 +01:00
Robin Gareus 90770a2788
Consolidate get_grid_beat/music_divisions
This fixes "snap to bar" which previously snapped to beats
2022-03-04 17:51:21 +01:00
Ben Loftis 1725fdadf6 pre-size Grid and Draw-option menus so they are less likely to dynamically resize with every click 2022-02-01 17:02:56 -06:00
Ben Loftis 26beea89ea changes to the Draw options should immediately sync state to instant.xml 2022-02-01 17:02:56 -06:00
Ben Loftis b7a3de126c Fix some menus that occasionally act 'stuck'
* when a menu uses RadioActions, their initial state must be synced
* we use various methods to 'fix' this throughout the program
-> I'm forcing internal state to match in the case the Action is already active
* question:  we tend to use RadioActions for all these menu items,
   because they represent a choice between many options;
   but do we really need to use RadioActions here?
2022-02-01 17:02:56 -06:00
Ben Loftis da09d1dd9a terminology: the content in a trigger is a Trigger Clip 2022-01-31 20:25:06 -06:00
Robin Gareus 57a93380b6
No need to keep the sorter struct around 2022-01-29 05:27:55 +01:00
Robin Gareus a4ee7fa2fa
Explicitly suspend redisplay while adding/removing tracks
This should not be needed, however Editor::idle_remove_tracks()
has the same priority as Editor::redisplay_track_views() and this
might save us another redisplay call.
2022-01-29 05:27:21 +01:00
Robin Gareus 5cebd64924
Fix fit tracks
The track-height change needs to be applied so that
vertical_adjustment max range is set correctly.
Otherwise vertical_adjustment.set_value() may fail
or scroll to the wrong position.

In 5b3eacd421 `redisplay_track_views()` was moved from
EditorRoutes to Editor. The call was delegated to the idle
thread, potentially collecting multiple calls before performing
the update.

This resulted in "Fit selection" to set the y-offset before the
height-change was applied.
2022-01-27 19:57:58 +01:00
Robin Gareus b68097422a
Reduce and abstract EditorRoutes to a dedicated RouteList 2022-01-27 01:28:50 +01:00
Robin Gareus 5b3eacd421
Make editor independent of EditorRoutes 2022-01-27 01:28:49 +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
Robin Gareus 0cf0de8c97
Remove indirection when showing/hiding TAV 2022-01-25 06:27:22 +01:00
Robin Gareus dd4b4dc00b
Move PluginSetup callback to Editor
This is unrelated to the sidebar route-list and should never
have been in EditorRoutes.
2022-01-25 06:27:21 +01:00
Robin Gareus 37877fbdc2
Unify Source and RegionList abstraction 2022-01-19 17:13:51 +01:00
Robin Gareus 0204ea1f24
Unify Region Drag/Drop
Identify Regions using PDB::ID. This allows dragging regions
from almost anywhere to anywhere, without special cases.
2022-01-19 17:13:51 +01:00
Robin Gareus 5427cec821
Separate RegionList into a case-class for reusing in on the TriggerPage 2022-01-19 17:13:50 +01:00
Ben Loftis 2f0e8e4cd7 Remove unused region-property-editor widgets, for now 2022-01-17 18:04:43 -06:00
Paul Davis b1f73d25bf actual GUI interaction for cue marker ruler 2022-01-04 15:23:51 -07:00
Paul Davis 77d83540b1 copy-n-paste addition of cue marker ruler (based on cd marker ruler) 2022-01-04 15:23:51 -07:00
Ben Loftis c5b6d7f9d2 trigger_ui: TriggerEntry is-a TriggerUI 2021-12-30 21:25:39 -06:00
Robin Gareus 541b91d293
Implement Bounce Range to Trigger 2021-12-23 22:39:57 +01:00
Robin Gareus 8d137b1514
Add API to support Editor sidebar DnD outside of the editor 2021-12-14 21:33:24 +01:00
Robin Gareus 56605c48da
Prevent editor to grow vertically > 1080px (temp. workaround)
This will require some overhaul and re-layout of the selection
sidebar.
2021-12-14 21:09:32 +01:00
Robin Gareus 4720a45868
Make convert_drop_to_paths() reusable 2021-12-13 22:50:13 +01:00
Robin Gareus 3c03e4951e
Use updated temporal API 2/2 2021-12-11 15:51:31 +01:00
Ben Loftis 1e38797efc PropertyBoxen: move selection-properties into the sidebar 2021-12-08 12:45:11 -06:00
Ben Loftis 9d0d8e1785 Selection: Region Operations in a Slot need a RegionView proxy (ToDo) 2021-12-08 12:40:20 -06:00
Ben Loftis ec88635555 MIDI Draw: potential workaround for sticky menu items at startup 2021-11-19 13:01:54 -06:00
Ben Loftis ca7e133e3d MIDI Draw: fix thinko in length=Auto 2021-11-19 10:28:37 -06:00
Ben Loftis 252ae56a08 MIDI Draw: change behavior regarding MIDI Channel of new notes
When adding a note, use these criteria to choose the channel number:
* if the user has explicitly specified a note in the pulldown, use that
* if the user has AUTO selected and we are in a region, choose the nearest note's channel (consistent with velocity behavior)
* as a fallback, query the track for its channel-filter (old behavior)
2021-11-18 08:23:08 -06:00
Ben Loftis eebf3717e3 MIDI Draw: note-length-auto means 'use the Grid for note-length' (prior behavior) 2021-11-18 07:35:13 -06:00