fix thinko related to streamview construction that caused bad placement/display of...
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 10 Jan 2014 17:08:17 +0000 (12:08 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 10 Jan 2014 17:08:17 +0000 (12:08 -0500)
gtk2_ardour/automation_streamview.cc
gtk2_ardour/streamview.cc
gtk2_ardour/streamview.h

index a1ba99a2b444db5e1990748cc56fe3ec25f557f8..f54b95cbc5d40f5c09bdcd941749f7190d10542a 100644 (file)
 
 #include <gtkmm.h>
 
-#include <gtkmm2ext/gtk_ui.h>
+#include "gtkmm2ext/gtk_ui.h"
+
+#include "pbd/compose.h"
+#include "canvas/debug.h"
 
 #include "ardour/midi_region.h"
 #include "ardour/midi_source.h"
@@ -45,11 +48,15 @@ using namespace PBD;
 using namespace Editing;
 
 AutomationStreamView::AutomationStreamView (AutomationTimeAxisView& tv)
-       : StreamView (*dynamic_cast<RouteTimeAxisView*>(tv.get_parent()))
+       : StreamView (*dynamic_cast<RouteTimeAxisView*>(tv.get_parent()),
+                     tv.canvas_display())
        , _automation_view(tv)
        , _pending_automation_state (Off)
 {
-       //canvas_rect->property_fill_color_rgba() = stream_base_color;
+       CANVAS_DEBUG_NAME (_canvas_group, string_compose ("SV canvas group auto %1", tv.name()));
+       CANVAS_DEBUG_NAME (canvas_rect, string_compose ("SV canvas rectangle auto %1", tv.name()));
+
+       canvas_rect->set_fill (false);
        canvas_rect->set_outline_color (RGBA_BLACK);
 }
 
@@ -59,11 +66,11 @@ AutomationStreamView::~AutomationStreamView ()
 
 
 RegionView*
-AutomationStreamView::add_region_view_internal (boost::shared_ptr<Region> region, bool wfd, bool /*recording*/)
+AutomationStreamView::add_region_view_internal (boost::shared_ptr<Region> region, bool wait_for_data, bool /*recording*/)
 {
        assert (region);
 
-       if (wfd) {
+       if (wait_for_data) {
                boost::shared_ptr<MidiRegion> mr = boost::dynamic_pointer_cast<MidiRegion>(region);
                if (mr) {
                        mr->midi_source()->load_model();
@@ -93,7 +100,7 @@ AutomationStreamView::add_region_view_internal (boost::shared_ptr<Region> region
                                arv->line()->set_list (list);
                        }
                        (*i)->set_valid (true);
-                       (*i)->enable_display(wfd);
+                       (*i)->enable_display (wait_for_data);
                        display_region(arv);
 
                        return 0;
@@ -111,12 +118,12 @@ AutomationStreamView::add_region_view_internal (boost::shared_ptr<Region> region
 
        /* follow global waveform setting */
 
-       if (wfd) {
+       if (wait_for_data) {
                region_view->enable_display(true);
-               //region_view->midi_region()->midi_source(0)->load_model();
+               // region_view->midi_region()->midi_source(0)->load_model();
        }
 
-       display_region(region_view);
+       display_region (region_view);
 
        /* catch regionview going away */
        region->DropReferences.connect (*this, invalidator (*this), boost::bind (&AutomationStreamView::remove_region_view, this, boost::weak_ptr<Region>(region)), gui_context());
index 698c7e16e2097f5916b5201031b1aedff3421e18..bed80582b2b6a091b7441a8f13e29ffb70747b9e 100644 (file)
@@ -50,16 +50,16 @@ using namespace ARDOUR;
 using namespace PBD;
 using namespace Editing;
 
-StreamView::StreamView (RouteTimeAxisView& tv)
+StreamView::StreamView (RouteTimeAxisView& tv, ArdourCanvas::Group* canvas_group)
        : _trackview (tv)
-       , _canvas_group (new ArdourCanvas::Group (_trackview.canvas_display()))
+       , _canvas_group (canvas_group ? canvas_group : new ArdourCanvas::Group (_trackview.canvas_display()))
        , _samples_per_pixel (_trackview.editor().get_current_zoom ())
        , rec_updating(false)
        , rec_active(false)
        , stream_base_color(0xFFFFFFFF)
        , _layers (1)
        , _layer_display (Overlaid)
-       , height(tv.height)
+       , height (tv.height)
        , last_rec_data_frame(0)
 {
        CANVAS_DEBUG_NAME (_canvas_group, string_compose ("SV canvas group %1", _trackview.name()));
@@ -69,15 +69,10 @@ StreamView::StreamView (RouteTimeAxisView& tv)
        canvas_rect = new ArdourCanvas::Rectangle (_canvas_group);
        CANVAS_DEBUG_NAME (canvas_rect, string_compose ("SV canvas rectangle %1", _trackview.name()));
        canvas_rect->set (ArdourCanvas::Rect (0, 0, ArdourCanvas::COORD_MAX, tv.current_height ()));
-       canvas_rect->raise(1); // raise above tempo lines
-
-       canvas_rect->set_outline_what (ArdourCanvas::Rectangle::What (ArdourCanvas::Rectangle::TOP | ArdourCanvas::Rectangle::BOTTOM));
+       canvas_rect->set_outline_what (ArdourCanvas::Rectangle::BOTTOM);
        canvas_rect->set_outline_color (RGBA_TO_UINT (0, 0, 0, 255));
        canvas_rect->set_fill (true);
-
-       canvas_rect->Event.connect (sigc::bind (
-                       sigc::mem_fun (_trackview.editor(), &PublicEditor::canvas_stream_view_event),
-                       canvas_rect, &_trackview));
+       canvas_rect->Event.connect (sigc::bind (sigc::mem_fun (_trackview.editor(), &PublicEditor::canvas_stream_view_event), canvas_rect, &_trackview));
 
        if (_trackview.is_track()) {
                _trackview.track()->DiskstreamChanged.connect (*this, invalidator (*this), boost::bind (&StreamView::diskstream_changed, this), gui_context());
index c54d5dea70c47b59f6df13d88275b6ce569413b3..e7608cb02ca79db26de6f11ce4587f453bcd6622 100644 (file)
@@ -127,7 +127,7 @@ public:
        sigc::signal<void> ContentsHeightChanged;
 
 protected:
-       StreamView (RouteTimeAxisView&);
+       StreamView (RouteTimeAxisView&, ArdourCanvas::Group* canvas_group = 0);
 
        void         transport_changed();
        void         transport_looped();