add a new UI prefs variable/type for region edit disposition

i.e. where to edit a selected or specifically chosen region
This commit is contained in:
Paul Davis
2025-08-18 17:08:23 -06:00
parent a48ffdf998
commit 1817aa5c2d
6 changed files with 40 additions and 1 deletions

View File

@@ -191,5 +191,16 @@ const char *markerclickbehaviorstrs[] = {
#undef MARKERCLICKBEHAVIOR
#define MARKERCLICKBEHAVIOR(a) /*empty*/
#undef REGIONEDITDISPOSITION
#define REGIONEDITDISPOSITION(s) N_(#s),
const char *regioneditdispositionstrs[] = {
#include "editing_syms.inc.h"
0
};
#undef REGIONEDITDISPOSITION
#define REGIONEDITDISPOSITION(a) /*empty*/
} // namespace Editing

View File

@@ -43,6 +43,7 @@
#define TEMPOEDITBEHAVIOR(a) /*empty*/
#define NOTENAMEDISPLAY(a) /*empty*/
#define MARKERCLICKBEHAVIOR(a) /*empty*/
#define REGIONEDITDISPOSITION(a) /*empty*/
namespace Editing {
@@ -223,6 +224,18 @@ extern const char *markerclickbehaviorstrs[];
inline const char* enum2str(MarkerClickBehavior m) {return markerclickbehaviorstrs[m];}
MarkerClickBehavior str2markerclickbehavior(const std::string &);
#undef REGIONEDITDISPOSITION
#define REGIONEDITDISPOSITION(a) a,
enum RegionEditDisposition {
#include "editing_syms.inc.h"
};
extern const char *regioneditdispositionstrs[];
inline const char* enum2str(RegionEditDisposition red) {return regioneditdispositionstrs[red];}
#undef REGIONEDITDISPOSITION
#define REGIONEDITDISPOSITION(a) /*empty*/
/////////////////////
// These don't need their state saved. yet...
enum CutCopyOp {

View File

@@ -34,6 +34,7 @@ DEFINE_ENUM_CONVERT(Editing::RegionListSortType)
DEFINE_ENUM_CONVERT(Editing::MouseMode)
DEFINE_ENUM_CONVERT(Editing::NoteNameDisplay)
DEFINE_ENUM_CONVERT(Editing::MarkerClickBehavior)
DEFINE_ENUM_CONVERT(Editing::RegionEditDisposition)
} // namespace PBD

View File

@@ -115,3 +115,8 @@ MARKERCLICKBEHAVIOR(MarkerClickLocateWhenStopped)
NOTENAMEDISPLAY(Always)
NOTENAMEDISPLAY(WithMIDNAM)
NOTENAMEDISPLAY(Never)
REGIONEDITDISPOSITION(BottomPaneOnly)
REGIONEDITDISPOSITION(OpenBottomPane)
REGIONEDITDISPOSITION(PreferBottomPane)
REGIONEDITDISPOSITION(NeverBottomPane)

View File

@@ -62,7 +62,8 @@ setup_gtk_ardour_enums ()
AddRouteDialog::TypeWanted type_wanted;
NoteNameDisplay note_name_display;
MarkerClickBehavior marker_click_behavior;
RegionEditDisposition region_edit_disposition;
#define REGISTER(e) enum_writer.register_distinct (typeid(e).name(), i, s); i.clear(); s.clear()
#define REGISTER_BITS(e) enum_writer.register_bits (typeid(e).name(), i, s); i.clear(); s.clear()
#define REGISTER_ENUM(e) i.emplace_back (e); s.emplace_back (#e)
@@ -250,4 +251,10 @@ setup_gtk_ardour_enums ()
REGISTER_CLASS_ENUM (Editing, WithMIDNAM);
REGISTER_CLASS_ENUM (Editing, Never);
REGISTER (note_name_display);
REGISTER_ENUM(BottomPaneOnly);
REGISTER_ENUM(OpenBottomPane);
REGISTER_ENUM(PreferBottomPane);
REGISTER_ENUM(NeverBottomPane);
REGISTER (region_edit_disposition);
}

View File

@@ -159,6 +159,8 @@ UI_CONFIG_VARIABLE (bool, prefer_tap_tempo, "prefer-tap-tempo", false)
UI_CONFIG_VARIABLE (bool, sandbox_all_lua_scripts, "sandbox-all-lua-scripts", false)
UI_CONFIG_VARIABLE (bool, update_action_scripts, "update-action-scripts", true)
UI_CONFIG_VARIABLE (bool, use_cocoa_invalidation, "use-cocoa-invalidation", true)
UI_CONFIG_VARIABLE (Editing::RegionEditDisposition, region_edit_disposition, "region-edit-disposition", Editing::PreferBottomPane)
/* these are visibility-type selections in the New Track dialog that we should make persistent for the user's choices */
UI_CONFIG_VARIABLE (bool, show_on_cue_page, "show-on-cue-page", true)