Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2008-06-13 15:11:53 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2008-06-13 15:11:53 (GMT)
commit6726081a4fe2c62ab255b76d184c2f083ba4ba6e (patch)
tree44e0cc3de1a27f4c41b82a7faf874108fca62172
parenta40d0d0e901d0fc9d1f71bd6269e85586bd0ef12 (diff)
parent6e6d22f5d5d2f28782484f7fbd7a1c87401e9d17 (diff)
Merge branch 'master' of git+ssh://dev.laptop.org/git/web-activity
Conflicts: webtoolbar.py
-rw-r--r--edittoolbar.py73
-rw-r--r--po/fr.po131
-rwxr-xr-xwebactivity.py31
-rwxr-xr-xwebtoolbar.py14
4 files changed, 169 insertions, 80 deletions
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 <s.boutayeb@free.fr>\n"
"Language-Team: Traduc-fr <traduc@traduc.org>\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')