[Sugar-devel] [PATCH][Browse] Update progress bar and stop/reload buttons when switching tabs
Simon Schampijer
simon at schampijer.de
Fri Mar 23 06:54:09 EDT 2012
Thanks Manu for the patch, works in most of the cases but seem to fail
for one case:
- open Browse
- open a pdf
---> a new tab is opened
---> the title is not shown in the url entry of the pdf tab
- switch to another tab
---> the title is shown there
- switch back to the pdf tab
---> the title is shown in the url entry of the pdf tab
Regards,
Simon
On 03/23/2012 06:02 AM, Manuel Quiñones wrote:
> Calling the _set_status and _set_progress methods in the web toolbar
> directly when a new tab is activated.
>
> Also the callback for load-status is disconnected now in the previous
> tab, like the other callbacks.
>
> Removed the update of the navigation buttons when the loading status
> changes. This is only needed when the adress changes or when the tabs
> are switched.
>
> The title is set to an empty string instead of None, this was giving
> the following Gtk error:
>
> Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed
>
> Signed-off-by: Manuel Quiñones<manuq at laptop.org>
> ---
> pdfviewer.py | 1 -
> webtoolbar.py | 20 +++++++++++---------
> 2 files changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/pdfviewer.py b/pdfviewer.py
> index c7e2452..ef6a6ea 100644
> --- a/pdfviewer.py
> +++ b/pdfviewer.py
> @@ -366,7 +366,6 @@ class PDFTabPage(Gtk.HBox):
>
> def __download_progress_cb(self, download, data):
> progress = download.get_progress()
> - self._browser.props.load_status = WebKit.LoadStatus.PROVISIONAL
> self._browser.props.progress = progress
>
> def __download_status_cb(self, download, data):
> diff --git a/webtoolbar.py b/webtoolbar.py
> index 7525053..d74ec7c 100644
> --- a/webtoolbar.py
> +++ b/webtoolbar.py
> @@ -324,6 +324,7 @@ class PrimaryToolbar(ToolbarBase):
> self._browser.disconnect(self._title_changed_hid)
> self._browser.disconnect(self._uri_changed_hid)
> self._browser.disconnect(self._progress_changed_hid)
> + self._browser.disconnect(self._loading_changed_hid)
>
> self._browser = browser
> if self._browser.props.title:
> @@ -331,11 +332,11 @@ class PrimaryToolbar(ToolbarBase):
> else:
> self._set_title(_('Untitled'))
> self._set_address(self._browser.props.uri)
> + self._set_progress(self._browser.props.progress)
> + self._set_status(self._browser.props.load_status)
>
> - if isinstance(self._browser, Browser):
> - self.entry.props.editable = True
> - else:
> - self.entry.props.editable = False
> + is_webkit_browser = isinstance(self._browser, Browser)
> + self.entry.props.editable = is_webkit_browser
>
> self._title_changed_hid = self._browser.connect(
> 'notify::title', self._title_changed_cb)
> @@ -349,15 +350,16 @@ class PrimaryToolbar(ToolbarBase):
> self._update_navigation_buttons()
>
> def __loading_changed_cb(self, widget, param):
> - status = widget.get_load_status()
> - if status<= WebKit.LoadStatus.COMMITTED:
> - self._set_title(None)
> - self._set_loading(status< WebKit.LoadStatus.FINISHED)
> - self._update_navigation_buttons()
> + self._set_status(widget.get_load_status())
>
> def __progress_changed_cb(self, widget, param):
> self._set_progress(widget.get_progress())
>
> + def _set_status(self, status):
> + if status<= WebKit.LoadStatus.COMMITTED:
> + self._set_title("")
> + self._set_loading(status< WebKit.LoadStatus.FINISHED)
> +
> def _set_progress(self, progress):
> if progress == 1.0:
> self.entry.set_progress_fraction(0.0)
More information about the Sugar-devel
mailing list