~ubuntu-branches/ubuntu/trusty/miro/trusty

« back to all changes in this revision

Viewing changes to portable/frontends/widgets/browser.py

  • Committer: Daniel Hahler
  • Date: 2010-04-13 18:51:35 UTC
  • mfrom: (1.2.10 upstream)
  • Revision ID: ubuntu-launchpad@thequod.de-20100413185135-xi24v1diqg8w406x
Merging shared upstream rev into target branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Miro - an RSS based video player application
2
 
# Copyright (C) 2005-2009 Participatory Culture Foundation
 
2
# Copyright (C) 2005-2010 Participatory Culture Foundation
3
3
#
4
4
# This program is free software; you can redistribute it and/or modify
5
5
# it under the terms of the GNU General Public License as published by
141
141
        self.seen_cache[url] = 1
142
142
        self.navigate(url)
143
143
 
144
 
    def should_load_url(self, url):
 
144
    def should_load_url(self, url, mimetype=None):
145
145
        """Returns True if the Miro browser should handle the url and False
146
146
        otherwise.
147
147
 
150
150
        * if the url is something that Miro should download instead
151
151
        * other things?
152
152
        """
153
 
        logging.debug("got %s", url)
 
153
        if mimetype is not None:
 
154
            logging.debug("got %s (%s)" % (url, mimetype))
 
155
        else:
 
156
            logging.debug("got %s" % url)
154
157
 
155
158
        if url in self.seen_cache:
156
159
            del self.seen_cache[url]
157
160
            return True
158
161
 
159
 
        url = util.toUni(url)
 
162
        url = util.to_uni(url)
160
163
        if subscription.is_subscribe_link(url):
161
164
            messages.SubscriptionLinkClicked(url).send_to_backend()
162
165
            return False
175
178
            messages.DownloadURL(url, lambda x: call_on_ui_thread(self.handle_unknown_url, x)).send_to_backend()
176
179
            return False
177
180
 
 
181
        if mimetype is not None and filetypes.is_allowed_mimetype(mimetype):
 
182
            logging.debug("miro wants to handle %s", url)
 
183
            messages.DownloadURL(url, lambda x: call_on_ui_thread(self.handle_unknown_url, x)).send_to_backend()
 
184
            return False
 
185
 
178
186
        return True
179
187
 
180
188
class BrowserNav(widgetset.VBox):
189
197
        self.pack_start(separator.HThinSeparator((0.6, 0.6, 0.6)))
190
198
        self.pack_start(self.browser, expand=True)
191
199
 
192
 
        self.toolbar.connect('browser-back', self._on_browser_back)
193
 
        self.toolbar.connect('browser-forward', self._on_browser_forward)
194
 
        self.toolbar.connect('browser-reload', self._on_browser_reload)
195
 
        self.toolbar.connect('browser-stop', self._on_browser_stop)
196
 
        self.toolbar.connect('browser-home', self._on_browser_home)
197
 
        self.toolbar.connect('browser-download', self._on_browser_download)
198
 
        self.toolbar.connect('browser-open', self._on_browser_open)
 
200
        self.toolbar.connect_weak('browser-back', self._on_browser_back)
 
201
        self.toolbar.connect_weak('browser-forward', self._on_browser_forward)
 
202
        self.toolbar.connect_weak('browser-reload', self._on_browser_reload)
 
203
        self.toolbar.connect_weak('browser-stop', self._on_browser_stop)
 
204
        self.toolbar.connect_weak('browser-home', self._on_browser_home)
 
205
        self.toolbar.connect_weak('browser-download', self._on_browser_download)
 
206
        self.toolbar.connect_weak('browser-open', self._on_browser_open)
199
207
 
200
 
        self.browser.connect('net-start', self._on_net_start)
201
 
        self.browser.connect('net-stop', self._on_net_stop)
 
208
        self.browser.connect_weak('net-start', self._on_net_start)
 
209
        self.browser.connect_weak('net-stop', self._on_net_stop)
202
210
 
203
211
    def enable_disable_navigation(self):
204
212
        if self.browser.can_go_back():