~ubuntu-welcome-window-team/ubuntu-welcome-window/0.1

« back to all changes in this revision

Viewing changes to tour/browser.py

  • Committer: Brian Vidal
  • Date: 2010-02-02 21:25:32 UTC
  • Revision ID: dael@dael-on-karmic-20100202212532-7vbcq387pnbg2cur
localizer working, added closed captions

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
import gobject
2
 
gobject.threads_init()
3
 
import webkit
4
 
import gtk
 
1
from gobject import threads_init
 
2
threads_init()
 
3
from webkit import WebView
5
4
 
6
5
from tour.tourconfig import getdatapath
7
6
from tour.localizer import Localizer
8
7
 
9
 
import tour.utils as utils
 
8
#import tour.utils as utils
10
9
 
11
10
class Browser():
12
11
    
15
14
        self.requested_uri = ''
16
15
        self.current_uri = ''
17
16
        self.data_path = getdatapath()
18
 
        self.Ibrowser = webkit.WebView()
 
17
        self.Ibrowser = WebView()
 
18
        #kill right click
 
19
        self.Ibrowser.connect("button-press-event", lambda w, e: e.button == 3)
19
20
        self.Ibrowser.connect('navigation-requested', self.handle_uri)
20
21
        self.Ibrowser.connect('script-alert', self.listen)
 
22
        
 
23
        #start Localizer
 
24
        self.local = Localizer()
 
25
        self.local.locale = 'en'
 
26
        self.local.data_path = self.data_path
21
27
    
22
28
    def start(self):
23
29
        #load loader.htm
41
47
                    utils.info('jus keep', 'installed')
42
48
            elif action == 'keepshowing':
43
49
                utils.info('show again!', 'or maybe do nothing')
 
50
            else:
 
51
                if action.startswith('cc:'):
 
52
                    print 'cc requested.'
 
53
                    self.get_cc(action)
44
54
        finally:
45
55
            return True
46
56
    
52
62
        if uri.startswith('tour:'):
53
63
            print 'handling uri:' + uri
54
64
            self.requested_uri = uri
55
 
            if uri == 'tour:index':
56
 
                self.goto(uri)
57
 
            else:
58
 
                self.clear()
 
65
            self.clear()
59
66
            stop_charge = True
60
67
            
61
68
        #direct access to aptUrl's
93
100
        else:
94
101
            name = dst
95
102
        
96
 
        local = Localizer()
97
 
        local.locale = 'es'
98
 
        local.data_path = self.data_path
99
 
        content = local.parse(name)
100
 
        scrp = "document.getElementById('main').innerHTML = '" + content +"';"
101
 
        self.Ibrowser.execute_script(scrp)
 
103
        content = self.local.parse(name)
 
104
        self.Ibrowser.execute_script("replaceHtml('main','" + content +"');")
 
105
        del content
102
106
        
103
107
        oldscript = self.current_uri.replace('tour:', '')
104
108
        self.Ibrowser.execute_script('replacejscssfile("../js/' + oldscript + '.js", "../js/' + name + '.js", "js")')
105
109
        
106
110
        self.current_uri = uri
107
111
        self.requested_uri = ''
 
112
    
 
113
    def get_cc(self, str):
 
114
        #read cc of lesson x and stores them in a array.
 
115
        #cc:lesson:m:s
 
116
        data = str.split(':')
 
117
             
 
118
        text = self.local.get_string('cc:'+data[2]+':'+data[3], self.current_uri.replace('tour:', ''), int(data[1]) )
 
119
        del data #clean up
 
120
        if text == '-clear-':
 
121
            self.Ibrowser.execute_script("show_cc(' ');")
 
122
        elif text != False:
 
123
            self.Ibrowser.execute_script("show_cc('" + text + "');")
 
124
        else:
 
125
            print 'no suitable cc found.'
108
126
        
 
127
    
109
128
    #Fixme: move this to 'utils' class and add error handling
110
129
    def spawn_async(self, args):
111
130
        import glib
112
131
        try:
113
132
            glib.spawn_async(args, flags=glib.SPAWN_SEARCH_PATH)
114
 
        except Except:
 
133
        except:
115
134
            print 'apturl could not be spawned'
116
135
 
117
136
        return True
 
 
b'\\ No newline at end of file'