13
0

ensure that all waveviews have ALL their colors set accurately before first render

Avoids occasional bright red zero line drawn because the color(s) had not been reset correctly
This commit is contained in:
Paul Davis 2014-06-19 15:06:48 -04:00
parent 2ebaf2e45a
commit 237741d187
2 changed files with 12 additions and 1 deletions

View File

@ -1157,6 +1157,10 @@ AudioRegionView::create_one_wave (uint32_t which, bool /*direct*/)
wave->set_logscaled (Config->get_waveform_scale() == Logarithmic);
vector<ArdourCanvas::WaveView*> v;
v.push_back (wave);
set_some_waveform_colors (v);
if (!Config->get_show_waveforms ()) {
wave->hide();
}
@ -1390,6 +1394,12 @@ AudioRegionView::color_handler ()
void
AudioRegionView::set_waveform_colors ()
{
set_some_waveform_colors (waves);
}
void
AudioRegionView::set_some_waveform_colors (vector<ArdourCanvas::WaveView*>& waves_to_color)
{
ArdourCanvas::Color fill;
ArdourCanvas::Color outline;
@ -1435,7 +1445,7 @@ AudioRegionView::set_waveform_colors ()
}
}
for (vector<ArdourCanvas::WaveView*>::iterator w = waves.begin(); w != waves.end(); ++w) {
for (vector<ArdourCanvas::WaveView*>::iterator w = waves_to_color.begin(); w != waves_to_color.end(); ++w) {
(*w)->set_fill_color (fill);
(*w)->set_outline_color (outline);
(*w)->set_clip_color (clip);

View File

@ -205,6 +205,7 @@ private:
void parameter_changed (std::string const &);
void setup_waveform_visibility ();
void set_some_waveform_colors (std::vector<ArdourCanvas::WaveView*>& waves_to_color);
/** A ScopedConnection for each PeaksReady callback (one per channel). Each member
* may be 0 if no connection exists.