From e135cb18cbc90a3979e3013f16ee4d85078e26a9 Mon Sep 17 00:00:00 2001 From: Joel Holdsworth Date: Fri, 2 Jan 2009 12:41:30 +0000 Subject: [PATCH] Removed TimelineBody::track_from_point --- src/gui/widgets/timeline/timeline-body.cpp | 59 +------------------ src/gui/widgets/timeline/timeline-body.hpp | 9 +-- .../timeline/timeline-layout-helper.cpp | 4 +- .../timeline/timeline-layout-helper.hpp | 2 +- 4 files changed, 7 insertions(+), 67 deletions(-) diff --git a/src/gui/widgets/timeline/timeline-body.cpp b/src/gui/widgets/timeline/timeline-body.cpp index 3d47f9500..67cd257ea 100644 --- a/src/gui/widgets/timeline/timeline-body.cpp +++ b/src/gui/widgets/timeline/timeline-body.cpp @@ -244,6 +244,7 @@ bool TimelineBody::on_motion_notify_event(GdkEventMotion *event) { REQUIRE(event != NULL); + REQUIRE(timelineWidget != NULL); // Handle a middle-mouse drag if one is occuring switch(dragType) @@ -270,8 +271,8 @@ TimelineBody::on_motion_notify_event(GdkEventMotion *event) tool->on_motion_notify_event(event); // See if the track that we're hovering over has changed - shared_ptr new_hovering_track = - track_from_point(event->y); + shared_ptr new_hovering_track( + timelineWidget->layoutHelper.track_from_y(event->y)); if(timelineWidget->get_hovering_track() != new_hovering_track) timelineWidget->set_hovering_track(new_hovering_track); @@ -446,60 +447,6 @@ TimelineBody::set_vertical_offset(int offset) timelineWidget->verticalAdjustment.set_value(offset); } -shared_ptr -TimelineBody::track_from_point(const int y) const -{ - REQUIRE(timelineWidget != NULL); - REQUIRE(timelineWidget->sequence); - - int offset = -get_vertical_offset(); - - BOOST_FOREACH( shared_ptr model_track, - timelineWidget->sequence->get_child_tracks() ) - { - shared_ptr result = track_from_branch( - model_track, y, offset); - if(result) - return result; - } - - // No track has been found with this point in it - return boost::shared_ptr(); -} - -shared_ptr TimelineBody::track_from_branch( - shared_ptr model_track, - const int y, int &offset) const -{ - REQUIRE(timelineWidget != NULL); - - shared_ptr timeline_track = timelineWidget-> - lookup_timeline_track(model_track); - - const int height = timeline_track->get_height(); - REQUIRE(height >= 0); - - // Does the point fall in this track? - if(offset <= y && y < offset + height) - return timeline_track; - - // Add the height of this track to the accumulation - offset += height; - - // Recurse drawing into children - BOOST_FOREACH( shared_ptr child, - model_track->get_child_tracks() ) - { - shared_ptr result = - track_from_branch(child, y, offset); - if(result != NULL) - return result; - } - - // No track has been found in this branch - return shared_ptr(); -} - void TimelineBody::register_styles() const { diff --git a/src/gui/widgets/timeline/timeline-body.hpp b/src/gui/widgets/timeline/timeline-body.hpp index fe4ecd2ef..1200f56e8 100644 --- a/src/gui/widgets/timeline/timeline-body.hpp +++ b/src/gui/widgets/timeline/timeline-body.hpp @@ -139,14 +139,7 @@ private: int get_vertical_offset() const; void set_vertical_offset(int offset); - - boost::shared_ptr track_from_point(const int y) - const; - - boost::shared_ptr track_from_branch( - boost::shared_ptr model_track, - const int y, int &offset) const; - + /** * Registers all the styles that this class will respond to. */ diff --git a/src/gui/widgets/timeline/timeline-layout-helper.cpp b/src/gui/widgets/timeline/timeline-layout-helper.cpp index 011869d70..299be4c4a 100644 --- a/src/gui/widgets/timeline/timeline-layout-helper.cpp +++ b/src/gui/widgets/timeline/timeline-layout-helper.cpp @@ -107,7 +107,7 @@ TimelineLayoutHelper::header_from_point(const Gdk::Point &point) return shared_ptr(); } -boost::weak_ptr +boost::shared_ptr TimelineLayoutHelper::track_from_y(const int y) { std::pair, Gdk::Rectangle> pair; @@ -116,7 +116,7 @@ TimelineLayoutHelper::track_from_y(const int y) // Hit test the rectangle const Gdk::Rectangle &rect = pair.second; if(y >= rect.get_y() && y < rect.get_y() + rect.get_height()) - return pair.first; + return shared_ptr(pair.first); } // No track was found - return an empty pointer diff --git a/src/gui/widgets/timeline/timeline-layout-helper.hpp b/src/gui/widgets/timeline/timeline-layout-helper.hpp index 566ad1f02..3e9d77145 100644 --- a/src/gui/widgets/timeline/timeline-layout-helper.hpp +++ b/src/gui/widgets/timeline/timeline-layout-helper.hpp @@ -72,7 +72,7 @@ public: boost::weak_ptr header_from_point( const Gdk::Point &point); - boost::weak_ptr track_from_y(const int y); + boost::shared_ptr track_from_y(const int y); int get_total_height() const;