summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/rc_option_editor.cc8
-rw-r--r--gtk2_ardour/time_axis_view_item.cc31
-rw-r--r--gtk2_ardour/time_axis_view_item.h4
3 files changed, 33 insertions, 10 deletions
diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc
index a19e8e96d2..767e235536 100644
--- a/gtk2_ardour/rc_option_editor.cc
+++ b/gtk2_ardour/rc_option_editor.cc
@@ -1049,6 +1049,14 @@ RCOptionEditor::RCOptionEditor ()
sigc::mem_fun (*_rc_config, &RCConfiguration::set_show_zoom_tools)
));
+ add_option (_("Editor"),
+ new BoolOption (
+ "color-regions-using-track-color",
+ _("Color regions using their track's color"),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::get_color_regions_using_track_color),
+ sigc::mem_fun (*_rc_config, &RCConfiguration::set_color_regions_using_track_color)
+ ));
+
/* AUDIO */
add_option (_("Audio"), new OptionEditorHeading (_("Buffering")));
diff --git a/gtk2_ardour/time_axis_view_item.cc b/gtk2_ardour/time_axis_view_item.cc
index 8220536508..fc0b4b24a1 100644
--- a/gtk2_ardour/time_axis_view_item.cc
+++ b/gtk2_ardour/time_axis_view_item.cc
@@ -23,7 +23,8 @@
#include "ardour/types.h"
#include "ardour/ardour.h"
-#include <gtkmm2ext/utils.h>
+#include "gtkmm2ext/utils.h"
+#include "gtkmm2ext/gui_thread.h"
#include "ardour_ui.h"
/*
@@ -224,6 +225,8 @@ TimeAxisViewItem::init (
set_duration (item_duration, this);
set_position (start, this);
+
+ Config->ParameterChanged.connect (*this, invalidator (*this), ui_bind (&TimeAxisViewItem::parameter_changed, this, _1), gui_context ());
}
TimeAxisViewItem::~TimeAxisViewItem()
@@ -692,19 +695,20 @@ TimeAxisViewItem::set_frame_color()
} else {
if (_recregion) {
frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_RecordingRect.get();
- } else if (high_enough_for_name) {
- if (fill_opacity) {
- frame->property_fill_color_rgba() = UINT_RGBA_CHANGE_A (ARDOUR_UI::config()->canvasvar_FrameBase.get(), fill_opacity);
+ } else {
+ uint32_t f = 0;
+ if (high_enough_for_name && !Config->get_color_regions_using_track_color()) {
+ f = ARDOUR_UI::config()->canvasvar_FrameBase.get();
} else {
- frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_FrameBase.get();
+ f = fill_color;
}
- } else {
+
if (fill_opacity) {
- frame->property_fill_color_rgba() = UINT_RGBA_CHANGE_A (fill_color, fill_opacity);
- } else {
- frame->property_fill_color_rgba() = fill_color;
+ f = UINT_RGBA_CHANGE_A (f, fill_opacity);
}
- }
+
+ frame->property_fill_color_rgba() = f;
+ }
}
}
@@ -900,3 +904,10 @@ TimeAxisViewItem::update_name_pixbuf_visibility ()
}
}
+void
+TimeAxisViewItem::parameter_changed (string p)
+{
+ if (p == "color-regions-using-track-color") {
+ set_frame_color ();
+ }
+}
diff --git a/gtk2_ardour/time_axis_view_item.h b/gtk2_ardour/time_axis_view_item.h
index 26f8c07f7a..dc5c8b7f8d 100644
--- a/gtk2_ardour/time_axis_view_item.h
+++ b/gtk2_ardour/time_axis_view_item.h
@@ -235,6 +235,10 @@ class TimeAxisViewItem : public Selectable, public PBD::ScopedConnectionList
Visibility visibility;
bool _recregion;
bool _automation; ///< true if this is an automation region view
+
+private:
+
+ void parameter_changed (std::string);
}; /* class TimeAxisViewItem */