Removed extraneous TimelineLayoutHelper::draggingTrack member

This commit is contained in:
Joel Holdsworth 2009-01-24 10:37:04 +00:00
parent e15adf1afb
commit 1908ff08a0
3 changed files with 24 additions and 22 deletions

View file

@ -201,14 +201,14 @@ bool TimelineHeaderContainer::on_motion_notify_event (
// Are we beginning to drag a header? // Are we beginning to drag a header?
if((event->state & GDK_BUTTON1_MASK) && hoveringTrack && if((event->state & GDK_BUTTON1_MASK) && hoveringTrack &&
!layout.get_dragging_track()) !layout.is_dragging_track())
{ {
begin_drag(); begin_drag();
return result; return result;
} }
// Are we currently dragging? // Are we currently dragging?
if(layout.get_dragging_track()) if(layout.is_dragging_track())
{ {
// Forward the message to the layout manager // Forward the message to the layout manager
layout.drag_to_point(mousePoint); layout.drag_to_point(mousePoint);
@ -347,9 +347,6 @@ TimelineHeaderContainer::layout_headers()
const TimelineLayoutHelper::TrackTree &layout_tree = const TimelineLayoutHelper::TrackTree &layout_tree =
layout_helper.get_layout_tree(); layout_helper.get_layout_tree();
shared_ptr<timeline::Track> dragging_track =
layout_helper.get_dragging_track();
TimelineLayoutHelper::TrackTree::pre_order_iterator iterator; TimelineLayoutHelper::TrackTree::pre_order_iterator iterator;
for(iterator = ++layout_tree.begin(); // ++ so that we skip the sequence root for(iterator = ++layout_tree.begin(); // ++ so that we skip the sequence root
iterator != layout_tree.end(); iterator != layout_tree.end();
@ -416,7 +413,7 @@ TimelineHeaderContainer::end_drag(bool apply)
TimelineLayoutHelper &layout = timelineWidget.layoutHelper; TimelineLayoutHelper &layout = timelineWidget.layoutHelper;
// Has the user been dragging? // Has the user been dragging?
if(layout.get_dragging_track()) if(layout.is_dragging_track())
layout.end_dragging_track(apply); layout.end_dragging_track(apply);
// Reset the arrow as a cursor // Reset the arrow as a cursor

View file

@ -45,6 +45,8 @@ TimelineLayoutHelper::TimelineLayoutHelper(TimelineWidget &owner) :
dragBranchHeight(0), dragBranchHeight(0),
animating(false) animating(false)
{ {
// Init draggingTrackIter into a non-dragging state
draggingTrackIter.node = NULL;
} }
void void
@ -134,26 +136,27 @@ shared_ptr<timeline::Track>
TimelineLayoutHelper::begin_dragging_track( TimelineLayoutHelper::begin_dragging_track(
const Gdk::Point &mouse_point) const Gdk::Point &mouse_point)
{ {
draggingTrack = header_from_point(mouse_point); shared_ptr<timeline::Track> dragging_track =
if(!draggingTrack) header_from_point(mouse_point);
if(!dragging_track)
return shared_ptr<timeline::Track>(); return shared_ptr<timeline::Track>();
dragPoint = Gdk::Point(mouse_point.get_x(), dragPoint = Gdk::Point(mouse_point.get_x(),
mouse_point.get_y() + timelineWidget.get_y_scroll_offset()); mouse_point.get_y() + timelineWidget.get_y_scroll_offset());
const Gdk::Rectangle &rect = headerBoxes[draggingTrack]; const Gdk::Rectangle &rect = headerBoxes[dragging_track];
dragStartOffset = Gdk::Point( dragStartOffset = Gdk::Point(
dragPoint.get_x() - rect.get_x(), dragPoint.get_x() - rect.get_x(),
dragPoint.get_y() - rect.get_y()); dragPoint.get_y() - rect.get_y());
const shared_ptr<model::Track> model_track = const shared_ptr<model::Track> model_track =
draggingTrack->get_model_track(); dragging_track->get_model_track();
draggingTrackIter = iterator_from_track(model_track); draggingTrackIter = iterator_from_track(model_track);
dragBranchHeight = measure_branch_height(draggingTrackIter); dragBranchHeight = measure_branch_height(draggingTrackIter);
draggingDrop.relation = None; draggingDrop.relation = None;
return draggingTrack; return dragging_track;
} }
void void
@ -162,15 +165,15 @@ TimelineLayoutHelper::end_dragging_track(bool apply)
if(apply) if(apply)
apply_drop_to_model_tree(draggingDrop); apply_drop_to_model_tree(draggingDrop);
draggingTrack.reset(); draggingTrackIter.node = NULL;
clone_tree_from_sequence(); clone_tree_from_sequence();
update_layout(); update_layout();
} }
boost::shared_ptr<timeline::Track> bool
TimelineLayoutHelper::get_dragging_track() const TimelineLayoutHelper::is_dragging_track() const
{ {
return draggingTrack; return draggingTrackIter.node != NULL;
} }
TimelineLayoutHelper::TrackTree::pre_order_iterator TimelineLayoutHelper::TrackTree::pre_order_iterator
@ -484,6 +487,7 @@ TimelineLayoutHelper::layout_headers_recursive(
{ {
REQUIRE(depth >= 0); REQUIRE(depth >= 0);
const bool dragging = is_dragging_track();
int child_offset = 0; int child_offset = 0;
TrackTree::sibling_iterator iterator; TrackTree::sibling_iterator iterator;
@ -499,7 +503,10 @@ TimelineLayoutHelper::layout_headers_recursive(
shared_ptr<timeline::Track> timeline_track = shared_ptr<timeline::Track> timeline_track =
lookup_timeline_track(model_track); lookup_timeline_track(model_track);
const bool being_dragged = (timeline_track == draggingTrack); // Is this the root track of a dragging branch?
bool being_dragged = false;
if(dragging)
being_dragged = (model_track == *draggingTrackIter);
// Is the track going to be shown? // Is the track going to be shown?
if(parent_expanded) if(parent_expanded)

View file

@ -132,7 +132,7 @@ public:
void end_dragging_track(bool apply); void end_dragging_track(bool apply);
boost::shared_ptr<timeline::Track> get_dragging_track() const; bool is_dragging_track() const;
TrackTree::pre_order_iterator get_dragging_track_iter() const; TrackTree::pre_order_iterator get_dragging_track_iter() const;
@ -276,8 +276,6 @@ protected:
TrackTree::pre_order_iterator draggingTrackIter; TrackTree::pre_order_iterator draggingTrackIter;
boost::shared_ptr<timeline::Track> draggingTrack;
Gdk::Point dragStartOffset; Gdk::Point dragStartOffset;
Gdk::Point dragPoint; Gdk::Point dragPoint;