Commit Graph

270 Commits

Author SHA1 Message Date
Paul Davis b4ad81075e provide and use a method to show the library download manager 2022-09-26 16:40:08 -06:00
Paul Davis 5461bfb218 add a new global window for reviewing and (soon) downloading loop libraries 2022-09-07 17:03:08 -06:00
Robin Gareus acf13e9498 Restore "Main" UI Tab setting from sesion instant.xml
Previously this setting was ignored. It is relevant when loading a demo
session, where initially there is no user Config instant.xml.

ARDOUR_UI::setup_windows is called directly after the engine starts, but
before the session is set.
2022-08-10 00:50:02 +02: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
Mads Kiilerich d52c727ec5
gtkmm: use get_mapped instead of deprecated Gtk::Widget::is_mapped() 2022-04-08 20:20:10 +02:00
Robin Gareus 056189c76c
Clean up DnD, use MIME-types
This is in preparation for allowing to drag trigger-regions
or trigger-slots. Those will not use a static singleton
PublicEditor API.

Additionally this constrains Ardour-internal drags to Ardour
(via Gtk::TARGET_SAME_APP).
2022-01-10 21:29:29 +01:00
Houston4444 692aa7bbb8
Add NSM ':switch:' capability
This allows to switch from one Ardour session to another without
application restart.

This also include some minor related NSM fixes.
2021-12-04 14:34:44 +01:00
Robin Gareus 9ce604bc03
New Tabbable: Trigger-Page skeleton 2021-12-01 23:10:08 +01:00
Robin Gareus 747b24f063
Change LuaWindow into an ArdourWindow
* remember window visibility, size and position
* Show as toggle in the window-menu (rather than show action)
* reduce specialization, use WM and ArdourWindow infrastructure
  (transient parent, window-type, etc)
2021-09-20 04:26:24 +02:00
Robin Gareus 23c5793173
Remove duplicate calls to set_session
Windows managed as Proxy do not need direct calls to set_session().
This is already handled by WM::Manager::instance().set_session()

Also WM set_session() called it twice.
2021-09-20 04:21:21 +02:00
Robin Gareus 328585069a
Boostrap plugin-manager GUI 2021-07-03 19:07:25 +02:00
Paul Davis a47348f2a2 integration of new dsp stats window with window proxy system, part 3 2021-06-11 21:17:44 -06:00
Paul Davis dcee5067f5 integration of new dsp stats window with window proxy system 2021-06-11 21:07:47 -06:00
Robin Gareus dfa9f92e53
Fix tab-button state and cycling through tabs
The initial calls in `we_have_dependents()` was redundantly setting
all widows to "Hidden", before the actual state was known.

tabbable_state_change() is initially called for all Tabs:
ARDOUR_UI::setup_windows -> add_to_notebook() -> attach(),
or for detached windows Tabbable::set_state() -> hide_tab().

Step_up/down_through_tabs used window visibility to determine
candidates. This incorrectly considered detached visible tabs.
Detached windows cannot be cycled to.

