###########################################################################
import pygtk
+import os
pygtk.require('2.0')
import gtk
import hildon
import gobject
from maeviesui.util import constants
+from maeviesui.util.asyncworker import AsyncWorker, AsyncItem
+from maeviesui.util.util import image_downloader
from maeviesui.util.moviemanager import MovieManager
class Maevies(hildon.StackableWindow):
def add_movies(self, movie_list):
model = self.get_model()
- model.add(movie_list)
+ if model:
+ model.add(movie_list)
def get_movie_from_path(self, path):
model = self.get_model()
class MovieWindow(hildon.StackableWindow):
+ def _create_movie_image(self, movie):
+ image = gtk.Image()
+ image.set_from_pixbuf(gtk.IconTheme().load_icon('general_video',
+ 256, 0))
+ banner = hildon.hildon_banner_show_information_with_markup(self,
+ 'ignored',
+ 'Fetching movie cover')
+ banner.set_timeout(constants.TIMEOUT_TIME_MILLIS)
+ hildon.hildon_gtk_window_set_progress_indicator(self, True)
+
+ async_item = AsyncItem(image_downloader, (movie.get_images()[0].get_url(), '/tmp/' + movie.get_title()),
+ self._set_downloaded_image, (image,))
+ self.async_worker.queue.put(async_item)
+ self.async_worker.start()
+
+ return image
+
+ def _set_downloaded_image(self, image, target, error):
+ image_file = os.path.abspath(target)
+ image.set_from_pixbuf(gtk.gdk.pixbuf_new_from_file_at_size(image_file,
+ 256,
+ 256))
+ hildon.hildon_gtk_window_set_progress_indicator(self, False)
+
def _create_contents(self, movie):
main_area = hildon.PannableArea()
upper_content = gtk.HBox(False, 40)
upper_content.set_border_width(20)
- image = gtk.Image()
- image.set_from_pixbuf(gtk.IconTheme().load_icon('mediaplayer_default_album',
- 256, 0))
+ image = self._create_movie_image(movie)
side_content = gtk.VBox(False, 30)
def __init__(self, movie):
super(MovieWindow, self).__init__()
+ self.async_worker = AsyncWorker()
self.set_title('Movie info')
self.add(self._create_contents(movie))
self.show_all()