Add option to use a neutral color for new routes

This commit is contained in:
Robin Gareus 2023-04-18 01:07:54 +02:00
parent 23a9ce4651
commit 9e35a9da66
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
4 changed files with 37 additions and 2 deletions

View File

@ -2946,6 +2946,31 @@ RCOptionEditor::RCOptionEditor ()
add_option (_("Appearance/Colors"), new ColorThemeManager);
add_option (_("Appearance/Colors"), new OptionEditorBlank ());
bo = new BoolOption (
"use-palette-for-new-route",
_("Use color-palette to assign color for new tracks/busses"),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_use_palette_for_new_route),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_use_palette_for_new_route)
);
Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget (),
_("<b>When enabled</b> new Routes are assigned a color from the stripable-color-palette in round-robin fashion.\n"
"<b>When disabled</b> all new Routes will have a neutal color from the theme."
));
add_option (_("Appearance/Colors"), bo);
bo = new BoolOption (
"use-palette-for-new-vca",
_("Use color-palette to assign color for new VCA"),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_use_palette_for_new_vca),
sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_use_palette_for_new_vca)
);
Gtkmm2ext::UI::instance()->set_tip (bo->tip_widget (),
_("<b>When enabled</b> newly created VCAs are assigned a random color.\n"
"<b>When disabled</b> all new VCAs will have a neutal color from the theme."
));
add_option (_("Appearance/Colors"), bo);
/* Quirks */
OptionEditorHeading* quirks_head = new OptionEditorHeading (_("Various Workarounds for Windowing Systems"));

View File

@ -366,7 +366,11 @@ RouteUI::set_route (std::shared_ptr<Route> rp)
}
if (set_color_from_route()) {
set_color (gdk_color_to_rgba (AxisView::unique_random_color ()));
if (UIConfiguration::instance().get_use_palette_for_new_route ()) {
set_color (gdk_color_to_rgba (AxisView::unique_random_color ()));
} else {
set_color (UIConfiguration::instance ().color (X_("neutral:midground")));
}
}
if (self_destruct) {

View File

@ -123,6 +123,8 @@ UI_CONFIG_VARIABLE (uint32_t, action_table_columns, "action-table-columns", 3)
UI_CONFIG_VARIABLE (bool, hide_splash_screen, "hide-splash-screen", true)
UI_CONFIG_VARIABLE (bool, check_announcements, "check-announcements,", true)
UI_CONFIG_VARIABLE (bool, use_wm_visibility, "use-wm-visibility", true)
UI_CONFIG_VARIABLE (bool, use_palette_for_new_route, "use-palette-for-new-route", true)
UI_CONFIG_VARIABLE (bool, use_palette_for_new_vca, "use-palette-for-new-vca", true)
UI_CONFIG_VARIABLE (std::string, stripable_color_palette, "stripable-color-palette", "#AA3939:#FFAAAA:#D46A6A:#801515:#550000:#AA8E39:#FFEAAA:#D4BA6A:#806515:#554000:#343477:#8080B3:#565695:#1A1A59:#09093B:#2D882D:#88CC88:#55AA55:#116611:#004400") /* Gtk::ColorSelection::palette_to_string */
UI_CONFIG_VARIABLE (bool, use_note_bars_for_velocity, "use-note-bars-for-velocity", true)
UI_CONFIG_VARIABLE (bool, use_note_color_for_velocity, "use-note-color-for-velocity", true)

View File

@ -64,7 +64,11 @@ VCAMasterStrip::VCAMasterStrip (Session* s, std::shared_ptr<VCA> v)
/* set color for the VCA, if not already done. */
if (!_vca->presentation_info().color_set()) {
_vca->presentation_info().set_color (Gtkmm2ext::gdk_color_to_rgba (unique_random_color()));
if (UIConfiguration::instance().get_use_palette_for_new_vca ()) {
_vca->presentation_info().set_color (Gtkmm2ext::gdk_color_to_rgba (unique_random_color()));
} else {
_vca->presentation_info().set_color (UIConfiguration::instance ().color (X_("neutral:midground")));
}
}
control_slave_ui.set_stripable (std::dynamic_pointer_cast<Stripable> (v));