[accerciser] * src/lib/accerciser/accessible_treeview.py:
- From: Eitan Isaacson <eitani src gnome org>
- To: svn-commits-list gnome org
- Subject: [accerciser] * src/lib/accerciser/accessible_treeview.py:
- Date: Sun, 24 May 2009 09:42:35 -0400 (EDT)
commit 2dd4768bf6faabf992a164b54bea235a752eb46c
Author: Eitan Isaacson <eitan ascender com>
Date: Sun May 24 16:42:14 2009 +0300
* src/lib/accerciser/accessible_treeview.py:
* plugins/interface_view.py: Added accessible name changed
listeners to update the view accordingly (bug #582434).
---
ChangeLog | 6 ++++++
plugins/interface_view.py | 21 +++++++++++++++++++++
src/lib/accerciser/accessible_treeview.py | 25 +++++++++++++++++++++++++
3 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index a11ce84..ecad7eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-05-24 Eitan Isaacson <eitan ascender com>
+
+ * src/lib/accerciser/accessible_treeview.py:
+ * plugins/interface_view.py: Added accessible name changed
+ listeners to update the view accordingly (bug #582434).
+
2009-05-15 Eitan Isaacson <eitan ascender com>
* plugins/interface_view.py: Fixed editable text bug (bug #574223).
diff --git a/plugins/interface_view.py b/plugins/interface_view.py
index cba4647..a246ca2 100644
--- a/plugins/interface_view.py
+++ b/plugins/interface_view.py
@@ -88,6 +88,27 @@ class InterfaceViewer(ViewportPlugin):
section = _InterfaceSection(ui_xml, self.node, iface_name)
section.disable()
+ pyatspi.Registry.registerEventListener(
+ self.onAccNameChanged, 'object:property-change:accessible-name')
+
+ def onAccNameChanged(self, event):
+ '''
+ Listener for accessible name changes, if it is ours, change the name.
+
+ @param event: 'object:property-change:accessible-name' event.
+ @type acc: Accessibility.Event
+ '''
+ if event.source != self.node.acc:
+ return
+
+ role = self.node.acc.getRoleName()
+ name = self.node.acc.name
+ if name:
+ role_name = '%s: %s' % (role, name)
+ else:
+ role_name = role
+ self.label_role.set_markup('<b>%s</b>' % markup_escape_text(role_name))
+
def onAccChanged(self, acc):
'''
Method that is invoked when the main accessible selection s changed.
diff --git a/src/lib/accerciser/accessible_treeview.py b/src/lib/accerciser/accessible_treeview.py
index 8527eb4..d02e204 100644
--- a/src/lib/accerciser/accessible_treeview.py
+++ b/src/lib/accerciser/accessible_treeview.py
@@ -422,9 +422,14 @@ class AccessibleTreeView(gtk.TreeView, Tools):
selection.connect('changed', self._onSelectionChanged)
selection.set_select_function(self._selectFunc)
self.connect('row-expanded', self._onExpanded)
+
pyatspi.Registry.registerEventListener(self._accEventChildChanged,
'object:children-changed')
+ pyatspi.Registry.registerEventListener(
+ self._accEventNameChanged,
+ 'object:property-change:accessible-name')
+
self.action_group = gtk.ActionGroup('TreeActions')
self.action_group.add_actions([
('RefreshAll', gtk.STOCK_REFRESH, _('_Refresh Registry'),
@@ -527,6 +532,26 @@ class AccessibleTreeView(gtk.TreeView, Tools):
# populate this level
self.model.popLevel(iter)
+ def _accEventNameChanged(self, event):
+ '''
+ Event handler for "object:property-change:accessible-name".
+ Updates the treeview accordingly.
+
+ @param event: The event which triggered this handler.
+ @type event: L{pyatspi.event.Event}
+ '''
+ if self.isMyApp(event.source) or event.source == self.desktop:
+ # Bad karma
+ return
+ if self.model.isInModel(event.source):
+ try:
+ path = self.model.getAccPath(event.source)
+ iter = self.model.get_iter(path)
+ except:
+ pass
+ else:
+ self.model[iter][COL_NAME] = event.source.name
+
def _accEventChildChanged(self, event):
'''
Event handler for "object:children-changed". Updates the treeview accordingly.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]