[Sugar-devel] [PATCH Help v3] Migrated to Gtk3 and WebKit.WebView SL #3466
Manuel Quiñones
manuq at laptop.org
Wed Apr 25 09:47:58 EDT 2012
El día 25 de abril de 2012 10:43, Manuel Kaufmann <humitos at gmail.com> escribió:
> - All the code was migrated to Gtk3 following this guide[1]
> - Toolbar View's icon was changed from "camera" to the right one:
> "toolbar-view"
> - Back and Forward buttons are working properly
> - WebKit.WebView inside a Gtk.ScrolledWindow to be able to scroll the page.
>
> [1] http://wiki.sugarlabs.org/go/Features/GTK3/Porting
>
> Signed-off-by: Manuel Kaufmann <humitos at gmail.com>
> ---
> browser.py | 43 -------------------------------------------
> helpactivity.py | 38 ++++++++++++++------------------------
> viewtoolbar.py | 3 +--
> 3 files changed, 15 insertions(+), 69 deletions(-)
> delete mode 100644 browser.py
>
> diff --git a/browser.py b/browser.py
> deleted file mode 100644
> index 85017cb..0000000
> --- a/browser.py
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -# 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 gi.repository import WebKit
> -
> -_ZOOM_AMOUNT = 0.1
> -
> -
> -class Browser(WebKit.WebView):
> - def __init__(self):
> - WebKit.WebView.__init__(self)
> -
> - def do_setup(self):
> - WebKit.WebView.do_setup(self)
> -
> - def zoom_in(self):
> - # contentViewer = self.doc_shell.queryInterface( \
> - # interfaces.nsIDocShell).contentViewer
> - # if contentViewer is not None:
> - # markupDocumentViewer = contentViewer.queryInterface( \
> - # interfaces.nsIMarkupDocumentViewer)
> - # markupDocumentViewer.fullZoom += _ZOOM_AMOUNT
> - pass
> -
> - def zoom_out(self):
> - # contentViewer = self.doc_shell.queryInterface( \
> - # interfaces.nsIDocShell).contentViewer
> - # if contentViewer is not None:
> - # markupDocumentViewer = contentViewer.queryInterface( \
> - # interfaces.nsIMarkupDocumentViewer)
> - # markupDocumentViewer.fullZoom -= _ZOOM_AMOUNT
> - pass
> diff --git a/helpactivity.py b/helpactivity.py
> index f8e3435..908a0d4 100755
> --- a/helpactivity.py
> +++ b/helpactivity.py
> @@ -15,16 +15,13 @@
> import os
> from gettext import gettext as _
>
> -from gi.repository import Gtk
> -from gi.repository import GObject
> +from gi.repository import Gtk, GObject, WebKit
One more little thing, we use one import per line, is a style
decision, so please do three lines here.
> from sugar3.activity import activity
> from sugar3.graphics.toolbutton import ToolButton
> from sugar3.graphics.toolbarbox import ToolbarBox, ToolbarButton
> -from sugar3.activity.widgets import ActivityToolbarButton
> -from sugar3.activity.widgets import StopButton
> +from sugar3.activity.widgets import ActivityToolbarButton, StopButton
Same here. Other than that, patch looks great!
> -from browser import Browser
> from viewtoolbar import ViewToolbar
>
> HOME = 'file://' + os.path.join(activity.get_bundle_path(),
> @@ -37,8 +34,10 @@ class HelpActivity(activity.Activity):
>
> self.props.max_participants = 1
>
> - self._web_view = Browser()
> -
> + self._web_view = WebKit.WebView()
> + _scrolled_window = Gtk.ScrolledWindow()
> + _scrolled_window.add(self._web_view)
> + _scrolled_window.show()
>
> toolbar_box = ToolbarBox()
>
> @@ -48,7 +47,7 @@ class HelpActivity(activity.Activity):
>
> viewtoolbar = ViewToolbar(self)
> viewbutton = ToolbarButton(page=viewtoolbar, \
> - icon_name='camera')
> + icon_name='toolbar-view')
> toolbar_box.toolbar.insert(viewbutton, -1)
> viewbutton.show()
>
> @@ -96,9 +95,8 @@ class HelpActivity(activity.Activity):
> self.set_toolbar_box(toolbar_box)
> toolbar_box.show()
>
> - self.set_canvas(self._web_view)
> + self.set_canvas(_scrolled_window)
> self._web_view.show()
> -
> self._web_view.load_uri(HOME)
>
>
> @@ -128,31 +126,23 @@ class Toolbar(Gtk.Toolbar):
> self.insert(self._home, -1)
> self._home.show()
>
> - """
> - progress_listener = self._web_view.progress
> - progress_listener.connect('location-changed',
> - self._location_changed_cb)
> - progress_listener.connect('loading-stop', self._loading_stop_cb)
> - """
> + self._web_view.connect('notify::uri', self._uri_changed_cb)
>
> - def _location_changed_cb(self, progress_listener, uri):
> + def _uri_changed_cb(self, progress_listener, uri):
> self.update_navigation_buttons()
>
> def _loading_stop_cb(self, progress_listener):
> self.update_navigation_buttons()
>
> def update_navigation_buttons(self):
> - can_go_back = self._web_view.web_navigation.canGoBack
> - self._back.props.sensitive = can_go_back
> -
> - can_go_forward = self._web_view.web_navigation.canGoForward
> - self._forward.props.sensitive = can_go_forward
> + self._back.props.sensitive = self._web_view.can_go_back()
> + self._forward.props.sensitive = self._web_view.can_go_forward()
>
> def _go_back_cb(self, button):
> - self._web_view.web_navigation.goBack()
> + self._web_view.go_back()
>
> def _go_forward_cb(self, button):
> - self._web_view.web_navigation.goForward()
> + self._web_view.go_forward()
>
> def _go_home_cb(self, button):
> self._web_view.load_uri(HOME)
> diff --git a/viewtoolbar.py b/viewtoolbar.py
> index 13a1ce5..fbbdb10 100644
> --- a/viewtoolbar.py
> +++ b/viewtoolbar.py
> @@ -16,8 +16,7 @@
>
> from gettext import gettext as _
>
> -from gi.repository import Gtk
> -from gi.repository import GObject
> +from gi.repository import Gtk, GObject
>
> from sugar3.graphics.toolbutton import ToolButton
>
> --
> 1.7.10
>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
--
.. manuq ..
More information about the Sugar-devel
mailing list