From 55647642ada6669967154b5523bbfee7eb218519 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 15 Oct 2008 10:52:33 +0000 Subject: Make the filepicker work on multiple windows. --- diff --git a/filepicker.py b/filepicker.py index a38de9a..240e7e8 100644 --- a/filepicker.py +++ b/filepicker.py @@ -20,6 +20,7 @@ import tempfile import shutil import gtk +import hulahop import xpcom from xpcom import components @@ -29,7 +30,6 @@ from xpcom.server.factory import Factory from sugar.graphics.objectchooser import ObjectChooser _temp_files_to_clean = [] -_browser_window = None def cleanup_temp_files(): for temp_file in _temp_files_to_clean: @@ -60,17 +60,7 @@ class FilePicker: def init(self, parent, title, mode): self._title = title self._file = None - - """ - Would be nice to get the window xid with something like this, but - couldn't find how. - - cls = components.classes['@mozilla.org/embedcomp/window-watcher;1'] - window_watcher = cls.getService(interfaces.nsIWindowWatcher) - chrome = window_watcher.getChromeForWindow(parent) - self._parent = chrome.web_view.get_toplevel() - """ - self._parent = _browser_window + self._parent = hulahop.get_view_for_window(parent) if mode != interfaces.nsIFilePicker.modeOpen: raise xpcom.COMException(NS_ERROR_NOT_IMPLEMENTED) @@ -149,11 +139,6 @@ class FilePicker: return None components.registrar.registerFactory(FilePicker.cid, - FilePicker.description, - '@mozilla.org/filepicker;1', - Factory(FilePicker)) - -def init(main_window): - global _browser_window - _browser_window = main_window.get_toplevel() - + FilePicker.description, + '@mozilla.org/filepicker;1', + Factory(FilePicker)) diff --git a/webactivity.py b/webactivity.py index 6576252..34ab4c7 100644 --- a/webactivity.py +++ b/webactivity.py @@ -68,8 +68,8 @@ from browser import Browser from edittoolbar import EditToolbar from webtoolbar import WebToolbar from viewtoolbar import ViewToolbar -import downloadmanager import filepicker +import downloadmanager import globalhistory _LIBRARY_PATH = '/usr/share/library-common/index.html' @@ -98,7 +98,6 @@ class WebActivity(activity.Activity): temp_path = os.path.join(self.get_activity_root(), 'instance') downloadmanager.init(self._browser, self, temp_path) - filepicker.init(self) toolbox = activity.ActivityToolbox(self) -- cgit v0.9.1