From e4b78ea13c1980f4560bfb568b9476ef1abbd470 Mon Sep 17 00:00:00 2001 From: Ariel Calzada Date: Thu, 03 Jan 2013 16:16:33 +0000 Subject: sdxo #310 Custom start/home page in Browse and #2769 Applying downstream changes to Browse-webkit --- diff --git a/0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch b/0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch new file mode 100644 index 0000000..57df173 --- /dev/null +++ b/0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch @@ -0,0 +1,40 @@ +From 40215fa274b74a54da9cfdaa5f4733952395fddb Mon Sep 17 00:00:00 2001 +From: Ajay Garg +Date: Wed, 26 Dec 2012 23:35:50 +0530 +Subject: [PATCH 1/3] sdxo#2572: Add "Load_URI" signal-handler in "Browse" + activity. When this signal is received (with the "uri" + as the argument), this "uri" is reloaded in the + "Browse" instance. + +--- + webactivity.py | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/webactivity.py b/webactivity.py +index 3c0d337..7024b40 100644 +--- a/webactivity.py ++++ b/webactivity.py +@@ -20,6 +20,7 @@ import logging + from gettext import gettext as _ + from gettext import ngettext + import os ++import dbus + + from gi.repository import GObject + GObject.threads_init() +@@ -247,6 +248,12 @@ class WebActivity(activity.Activity): + # http://bugs.sugarlabs.org/ticket/3973 + self._cleanup_temp_files() + ++ dbus.SessionBus().add_signal_receiver(self._load_uri, 'Load_URI', ++ IFACE) ++ ++ def _load_uri(self, uri): ++ self._link_clicked_cb(None, uri) ++ + def _cleanup_temp_files(self): + """Removes temporary files generated by Download Manager that + were cancelled by the user or failed for any reason. +-- +1.7.10.4 + diff --git a/0002-sdxo-2316-Browse-don-t-remember-the-last-zoom-used.-.patch b/0002-sdxo-2316-Browse-don-t-remember-the-last-zoom-used.-.patch new file mode 100644 index 0000000..1184504 --- /dev/null +++ b/0002-sdxo-2316-Browse-don-t-remember-the-last-zoom-used.-.patch @@ -0,0 +1,1261 @@ +From 4d8014f369bf457a743363d38ce4bfa8e3f56e67 Mon Sep 17 00:00:00 2001 +From: Ariel Calzada +Date: Wed, 2 Jan 2013 08:29:55 -0500 +Subject: [PATCH 2/3] sdxo#2316: Browse don't remember the last zoom used. In + the read_file and write_file method + self.model.data['current_zoom_level'] is + restored/written + +--- + ...dd-Load_URI-signal-handler-in-Browse-acti.patch | 40 ++++++++++++++++++++ + locale/af/activity.linfo | 2 + + locale/ak/activity.linfo | 2 + + locale/am/activity.linfo | 2 + + locale/ar/activity.linfo | 2 + + locale/ayc/activity.linfo | 2 + + locale/aym/activity.linfo | 2 + + locale/be/activity.linfo | 2 + + locale/be@latin/activity.linfo | 2 + + locale/bg/activity.linfo | 2 + + locale/bi/activity.linfo | 2 + + locale/bn/activity.linfo | 2 + + locale/bn_IN/activity.linfo | 2 + + locale/br/activity.linfo | 2 + + locale/bs/activity.linfo | 2 + + locale/ca/activity.linfo | 2 + + locale/cpp/activity.linfo | 2 + + locale/cs/activity.linfo | 2 + + locale/cy/activity.linfo | 2 + + locale/da/activity.linfo | 2 + + locale/de/activity.linfo | 2 + + locale/dz/activity.linfo | 2 + + locale/el/activity.linfo | 2 + + locale/en/activity.linfo | 2 + + locale/en_GB/activity.linfo | 2 + + locale/en_US/activity.linfo | 2 + + locale/es/activity.linfo | 2 + + locale/fa/activity.linfo | 2 + + locale/fa_AF/activity.linfo | 2 + + locale/ff/activity.linfo | 2 + + locale/fi/activity.linfo | 2 + + locale/fil/activity.linfo | 2 + + locale/fr/activity.linfo | 2 + + locale/gl/activity.linfo | 2 + + locale/gn/activity.linfo | 2 + + locale/gom/activity.linfo | 2 + + locale/gom@latin/activity.linfo | 2 + + locale/gu/activity.linfo | 2 + + locale/ha/activity.linfo | 2 + + locale/he/activity.linfo | 2 + + locale/hi/activity.linfo | 2 + + locale/hr/activity.linfo | 2 + + locale/ht/activity.linfo | 2 + + locale/hu/activity.linfo | 2 + + locale/hus/activity.linfo | 2 + + locale/hy/activity.linfo | 2 + + locale/id/activity.linfo | 2 + + locale/ig/activity.linfo | 2 + + locale/is/activity.linfo | 2 + + locale/it/activity.linfo | 2 + + locale/ja/activity.linfo | 2 + + locale/km/activity.linfo | 2 + + locale/kn/activity.linfo | 2 + + locale/ko/activity.linfo | 2 + + locale/kos/activity.linfo | 2 + + locale/ku/activity.linfo | 2 + + locale/ky/activity.linfo | 2 + + locale/lg/activity.linfo | 2 + + locale/lt/activity.linfo | 2 + + locale/lv/activity.linfo | 2 + + locale/mg/activity.linfo | 2 + + locale/mi/activity.linfo | 2 + + locale/mk/activity.linfo | 2 + + locale/ml/activity.linfo | 2 + + locale/mn/activity.linfo | 2 + + locale/mr/activity.linfo | 2 + + locale/ms/activity.linfo | 2 + + locale/mvo/activity.linfo | 2 + + locale/na/activity.linfo | 2 + + locale/nah/activity.linfo | 2 + + locale/nb/activity.linfo | 2 + + locale/ne/activity.linfo | 2 + + locale/niu/activity.linfo | 2 + + locale/nl/activity.linfo | 2 + + locale/nn/activity.linfo | 2 + + locale/or/activity.linfo | 2 + + locale/pa/activity.linfo | 2 + + locale/pap/activity.linfo | 2 + + locale/pbs/activity.linfo | 2 + + locale/pl/activity.linfo | 2 + + locale/ps/activity.linfo | 2 + + locale/pt/activity.linfo | 2 + + locale/pt_BR/activity.linfo | 2 + + locale/quy/activity.linfo | 2 + + locale/quz/activity.linfo | 2 + + locale/ro/activity.linfo | 2 + + locale/ru/activity.linfo | 2 + + locale/rw/activity.linfo | 2 + + locale/sd/activity.linfo | 2 + + locale/si/activity.linfo | 2 + + locale/sk/activity.linfo | 2 + + locale/sl/activity.linfo | 2 + + locale/sm/activity.linfo | 2 + + locale/son/activity.linfo | 2 + + locale/sq/activity.linfo | 2 + + locale/sr/activity.linfo | 2 + + locale/st/activity.linfo | 2 + + locale/sv/activity.linfo | 2 + + locale/sw/activity.linfo | 2 + + locale/ta/activity.linfo | 2 + + locale/te/activity.linfo | 2 + + locale/th/activity.linfo | 2 + + locale/to/activity.linfo | 2 + + locale/tr/activity.linfo | 2 + + locale/tvl/activity.linfo | 2 + + locale/tyv/activity.linfo | 2 + + locale/tzm/activity.linfo | 2 + + locale/tzo/activity.linfo | 2 + + locale/ug/activity.linfo | 2 + + locale/uk/activity.linfo | 2 + + locale/ur/activity.linfo | 2 + + locale/vi/activity.linfo | 2 + + locale/wa/activity.linfo | 2 + + locale/wo/activity.linfo | 2 + + locale/yo/activity.linfo | 2 + + locale/zh_CN/activity.linfo | 2 + + locale/zh_HK/activity.linfo | 2 + + locale/zh_TW/activity.linfo | 2 + + webactivity.py | 10 +++++ + 119 files changed, 284 insertions(+) + create mode 100644 0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch + create mode 100644 locale/af/activity.linfo + create mode 100644 locale/ak/activity.linfo + create mode 100644 locale/am/activity.linfo + create mode 100644 locale/ar/activity.linfo + create mode 100644 locale/ayc/activity.linfo + create mode 100644 locale/aym/activity.linfo + create mode 100644 locale/be/activity.linfo + create mode 100644 locale/be@latin/activity.linfo + create mode 100644 locale/bg/activity.linfo + create mode 100644 locale/bi/activity.linfo + create mode 100644 locale/bn/activity.linfo + create mode 100644 locale/bn_IN/activity.linfo + create mode 100644 locale/br/activity.linfo + create mode 100644 locale/bs/activity.linfo + create mode 100644 locale/ca/activity.linfo + create mode 100644 locale/cpp/activity.linfo + create mode 100644 locale/cs/activity.linfo + create mode 100644 locale/cy/activity.linfo + create mode 100644 locale/da/activity.linfo + create mode 100644 locale/de/activity.linfo + create mode 100644 locale/dz/activity.linfo + create mode 100644 locale/el/activity.linfo + create mode 100644 locale/en/activity.linfo + create mode 100644 locale/en_GB/activity.linfo + create mode 100644 locale/en_US/activity.linfo + create mode 100644 locale/es/activity.linfo + create mode 100644 locale/fa/activity.linfo + create mode 100644 locale/fa_AF/activity.linfo + create mode 100644 locale/ff/activity.linfo + create mode 100644 locale/fi/activity.linfo + create mode 100644 locale/fil/activity.linfo + create mode 100644 locale/fr/activity.linfo + create mode 100644 locale/gl/activity.linfo + create mode 100644 locale/gn/activity.linfo + create mode 100644 locale/gom/activity.linfo + create mode 100644 locale/gom@latin/activity.linfo + create mode 100644 locale/gu/activity.linfo + create mode 100644 locale/ha/activity.linfo + create mode 100644 locale/he/activity.linfo + create mode 100644 locale/hi/activity.linfo + create mode 100644 locale/hr/activity.linfo + create mode 100644 locale/ht/activity.linfo + create mode 100644 locale/hu/activity.linfo + create mode 100644 locale/hus/activity.linfo + create mode 100644 locale/hy/activity.linfo + create mode 100644 locale/id/activity.linfo + create mode 100644 locale/ig/activity.linfo + create mode 100644 locale/is/activity.linfo + create mode 100644 locale/it/activity.linfo + create mode 100644 locale/ja/activity.linfo + create mode 100644 locale/km/activity.linfo + create mode 100644 locale/kn/activity.linfo + create mode 100644 locale/ko/activity.linfo + create mode 100644 locale/kos/activity.linfo + create mode 100644 locale/ku/activity.linfo + create mode 100644 locale/ky/activity.linfo + create mode 100644 locale/lg/activity.linfo + create mode 100644 locale/lt/activity.linfo + create mode 100644 locale/lv/activity.linfo + create mode 100644 locale/mg/activity.linfo + create mode 100644 locale/mi/activity.linfo + create mode 100644 locale/mk/activity.linfo + create mode 100644 locale/ml/activity.linfo + create mode 100644 locale/mn/activity.linfo + create mode 100644 locale/mr/activity.linfo + create mode 100644 locale/ms/activity.linfo + create mode 100644 locale/mvo/activity.linfo + create mode 100644 locale/na/activity.linfo + create mode 100644 locale/nah/activity.linfo + create mode 100644 locale/nb/activity.linfo + create mode 100644 locale/ne/activity.linfo + create mode 100644 locale/niu/activity.linfo + create mode 100644 locale/nl/activity.linfo + create mode 100644 locale/nn/activity.linfo + create mode 100644 locale/or/activity.linfo + create mode 100644 locale/pa/activity.linfo + create mode 100644 locale/pap/activity.linfo + create mode 100644 locale/pbs/activity.linfo + create mode 100644 locale/pl/activity.linfo + create mode 100644 locale/ps/activity.linfo + create mode 100644 locale/pt/activity.linfo + create mode 100644 locale/pt_BR/activity.linfo + create mode 100644 locale/quy/activity.linfo + create mode 100644 locale/quz/activity.linfo + create mode 100644 locale/ro/activity.linfo + create mode 100644 locale/ru/activity.linfo + create mode 100644 locale/rw/activity.linfo + create mode 100644 locale/sd/activity.linfo + create mode 100644 locale/si/activity.linfo + create mode 100644 locale/sk/activity.linfo + create mode 100644 locale/sl/activity.linfo + create mode 100644 locale/sm/activity.linfo + create mode 100644 locale/son/activity.linfo + create mode 100644 locale/sq/activity.linfo + create mode 100644 locale/sr/activity.linfo + create mode 100644 locale/st/activity.linfo + create mode 100644 locale/sv/activity.linfo + create mode 100644 locale/sw/activity.linfo + create mode 100644 locale/ta/activity.linfo + create mode 100644 locale/te/activity.linfo + create mode 100644 locale/th/activity.linfo + create mode 100644 locale/to/activity.linfo + create mode 100644 locale/tr/activity.linfo + create mode 100644 locale/tvl/activity.linfo + create mode 100644 locale/tyv/activity.linfo + create mode 100644 locale/tzm/activity.linfo + create mode 100644 locale/tzo/activity.linfo + create mode 100644 locale/ug/activity.linfo + create mode 100644 locale/uk/activity.linfo + create mode 100644 locale/ur/activity.linfo + create mode 100644 locale/vi/activity.linfo + create mode 100644 locale/wa/activity.linfo + create mode 100644 locale/wo/activity.linfo + create mode 100644 locale/yo/activity.linfo + create mode 100644 locale/zh_CN/activity.linfo + create mode 100644 locale/zh_HK/activity.linfo + create mode 100644 locale/zh_TW/activity.linfo + +diff --git a/0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch b/0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch +new file mode 100644 +index 0000000..c0bc0dc +--- /dev/null ++++ b/0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch +@@ -0,0 +1,40 @@ ++From 40215fa274b74a54da9cfdaa5f4733952395fddb Mon Sep 17 00:00:00 2001 ++From: Ajay Garg ++Date: Wed, 26 Dec 2012 23:35:50 +0530 ++Subject: [PATCH] sdxo#2572: Add "Load_URI" signal-handler in "Browse" ++ activity. When this signal is received (with the "uri" as ++ the argument), this "uri" is reloaded in the "Browse" ++ instance. ++ ++--- ++ webactivity.py | 7 +++++++ ++ 1 file changed, 7 insertions(+) ++ ++diff --git a/webactivity.py b/webactivity.py ++index 3c0d337..7024b40 100644 ++--- a/webactivity.py +++++ b/webactivity.py ++@@ -20,6 +20,7 @@ import logging ++ from gettext import gettext as _ ++ from gettext import ngettext ++ import os +++import dbus ++ ++ from gi.repository import GObject ++ GObject.threads_init() ++@@ -247,6 +248,12 @@ class WebActivity(activity.Activity): ++ # http://bugs.sugarlabs.org/ticket/3973 ++ self._cleanup_temp_files() ++ +++ dbus.SessionBus().add_signal_receiver(self._load_uri, 'Load_URI', +++ IFACE) +++ +++ def _load_uri(self, uri): +++ self._link_clicked_cb(None, uri) +++ ++ def _cleanup_temp_files(self): ++ """Removes temporary files generated by Download Manager that ++ were cancelled by the user or failed for any reason. ++-- ++1.7.10.4 ++ +diff --git a/locale/af/activity.linfo b/locale/af/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/af/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ak/activity.linfo b/locale/ak/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/ak/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/am/activity.linfo b/locale/am/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/am/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ar/activity.linfo b/locale/ar/activity.linfo +new file mode 100644 +index 0000000..f1351c5 +--- /dev/null ++++ b/locale/ar/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = تصفّح +diff --git a/locale/ayc/activity.linfo b/locale/ayc/activity.linfo +new file mode 100644 +index 0000000..61ff690 +--- /dev/null ++++ b/locale/ayc/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Internet taypita yatiña +diff --git a/locale/aym/activity.linfo b/locale/aym/activity.linfo +new file mode 100644 +index 0000000..61ff690 +--- /dev/null ++++ b/locale/aym/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Internet taypita yatiña +diff --git a/locale/be/activity.linfo b/locale/be/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/be/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/be@latin/activity.linfo b/locale/be@latin/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/be@latin/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/bg/activity.linfo b/locale/bg/activity.linfo +new file mode 100644 +index 0000000..ee23742 +--- /dev/null ++++ b/locale/bg/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Разглеждане +diff --git a/locale/bi/activity.linfo b/locale/bi/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/bi/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/bn/activity.linfo b/locale/bn/activity.linfo +new file mode 100644 +index 0000000..0a2f930 +--- /dev/null ++++ b/locale/bn/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = ব্রাউজ করো +diff --git a/locale/bn_IN/activity.linfo b/locale/bn_IN/activity.linfo +new file mode 100644 +index 0000000..0a2f930 +--- /dev/null ++++ b/locale/bn_IN/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = ব্রাউজ করো +diff --git a/locale/br/activity.linfo b/locale/br/activity.linfo +new file mode 100644 +index 0000000..a1fe5cd +--- /dev/null ++++ b/locale/br/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Merdeiñ +diff --git a/locale/bs/activity.linfo b/locale/bs/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/bs/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ca/activity.linfo b/locale/ca/activity.linfo +new file mode 100644 +index 0000000..e4b5c75 +--- /dev/null ++++ b/locale/ca/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Navegar +diff --git a/locale/cpp/activity.linfo b/locale/cpp/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/cpp/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/cs/activity.linfo b/locale/cs/activity.linfo +new file mode 100644 +index 0000000..9648a70 +--- /dev/null ++++ b/locale/cs/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Procházet +diff --git a/locale/cy/activity.linfo b/locale/cy/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/cy/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/da/activity.linfo b/locale/da/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/da/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/de/activity.linfo b/locale/de/activity.linfo +new file mode 100644 +index 0000000..278475f +--- /dev/null ++++ b/locale/de/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browser +diff --git a/locale/dz/activity.linfo b/locale/dz/activity.linfo +new file mode 100644 +index 0000000..d2ef92b +--- /dev/null ++++ b/locale/dz/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = ཕབ་ལེན། +diff --git a/locale/el/activity.linfo b/locale/el/activity.linfo +new file mode 100644 +index 0000000..3c9bd29 +--- /dev/null ++++ b/locale/el/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Περιήγηση +diff --git a/locale/en/activity.linfo b/locale/en/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/en/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/en_GB/activity.linfo b/locale/en_GB/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/en_GB/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/en_US/activity.linfo b/locale/en_US/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/en_US/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/es/activity.linfo b/locale/es/activity.linfo +new file mode 100644 +index 0000000..e4b5c75 +--- /dev/null ++++ b/locale/es/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Navegar +diff --git a/locale/fa/activity.linfo b/locale/fa/activity.linfo +new file mode 100644 +index 0000000..f4f96d7 +--- /dev/null ++++ b/locale/fa/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = مرور +diff --git a/locale/fa_AF/activity.linfo b/locale/fa_AF/activity.linfo +new file mode 100644 +index 0000000..fa50622 +--- /dev/null ++++ b/locale/fa_AF/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = جستجو +diff --git a/locale/ff/activity.linfo b/locale/ff/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/ff/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/fi/activity.linfo b/locale/fi/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/fi/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/fil/activity.linfo b/locale/fil/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/fil/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/fr/activity.linfo b/locale/fr/activity.linfo +new file mode 100644 +index 0000000..aaff8f4 +--- /dev/null ++++ b/locale/fr/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Naviguer +diff --git a/locale/gl/activity.linfo b/locale/gl/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/gl/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/gn/activity.linfo b/locale/gn/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/gn/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/gom/activity.linfo b/locale/gom/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/gom/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/gom@latin/activity.linfo b/locale/gom@latin/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/gom@latin/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/gu/activity.linfo b/locale/gu/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/gu/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ha/activity.linfo b/locale/ha/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/ha/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/he/activity.linfo b/locale/he/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/he/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/hi/activity.linfo b/locale/hi/activity.linfo +new file mode 100644 +index 0000000..70d617f +--- /dev/null ++++ b/locale/hi/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = विचरण +diff --git a/locale/hr/activity.linfo b/locale/hr/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/hr/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ht/activity.linfo b/locale/ht/activity.linfo +new file mode 100644 +index 0000000..48d2e6f +--- /dev/null ++++ b/locale/ht/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Navige +diff --git a/locale/hu/activity.linfo b/locale/hu/activity.linfo +new file mode 100644 +index 0000000..60bc626 +--- /dev/null ++++ b/locale/hu/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Böngészés +diff --git a/locale/hus/activity.linfo b/locale/hus/activity.linfo +new file mode 100644 +index 0000000..eb5f2c2 +--- /dev/null ++++ b/locale/hus/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Aliy +diff --git a/locale/hy/activity.linfo b/locale/hy/activity.linfo +new file mode 100644 +index 0000000..373a86b +--- /dev/null ++++ b/locale/hy/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Զննել +diff --git a/locale/id/activity.linfo b/locale/id/activity.linfo +new file mode 100644 +index 0000000..2c1be69 +--- /dev/null ++++ b/locale/id/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Ramban +diff --git a/locale/ig/activity.linfo b/locale/ig/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/ig/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/is/activity.linfo b/locale/is/activity.linfo +new file mode 100644 +index 0000000..509a7fb +--- /dev/null ++++ b/locale/is/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Flakka +diff --git a/locale/it/activity.linfo b/locale/it/activity.linfo +new file mode 100644 +index 0000000..2afd383 +--- /dev/null ++++ b/locale/it/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Naviga +diff --git a/locale/ja/activity.linfo b/locale/ja/activity.linfo +new file mode 100644 +index 0000000..f4341d7 +--- /dev/null ++++ b/locale/ja/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = ブラウズ +diff --git a/locale/km/activity.linfo b/locale/km/activity.linfo +new file mode 100644 +index 0000000..5a14f9d +--- /dev/null ++++ b/locale/km/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = រក​មើល +diff --git a/locale/kn/activity.linfo b/locale/kn/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/kn/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ko/activity.linfo b/locale/ko/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/ko/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/kos/activity.linfo b/locale/kos/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/kos/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ku/activity.linfo b/locale/ku/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/ku/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ky/activity.linfo b/locale/ky/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/ky/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/lg/activity.linfo b/locale/lg/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/lg/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/lt/activity.linfo b/locale/lt/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/lt/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/lv/activity.linfo b/locale/lv/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/lv/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/mg/activity.linfo b/locale/mg/activity.linfo +new file mode 100644 +index 0000000..3da6525 +--- /dev/null ++++ b/locale/mg/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Tetezo +diff --git a/locale/mi/activity.linfo b/locale/mi/activity.linfo +new file mode 100644 +index 0000000..79ce140 +--- /dev/null ++++ b/locale/mi/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Tirotiro +diff --git a/locale/mk/activity.linfo b/locale/mk/activity.linfo +new file mode 100644 +index 0000000..0cc0421 +--- /dev/null ++++ b/locale/mk/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Разгледај +diff --git a/locale/ml/activity.linfo b/locale/ml/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/ml/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/mn/activity.linfo b/locale/mn/activity.linfo +new file mode 100644 +index 0000000..97c490c +--- /dev/null ++++ b/locale/mn/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Интэрнэт +diff --git a/locale/mr/activity.linfo b/locale/mr/activity.linfo +new file mode 100644 +index 0000000..7ff9016 +--- /dev/null ++++ b/locale/mr/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = वेब भटकंती +diff --git a/locale/ms/activity.linfo b/locale/ms/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/ms/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/mvo/activity.linfo b/locale/mvo/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/mvo/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/na/activity.linfo b/locale/na/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/na/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/nah/activity.linfo b/locale/nah/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/nah/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/nb/activity.linfo b/locale/nb/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/nb/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ne/activity.linfo b/locale/ne/activity.linfo +new file mode 100644 +index 0000000..6b75ec0 +--- /dev/null ++++ b/locale/ne/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = ब्राउज +diff --git a/locale/niu/activity.linfo b/locale/niu/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/niu/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/nl/activity.linfo b/locale/nl/activity.linfo +new file mode 100644 +index 0000000..cd1e90d +--- /dev/null ++++ b/locale/nl/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Surfen +diff --git a/locale/nn/activity.linfo b/locale/nn/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/nn/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/or/activity.linfo b/locale/or/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/or/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/pa/activity.linfo b/locale/pa/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/pa/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/pap/activity.linfo b/locale/pap/activity.linfo +new file mode 100644 +index 0000000..e68f609 +--- /dev/null ++++ b/locale/pap/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Nabegá +diff --git a/locale/pbs/activity.linfo b/locale/pbs/activity.linfo +new file mode 100644 +index 0000000..bfbae95 +--- /dev/null ++++ b/locale/pbs/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Manjui' manad-eú +diff --git a/locale/pl/activity.linfo b/locale/pl/activity.linfo +new file mode 100644 +index 0000000..ca41c07 +--- /dev/null ++++ b/locale/pl/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Internet +diff --git a/locale/ps/activity.linfo b/locale/ps/activity.linfo +new file mode 100644 +index 0000000..18db16e +--- /dev/null ++++ b/locale/ps/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = لټول +diff --git a/locale/pt/activity.linfo b/locale/pt/activity.linfo +new file mode 100644 +index 0000000..e4b5c75 +--- /dev/null ++++ b/locale/pt/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Navegar +diff --git a/locale/pt_BR/activity.linfo b/locale/pt_BR/activity.linfo +new file mode 100644 +index 0000000..e4b5c75 +--- /dev/null ++++ b/locale/pt_BR/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Navegar +diff --git a/locale/quy/activity.linfo b/locale/quy/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/quy/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/quz/activity.linfo b/locale/quz/activity.linfo +new file mode 100644 +index 0000000..b6e532f +--- /dev/null ++++ b/locale/quz/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Wayp'uq +diff --git a/locale/ro/activity.linfo b/locale/ro/activity.linfo +new file mode 100644 +index 0000000..45f600b +--- /dev/null ++++ b/locale/ro/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Navighează +diff --git a/locale/ru/activity.linfo b/locale/ru/activity.linfo +new file mode 100644 +index 0000000..9b6be8f +--- /dev/null ++++ b/locale/ru/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Смотреть +diff --git a/locale/rw/activity.linfo b/locale/rw/activity.linfo +new file mode 100644 +index 0000000..bf79953 +--- /dev/null ++++ b/locale/rw/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Shakisha +diff --git a/locale/sd/activity.linfo b/locale/sd/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/sd/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/si/activity.linfo b/locale/si/activity.linfo +new file mode 100644 +index 0000000..d1656d1 +--- /dev/null ++++ b/locale/si/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = සැරිසරන්න +diff --git a/locale/sk/activity.linfo b/locale/sk/activity.linfo +new file mode 100644 +index 0000000..cd022cf +--- /dev/null ++++ b/locale/sk/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Prezerať +diff --git a/locale/sl/activity.linfo b/locale/sl/activity.linfo +new file mode 100644 +index 0000000..2d33205 +--- /dev/null ++++ b/locale/sl/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Prebrskaj +diff --git a/locale/sm/activity.linfo b/locale/sm/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/sm/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/son/activity.linfo b/locale/son/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/son/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/sq/activity.linfo b/locale/sq/activity.linfo +new file mode 100644 +index 0000000..20ca65a +--- /dev/null ++++ b/locale/sq/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Shfleto +diff --git a/locale/sr/activity.linfo b/locale/sr/activity.linfo +new file mode 100644 +index 0000000..d54fc01 +--- /dev/null ++++ b/locale/sr/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Прегледај +diff --git a/locale/st/activity.linfo b/locale/st/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/st/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/sv/activity.linfo b/locale/sv/activity.linfo +new file mode 100644 +index 0000000..9232dbf +--- /dev/null ++++ b/locale/sv/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Surfa +diff --git a/locale/sw/activity.linfo b/locale/sw/activity.linfo +new file mode 100644 +index 0000000..e733328 +--- /dev/null ++++ b/locale/sw/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Kuvinjari +diff --git a/locale/ta/activity.linfo b/locale/ta/activity.linfo +new file mode 100644 +index 0000000..77809b4 +--- /dev/null ++++ b/locale/ta/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = உவாவு +diff --git a/locale/te/activity.linfo b/locale/te/activity.linfo +new file mode 100644 +index 0000000..a0f8783 +--- /dev/null ++++ b/locale/te/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = వెబ్ చూడు +diff --git a/locale/th/activity.linfo b/locale/th/activity.linfo +new file mode 100644 +index 0000000..8838502 +--- /dev/null ++++ b/locale/th/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = เรียกดู +diff --git a/locale/to/activity.linfo b/locale/to/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/to/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/tr/activity.linfo b/locale/tr/activity.linfo +new file mode 100644 +index 0000000..87e9a0a +--- /dev/null ++++ b/locale/tr/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = göz atmak +diff --git a/locale/tvl/activity.linfo b/locale/tvl/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/tvl/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/tyv/activity.linfo b/locale/tyv/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/tyv/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/tzm/activity.linfo b/locale/tzm/activity.linfo +new file mode 100644 +index 0000000..5e8d7d9 +--- /dev/null ++++ b/locale/tzm/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = ⵉⵏⵉⴳ +diff --git a/locale/tzo/activity.linfo b/locale/tzo/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/tzo/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ug/activity.linfo b/locale/ug/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/ug/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/uk/activity.linfo b/locale/uk/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/uk/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/ur/activity.linfo b/locale/ur/activity.linfo +new file mode 100644 +index 0000000..8d9f2ec +--- /dev/null ++++ b/locale/ur/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = براؤز +diff --git a/locale/vi/activity.linfo b/locale/vi/activity.linfo +new file mode 100644 +index 0000000..6d05dbd +--- /dev/null ++++ b/locale/vi/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Duyệt +diff --git a/locale/wa/activity.linfo b/locale/wa/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/wa/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/wo/activity.linfo b/locale/wo/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/wo/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/yo/activity.linfo b/locale/yo/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/yo/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/zh_CN/activity.linfo b/locale/zh_CN/activity.linfo +new file mode 100644 +index 0000000..dfefeb4 +--- /dev/null ++++ b/locale/zh_CN/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = 浏览 +diff --git a/locale/zh_HK/activity.linfo b/locale/zh_HK/activity.linfo +new file mode 100644 +index 0000000..0b2e50b +--- /dev/null ++++ b/locale/zh_HK/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = Browse +diff --git a/locale/zh_TW/activity.linfo b/locale/zh_TW/activity.linfo +new file mode 100644 +index 0000000..8a1e81c +--- /dev/null ++++ b/locale/zh_TW/activity.linfo +@@ -0,0 +1,2 @@ ++[Activity] ++name = 瀏覽 +diff --git a/webactivity.py b/webactivity.py +index 7024b40..fdc12dd 100644 +--- a/webactivity.py ++++ b/webactivity.py +@@ -421,6 +421,13 @@ class WebActivity(activity.Activity): + tab_page.browser.grab_focus() + + self._tabbed_view.set_current_page(self.model.data['current_tab']) ++ ++ # zoom level ++ if 'current_zoom_level' in self.model.data: ++ self._tabbed_view.props.current_browser.set_zoom_level(self.model.data['current_zoom_level']) ++ else: ++ self._tabbed_view.props.current_browser.set_zoom_level(ZOOM_ORIGINAL) ++ + elif self.metadata['mime_type'] == 'text/uri-list': + data = self._get_data_from_file_path(file_path) + uris = mime.split_uri_list(data) +@@ -442,6 +449,9 @@ class WebActivity(activity.Activity): + + browser = self._tabbed_view.current_browser + ++ # zoom level ++ self.model.data['current_zoom_level'] = browser.get_zoom_level() ++ + if not self._jobject.metadata['title_set_by_user'] == '1': + if browser.props.title is None: + self.metadata['title'] = _('Untitled') +-- +1.7.10.4 + diff --git a/0003-deleted-.patch-file.patch b/0003-deleted-.patch-file.patch new file mode 100644 index 0000000..0ee6006 --- /dev/null +++ b/0003-deleted-.patch-file.patch @@ -0,0 +1,59 @@ +From 7b33af5cf841faef274a6511d94ec5a2c584fe1d Mon Sep 17 00:00:00 2001 +From: Ariel Calzada +Date: Wed, 2 Jan 2013 08:47:56 -0500 +Subject: [PATCH 3/3] deleted .patch file + +--- + ...dd-Load_URI-signal-handler-in-Browse-acti.patch | 40 -------------------- + 1 file changed, 40 deletions(-) + delete mode 100644 0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch + +diff --git a/0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch b/0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch +deleted file mode 100644 +index c0bc0dc..0000000 +--- a/0001-sdxo-2572-Add-Load_URI-signal-handler-in-Browse-acti.patch ++++ /dev/null +@@ -1,40 +0,0 @@ +-From 40215fa274b74a54da9cfdaa5f4733952395fddb Mon Sep 17 00:00:00 2001 +-From: Ajay Garg +-Date: Wed, 26 Dec 2012 23:35:50 +0530 +-Subject: [PATCH] sdxo#2572: Add "Load_URI" signal-handler in "Browse" +- activity. When this signal is received (with the "uri" as +- the argument), this "uri" is reloaded in the "Browse" +- instance. +- +---- +- webactivity.py | 7 +++++++ +- 1 file changed, 7 insertions(+) +- +-diff --git a/webactivity.py b/webactivity.py +-index 3c0d337..7024b40 100644 +---- a/webactivity.py +-+++ b/webactivity.py +-@@ -20,6 +20,7 @@ import logging +- from gettext import gettext as _ +- from gettext import ngettext +- import os +-+import dbus +- +- from gi.repository import GObject +- GObject.threads_init() +-@@ -247,6 +248,12 @@ class WebActivity(activity.Activity): +- # http://bugs.sugarlabs.org/ticket/3973 +- self._cleanup_temp_files() +- +-+ dbus.SessionBus().add_signal_receiver(self._load_uri, 'Load_URI', +-+ IFACE) +-+ +-+ def _load_uri(self, uri): +-+ self._link_clicked_cb(None, uri) +-+ +- def _cleanup_temp_files(self): +- """Removes temporary files generated by Download Manager that +- were cancelled by the user or failed for any reason. +--- +-1.7.10.4 +- +-- +1.7.10.4 + diff --git a/activity/activity.info b/activity/activity.info index 293c2ea..ff73a47 100644 --- a/activity/activity.info +++ b/activity/activity.info @@ -1,6 +1,6 @@ [Activity] name = Browse -activity_version = 149 +activity_version = 149.3 bundle_id = org.laptop.WebActivity icon = activity-web exec = sugar-activity webactivity.WebActivity -s diff --git a/browser.py b/browser.py index 7419d2d..80936fa 100644 --- a/browser.py +++ b/browser.py @@ -342,12 +342,37 @@ class TabbedView(BrowserNotebook): if os.path.isfile(_LIBRARY_PATH): browser.load_uri('file://' + _LIBRARY_PATH) + + elif os.path.isfile(activity.get_bundle_path() + "/data/homepage.conf"): + confFile = os.path.join(activity.get_bundle_path(),"data/homepage.conf") + f = open(confFile,"r") + contents = f.read().strip() + f.close() + + if contents != "": + default_page = contents + else: + default_page = os.path.join(activity.get_bundle_path(),"data/index.html") + + browser.load_uri(default_page) else: default_page = os.path.join(activity.get_bundle_path(), "data/index.html") browser.load_uri('file://' + default_page) + browser.grab_focus() + def change_homepage(self): + """ Change data/homepage.conf with current URL + """ + confFile = os.path.join(activity.get_bundle_path(),"data/homepage.conf") + index = self.get_current_page() + ui_uri = self.get_nth_page(index).browser.get_uri() + + f = open ( confFile,"w") + f.write(ui_uri) + f.close() + def _get_current_browser(self): if self.get_n_pages(): return self.get_nth_page(self.get_current_page()).browser diff --git a/data/homepage.conf b/data/homepage.conf new file mode 100644 index 0000000..f693ef6 --- /dev/null +++ b/data/homepage.conf @@ -0,0 +1 @@ +http://www.google.com.co/ \ No newline at end of file diff --git a/hometoolbar.py b/hometoolbar.py new file mode 100644 index 0000000..3d5e6a6 --- /dev/null +++ b/hometoolbar.py @@ -0,0 +1,45 @@ +# Copyright (C) 2007, One Laptop Per Child +# Copyright (C) 2012, Ariel Calzada +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# 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 + +from gettext import gettext as _ +from gi.repository import Gtk +from sugar3.graphics.toolbutton import ToolButton + +class HomeToolbar(Gtk.Toolbar): + def __init__(self, activity): + Gtk.Toolbar.__init__(self) + + self._activity = activity + + self.gohome = ToolButton('browse-go-homepage') + self.gohome.set_tooltip(_('Go to home page')) + self.gohome.connect('clicked', self.__gohome_clicked_cb) + self.insert(self.gohome, -1) + self.gohome.show() + + self.changehome = ToolButton('browse-change-homepage') + self.changehome.set_tooltip(_('Set current page as home page')) + self.changehome.connect('clicked', self.__changehome_clicked_cb) + self.insert(self.changehome, -1) + self.changehome.show() + + def __changehome_clicked_cb(self, button): + self._activity._change_home_button_cb(button) + + def __gohome_clicked_cb(self, button): + self._activity._go_home_button_cb(button) + diff --git a/icons/browse-change-homepage.svg b/icons/browse-change-homepage.svg new file mode 100644 index 0000000..c79c6d9 --- /dev/null +++ b/icons/browse-change-homepage.svg @@ -0,0 +1,11 @@ + + + +]> + + + + + + diff --git a/icons/browse-go-homepage.svg b/icons/browse-go-homepage.svg new file mode 100644 index 0000000..a4fd762 --- /dev/null +++ b/icons/browse-go-homepage.svg @@ -0,0 +1,11 @@ + + + +]> + + + + + + diff --git a/webactivity.py b/webactivity.py index fdc12dd..86d38f5 100644 --- a/webactivity.py +++ b/webactivity.py @@ -133,6 +133,7 @@ from browser import ZOOM_ORIGINAL from webtoolbar import PrimaryToolbar from edittoolbar import EditToolbar from viewtoolbar import ViewToolbar +from hometoolbar import HomeToolbar import downloadmanager # TODO: make the registration clearer SL #3087 @@ -183,11 +184,10 @@ class WebActivity(activity.Activity): self._primary_toolbar = PrimaryToolbar(self._tabbed_view, self) self._edit_toolbar = EditToolbar(self) self._view_toolbar = ViewToolbar(self) + self._home_toolbar = HomeToolbar(self) self._primary_toolbar.connect('add-link', self._link_add_button_cb) - self._primary_toolbar.connect('go-home', self._go_home_button_cb) - self._edit_toolbar_button = ToolbarButton( page=self._edit_toolbar, icon_name='toolbar-edit') @@ -201,6 +201,12 @@ class WebActivity(activity.Activity): self._primary_toolbar.toolbar.insert( view_toolbar_button, 2) + home_toolbar_button = ToolbarButton( + page=self._home_toolbar, + icon_name='go-home') + self._primary_toolbar.toolbar.insert( + home_toolbar_button, 3) + self._primary_toolbar.show_all() self.set_toolbar_box(self._primary_toolbar) @@ -487,6 +493,9 @@ class WebActivity(activity.Activity): def _go_home_button_cb(self, button): self._tabbed_view.load_homepage() + def _change_home_button_cb(self, button): + self._tabbed_view.change_homepage() + def _key_press_cb(self, widget, event): key_name = Gdk.keyval_name(event.keyval) browser = self._tabbed_view.props.current_browser diff --git a/webactivity.py.orig b/webactivity.py.orig new file mode 100644 index 0000000..fdc12dd --- /dev/null +++ b/webactivity.py.orig @@ -0,0 +1,686 @@ +# Copyright (C) 2006, Red Hat, Inc. +# Copyright (C) 2009 Martin Langhoff, Simon Schampijer, Daniel Drake, +# Tomeu Vizoso +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# 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 logging +from gettext import gettext as _ +from gettext import ngettext +import os +import dbus + +from gi.repository import GObject +GObject.threads_init() + +from gi.repository import Gtk +from gi.repository import Gdk +from gi.repository import GdkPixbuf +from gi.repository import WebKit +from gi.repository import Soup +from gi.repository import SoupGNOME + +import base64 +import time +import shutil +import sqlite3 +import json +from gi.repository import GConf +import locale +import cairo +import StringIO +from hashlib import sha1 + +from sugar3.activity import activity +from sugar3.graphics import style +import telepathy +import telepathy.client +from sugar3.presence import presenceservice +from sugar3.graphics.tray import HTray +from sugar3 import profile +from sugar3.graphics.alert import Alert +from sugar3.graphics.icon import Icon +from sugar3 import mime + +from sugar3.graphics.toolbarbox import ToolbarButton + +PROFILE_VERSION = 2 + +_profile_version = 0 +_profile_path = os.path.join(activity.get_activity_root(), 'data/gecko') +_version_file = os.path.join(_profile_path, 'version') +_cookies_db_path = os.path.join(_profile_path, 'cookies.sqlite') + +if os.path.exists(_version_file): + f = open(_version_file) + _profile_version = int(f.read()) + f.close() + +if _profile_version < PROFILE_VERSION: + if not os.path.exists(_profile_path): + os.mkdir(_profile_path) + + shutil.copy('cert8.db', _profile_path) + os.chmod(os.path.join(_profile_path, 'cert8.db'), 0660) + + f = open(_version_file, 'w') + f.write(str(PROFILE_VERSION)) + f.close() + + +def _seed_xs_cookie(cookie_jar): + """Create a HTTP Cookie to authenticate with the Schoolserver. + + Do nothing if the laptop is not registered with Schoolserver, or + if the cookie already exists. + + """ + client = GConf.Client.get_default() + backup_url = client.get_string('/desktop/sugar/backup_url') + if backup_url == '': + _logger.debug('seed_xs_cookie: Not registered with Schoolserver') + return + + jabber_server = client.get_string( + '/desktop/sugar/collaboration/jabber_server') + + soup_uri = Soup.URI() + soup_uri.set_scheme('xmpp') + soup_uri.set_host(jabber_server) + soup_uri.set_path('/') + xs_cookie = cookie_jar.get_cookies(soup_uri, for_http=False) + if xs_cookie is not None: + _logger.debug('seed_xs_cookie: Cookie exists already') + return + + pubkey = profile.get_profile().pubkey + cookie_data = {'color': profile.get_color().to_string(), + 'pkey_hash': sha1(pubkey).hexdigest()} + + expire = int(time.time()) + 10 * 365 * 24 * 60 * 60 + + xs_cookie = Soup.Cookie() + xs_cookie.set_name('xoid') + xs_cookie.set_value(json.dumps(cookie_data)) + xs_cookie.set_domain(jabber_server) + xs_cookie.set_path('/') + xs_cookie.set_max_age(expire) + cookie_jar.add_cookie(xs_cookie) + _logger.debug('seed_xs_cookie: Updated cookie successfully') + + +def _set_char_preference(name, value): + cls = components.classes["@mozilla.org/preferences-service;1"] + prefService = cls.getService(components.interfaces.nsIPrefService) + branch = prefService.getBranch('') + branch.setCharPref(name, value) + + +from browser import TabbedView +from browser import ZOOM_ORIGINAL +from webtoolbar import PrimaryToolbar +from edittoolbar import EditToolbar +from viewtoolbar import ViewToolbar +import downloadmanager + +# TODO: make the registration clearer SL #3087 + +from model import Model +from sugar3.presence.tubeconn import TubeConnection +from messenger import Messenger +from linkbutton import LinkButton + +SERVICE = "org.laptop.WebActivity" +IFACE = SERVICE +PATH = "/org/laptop/WebActivity" + +_logger = logging.getLogger('web-activity') + + +class WebActivity(activity.Activity): + def __init__(self, handle): + activity.Activity.__init__(self, handle) + + _logger.debug('Starting the web activity') + + session = WebKit.get_default_session() + session.set_property('accept-language-auto', True) + session.set_property('ssl-use-system-ca-file', True) + session.set_property('ssl-strict', False) + + # By default, cookies are not stored persistently, we have to + # add a cookie jar so that they get saved to disk. We use one + # with a SQlite database: + cookie_jar = SoupGNOME.CookieJarSqlite(filename=_cookies_db_path, + read_only=False) + session.add_feature(cookie_jar) + + _seed_xs_cookie(cookie_jar) + + # FIXME + # downloadmanager.remove_old_parts() + + self._force_close = False + self._tabbed_view = TabbedView() + self._tabbed_view.connect('focus-url-entry', self._on_focus_url_entry) + self._tabbed_view.connect('switch-page', self.__switch_page_cb) + + self._tray = HTray() + self.set_tray(self._tray, Gtk.PositionType.BOTTOM) + + self._primary_toolbar = PrimaryToolbar(self._tabbed_view, self) + self._edit_toolbar = EditToolbar(self) + self._view_toolbar = ViewToolbar(self) + + self._primary_toolbar.connect('add-link', self._link_add_button_cb) + + self._primary_toolbar.connect('go-home', self._go_home_button_cb) + + self._edit_toolbar_button = ToolbarButton( + page=self._edit_toolbar, + icon_name='toolbar-edit') + + self._primary_toolbar.toolbar.insert( + self._edit_toolbar_button, 1) + + view_toolbar_button = ToolbarButton( + page=self._view_toolbar, + icon_name='toolbar-view') + self._primary_toolbar.toolbar.insert( + view_toolbar_button, 2) + + self._primary_toolbar.show_all() + self.set_toolbar_box(self._primary_toolbar) + + self.set_canvas(self._tabbed_view) + self._tabbed_view.show() + + self.model = Model() + self.model.connect('add_link', self._add_link_model_cb) + + self.connect('key-press-event', self._key_press_cb) + + if handle.uri: + self._tabbed_view.current_browser.load_uri(handle.uri) + elif not self._jobject.file_path: + # TODO: we need this hack until we extend the activity API for + # opening URIs and default docs. + self._tabbed_view.load_homepage() + + self.messenger = None + self.connect('shared', self._shared_cb) + + # Get the Presence Service + self.pservice = presenceservice.get_instance() + try: + name, path = self.pservice.get_preferred_connection() + self.tp_conn_name = name + self.tp_conn_path = path + self.conn = telepathy.client.Connection(name, path) + except TypeError: + _logger.debug('Offline') + self.initiating = None + + if self.get_shared_activity() is not None: + _logger.debug('shared: %s', self.get_shared()) + # We are joining the activity + _logger.debug('Joined activity') + self.connect('joined', self._joined_cb) + if self.get_shared(): + # We've already joined + self._joined_cb() + else: + _logger.debug('Created activity') + + # README: this is a workaround to remove old temp file + # http://bugs.sugarlabs.org/ticket/3973 + self._cleanup_temp_files() + + dbus.SessionBus().add_signal_receiver(self._load_uri, 'Load_URI', + IFACE) + + def _load_uri(self, uri): + self._link_clicked_cb(None, uri) + + def _cleanup_temp_files(self): + """Removes temporary files generated by Download Manager that + were cancelled by the user or failed for any reason. + + There is a bug in GLib that makes this to happen: + https://bugzilla.gnome.org/show_bug.cgi?id=629301 + """ + + try: + uptime_proc = open('/proc/uptime', 'r').read() + uptime = int(float(uptime_proc.split()[0])) + except EnvironmentError: + logging.warning('/proc/uptime could not be read') + uptime = None + + temp_path = os.path.join(self.get_activity_root(), 'instance') + now = int(time.time()) + cutoff = now - 24 * 60 * 60 # yesterday + if uptime is not None: + boot_time = now - uptime + cutoff = max(cutoff, boot_time) + + for f in os.listdir(temp_path): + if f.startswith('.goutputstream-'): + fpath = os.path.join(temp_path, f) + mtime = int(os.path.getmtime(fpath)) + if mtime < cutoff: + logging.warning('Removing old temporary file: %s', fpath) + try: + os.remove(fpath) + except EnvironmentError: + logging.error('Temporary file could not be ' + 'removed: %s', fpath) + + def _on_focus_url_entry(self, gobject): + self._primary_toolbar.entry.grab_focus() + + def _shared_cb(self, activity_): + _logger.debug('My activity was shared') + self.initiating = True + self._setup() + + _logger.debug('This is my activity: making a tube...') + self.tubes_chan[telepathy.CHANNEL_TYPE_TUBES].OfferDBusTube(SERVICE, + {}) + + def _setup(self): + if self.get_shared_activity() is None: + _logger.debug('Failed to share or join activity') + return + + bus_name, conn_path, channel_paths = \ + self.get_shared_activity().get_channels() + + # Work out what our room is called and whether we have Tubes already + room = None + tubes_chan = None + text_chan = None + for channel_path in channel_paths: + channel = telepathy.client.Channel(bus_name, channel_path) + htype, handle = channel.GetHandle() + if htype == telepathy.HANDLE_TYPE_ROOM: + _logger.debug('Found our room: it has handle#%d "%s"', + handle, + self.conn.InspectHandles(htype, [handle])[0]) + room = handle + ctype = channel.GetChannelType() + if ctype == telepathy.CHANNEL_TYPE_TUBES: + _logger.debug('Found our Tubes channel at %s', + channel_path) + tubes_chan = channel + elif ctype == telepathy.CHANNEL_TYPE_TEXT: + _logger.debug('Found our Text channel at %s', + channel_path) + text_chan = channel + + if room is None: + _logger.debug("Presence service didn't create a room") + return + if text_chan is None: + _logger.debug("Presence service didn't create a text channel") + return + + # Make sure we have a Tubes channel - PS doesn't yet provide one + if tubes_chan is None: + _logger.debug("Didn't find our Tubes channel, requesting one...") + tubes_chan = self.conn.request_channel( + telepathy.CHANNEL_TYPE_TUBES, telepathy.HANDLE_TYPE_ROOM, + room, True) + + self.tubes_chan = tubes_chan + self.text_chan = text_chan + + tubes_chan[telepathy.CHANNEL_TYPE_TUBES].connect_to_signal( \ + 'NewTube', self._new_tube_cb) + + def _list_tubes_reply_cb(self, tubes): + for tube_info in tubes: + self._new_tube_cb(*tube_info) + + def _list_tubes_error_cb(self, e): + _logger.debug('ListTubes() failed: %s', e) + + def _joined_cb(self, activity_): + if not self.get_shared_activity(): + return + + _logger.debug('Joined an existing shared activity') + + self.initiating = False + self._setup() + + _logger.debug('This is not my activity: waiting for a tube...') + self.tubes_chan[telepathy.CHANNEL_TYPE_TUBES].ListTubes( + reply_handler=self._list_tubes_reply_cb, + error_handler=self._list_tubes_error_cb) + + def _new_tube_cb(self, identifier, initiator, type, service, params, + state): + _logger.debug('New tube: ID=%d initator=%d type=%d service=%s ' + 'params=%r state=%d', identifier, initiator, type, + service, params, state) + + if (type == telepathy.TUBE_TYPE_DBUS and + service == SERVICE): + if state == telepathy.TUBE_STATE_LOCAL_PENDING: + self.tubes_chan[telepathy.CHANNEL_TYPE_TUBES].AcceptDBusTube( + identifier) + + self.tube_conn = TubeConnection(self.conn, + self.tubes_chan[telepathy.CHANNEL_TYPE_TUBES], + identifier, group_iface=self.text_chan[ + telepathy.CHANNEL_INTERFACE_GROUP]) + + _logger.debug('Tube created') + self.messenger = Messenger(self.tube_conn, self.initiating, + self.model) + + def _get_data_from_file_path(self, file_path): + fd = open(file_path, 'r') + try: + data = fd.read() + finally: + fd.close() + return data + + def read_file(self, file_path): + if self.metadata['mime_type'] == 'text/plain': + data = self._get_data_from_file_path(file_path) + self.model.deserialize(data) + + for link in self.model.data['shared_links']: + _logger.debug('read: url=%s title=%s d=%s' % (link['url'], + link['title'], + link['color'])) + self._add_link_totray(link['url'], + base64.b64decode(link['thumb']), + link['color'], link['title'], + link['owner'], -1, link['hash']) + logging.debug('########## reading %s', data) + self._tabbed_view.set_history(self.model.data['history']) + for number, tab in enumerate(self.model.data['currents']): + tab_page = self._tabbed_view.get_nth_page(number) + tab_page.browser.set_history_index(tab['history_index']) + tab_page.browser.grab_focus() + + self._tabbed_view.set_current_page(self.model.data['current_tab']) + + # zoom level + if 'current_zoom_level' in self.model.data: + self._tabbed_view.props.current_browser.set_zoom_level(self.model.data['current_zoom_level']) + else: + self._tabbed_view.props.current_browser.set_zoom_level(ZOOM_ORIGINAL) + + elif self.metadata['mime_type'] == 'text/uri-list': + data = self._get_data_from_file_path(file_path) + uris = mime.split_uri_list(data) + if len(uris) == 1: + self._tabbed_view.props.current_browser.load_uri(uris[0]) + else: + _logger.error('Open uri-list: Does not support' + 'list of multiple uris by now.') + else: + file_uri = 'file://' + file_path + self._tabbed_view.props.current_browser.load_uri(file_uri) + self._tabbed_view.props.current_browser.grab_focus() + + def write_file(self, file_path): + if not self.metadata['mime_type']: + self.metadata['mime_type'] = 'text/plain' + + if self.metadata['mime_type'] == 'text/plain': + + browser = self._tabbed_view.current_browser + + # zoom level + self.model.data['current_zoom_level'] = browser.get_zoom_level() + + if not self._jobject.metadata['title_set_by_user'] == '1': + if browser.props.title is None: + self.metadata['title'] = _('Untitled') + else: + self.metadata['title'] = browser.props.title + + self.model.data['history'] = self._tabbed_view.get_history() + current_tab = self._tabbed_view.get_current_page() + self.model.data['current_tab'] = current_tab + + self.model.data['currents'] = [] + for n in range(0, self._tabbed_view.get_n_pages()): + tab_page = self._tabbed_view.get_nth_page(n) + n_browser = tab_page.browser + if n_browser != None: + uri = n_browser.get_uri() + history_index = n_browser.get_history_index() + info = {'title': n_browser.props.title, 'url': uri, + 'history_index': history_index} + + self.model.data['currents'].append(info) + + f = open(file_path, 'w') + try: + logging.debug('########## writing %s', self.model.serialize()) + f.write(self.model.serialize()) + finally: + f.close() + + def _link_add_button_cb(self, button): + self._add_link() + + def _go_home_button_cb(self, button): + self._tabbed_view.load_homepage() + + def _key_press_cb(self, widget, event): + key_name = Gdk.keyval_name(event.keyval) + browser = self._tabbed_view.props.current_browser + + if event.get_state() & Gdk.ModifierType.CONTROL_MASK: + + if key_name == 'd': + self._add_link() + elif key_name == 'f': + _logger.debug('keyboard: Find') + self._edit_toolbar_button.set_expanded(True) + self._edit_toolbar.search_entry.grab_focus() + elif key_name == 'l': + _logger.debug('keyboard: Focus url entry') + self._primary_toolbar.entry.grab_focus() + elif key_name == 'minus': + _logger.debug('keyboard: Zoom out') + browser.zoom_out() + elif key_name in ['plus', 'equal']: + _logger.debug('keyboard: Zoom in') + browser.zoom_in() + elif key_name == '0': + _logger.debug('keyboard: Actual size') + browser.set_zoom_level(ZOOM_ORIGINAL) + elif key_name == 'Left': + _logger.debug('keyboard: Go back') + browser.go_back() + elif key_name == 'Right': + _logger.debug('keyboard: Go forward') + browser.go_forward() + elif key_name == 'r': + _logger.debug('keyboard: Reload') + browser.reload() + elif Gdk.keyval_name(event.keyval) == "t": + self._tabbed_view.add_tab() + else: + return False + + return True + + elif key_name in ('KP_Up', 'KP_Down', 'KP_Left', 'KP_Right'): + scrolled_window = browser.get_parent() + + if key_name in ('KP_Up', 'KP_Down'): + adjustment = scrolled_window.get_vadjustment() + elif key_name in ('KP_Left', 'KP_Right'): + adjustment = scrolled_window.get_hadjustment() + value = adjustment.get_value() + step = adjustment.get_step_increment() + + if key_name in ('KP_Up', 'KP_Left'): + adjustment.set_value(value - step) + elif key_name in ('KP_Down', 'KP_Right'): + adjustment.set_value(value + step) + + return True + + elif key_name == 'Escape': + status = browser.get_load_status() + loading = WebKit.LoadStatus.PROVISIONAL <= status \ + < WebKit.LoadStatus.FINISHED + if loading: + _logger.debug('keyboard: Stop loading') + browser.stop_loading() + + return False + + def _add_link(self): + ''' take screenshot and add link info to the model ''' + + browser = self._tabbed_view.props.current_browser + ui_uri = browser.get_uri() + + for link in self.model.data['shared_links']: + if link['hash'] == sha1(ui_uri).hexdigest(): + _logger.debug('_add_link: link exist already a=%s b=%s', + link['hash'], sha1(ui_uri).hexdigest()) + return + buf = self._get_screenshot() + timestamp = time.time() + self.model.add_link(ui_uri, browser.props.title, buf, + profile.get_nick_name(), + profile.get_color().to_string(), timestamp) + + if self.messenger is not None: + self.messenger._add_link(ui_uri, browser.props.title, + profile.get_color().to_string(), + profile.get_nick_name(), + base64.b64encode(buf), timestamp) + + def _add_link_model_cb(self, model, index): + ''' receive index of new link from the model ''' + link = self.model.data['shared_links'][index] + self._add_link_totray(link['url'], base64.b64decode(link['thumb']), + link['color'], link['title'], + link['owner'], index, link['hash']) + + def _add_link_totray(self, url, buf, color, title, owner, index, hash): + ''' add a link to the tray ''' + item = LinkButton(buf, color, title, owner, hash) + item.connect('clicked', self._link_clicked_cb, url) + item.connect('remove_link', self._link_removed_cb) + # use index to add to the tray + self._tray.add_item(item, index) + item.show() + self._view_toolbar.traybutton.props.sensitive = True + self._view_toolbar.traybutton.props.active = True + + def _link_removed_cb(self, button, hash): + ''' remove a link from tray and delete it in the model ''' + self.model.remove_link(hash) + self._tray.remove_item(button) + if len(self._tray.get_children()) == 0: + self._view_toolbar.traybutton.props.sensitive = False + self._view_toolbar.traybutton.props.active = False + + def _link_clicked_cb(self, button, url): + ''' an item of the link tray has been clicked ''' + self._tabbed_view.props.current_browser.load_uri(url) + + def _get_screenshot(self): + browser = self._tabbed_view.props.current_browser + window = browser.get_window() + width, height = window.get_width(), window.get_height() + + thumb_width, thumb_height = style.zoom(100), style.zoom(80) + + thumb_surface = Gdk.Window.create_similar_surface(window, + cairo.CONTENT_COLOR, thumb_width, thumb_height) + + cairo_context = cairo.Context(thumb_surface) + thumb_scale_w = thumb_width * 1.0 / width + thumb_scale_h = thumb_height * 1.0 / height + cairo_context.scale(thumb_scale_w, thumb_scale_h) + Gdk.cairo_set_source_window(cairo_context, window, 0, 0) + cairo_context.paint() + + thumb_str = StringIO.StringIO() + thumb_surface.write_to_png(thumb_str) + return thumb_str.getvalue() + + def can_close(self): + if self._force_close: + return True + elif downloadmanager.can_quit(): + return True + else: + alert = Alert() + alert.props.title = ngettext('Download in progress', + 'Downloads in progress', + downloadmanager.num_downloads()) + message = ngettext('Stopping now will erase your download', + 'Stopping now will erase your downloads', + downloadmanager.num_downloads()) + alert.props.msg = message + cancel_icon = Icon(icon_name='dialog-cancel') + cancel_label = ngettext('Continue download', 'Continue downloads', + downloadmanager.num_downloads()) + alert.add_button(Gtk.ResponseType.CANCEL, cancel_label, + cancel_icon) + stop_icon = Icon(icon_name='dialog-ok') + alert.add_button(Gtk.ResponseType.OK, _('Stop'), stop_icon) + stop_icon.show() + self.add_alert(alert) + alert.connect('response', self.__inprogress_response_cb) + alert.show() + self.present() + return False + + def __inprogress_response_cb(self, alert, response_id): + self.remove_alert(alert) + if response_id is Gtk.ResponseType.CANCEL: + logging.debug('Keep on') + elif response_id == Gtk.ResponseType.OK: + logging.debug('Stop downloads and quit') + self._force_close = True + downloadmanager.remove_all_downloads() + self.close() + + def __switch_page_cb(self, tabbed_view, page, page_num): + browser = page._browser + status = browser.get_load_status() + + if status in (WebKit.LoadStatus.COMMITTED, + WebKit.LoadStatus.FIRST_VISUALLY_NON_EMPTY_LAYOUT): + self.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.WATCH)) + elif status in (WebKit.LoadStatus.PROVISIONAL, + WebKit.LoadStatus.FAILED, + WebKit.LoadStatus.FINISHED): + self.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.LEFT_PTR)) + + def get_document_path(self, async_cb, async_err_cb): + browser = self._tabbed_view.props.current_browser + browser.get_source(async_cb, async_err_cb) + + def get_canvas(self): + return self._tabbed_view diff --git a/webtoolbar.py b/webtoolbar.py index dc0b3de..35a699a 100644 --- a/webtoolbar.py +++ b/webtoolbar.py @@ -252,9 +252,6 @@ class PrimaryToolbar(ToolbarBase): 'add-link': (GObject.SignalFlags.RUN_FIRST, None, ([])), - 'go-home': (GObject.SignalFlags.RUN_FIRST, - None, - ([])), } def __init__(self, tabbed_view, act): @@ -270,12 +267,6 @@ class PrimaryToolbar(ToolbarBase): activity_button = ActivityToolbarButton(self._activity) toolbar.insert(activity_button, 0) - self._go_home = ToolButton('go-home') - self._go_home.set_tooltip(_('Home page')) - self._go_home.connect('clicked', self._go_home_cb) - toolbar.insert(self._go_home, -1) - self._go_home.show() - self.entry = WebEntry() self.entry.set_icon_from_name(iconentry.ICON_ENTRY_SECONDARY, 'browse-dialog-cancel') @@ -451,7 +442,7 @@ class PrimaryToolbar(ToolbarBase): is_webkit_browser = isinstance(self._browser, Browser) self._link_add.props.sensitive = is_webkit_browser - self._go_home.props.sensitive = is_webkit_browser + #self._go_home.props.sensitive = is_webkit_browser if is_webkit_browser: self._reload_session_history() @@ -463,9 +454,6 @@ class PrimaryToolbar(ToolbarBase): self.entry.props.address = effective_url self._browser.grab_focus() - def _go_home_cb(self, button): - self.emit('go-home') - def _go_back_cb(self, button): self._browser.go_back() -- cgit v0.9.1