Home | Trees | Indices | Help |
|
---|
|
1 # Copyright (C) 2009, 2010, 2011 Rickard Lindberg, Roger Lindberg 2 # 3 # This file is part of Timeline. 4 # 5 # Timeline is free software: you can redistribute it and/or modify 6 # it under the terms of the GNU General Public License as published by 7 # the Free Software Foundation, either version 3 of the License, or 8 # (at your option) any later version. 9 # 10 # Timeline is distributed in the hope that it will be useful, 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 # GNU General Public License for more details. 14 # 15 # You should have received a copy of the GNU General Public License 16 # along with Timeline. If not, see <http://www.gnu.org/licenses/>. 17 18 19 from timelinelib.view.scrollbase import ScrollViewInputHandler 20 212310525 ScrollViewInputHandler.__init__(self, drawing_area) 26 self.drawing_area = drawing_area 27 self.status_bar_adapter = status_bar_adapter 28 self.start_drag_time = start_drag_time 29 self._store_event_periods(event)3032 self.event_periods = [] 33 selected_events = self.drawing_area.get_selected_events() 34 if not event_being_dragged in selected_events: 35 return 36 for event in selected_events: 37 period_pair = (event, event.time_period) 38 if event == event_being_dragged: 39 self.event_periods.insert(0, period_pair) 40 else: 41 self.event_periods.append(period_pair) 42 if event.is_container(): 43 for subevent in event.events: 44 period_pair = (subevent, subevent.time_period) 45 self.event_periods.append(period_pair) 46 assert self.event_periods[0][0] == event_being_dragged47 5153 ScrollViewInputHandler.left_mouse_up(self) 54 self.status_bar_adapter.set_text("") 55 self.drawing_area.change_input_handler_to_no_op()56 5961 if len(self.event_periods) == 0: 62 return 63 if self._any_event_locked(): 64 self.status_bar_adapter.set_text(_("Can't move locked event")) 65 return 66 self._move_selected_events() 67 self.drawing_area.redraw_timeline()6870 for (event, original_period) in self.event_periods: 71 if event.locked: 72 return True 73 return False7476 total_move_delta = self._get_total_move_delta() 77 for (event, original_period) in self.event_periods: 78 event.update_period_o(original_period.move_delta(total_move_delta))7981 moved_delta = self._get_moved_delta() 82 if self.drawing_area.event_is_period(self.event_periods[0][0]): 83 new_period = self.event_periods[0][1].move_delta(moved_delta) 84 snapped_period = self._snap(new_period) 85 return snapped_period.start_time - self.event_periods[0][1].start_time 86 else: 87 return moved_delta8890 current_time = self.drawing_area.get_time(self.last_x) 91 delta = current_time - self.start_drag_time 92 return delta9395 start = period.start_time 96 end = period.end_time 97 start_snapped = self.drawing_area.snap(start) 98 end_snapped = self.drawing_area.snap(end) 99 if start_snapped != start: 100 return period.move_delta(start_snapped - start) 101 elif end_snapped != end: 102 return period.move_delta(end_snapped - end) 103 else: 104 return period
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Sat Aug 3 03:56:35 2013 | http://epydoc.sourceforge.net |