[pitivi] timeline/elements: Cleanup and document code
- From: Jean-François Fortin Tam <jfft src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] timeline/elements: Cleanup and document code
- Date: Fri, 2 Aug 2013 16:46:38 +0000 (UTC)
commit 8964cc321148ef7cffaf297960d9b6cbc2c27409
Author: Jean-François Fortin Tam <nekohayo gmail com>
Date: Fri Aug 2 17:15:20 2013 +0200
timeline/elements: Cleanup and document code
pitivi/timeline/elements.py | 39 ++++++++++++---------------------------
pitivi/utils/ui.py | 7 +------
2 files changed, 13 insertions(+), 33 deletions(-)
---
diff --git a/pitivi/timeline/elements.py b/pitivi/timeline/elements.py
index cf7fbba..29dc461 100644
--- a/pitivi/timeline/elements.py
+++ b/pitivi/timeline/elements.py
@@ -28,9 +28,8 @@ is prefixed with a little b, example : bTimeline
import cairo
import math
-
import os
-import cairo
+from datetime import datetime
from gi.repository import Clutter, Gtk, GtkClutter, Cogl, GES, Gdk, Gst, GstController, GLib
from pitivi.utils.timeline import Zoomable, EditingContext, Selection, SELECT, UNSELECT, SELECT_ADD, Selected
@@ -39,19 +38,14 @@ from previewers import AudioPreviewer, VideoPreviewer, BORDER_WIDTH
import pitivi.configure as configure
from pitivi.utils.ui import EXPANDED_SIZE, SPACING, KEYFRAME_SIZE, CONTROL_WIDTH
-from datetime import datetime
-
def get_preview_for_object(bElement, timeline):
- # Fixme special preview for transitions, titles
+ # FIXME: special preview for transitions, titles
if not isinstance(bElement.get_parent(), GES.UriClip):
return Clutter.Actor()
track_type = bElement.get_track_type()
if track_type == GES.TrackType.AUDIO:
- # FIXME: RandomAccessAudioPreviewer doesn't work yet
- # previewers[key] = RandomAccessAudioPreviewer(instance, uri)
- # TODO: return waveform previewer
previewer = AudioPreviewer(bElement, timeline)
previewer.startLevelsDiscoveryWhenIdle()
return previewer
@@ -497,7 +491,6 @@ class TimelineElement(Clutter.Actor, Zoomable):
self.keyframes = []
l = len(values)
-
for i, value in enumerate(values):
has_changable_time = True
if i == 0 or i == l - 1:
@@ -540,7 +533,6 @@ class TimelineElement(Clutter.Actor, Zoomable):
def _createKeyframe(self, value, has_changable_time):
keyframe = Keyframe(self, value, has_changable_time)
-
self.add_child(keyframe)
self.keyframes.append(keyframe)
self.setKeyframePosition(keyframe, value)
@@ -569,12 +561,10 @@ class TimelineElement(Clutter.Actor, Zoomable):
self.border = RoundedRectangle(0, 0, 0, 0)
self.border.bElement = self.bElement
color = Cogl.Color()
-
color.init_from_4ub(100, 100, 100, 255)
self.border.set_border_color(color)
self.border.set_border_width(1)
self.border.set_position(0, 0)
-
self.add_child(self.border)
def _createBackground(self, track):
@@ -585,7 +575,6 @@ class TimelineElement(Clutter.Actor, Zoomable):
def _createPreview(self):
self.preview = get_preview_for_object(self.bElement, self.timeline)
-
self.add_child(self.preview)
def _createMarquee(self):
@@ -613,7 +602,6 @@ class TimelineElement(Clutter.Actor, Zoomable):
if self.bElement.get_track_type() == GES.TrackType.AUDIO:
y -= self.nbrLayers * (EXPANDED_SIZE + SPACING)
priority = int(y / (EXPANDED_SIZE + SPACING))
-
return priority
# Interface (Zoomable)
@@ -707,9 +695,11 @@ class Gradient(Clutter.Actor):
class Line(Clutter.Actor):
+ """
+ A cairo line used for keyframe curves.
+ """
def __init__(self, timelineElement, keyframe, lastKeyframe):
Clutter.Actor.__init__(self)
-
self.timelineElement = timelineElement
self.canvas = Clutter.Canvas()
@@ -735,7 +725,10 @@ class Line(Clutter.Actor):
self.previousKeyframe = lastKeyframe
self.nextKeyframe = keyframe
- def _drawCb(self, canvas, cr, width, height):
+ def _drawCb(self, canvas, cr, width, unused_height):
+ """
+ This is where we actually create the line segments for keyframe curves.
+ """
cr.set_operator(cairo.OPERATOR_CLEAR)
cr.paint()
cr.set_operator(cairo.OPERATOR_OVER)
@@ -832,11 +825,14 @@ class Keyframe(Clutter.Actor):
"""
If has_changable_time is False, it means this is an edge keyframe.
"""
+
def __init__(self, timelineElement, value, has_changable_time):
Clutter.Actor.__init__(self)
self.value = value
self.timelineElement = timelineElement
+ self.has_changable_time = has_changable_time
+ self.lastClick = datetime.now()
self.set_size(KEYFRAME_SIZE, KEYFRAME_SIZE)
self.set_background_color(Clutter.Color.new(0, 255, 0, 255))
@@ -844,23 +840,16 @@ class Keyframe(Clutter.Actor):
self.dragAction = Clutter.DragAction()
self.add_action(self.dragAction)
- self.has_changable_time = has_changable_time
-
self.dragAction.connect("drag-begin", self._dragBeginCb)
self.dragAction.connect("drag-end", self._dragEndCb)
self.dragAction.connect("drag-progress", self._dragProgressCb)
self.connect("key-press-event", self._keyPressEventCb)
self.connect("enter-event", self._enterEventCb)
self.connect("leave-event", self._leaveEventCb)
-
self.connect("button-press-event", self._clickedCb)
- self.lastClick = datetime.now()
-
self.createMenu()
-
self.dragProgressed = False
-
self.set_reactive(True)
def createMenu(self):
@@ -879,7 +868,6 @@ class Keyframe(Clutter.Actor):
return
self.timelineElement.timeline.remove_child(self.menu)
-
self._unselect()
self.timelineElement.removeKeyframe(self)
@@ -943,7 +931,6 @@ class Keyframe(Clutter.Actor):
self.value = Gst.TimedValue()
self.value.timestamp = newTs
self.value.value = newValue
-
self.lastTs = newTs
self.timelineElement.setKeyframePosition(self, self.value)
@@ -964,9 +951,7 @@ class Keyframe(Clutter.Actor):
coords = self.dragAction.get_motion_coords()
delta_x = coords[0] - self.dragBeginStartX
delta_y = coords[1] - self.dragBeginStartY
-
self.updateValue(delta_x, delta_y)
-
return False
def _dragEndCb(self, action, actor, event_x, event_y, modifiers):
diff --git a/pitivi/utils/ui.py b/pitivi/utils/ui.py
index b2d47e6..7e9e2ab 100644
--- a/pitivi/utils/ui.py
+++ b/pitivi/utils/ui.py
@@ -50,19 +50,14 @@ from pitivi.utils.loggable import doLog, ERROR
LAYER_HEIGHT_EXPANDED = 50
LAYER_HEIGHT_COLLAPSED = 15
TRACK_SPACING = 8
-
EXPANDED_SIZE = 65
+CONTROL_WIDTH = 250
PADDING = 6
-
SPACING = 10
PLAYHEAD_WIDTH = 2
-
CANVAS_SPACING = 21
-
-CONTROL_WIDTH = 250
-
KEYFRAME_SIZE = 8
# Layer creation blocking time in s
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]