From 91ee0dbf9bff6926e75c64db5e816248706b10be Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sim=C3=B3n=20Pena?= Date: Tue, 22 Jun 2010 20:21:50 +0200 Subject: [PATCH] ui: Added webkit view A webkit view has been added so * 'Now on theaters' info can be displayed now, showing google movies * Clicking on a WATC result entry now launches the original website, so you can check the actual stinger (if any) --- ui/maeviesui/maeviesui/gui.py | 69 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/ui/maeviesui/maeviesui/gui.py b/ui/maeviesui/maeviesui/gui.py index 51a580f..c5787a0 100644 --- a/ui/maeviesui/maeviesui/gui.py +++ b/ui/maeviesui/maeviesui/gui.py @@ -25,11 +25,13 @@ import gtk import hildon import pango import gobject +from webkit import WebView 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, TmdbMovie, TmdbMovieImage +from maeviesui.util.moviemanager import MovieManager, TmdbMovie, TmdbMovieImage, \ + WatcMovie moviemanager = MovieManager() @@ -84,7 +86,10 @@ class Maevies(hildon.StackableWindow): return contents; def _button_clicked(self, button, action): - if action == self.ACTION_SEARCH: + if action == self.ACTION_THEATERS: + theaters_view = TheatersWindow() + theaters_view.display_shows() + elif action == self.ACTION_SEARCH: search_dialog = SearchDialog(self) if search_dialog.run() == gtk.RESPONSE_ACCEPT: results_window = ResultsWindow() @@ -187,6 +192,8 @@ class ResultsWindow(hildon.StackableWindow): movie = view.get_movie_from_path(path) if isinstance(movie, TmdbMovie): MovieWindow(movie) + elif isinstance(movie, WatcMovie): + WatcWindow(movie) def start_search(self, search_term, search_category): self._show_banner(search_term, search_category) @@ -350,6 +357,64 @@ class MovieWindow(hildon.StackableWindow): self.add(self._create_contents(movie)) self.show_all() +class WebkitWindow(hildon.StackableWindow): + + def __init__(self): + super(WebkitWindow, self).__init__() + + self.view = WebView() + self.view.connect('load-started', self._load_start) + self.view.connect('load-finished', self._load_finished) + self.view.set_full_content_zoom(True) + + wbk_settings = self.view.get_settings() + wbk_settings.set_property('auto-shrink-images', True) + + self.pannable = hildon.PannableArea() + self.pannable.add(self.view) + self.pannable.set_size_request_policy(hildon.SIZE_REQUEST_CHILDREN) + self.pannable.set_property("mov-mode", hildon.MOVEMENT_MODE_BOTH) + + self.add(self.pannable) + self.show_all() + + def _load_start(self, view, data): + hildon.hildon_gtk_window_set_progress_indicator(self, True) + + def _load_finished(self, view, data): + hildon.hildon_gtk_window_set_progress_indicator(self, False) + + def load_url(self, url): + self.view.open(url) + +class TheatersWindow(WebkitWindow): + + def __init__(self): + super(TheatersWindow, self).__init__() + self.show_all() + + def display_shows(self): + self.load_url('http://www.google.com/movies') + +class WatcWindow(WebkitWindow): + + def __init__(self, movie): + super(WatcWindow, self).__init__() + self.show_all() + has_stingers = movie.get_stingers() + if has_stingers == 0: + stingers = '?' + elif has_stingers == 1: + stingers = '*' + else: + stingers = '' + url = ('http://whatsafterthecredits.com/index.php?title=%(title)s_(%(year)s)%(stingers)s' % + {'title':movie.get_title().strip(), + 'year':movie.get_year().strip(), + 'stingers':stingers}) + print url + self.load_url(url) + if __name__ == '__main__': maevies = Maevies() maevies.run() -- 1.7.9.5