Commit graph

301 commits

Author SHA1 Message Date
Robin Gareus
cbbe96a698
Bootstrap Strip Export Dialog 2025-11-24 21:07:53 +01:00
Robin Gareus
3b64d035e3
Bootstrap Strip Import Dialog 2025-11-24 21:07:53 +01:00
Robin Gareus
4cd241fab7
Towards clean exit 2025-08-20 16:19:25 +02:00
Paul Davis
fad3c32267 better handling of cloned bindings/actions 2025-04-01 14:55:32 -06:00
Robin Gareus
76ba840be0
Bootstrap RTA Window 2025-03-31 20:20:09 +02:00
Robin Gareus
1f27dc81f9
Properly create LuaWindow (always use Window Manger)
Previously directly using Luawindow::instance() was able
to create the window, bypassing the Window Manager, this resulted
in two issues, the first being rather significant:

* `LuaWindow::set_session()` was not called
* The Window was not maked as visible in the Window menu
2025-03-29 01:52:53 +01:00
Paul Davis
83d2adfd67 remove current_editing_context concept
All bindings, actions and members of an EditingContext are now per-EditingContext,
and have no impact on others (other than cursors).
2025-03-12 12:36:34 -06:00
Robin Gareus
000c25edcc
Update gtkmm -> ytkmm header location (omnibus commit) 2025-02-01 15:25:14 +01:00
Paul Davis
ab39c26f68 a variety of changes to make timeline-region editing-in-pianoroll to start to work
This also removes the useless "new pianoroll window" menu option and action
2025-01-20 18:05:19 -07:00
luzpaz
1a18417464
fix typos in gtk2_ardour directory
Found via `codespell -q 3 -S "*.pdf,*.po,./.git,*.tosc,./waf,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch" -L acount,addin,ane,ba,buss,busses,caf,capela,devine,disconnectin,discreet,doubleclick,envolution,filetest,fo,ghandi,homs,hsi,layed,maschine,mis,nd,ontop,pass-thru,removeable,retrn,ro,scrollin,sectionin,seh,siz,sord,sur,te,trough,ue,wth`
2025-01-18 00:55:34 +01:00
Paul Davis
7c711de178 basics of pianoroll windows 2025-01-08 18:05:11 -07:00
Robin Gareus
033e6f2e66
Add PDC and Latency info to status bar 2024-12-05 20:11:50 +01:00
Robin Gareus
19fc6e831b
Fix missing calls to SessionHandlePtr::session_going_away()
Explicit calls to set_session(0) will disconnect the
callback to session_going_away(). So don't do that.
2024-11-10 23:27:36 +01:00
Ben Loftis
ba2fbfa2cf
ArdourUI packs the tabbable visibility buttons 2024-11-10 23:27:35 +01:00
Ben Loftis
166c446974
ArdourUI no longer has his own transport bar 2024-11-10 23:27:35 +01:00
Ben Loftis
e36a6f5180
Stop publishing mini_timeline from ardour_ui.h, and fix the fallout 2024-11-10 23:27:34 +01:00
Robin Gareus
057ddabada
Transfer mini-timeline ArdourUI and subscribe to config changes 2024-11-10 23:27:34 +01:00
Robin Gareus
e0e0eb09f3
Transfer indicators from ardour_ui 2024-11-10 23:27:33 +01:00
Robin Gareus
723aa8461b
Transfer from ardour_ui (PDC controls) 2024-11-10 23:27:33 +01:00
Ben Loftis
97791de333
Transfer from ardour_ui (punch, rec-mode and labels) 2024-11-10 23:27:33 +01:00
Ben Loftis
7b75c6f8de
Transfer from ardour_ui (sync and shuttle) 2024-11-10 23:27:33 +01:00
Ben Loftis
b9d173c17a
Initial implementation of TransportBar 2024-11-10 23:27:32 +01:00
Robin Gareus
74c4ca3e52
Reduce reliance on boost - the hard part
the rest from `tools/convert_boost.sh`.

* replace boost::function, boost::bind with std::function and std::bind.

This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
Paul Davis
8523598664 fix management of undo/redo and _current_editing_context
We cannot switch on a leave event from a widget, because the undo/redo menu items must remain
labelled until we are actually in a new editing context. So switch when we switch tabs
or when we edit the (MIDI) cue editor
2024-10-17 07:44:31 -06:00
Robin Gareus
51030a9a40
Set punch sensitivity when loading session 2024-07-23 18:55:49 +02:00
Robin Gareus
c6f8002561
Discard untitled sessions even when not quitting Ardour 2024-02-24 00:42:40 +01:00
Robin Gareus
168344a3f9
Indicate sample-rate mismatch in the status-bar 2023-02-12 16:23:42 +01:00
Paul Davis
5330d73c35 ArdourUI HAS-A BasicUI
The idea is to allow some reduction in code duplication
2022-11-16 14:15:34 -07:00
Robin Gareus
d1b462c213 Special case tansient-parent windows on macOS
macOS has its own z-axis stacking (see Manager::set_transient_for) for
dialog and utility windows of a single application. There only case to
set a dedicated transient parent is to keep the child window on top of a
dialog.

Valid use-cases are e.g.
 Plugin Preset Name entry on top of a PluginWindow
 Export Format Settings on top of the Export Dialog

Alternatively one would need to patch gtk to handle
[NSView shouldDelayWindowOrderingForEvent] and explicitly reorder
siblings of a common parent window.

This fixes an issue that plugin windows cannot be re-stacked but were
previously always stacked in the order they were opened.
2022-11-15 03:07:43 +01:00
Robin Gareus
0bf8e7d8cf
Make clock mode settings session independent
Much like the edit-tool and grid-types, clock-modes are UI state.

Saving the UI state separately allows them to be used
consistently for new sessions. Previously clock-modes were set
initially (at application start) and when loading sessions.

The clock modes of newly created sessions was different
depending on loading another session prior to creating the
session. This is now no longer the case.
2022-10-10 21:03:45 +02:00
Paul Davis
0d5fd0de0c rename "library manager" to "library downloader everywhere (breaks string freeze) 2022-09-27 11:22:56 -06:00
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