From f189bfe754759cdd89f6c088bd8b94102d4f0377 Mon Sep 17 00:00:00 2001 From: jeena Date: Mon, 5 Nov 2012 02:05:13 +0100 Subject: [PATCH] added Controller and OauthImplementation windows --- Linux/Tentia.py | 30 +++++++++++++++++++++++---- Linux/TentiaWindows.py | 46 +++++++++++++++++++++++++++++++++++++++--- 2 files changed, 69 insertions(+), 7 deletions(-) diff --git a/Linux/Tentia.py b/Linux/Tentia.py index 3204597..d7af1ef 100755 --- a/Linux/Tentia.py +++ b/Linux/Tentia.py @@ -5,19 +5,41 @@ import TentiaWindows class Tentia: def __init__(self): - self.setup_preferences_window() - self.preferences_window.show() + self.controller = Controller() + + self.setup_windows() + self.preferences.show() gtk.main() def quit(self, sender): gtk.main_quit() - def setup_preferences_window(self): - self.preferences_window = TentiaWindows.Preferences(self) + def setup_windows(self): + self.preferences = TentiaWindows.Preferences(self) + self.timeline = TentiaWindows.Timeline(self) + self.mentions = TentiaWindows.Timeline(self, action="mentions", title="Mentions") def resources_path(self): return "../" + def login_with_entity(self, entity): + self.controller.setString_forKey_("entity", entity) + self.oauth_implementation = TentiaWindows.OauthImplementation(self) + + def controller(): + return self.controller; + + +class Controller: + + def __init__(self, app): + self.app = app + + def setString_forKey_(self, string, key): + self.user_defaults[string] = key + + def getStringForKey_(self, key): + return self.user_defaults[key] if __name__ == "__main__": Tentia() \ No newline at end of file diff --git a/Linux/TentiaWindows.py b/Linux/TentiaWindows.py index a4384cf..c78eb51 100644 --- a/Linux/TentiaWindows.py +++ b/Linux/TentiaWindows.py @@ -40,7 +40,7 @@ class Preferences: self.app.quit(self) def on_login_button_clicked(self, widget): - print "Login" + self.app.login_with_entity(self.entity_entry.get_text()) def show(self): self.window.show() @@ -48,14 +48,21 @@ class Preferences: def hide(self): self.window.hide() + class Timeline: - def __init__(self, app): + def __init__(self, app, action="home_timeline", title="Tentia"): self.app = app + self.action = action + self.title = title + self.window = gtk.Window() self.window.connect("delete-event", self.quit) + self.window.set_title(self.title) + self.window.set_position(gtk.WIN_POS_CENTER) + self.window.set_size_request(390, 650) - scroller = gtk.ScrollerWindow() + scroller = gtk.ScrolledWindow() self.window.add(scroller) self.web_view = webkit.WebView() @@ -71,3 +78,36 @@ class Timeline: def hide(self): self.window.hide() + + def init_web_view(self): + self.web_view.connect("load-finished", self.load_finished) + self.web_view.open(self.app.resources_path() + "index.html") + + def load_finished(self, widget): + delay = 1 + if self.action == "mentions": + delay = 1000 + + script = "setTimeout(\ + function() {\ + tentia_instance = new Core('" + self.action + "');\ + document.getElementsByTagName('body')[0].appendChild(tentia_instance.body);\ + setTimeout(function(){ loadPlugin(controller.pluginURL()) }, 1); }, " + delay + "\ + );" + + self.web_view.execute_script(script) + +class OauthImplementation: + + def __init__(self, app): + self.app = app + self.web_view = gtk.WebView() + self.init_web_view() + + def init_web_view(self): + self.web_view.connect("load-finished", self.load_finished) + self.web_view.open(self.app.resources_path() + "index_oauth.html") + + def load_finished(self, widget): + script = "setTimeout( function() { tentia_oauth = new OauthImplementation(); }, 2);" + self.web_view.execute_script(stript)