[PiTiVi] Progress Report

With things having calmed down somewhat, I spent the better part of last week familiarizing myself with both pygtk and the PiTiVi source. I wrote a simple pygtk utility as well -- a settings dialog for matchbox desktop -- in order to help get myself back into the groove of coding with python and gtk.

Earlier this week, Edward Hervey and I agreed on on a simple task for the PiTiVi video editor. To understand it, first examine this UI mockup:

This UI mockup shows the gtk.SimpleSourceWidget, which represents a movie clip in the PiTiVi timeline. It features a thumbnail, destroy box, edit button, effects thumbnail and volume control slider. The current code only implements the thumbnail, which is directly painted into the widget's drawing area. My task was to add a destroy box, and connect it to the appropriate signal handler. This proved to be challenging because SimpleSourceWidget is derived from gtk.DrawingArea, which is not a container. Rather than re-inventing the wheel and writing my own event handling code, I solved this problem by completely re-implementing the widget as a subclass of gtk.EventBox, which is a container widget. gtk.EventBox also allows me to set the background color of the SimpleSourceWidget, a crucial feature. The downside to this approach is that the thumbail for the clip needs to be a widget itself, and the gtk.Image widget does not scale the video. I decided to create a new widget, ScaledThumbnailViewer which displays a scaled thumbnail at the appropriate aspect ratio. This is advantageous because it makes adding the second effects preview thumbnail very easy. I suspect I will find many uses for this thumbnail viewer class.

I continued laying out the rest of the widgets components. I also had to correct some issues relating to the way the container timeline widget sized the components, but this was pretty straight forward in the end.

here's a screenshot: http://www.ocf.berkeley.edu/~brandon/pitivi/SimpleFileSource.png as you can see, there's room for some cosmetic tweaks, but all the elements are in place.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]