13
0
Commit Graph

11630 Commits

Author SHA1 Message Date
d397e1f85c fix behaviour of AddRouteDialog "Add" button 2017-07-17 11:57:33 -04:00
4f4ed8e194 if user has edited name entry in add route dialog, type changes should not reset it.
But using a response button should
2017-07-17 11:57:33 -04:00
5aecfc5acb Remove Timers to watch Controllable values
Depend on Changed() signals alone, which are usually much less frequent
than rapid-timer events.

As side-effect we now need to make the widgets insensitive when
playing automation. Previously the user could not change the value because
the Timer periodically reset it.
2017-07-16 16:58:00 +02:00
6c5262012b required #include for earlier gcc 2017-07-15 13:43:39 -04:00
Johannes Mueller
66964aaab2 Force filename suffix and ask confirmation before overwriting ...
... existing files, when exporting template archives.
2017-07-15 11:37:27 +02:00
Johannes Mueller
ccff1c5dbd Only make the export button sensitive if there's something to export 2017-07-15 11:37:24 +02:00
Johannes Mueller
0da2d7bf8a Inflate template archives rather in .config/ardour5/ than in ...
`.config/ardour5/(templates|route_templates)`.

We put as toplevel directory of the archive `templates` or
`route_templates`. Then no matter if the user imports a session template or a
route template archives, we always put them into the correct folder.

As now the user can also import route templates while the
SessionTemplateManager is visible and vice versa, we need to signal the
successful import to the corresponding template manager. Therfor we introduce
the signal TemplatesImported.
2017-07-15 11:37:15 +02:00
46501da220 Add johmue to authors list 2017-07-14 20:01:45 +02:00
7e4f261853 Turn Summary into a horizontal scrollbar (drop y-axis sensitivity) 2017-07-14 20:01:45 +02:00
Johannes Mueller
96a9437289 Switch to g_dir_make_tmp() to make the tmpdir. 2017-07-12 16:15:03 +02:00
Johannes Mueller
a73a5e9215 First draft of import and export templates
Don't use this now, except for testing as the archive format will change.

TBD:

* error handling
* check template would be overwritten by import
* dinstinguish between session and track templates
2017-07-12 16:15:03 +02:00
Johannes Mueller
a933cd58bc Some more error handling
Try to undo the renaming of the template dir in case the writing of the new
template file fails.
2017-07-12 16:15:03 +02:00
Johannes Mueller
13ddbfc0d7 Remove template dirs using PBD::remove_directory()
This makes sure that all state directories of the template are erased properly.
2017-07-12 16:15:03 +02:00
Johannes Mueller
b3407f1665 Adjust template names inside template files
This concernes:

* LV2 states:
LV2 states are stored in the template directories and their paths are stored
int the template files using absolute paths. Therefore we have to adjust the
template-dir property of every lv2 node referring to a state dir.

* Names of route templates.
The name of the route template is stored in the first child of the xml root
node in the property `name`. This needs to be adjusted when renaming the
template.

By now we rely on that only lv2 states and the route template name need to be
adjusted on renaming a template.
2017-07-12 16:15:03 +02:00
Johannes Mueller
a5ba520f75 Also handle Route templates
Following measures:

* Split up into two classes
  * TemplateDialog: the general dialog
  * TemplateManager: A widget to rename and remove templates

* Make TemplateManager abstract and derive a class for session templates and
  one for route templates. This is needed, as session templates and route
  templates are stored in a different way. Thus we need different methods to
  rename and remove them.
2017-07-12 16:15:03 +02:00
Johannes Mueller
6a973d5c42 Some cosmetics 2017-07-12 16:15:03 +02:00
Johannes Mueller
610d9fd3b9 First draft of a template management dialog
Goal is to a simple dialog that can rename and remove templates. This is
helpful in order to keep the template list tidy.

So far it works for session templates. Track templates tbd.
2017-07-12 16:15:03 +02:00
23bb15dcf1 Honor groups for mixer selection 2017-07-12 06:55:44 +02:00
fd8053da9e Don't use VST ->user points, prefer host-reserved ptr
Apparently "user" is for plugins (not hosts) to use.
2017-07-08 18:13:42 +02:00
9a0ab26fbf Add select-all-tracks mixer-shortcut (following editor) 2017-07-08 16:07:42 +02:00
b7dc469515 Remove old API (unused, incorrect for grouped tracks) 2017-07-08 15:43:55 +02:00
5fc037cbe9 Fix gain inc/dec with multiple-selection spanning groups
When tracks in a gain-sharing group are selected, stepping gain
up/down affected the tracks N times:
   for-each selected track inc/dec gain w/grouping.