This also addressed an issue where tab-buttons state was
incorrectly unset what unrelated tab state changed.
ImplicitActive of the currently active tab is now retained
when some other window is attached/detached.
2021-03-16 00:36:22 +01:00
Robin Gareus 77d88233a5
Update path label after rename or save-as 2021-03-13 16:53:09 +01:00
Robin Gareus f10d380d9a
RecorderUI: Tabbable Window Skeleton 2021-02-22 01:00:07 +01:00
Paul Davis 808e96debb add blank line 2020-05-18 16:04:41 -06:00
Paul Davis 08df4def52 change the text on the "do nothing" button when closing an unnsamed session while dirty 2020-05-18 16:04:41 -06:00
Paul Davis f21c948f35 make a possible case in a switch statement explicit 2020-05-18 16:04:41 -06:00
Paul Davis b258ad792e force provision of "menu-name" for all WindowProxy objects, and thus Tabbables
Actions for hide/show/attach/detach tabbables use hard-coded names which are not
translated. Using Tabbable/WindowProxy::name() to lookup the action will fail,
since the name can be translated. This changes just removes the option to not
provide a menu-name when creating these objects, and uses the name menu-name
when looking up an action by name
2020-05-01 14:33:47 -06:00
Paul Davis 38c61b6dab fix design and implementation of (GUI) transport controllables to make them usable with MIDI CC control
The old code meant that their current value was always zero, and that they would do nothing unless
the new value exceeded 0.5
2020-04-26 23:00:12 -06:00
Robin Gareus e1a9034a0e
Synchronize meter-reset #7465
Queue reset to be handled when the meter is updated.
Also only call set_name(), set_active_state() when the
state changes.
2020-04-10 23:50:10 +02:00
Robin Gareus 2991d74da5
GUI: follow LatencyUpdated signal handler, prevent duplicate updates 2020-04-07 00:14:09 +02:00
Robin Gareus b49764edf5
Statusbar: link session property dialog for format & timecode 2020-03-30 01:10:00 +02:00
Robin Gareus e43cc9c7bb
Statusbar: add session-path display 2020-03-30 00:14:25 +02:00
Paul Davis 900bab7271 basic pass at deleting scratch sessions 2020-03-24 21:15:32 -06:00
Robin Gareus e5c819956a
Punch/Loop GUI control sensitivity 2020-02-27 22:25:37 +01:00
Paul Davis 4148d2cee4 fix bad re-ordering in ARDOUR_UI::set_session() that changed when transport-related actions are set sensitive (compared to v5)
This specific change has broader scope than the bare minimum required - we could just move/replicate transport_ctrl.set_session()
after session_sensitive_actions have had their sensitivity set to true. But this "seems" like a more thorough solution,
in that it sets all relevant actions groups before doing anythng else.
2020-01-27 18:24:30 -07:00
Robin Gareus fa2c935581
Fix re-packing of toolbar meter
This fixes a gtk-warning when loading a session from a
running instance:
IA__gtk_table_attach: assertion 'child->parent == NULL' failed"
2020-01-13 20:17:58 +01:00
Robin Gareus dce09c6136
Pixel-pushing: editor-meter size and alignment
Previously the "reset peaks" button expanded to incredible height
when the GUI was scaled. Now the meter fills available space instead.
2020-01-04 23:36:17 +01:00
Robin Gareus 96316cb6b2
Unconditionally save instant.xml on session-close
This forces saving session-specific GUI settings (Playhead
position, zoom/scroll with stationary PH, window and pane
positions, etc.

While many GUI operations immediately cause an instant.xml
save, changing the playhead-pos in particular does not, nor
mark the session as modified.

This fixes an issue:
 1. open session
 2. move playhead
 3. close session
 4. re-open session, expect playhead at position from (2)
2020-01-02 19:08:26 +01:00
Robin Gareus 40d266fc0e
Amend 561cf86919 commit (toolbar sensitivity) 2019-12-13 23:03:34 +01:00
Robin Gareus 561cf86919
Fix session sensitivity of some toolbar controls 2019-12-13 16:33:12 +01:00
Robin Gareus ebb89ba805
Super basic Virtual-Keyboard UI 2019-10-18 03:50:52 +02:00
Robin Gareus 4f41367836
Add Latency Control Toolbar Widgets 2019-09-29 02:45:37 +02:00
Paul Davis 468731c14b goodbye Profile->...trx 2019-09-25 13:02:31 -06: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
Robin Gareus 9f20631984
Update GUI: meter-type API and meter-type state changes
This removes all additional GUI side meter-type state.
The route's meter-processors is now responsible for providing
the type.

meter-type is now implicit for GainMeter, LevelMeter used by
meter-strips and mixer-strips.
2019-06-09 19:56:30 +02:00
Robin Gareus 1cec6d1250
Remove toolbar meter (meter type) context-menu
This meter is follows in sync the master-bus meter. The type should
be set directly on the master-bus.
2019-06-09 19:45:01 +02:00
Robin Gareus 9aff22a9d2
Tweak toolbar meter reset button to unconditionally apply to all DPM 2019-06-04 14:56:50 +02:00
Robin Gareus 8244026533
Consolidate ToggleAction cast, use new API
Furthermore we can assume that all Actions are registered and
Unregistered actions will ::abort() execution.
2019-02-28 23:54:42 +01:00
Paul Davis a26e6fed50 remove long-lived bug that tried to make a non-existent action insensitive 2018-12-10 16:19:54 -05:00
Paul Davis fc83d044f8 use ActionManager namespace, rather than ActionMap objects, and remove all per-context action maps 2018-12-10 08:34:01 -05:00
Ben Loftis 65bda27d42 Tweaks to Mixer and Monitor keybindings:
Add Mixer-specific view keybindings for list, vca, mon.  (thanks to: the_CLA)
Move monitor keybindings (mute, dim, mono) to be globally-accessible.

Implement new mixer-specific actions to show/hide monitor,vcas,mixbuses (the_CLA)
Move monitor funcs (mute,dim,mono) to globally-accessible actions.
Make a new Monitor group insted of using Transport group.
Allow use-monitor-section to be controlled by both menu and session-options dialog.
2018-12-07 12:57:26 -06:00
Robin Gareus 4dc65e6613
Prefer testing the session instead of using a global variable 2018-12-06 02:24:31 +01:00
Robin Gareus d71dfdfd6a Add a window that shows DSP usage of all plugins
Currently hidden, use
  Editor:access_action("Window", "toggle-plugin-dsp-load")
2018-09-25 00:13:08 +02:00
Paul Davis d9de14aa63 rename transport masters dialog -> window 2018-09-23 13:48:19 -04:00
Paul Davis db385c2e3c new transport slave/master implementation, gui edition 2018-09-18 19:06:04 -04:00
Robin Gareus bf694199ab Add method to show/hide VCA (and Mixbus) Mixer pane 2018-08-08 22:42:12 +02:00
Robin Gareus 66732e4791 Use standard Labels again.
Since the Gauges become little more than text with colored background,
prepare their removal. If color is wanted, use named widget-style.
2018-02-20 12:15:29 +01:00