Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-03-16 15:52:11 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-03-16 15:52:11 (GMT)
commit2be6d5b0d942433c66ea7554d7b7cec3189aba74 (patch)
tree9e6c5aa93f66ef924240f1bfabe39083b62d3edf
parentd177c90f3f933b9abe7c513c388b9abd767cad7a (diff)
Make filechooser be a transient window.
-rwxr-xr-xwebactivity.py37
-rwxr-xr-xwebview.py33
2 files changed, 35 insertions, 35 deletions
diff --git a/webactivity.py b/webactivity.py
index 8f3d11f..a6928b1 100755
--- a/webactivity.py
+++ b/webactivity.py
@@ -13,14 +13,17 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
+import os
+import logging
from gettext import gettext as _
+
import hippo
-import logging
import dbus
+import gtk
import _sugar
from sugar.activity import activity
+from sugar.graphics.filechooser import FileChooserDialog
from sugar.clipboard import clipboardservice
from sugar import env
@@ -48,6 +51,7 @@ class WebActivity(activity.Activity):
else:
self._browser = WebView()
self._browser.connect('notify::title', self._title_changed_cb)
+ self._browser.connect('mouse-click', self._dom_click_cb)
self._toolbar = WebToolbar(self._browser)
vbox.append(self._toolbar)
@@ -103,6 +107,35 @@ class WebActivity(activity.Activity):
def _title_changed_cb(self, embed, pspec):
self.set_title(embed.props.title)
+ def _get_menu(self, image_uri):
+ menu = gtk.Menu()
+ menu_item = gtk.ImageMenuItem(gtk.STOCK_SAVE)
+ menu_item.connect('activate', self._save_menu_activate_cb, image_uri)
+ menu.add(menu_item)
+ menu.show_all()
+ return menu
+
+ def _dom_click_cb(self, browser, event):
+ if event.image_uri:
+ self._get_menu(event.image_uri).popup(None, None, None, 1, 0)
+
+ def _save_menu_activate_cb(self, menu_item, image_uri):
+ chooser = FileChooserDialog(title=None,
+ parent=self,
+ action=gtk.FILE_CHOOSER_ACTION_SAVE,
+ buttons=(gtk.STOCK_CANCEL,
+ gtk.RESPONSE_CANCEL,
+ gtk.STOCK_SAVE,
+ gtk.RESPONSE_OK))
+ chooser.set_default_response(gtk.RESPONSE_OK)
+ chooser.set_current_folder(os.path.expanduser('~'))
+ response = chooser.run()
+
+ if response == gtk.RESPONSE_OK:
+ self.save_uri(image_uri, chooser.get_filename())
+
+ chooser.destroy()
+
def start():
if not _sugar.browser_startup(env.get_profile_path(), 'gecko'):
raise "Error when initializising the web activity."
diff --git a/webview.py b/webview.py
index eacf1c8..240b972 100755
--- a/webview.py
+++ b/webview.py
@@ -13,13 +13,10 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import os
-
import gobject
import gtk
import logging
-from sugar.graphics.filechooser import FileChooserDialog
from _sugar import Browser
from _sugar import PushScroller
@@ -90,20 +87,6 @@ class WebView(Browser):
Browser.__init__(self)
self._popup_creators = []
- self.connect('mouse-click', self._dom_click_cb)
-
- def _get_menu(self, image_uri):
- menu = gtk.Menu()
- menu_item = gtk.ImageMenuItem(gtk.STOCK_SAVE)
- menu_item.connect('activate', self._save_menu_activate_cb, image_uri)
- menu.add(menu_item)
- menu.show_all()
- return menu
-
- def _dom_click_cb(self, browser, event):
- if event.button == 3 and event.image_uri:
- self._get_menu(event.image_uri).popup(None, None, None, 1, 0)
-
def do_create_window(self):
popup_creator = _PopupCreator(self.get_toplevel())
popup_creator.connect('popup-created', self._popup_created_cb)
@@ -114,19 +97,3 @@ class WebView(Browser):
def _popup_created_cb(self, creator):
self._popup_creators.remove(creator)
-
- def _save_menu_activate_cb(self, menu_item, image_uri):
- chooser = FileChooserDialog(title=None,
- action=gtk.FILE_CHOOSER_ACTION_SAVE,
- buttons=(gtk.STOCK_CANCEL,
- gtk.RESPONSE_CANCEL,
- gtk.STOCK_SAVE,
- gtk.RESPONSE_OK))
- chooser.set_default_response(gtk.RESPONSE_OK)
- chooser.set_current_folder(os.path.expanduser('~'))
- response = chooser.run()
-
- if response == gtk.RESPONSE_OK:
- self.save_uri(image_uri, chooser.get_filename())
-
- chooser.destroy()