When a mix of grouped and un-grouped tracks is selected, this lead to
inconsistent gain changes.

The new approach expands the groups first. Ignoring groups is not correct
either for single selection.
2017-07-08 15:43:32 +02:00
75dea5bdc0 Drop region references when hiding the TimeFX dialog. 2017-07-07 17:30:37 +02:00
68c106eab5 Fix VCA Automation Lane selection
This moves child-selection API up into TAV (Superclass of StripableTAV
which actually owns the children)
2017-07-07 14:47:36 +02:00
f2c7f2fdcb Czech translation update by pfri #7190 2017-07-07 02:43:15 +02:00
7bb48aaa3f Remove cruft, steps cannot be 0. 2017-07-06 16:39:28 +02:00
f66b863a2d Make an info string translatable 2017-07-05 18:54:02 +02:00
608f99ad1c Fix a plugin-insert position off-by-one and remove cruft.
Route::before_processor_for_index() uses display_to_user() which
includes the Amp.

Insert position is still be wrong with the debug mode
ProcessorBox::show_all_processors == true, but that's not a regression.
2017-07-04 18:08:36 +02:00
2fdeb54b78 Always add plugins in the order given by the Manager UI. 2017-07-04 18:08:36 +02:00
e2d19d1668 Retain plugins order for copy/cut/paste + DnD #7416 2017-07-04 18:08:36 +02:00
c1eee02e1b Make VCA mute+solo buttons bindable 2017-07-03 19:55:17 +02:00
54aa82cd4b Another approach for stuck splash-screens:
Use Editor::first_idle() which is invoked every time when a session
is loaded (via set_session). This will catch ALL successful
session loads.

Failed session-loads explicitly pop down the splash in
ARDOUR_UI::load_session.

This only leaves "abort session open" which returns to the
session-open dialog (which pops back the splash).
2017-07-03 16:19:10 +02:00
417283d9be Don't just silently exit if initialization fails. 2017-07-03 14:44:03 +02:00
d9767b10ac Fix another crash at exit.
During ARDOUR_UI::finish(), after destroying various instances:
close_all_dialogs() -> ArdourDialog::on_response() -> GUIIdle()

The event loop recurses and may execute a previously scheduled
Editor::idle_visual_changer()
2017-07-03 14:03:10 +02:00
9695fd4ca9 Re-introduce toggle-editor-and-mixer (for ctrl-surfaces)
6af51b52 moved to dedicated show-editor/show-mixer actions for
keybindings because the Mixer has a dedicated handler.
For Control-surfaces a common action is still practical.

Note: This is still broken for detached windows. it currently only
toggles tabs correctly.
2017-07-03 01:41:35 +02:00
ef8756a83a Allow to bind generic plugin-ui dropdown + clickboxes 2017-07-02 22:53:28 +02:00
98a1a96f32 Add control-focus notifications from bindable GUI widgets. 2017-07-02 18:19:13 +02:00
496f83bf83 Allow ctrl-surfaces to show/hide plugin UIs. 2017-07-02 01:59:24 +02:00
3c6ab7aca3 Remove old API to keep track of plugin GUI widgets
This was superseded by WindowProxy and the ARDOUR::Processor
[set_]window_proxy() API
2017-07-01 23:41:25 +02:00
1be9e9d19e Remove unused variable (amend 79384339e) 2017-07-01 23:40:11 +02:00
Thomas Brand
79384339e9 Correctly display region name in context menu 2017-07-01 22:55:31 +02:00
Thomas Brand
218528dbe9 Fix some typos (closes GH PR #356) 2017-07-01 21:29:46 +02:00
0f3ee7c049 Use Stripable::Sorter in meterbridge 2017-07-01 21:25:01 +02:00
583a7a41e8 Remove old gnome-canvas src code. 2017-07-01 21:19:56 +02:00
b976bf8986 NO-OP whitespace & foratting of header files 2017-07-01 21:19:56 +02:00
Thomas Brand
63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +02:00
2b1b0aa240 Fix crash when rapidly switching snapshots
ARDOUR_UI::load_session() calls flush_pending() which runs
gtk_main_iteration()s until idle.

If a user selects another snapshot from the sidebar, load_session()
is called again (from a call to load session)
2017-07-01 03:10:50 +02:00
02ed6130e4 Fix a typo 2017-06-30 20:02:45 +02:00
285ec18aa5 Don't interpolate&smooth playhead pos during export. 2017-06-29 18:40:51 +02:00
e74d1f1048 Use quotes for bundled library includes 2017-06-29 00:22:45 +02:00