Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xactivity/activity.info2
-rwxr-xr-xwebtoolbar.py64
2 files changed, 60 insertions, 6 deletions
diff --git a/activity/activity.info b/activity/activity.info
index 948093a..e7398a5 100755
--- a/activity/activity.info
+++ b/activity/activity.info
@@ -1,6 +1,6 @@
[Activity]
name = Web
-activity_version = 8
+activity_version = 9
service_name = org.laptop.WebActivity
icon = activity-web
class = webactivity.WebActivity
diff --git a/webtoolbar.py b/webtoolbar.py
index 1a1cfc7..f4af09c 100755
--- a/webtoolbar.py
+++ b/webtoolbar.py
@@ -14,6 +14,8 @@
# 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 gtk
@@ -27,10 +29,6 @@ class WebToolbar(Toolbar):
def __init__(self, embed):
Toolbar.__init__(self)
- self._save = IconButton(icon_name='theme:stock-save')
- self._save.connect("activated", self._save_cb)
- self.append(self._save)
-
self._back = IconButton(icon_name='theme:stock-back')
self._back.props.active = False
self._back.connect("activated", self._go_back_cb)
@@ -53,6 +51,14 @@ class WebToolbar(Toolbar):
self._post.props.active = False
self._post.connect("activated", self._post_cb)
self.append(self._post)
+
+ self._open = IconButton(icon_name='theme:stock-open')
+ self._open.connect("activated", self._open_cb)
+ self.append(self._open)
+
+ self._save = IconButton(icon_name='theme:stock-save')
+ self._save.connect("activated", self._save_cb)
+ self.append(self._save)
self._embed = embed
self._embed.connect("notify::progress", self._progress_changed_cb)
@@ -127,6 +133,54 @@ class WebToolbar(Toolbar):
response = chooser.run()
if response == gtk.RESPONSE_OK:
- self._embed.save_document(chooser.get_filename())
+ if not self._embed.save_document(chooser.get_filename()):
+ logging.error("Couldn't save to %s." % chooser.get_filename())
+
+ chooser.destroy()
+
+ def _open_cb(self, button):
+ chooser = gtk.FileChooserDialog(title=None,
+ action=gtk.FILE_CHOOSER_ACTION_OPEN,
+ buttons=(gtk.STOCK_CANCEL,
+ gtk.RESPONSE_CANCEL,
+ gtk.STOCK_OPEN,
+ gtk.RESPONSE_OK))
+ chooser.set_default_response(gtk.RESPONSE_OK)
+ chooser.set_current_folder(os.path.expanduser('~'))
+
+ file_filter = gtk.FileFilter()
+ file_filter.set_name(_("All supported formats"))
+ file_filter.add_mime_type("text/html")
+ file_filter.add_mime_type("application/xhtml+xml")
+ file_filter.add_mime_type("text/xml")
+ file_filter.add_mime_type("image/png")
+ file_filter.add_mime_type("image/jpeg")
+ file_filter.add_mime_type("image/gif")
+ chooser.add_filter(file_filter)
+
+ file_filter = gtk.FileFilter()
+ file_filter.set_name(_("Web pages"))
+ file_filter.add_mime_type("text/html")
+ file_filter.add_mime_type("application/xhtml+xml")
+ file_filter.add_mime_type("text/xml")
+ chooser.add_filter(file_filter)
+
+ file_filter = gtk.FileFilter()
+ file_filter.set_name(_("Images"))
+ file_filter.add_mime_type("image/png")
+ file_filter.add_mime_type("image/jpeg")
+ file_filter.add_mime_type("image/gif")
+ chooser.add_filter(file_filter)
+
+ file_filter = gtk.FileFilter()
+ file_filter.set_name(_("All files"))
+ file_filter.add_pattern("*")
+ chooser.add_filter(file_filter)
+
+ response = chooser.run()
+ if response == gtk.RESPONSE_OK:
+ self._embed.load_url(chooser.get_filename())
+ self._embed.grab_focus()
+ logging.debug('Opened %s.' % chooser.get_filename())
chooser.destroy()