[Sugar-devel] [DESIGN] Fwd: [PATCH] Browse: Add support for creating multiple tabs
Gary Martin
garycmartin at googlemail.com
Thu Jul 1 15:22:27 EDT 2010
On 1 Jul 2010, at 14:20, Anish Mangal <anishmangal2002 at gmail.com> wrote:
> Here is a screenshot
>
> http://people.sugarlabs.org/anish/browse-tabbed.png
Thanks for the screen shot :) Yea if possible use the tab-add.svg from Terminal so it's clearer that it adds a new tab and not a bookmark or something:
http://git.sugarlabs.org/projects/terminal/repos/mainline/trees/master/icons
> --Anish
>
> P.S. As a sidenote, we could have a better theme for displaying tab
> widgets. If for example, the above screenshot had only two tabs
> opened, it would be difficult to distinguish which is the active one.
Simon and I did have some discussions about this last year when Tabs were added. I did create a basic sugar theme so that we had a Sugar scrollbar, but it never made it in to a release (mainly as the Mozilla theme is a system level thing and I didn't have an obvious way to install such a thing in a deployable way). I noted that the tab artwork is in the same place for when we had a better design, but we didn't get that far.
You can find my .jar theme for the scrollbar at least in sl ticket #1067
Regards,
--Gary
> On Thu, Jul 1, 2010 at 6:42 PM, Tomeu Vizoso <tomeu at sugarlabs.org> wrote:
>> Any comments from the UX people? I hope the commit description is
>> enough for imagining how it looks like (and if Anish had a link to a
>> screenshot it would be great).
>>
>> Regards,
>>
>> Tomeu
>>
>> ---------- Forwarded message ----------
>> From: anishmangal2002 <anishmangal2002 at gmail.com>
>> Date: Tue, Jun 29, 2010 at 22:58
>> Subject: [PATCH] Browse: Add support for creating multiple tabs
>> To: lucian.branescu at gmail.com
>> Cc: tomeu at sugarlabs.org, sugar-devel at lists.sugarlabs.org,
>> anishmangal2002 <anishmangal2002 at gmail.com>
>>
>>
>> This patch adds support to create multiple tabbed windows
>> in Browse. A tab may be added by either clicking the add tab
>> ('+') icon in the activity toolbar or by pressing 'ctrl+t'.
>>
>> Signed-off-by: anishmangal2002 <anishmangal2002 at gmail.com>
>> ---
>> icons/add-tab.svg | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>> webactivity.py | 11 +++++++
>> webtoolbar.py | 21 +++++++++++++
>> 3 files changed, 118 insertions(+), 0 deletions(-)
>> create mode 100644 icons/add-tab.svg
>>
>> diff --git a/icons/add-tab.svg b/icons/add-tab.svg
>> new file mode 100644
>> index 0000000..0220993
>> --- /dev/null
>> +++ b/icons/add-tab.svg
>> @@ -0,0 +1,86 @@
>> +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
>> +<!-- Created with Inkscape (http://www.inkscape.org/) -->
>> +
>> +<svg
>> + xmlns:dc="http://purl.org/dc/elements/1.1/"
>> + xmlns:cc="http://creativecommons.org/ns#"
>> + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>> + xmlns:svg="http://www.w3.org/2000/svg"
>> + xmlns="http://www.w3.org/2000/svg"
>> + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
>> + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
>> + version="1.1"
>> + width="55"
>> + height="55"
>> + id="svg2"
>> + inkscape:version="0.47 r22583"
>> + sodipodi:docname="add-tab.svg">
>> + <metadata
>> + id="metadata10">
>> + <rdf:RDF>
>> + <cc:Work
>> + rdf:about="">
>> + <dc:format>image/svg+xml</dc:format>
>> + <dc:type
>> + rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
>> + </cc:Work>
>> + </rdf:RDF>
>> + </metadata>
>> + <sodipodi:namedview
>> + pagecolor="#ffffff"
>> + bordercolor="#666666"
>> + borderopacity="1"
>> + objecttolerance="10"
>> + gridtolerance="10"
>> + guidetolerance="10"
>> + inkscape:pageopacity="0"
>> + inkscape:pageshadow="2"
>> + inkscape:window-width="1280"
>> + inkscape:window-height="721"
>> + id="namedview8"
>> + showgrid="false"
>> + inkscape:zoom="4.2909091"
>> + inkscape:cx="27.5"
>> + inkscape:cy="27.033898"
>> + inkscape:window-x="0"
>> + inkscape:window-y="27"
>> + inkscape:window-maximized="1"
>> + inkscape:current-layer="layer1" />
>> + <defs
>> + id="defs4">
>> + <inkscape:perspective
>> + sodipodi:type="inkscape:persp3d"
>> + inkscape:vp_x="0 : 27.5 : 1"
>> + inkscape:vp_y="0 : 1000 : 0"
>> + inkscape:vp_z="55 : 27.5 : 1"
>> + inkscape:persp3d-origin="27.5 : 18.333333 : 1"
>> + id="perspective12" />
>> + </defs>
>> + <g
>> + transform="translate(0,-997.36218)"
>> + id="layer1">
>> + <rect
>> + width="55"
>> + height="55"
>> + x="0"
>> + y="0"
>> + transform="translate(0,997.36218)"
>> + id="rect2818"
>> + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none" />
>> + <rect
>> + width="9"
>> + height="38"
>> + x="23"
>> + y="1005.8622"
>> + id="rect3599"
>> + style="fill:#ffffff;fill-opacity:1;stroke:none" />
>> + <rect
>> + width="8.94349"
>> + height="37.99044"
>> + x="1020.3485"
>> + y="-47.595592"
>> + transform="matrix(-0.00107369,0.99999942,-0.99999889,-0.00148761,0,0)"
>> + id="rect3599-4"
>> + style="fill:#ffffff;fill-opacity:1;stroke:none" />
>> + </g>
>> +</svg>
>> diff --git a/webactivity.py b/webactivity.py
>> index 4be551e..5f4f917 100644
>> --- a/webactivity.py
>> +++ b/webactivity.py
>> @@ -152,6 +152,7 @@ def _set_accept_languages():
>> logging.debug('LANG set')
>>
>> from browser import TabbedView
>> +from browser import Browser
>> from webtoolbar import PrimaryToolbar
>> from edittoolbar import EditToolbar
>> from viewtoolbar import ViewToolbar
>> @@ -443,6 +444,16 @@ class WebActivity(activity.Activity):
>> _logger.debug('keyboard: Zoom in')
>> self._tabbed_view.props.current_browser.zoom_in()
>> return True
>> + elif gtk.gdk.keyval_name(event.keyval) == "t":
>> + browser = Browser()
>> + self._tabbed_view._append_tab(browser)
>> + if os.path.isfile(_LIBRARY_PATH):
>> + browser.load_uri('file://' + _LIBRARY_PATH)
>> + else:
>> + default_page = os.path.join(activity.get_bundle_path(),
>> + "data/index.html")
>> + browser.load_uri(default_page)
>> +
>> return False
>>
>> def _add_link(self):
>> diff --git a/webtoolbar.py b/webtoolbar.py
>> index 854345c..99979ca 100644
>> --- a/webtoolbar.py
>> +++ b/webtoolbar.py
>> @@ -18,6 +18,9 @@
>>
>> from gettext import gettext as _
>>
>> +_LIBRARY_PATH = '/usr/share/library-common/index.html'
>> +
>> +import os
>> import gobject
>> import gtk
>> import pango
>> @@ -31,6 +34,7 @@ from sugar.graphics.toolbarbox import ToolbarBox
>> from sugar.activity.widgets import ActivityToolbarButton
>> from sugar.activity.widgets import StopButton
>> from sugar.activity import activity
>> +from browser import Browser
>>
>> import filepicker
>> import places
>> @@ -267,6 +271,13 @@ class PrimaryToolbar(ToolbarBox):
>> self.toolbar.insert(self._forward, -1)
>> self._forward.show()
>>
>> + self._add_tab = ToolButton('add-tab')
>> + self._add_tab.set_tooltip(_('Add a tab'))
>> + self._add_tab.props.sensitive = True
>> + self._add_tab.connect('clicked', self._add_tab_cb)
>> + self.toolbar.insert(self._add_tab, -1)
>> + self._add_tab.show()
>> +
>> self._link_add = ToolButton('emblem-favorite')
>> self._link_add.set_tooltip(_('Bookmark'))
>> self._link_add.connect('clicked', self._link_add_clicked_cb)
>> @@ -385,6 +396,16 @@ class PrimaryToolbar(ToolbarBox):
>> browser.load_uri(entry.props.text)
>> browser.grab_focus()
>>
>> + def _add_tab_cb(self, button):
>> + browser = Browser()
>> + self._tabbed_view._append_tab(browser)
>> + if os.path.isfile(_LIBRARY_PATH):
>> + browser.load_uri('file://' + _LIBRARY_PATH)
>> + else:
>> + default_page = os.path.join(activity.get_bundle_path(),
>> + "data/index.html")
>> + browser.load_uri(default_page)
>> +
>> def _go_back_cb(self, button):
>> browser = self._tabbed_view.props.current_browser
>> browser.web_navigation.goBack()
>> --
>> 1.7.0.1
>> _______________________________________________
>> Sugar-devel mailing list
>> Sugar-devel at lists.sugarlabs.org
>> http://lists.sugarlabs.org/listinfo/sugar-devel
>>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
More information about the Sugar-devel
mailing list