From 6726081a4fe2c62ab255b76d184c2f083ba4ba6e Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 13 Jun 2008 15:11:53 +0000 Subject: Merge branch 'master' of git+ssh://dev.laptop.org/git/web-activity Conflicts: webtoolbar.py --- diff --git a/edittoolbar.py b/edittoolbar.py index 91e8d6a..e6d460a 100644 --- a/edittoolbar.py +++ b/edittoolbar.py @@ -14,9 +14,16 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +import gtk +from gettext import gettext as _ + +from xpcom import components from xpcom.components import interfaces from sugar.activity import activity +from sugar.graphics import iconentry +from sugar.graphics.toolbutton import ToolButton +from sugar.graphics import style class EditToolbar(activity.EditToolbar): @@ -32,7 +39,7 @@ class EditToolbar(activity.EditToolbar): self.copy.connect('clicked', self.__copy_cb) self.paste.connect('clicked', self.__paste_cb) - """ + """ Notifications are not working right now: https://bugzilla.mozilla.org/show_bug.cgi?id=207339 @@ -54,7 +61,48 @@ class EditToolbar(activity.EditToolbar): def observe(self, subject, topic, data): logging.debug('observe: %r %r %r' % (subject, topic, data)) - """ + """ + + separator = gtk.SeparatorToolItem() + separator.set_draw(False) + separator.set_expand(True) + self.insert(separator, -1) + separator.show() + + cls = components.classes["@mozilla.org/typeaheadfind;1"] + self._typeahead = cls.createInstance(interfaces.nsITypeAheadFind) + self._typeahead.init(self._browser.doc_shell) + + search_item = gtk.ToolItem() + self.search_entry = iconentry.IconEntry() + self.search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY, + 'system-search') + self.search_entry.add_clear_button() + self.search_entry.connect('activate', self.__search_entry_activate_cb) + self.search_entry.connect('changed', self.__search_entry_changed_cb) + + width = int(gtk.gdk.screen_width() / 3) + self.search_entry.set_size_request(width, -1) + + search_item.add(self.search_entry) + self.search_entry.show() + + self.insert(search_item, -1) + search_item.show() + + self._prev = ToolButton('go-previous-paired') + self._prev.set_tooltip(_('Previous')) + self._prev.props.sensitive = False + self._prev.connect('clicked', self.__find_previous_cb) + self.insert(self._prev, -1) + self._prev.show() + + self._next = ToolButton('go-next-paired') + self._next.set_tooltip(_('Next')) + self._next.props.sensitive = False + self._next.connect('clicked', self.__find_next_cb) + self.insert(self._next, -1) + self._next.show() def __undo_cb(self, button): command_manager = self._get_command_manager() @@ -77,3 +125,24 @@ class EditToolbar(activity.EditToolbar): requestor = web_browser.queryInterface(interfaces.nsIInterfaceRequestor) return requestor.getInterface(interfaces.nsICommandManager) + def __search_entry_activate_cb(self, entry): + self._typeahead.findAgain(False, False) + + def __search_entry_changed_cb(self, entry): + found = self._typeahead.find(entry.props.text, False) + if found == interfaces.nsITypeAheadFind.FIND_NOTFOUND: + self._prev.props.sensitive = False + self._next.props.sensitive = False + entry.modify_text(gtk.STATE_NORMAL, + style.COLOR_BUTTON_GREY.get_gdk_color()) + else: + self._prev.props.sensitive = True + self._next.props.sensitive = True + entry.modify_text(gtk.STATE_NORMAL, + style.COLOR_BLACK.get_gdk_color()) + + def __find_previous_cb(self, button): + self._typeahead.findAgain(True, False) + + def __find_next_cb(self, button): + self._typeahead.findAgain(False, False) diff --git a/po/fr.po b/po/fr.po index 01e69cc..e96ca5d 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,56 +6,51 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-01-16 00:30+0000\n" -"PO-Revision-Date: 2008-01-25 14:47-0500\n" +"POT-Creation-Date: 2008-05-29 00:30-0400\n" +"PO-Revision-Date: 2008-06-02 07:52-0400\n" "Last-Translator: samy boutayeb \n" "Language-Team: Traduc-fr \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Pootle 1.0.2\n" +"X-Generator: Pootle 1.1.0rc2\n" -#: activity/activity.info:2 webactivity.py:105 +#: activity/activity.info:2 webactivity.py:109 msgid "Browse" msgstr "Naviguer" -#: browser.py:132 +#: browser.py:144 msgid "Source" msgstr "Source" -#: downloadmanager.py:140 +#: downloadmanager.py:141 msgid "Download started" msgstr "Téléchargement amorcé" -#: downloadmanager.py:142 downloadmanager.py:156 +#: downloadmanager.py:143 downloadmanager.py:157 #, python-format msgid "%s" msgstr "%s" -#: downloadmanager.py:154 +#: downloadmanager.py:155 msgid "Download completed" msgstr "Téléchargement terminé" -#: downloadmanager.py:158 -msgid "Open" -msgstr "Ouvrir" +#: downloadmanager.py:160 +msgid "Show in Journal" +msgstr "Afficher dans le journal" -#: downloadmanager.py:161 +#: downloadmanager.py:163 msgid "Ok" msgstr "Accepter" -#: downloadmanager.py:162 +#: downloadmanager.py:169 #, python-format -msgid "" -"File %s downloaded from\n" -"%s." -msgstr "" -"Fichier %s téléchargé depuis\n" -"%s." +msgid "File %s from %s." +msgstr "Fichier %s de %s." -#: downloadmanager.py:243 -#, python-format +#: downloadmanager.py:245 #, python-format msgid "" "Downloading %s from \n" @@ -64,50 +59,93 @@ msgstr "" "Téléchargement de %s depuis \n" "%s." -#: linkbutton.py:96 +#: linkbutton.py:94 msgid "Remove" msgstr "Retirer" -#: webactivity.py:113 +#: palettes.py:88 +msgid "Follow link" +msgstr "Suivre le lien" + +#: palettes.py:93 palettes.py:141 +msgid "Copy" +msgstr "Copier" + +#: viewtoolbar.py:34 +msgid "Zoom out" +msgstr "Zoom arrière" + +#: viewtoolbar.py:40 +msgid "Zoom in" +msgstr "Zoom avant" + +#: viewtoolbar.py:51 +msgid "Fullscreen" +msgstr "Plein écran" + +#: viewtoolbar.py:87 +msgid "Show Tray" +msgstr "Afficher la barre" + +#: viewtoolbar.py:91 +msgid "Hide Tray" +msgstr "Masquer la barre" + +#: webactivity.py:105 +msgid "Edit" +msgstr "Editer" + +#: webactivity.py:117 msgid "View" msgstr "Afficher" -#: webactivity.py:131 webactivity.py:132 +#: webactivity.py:136 webactivity.py:137 msgid "blank" msgstr "vide" -#: webactivity.py:440 +#: webactivity.py:449 msgid "Download in progress" msgstr "Téléchargement en cours" -#: webactivity.py:441 +#: webactivity.py:450 msgid "Stopping now will cancel your download" msgstr "Si vous arrêtez maintenant, votre téléchargement sera annulé" -#: webactivity.py:443 +#: webactivity.py:452 msgid "Cancel" msgstr "Annuler" -#: webactivity.py:445 webtoolbar.py:171 +#: webactivity.py:454 webtoolbar.py:174 msgid "Stop" msgstr "Arrêter" -#: webtoolbar.py:53 +#: webtoolbar.py:52 msgid "Back" msgstr "Précédent" -#: webtoolbar.py:60 +#: webtoolbar.py:59 msgid "Forward" msgstr "Suivant" -#: webtoolbar.py:83 +#: webtoolbar.py:82 msgid "Bookmark" msgstr "Signet" -#: webtoolbar.py:174 +#: webtoolbar.py:177 msgid "Reload" msgstr "Recharger" +#~ msgid "Open" +#~ msgstr "Ouvrir" + +#, python-format +#~ msgid "" +#~ "File %s downloaded from\n" +#~ "%s." +#~ msgstr "" +#~ "Fichier %s téléchargé depuis\n" +#~ "%s." + #~ msgid "" #~ "Downloading %s from\n" #~ "%s. Progress %i%%." @@ -118,32 +156,3 @@ msgstr "Recharger" #, python-format #~ msgid "Web Activity" #~ msgstr "Activité : internet" - -#: downloadmanager.py:167 -#, python-format -msgid "File %s from %s." -msgstr "Fichier %s de %s." - -#: viewtoolbar.py:34 -msgid "Zoom out" -msgstr "Zoom arrière" - -#: viewtoolbar.py:40 -msgid "Zoom in" -msgstr "Zoom avant" - -#: viewtoolbar.py:51 -msgid "Fullscreen" -msgstr "Plein écran" - -#: viewtoolbar.py:87 -msgid "Show Tray" -msgstr "Afficher la barre" - -#: viewtoolbar.py:91 -msgid "Hide Tray" -msgstr "Masquer la barre" - -#: downloadmanager.py:158 -msgid "Show in Journal" -msgstr "Afficher dans le journal" diff --git a/webactivity.py b/webactivity.py index 4b2a2d8..8ca7043 100755 --- a/webactivity.py +++ b/webactivity.py @@ -84,6 +84,7 @@ SERVICE = "org.laptop.WebActivity" IFACE = SERVICE PATH = "/org/laptop/WebActivity" +_TOOLBAR_EDIT = 1 _TOOLBAR_BROWSE = 2 _logger = logging.getLogger('web-activity') @@ -108,17 +109,17 @@ class WebActivity(activity.Activity): toolbox.add_toolbar(_('Edit'), self._edit_toolbar) self._edit_toolbar.show() - self.toolbar = WebToolbar(self._browser) - toolbox.add_toolbar(_('Browse'), self.toolbar) - self.toolbar.show() + self._web_toolbar = WebToolbar(self._browser) + toolbox.add_toolbar(_('Browse'), self._web_toolbar) + self._web_toolbar.show() self._tray = HTray() self.set_tray(self._tray, gtk.POS_BOTTOM) self._tray.show() - self.viewtoolbar = ViewToolbar(self) - toolbox.add_toolbar(_('View'), self.viewtoolbar) - self.viewtoolbar.show() + self._view_toolbar = ViewToolbar(self) + toolbox.add_toolbar(_('View'), self._view_toolbar) + self._view_toolbar.show() self.set_toolbox(toolbox) toolbox.show() @@ -129,7 +130,7 @@ class WebActivity(activity.Activity): self.session_history = sessionhistory.get_instance() self.session_history.connect('session-link-changed', self._session_history_changed_cb) - self.toolbar.connect('add-link', self._link_add_button_cb) + self._web_toolbar.connect('add-link', self._link_add_button_cb) self._browser.connect("notify::title", self._title_changed_cb) @@ -344,10 +345,20 @@ class WebActivity(activity.Activity): def _key_press_cb(self, widget, event): if event.state & gtk.gdk.CONTROL_MASK: - if gtk.gdk.keyval_name(event.keyval) == "l": + if gtk.gdk.keyval_name(event.keyval) == "d": _logger.debug('keyboard: Add link: %s.' % self.current) self._add_link() return True + elif gtk.gdk.keyval_name(event.keyval) == "f": + _logger.debug('keyboard: Find') + self.toolbox.set_current_toolbar(_TOOLBAR_EDIT) + self._edit_toolbar.search_entry.grab_focus() + return True + elif gtk.gdk.keyval_name(event.keyval) == "l": + _logger.debug('keyboard: Focus url entry') + self.toolbox.set_current_toolbar(_TOOLBAR_BROWSE) + self._web_toolbar.entry.grab_focus() + return True elif gtk.gdk.keyval_name(event.keyval) == "u": _logger.debug('keyboard: Show source of the current page') self._show_source() @@ -402,14 +413,14 @@ class WebActivity(activity.Activity): item.show() if self._tray.props.visible is False: self._tray.show() - self.viewtoolbar.traybutton.props.sensitive = True + self._view_toolbar.traybutton.props.sensitive = 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.viewtoolbar.traybutton.props.sensitive = False + self._view_toolbar.traybutton.props.sensitive = False def _link_clicked_cb(self, button, url): ''' an item of the link tray has been clicked ''' diff --git a/webtoolbar.py b/webtoolbar.py index f00242a..f3f8ccb 100755 --- a/webtoolbar.py +++ b/webtoolbar.py @@ -227,13 +227,13 @@ class WebToolbar(gtk.Toolbar): self.insert(self._stop_and_reload, -1) self._stop_and_reload.show() - self._entry = WebEntry() - self._entry.connect('activate', self._entry_activate_cb) + self.entry = WebEntry() + self.entry.connect('activate', self._entry_activate_cb) entry_item = gtk.ToolItem() entry_item.set_expand(True) - entry_item.add(self._entry) - self._entry.show() + entry_item.add(self.entry) + self.entry.show() self.insert(entry_item, -1) entry_item.show() @@ -284,13 +284,13 @@ class WebToolbar(gtk.Toolbar): self._set_progress(progress) def _set_progress(self, progress): - self._entry.props.progress = progress + self.entry.props.progress = progress def _set_address(self, address): - self._entry.props.address = address + self.entry.props.address = address def _set_title(self, title): - self._entry.props.title = title + self.entry.props.title = title def _show_stop_icon(self): self._stop_and_reload.set_icon('media-playback-stop') -- cgit v0.9.1