[pitivi] Set widget names for AT-SPI/accessibility
- From: Jean-FranÃois Fortin Tam <jfft src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] Set widget names for AT-SPI/accessibility
- Date: Sat, 20 Oct 2012 20:25:00 +0000 (UTC)
commit 0fb0c0e0e9995ebed737c4da122e60f59a205191
Author: Jean-FranÃois Fortin Tam <nekohayo gmail com>
Date: Fri Oct 19 11:04:12 2012 -0400
Set widget names for AT-SPI/accessibility
This makes our tests easier to develop as we can access widgets by name
in dogtail scripts and we can look at the structure in sniff/accerciser.
data/ui/medialibrary.ui | 51 +++++++++++++++++++++++++++++-------------
pitivi/mainwindow.py | 16 +++++++++++++
pitivi/timeline/timeline.py | 2 +
pitivi/viewer.py | 9 +++++++
4 files changed, 62 insertions(+), 16 deletions(-)
---
diff --git a/data/ui/medialibrary.ui b/data/ui/medialibrary.ui
index 1c86748..f1e066f 100644
--- a/data/ui/medialibrary.ui
+++ b/data/ui/medialibrary.ui
@@ -6,18 +6,26 @@
<property name="can_focus">False</property>
<property name="show_arrow">False</property>
<property name="icon_size">1</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="medialibrary_toolbar-atkobject">
+ <property name="AtkObject::accessible-name">medialibrary_toolbar</property>
+ </object>
+ </child>
<child>
<object class="GtkToolButton" id="media_import_button">
- <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Add media files to your project</property>
- <property name="use_action_appearance">False</property>
<property name="is_important">True</property>
<property name="label" translatable="yes">Import</property>
<property name="use_underline">True</property>
<property name="icon_name">list-add</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="media_import_button-atkobject">
+ <property name="AtkObject::accessible-name">media_import_button</property>
+ </object>
+ </child>
<signal name="clicked" handler="_importSourcesCb" swapped="no"/>
</object>
<packing>
@@ -27,17 +35,20 @@
</child>
<child>
<object class="GtkToolButton" id="media_remove_button">
- <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Remove selected clips from the project</property>
<property name="tooltip_text" translatable="yes">Remove selected clips from the project</property>
- <property name="use_action_appearance">False</property>
<property name="label" translatable="yes">_Remove from Project</property>
<property name="use_underline">True</property>
<property name="icon_name">list-remove</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="media_remove_button-atkobject">
+ <property name="AtkObject::accessible-name">media_remove_button</property>
+ </object>
+ </child>
<signal name="clicked" handler="_removeClickedCb" swapped="no"/>
</object>
<packing>
@@ -47,16 +58,19 @@
</child>
<child>
<object class="GtkToolButton" id="media_props_button">
- <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Clip Properties...</property>
<property name="tooltip_text" translatable="yes">Clip Properties...</property>
- <property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="icon_name">document-properties</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="media_props_button-atkobject">
+ <property name="AtkObject::accessible-name">media_props_button</property>
+ </object>
+ </child>
<signal name="clicked" handler="_clipPropertiesCb" swapped="no"/>
</object>
<packing>
@@ -66,17 +80,20 @@
</child>
<child>
<object class="GtkToolButton" id="media_insert_button">
- <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_markup" translatable="yes">Insert the selected clips at the end of the timeline</property>
<property name="tooltip_text" translatable="yes">Insert the selected clips at the end of the timeline</property>
- <property name="use_action_appearance">False</property>
<property name="label" translatable="yes">Insert at _End of Timeline</property>
<property name="use_underline">True</property>
<property name="icon_name">insert-object</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="media_insert_button-atkobject">
+ <property name="AtkObject::accessible-name">media_insert_button</property>
+ </object>
+ </child>
<signal name="clicked" handler="_insertEndCb" swapped="no"/>
</object>
<packing>
@@ -86,13 +103,16 @@
</child>
<child>
<object class="GtkToggleToolButton" id="media_listview_button">
- <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_markup" translatable="yes">Show clips as a detailed list</property>
- <property name="use_action_appearance">False</property>
<property name="use_underline">True</property>
<property name="icon_name">view-list-symbolic</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="media_listview_button-atkobject">
+ <property name="AtkObject::accessible-name">media_listview_button</property>
+ </object>
+ </child>
<signal name="toggled" handler="_toggleViewTypeCb" swapped="no"/>
</object>
<packing>
@@ -102,10 +122,8 @@
</child>
<child>
<object class="GtkToolItem" id="toolbutton7">
- <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="use_action_appearance">False</property>
<child>
<object class="GtkEntry" id="media_search_entry">
<property name="visible">True</property>
@@ -120,6 +138,11 @@
<property name="secondary_icon_tooltip_text" translatable="yes">Show all clips</property>
<property name="secondary_icon_tooltip_markup" translatable="yes">Show all clips</property>
<property name="placeholder_text">Search...</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="media_search_entry-atkobject">
+ <property name="AtkObject::accessible-name">media_search_entry</property>
+ </object>
+ </child>
<signal name="changed" handler="_searchEntryChangedCb" swapped="no"/>
<signal name="focus-in-event" handler="_disableKeyboardShortcutsCb" swapped="no"/>
<signal name="focus-out-event" handler="_enableKeyboardShortcutsCb" swapped="no"/>
@@ -175,11 +198,9 @@
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="view_error_button">
- <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="use_action_appearance">False</property>
<signal name="clicked" handler="_viewErrorsButtonClickedCb" swapped="no"/>
</object>
<packing>
@@ -191,11 +212,9 @@
<child>
<object class="GtkButton" id="warnings_dismiss_button">
<property name="label">gtk-close</property>
- <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="use_action_appearance">False</property>
<property name="use_stock">True</property>
<signal name="clicked" handler="_warningInfoBarDismissedCb" swapped="no"/>
</object>
diff --git a/pitivi/mainwindow.py b/pitivi/mainwindow.py
index dd681e3..22edc63 100644
--- a/pitivi/mainwindow.py
+++ b/pitivi/mainwindow.py
@@ -356,6 +356,8 @@ class PitiviMainWindow(Gtk.Window, Loggable):
-------- Context tabs
------ Viewer (upper-right)
---- Timeline (bottom half)
+
+ The full hierarchy is also visible with accessibility tools like "sniff"
"""
self.set_title("%s" % (APPNAME))
self.set_icon_name("pitivi")
@@ -446,6 +448,20 @@ class PitiviMainWindow(Gtk.Window, Loggable):
self.timeline_ui.show()
ttb.show()
+ # Identify widgets for AT-SPI, making our test suite easier to develop
+ # These will show up in sniff, accerciser, etc.
+ self.get_accessible().set_name("main window")
+ self.toolbar.get_accessible().set_name("main toolbar")
+ self.vpaned.get_accessible().set_name("contents")
+ self.mainhpaned.get_accessible().set_name("upper half")
+ timeline_area.get_accessible().set_name("lower half")
+ self.secondhpaned.get_accessible().set_name("tabs")
+ self.main_tabs.get_accessible().set_name("primary tabs")
+ self.context_tabs.get_accessible().set_name("secondary tabs")
+ self.viewer.get_accessible().set_name("viewer")
+ self.timeline_ui.get_accessible().set_name("timeline ui")
+ ttb.get_accessible().set_name("timeline toolbar")
+
# Restore settings (or set defaults) for position and visibility
height = -1
width = -1
diff --git a/pitivi/timeline/timeline.py b/pitivi/timeline/timeline.py
index d1a7a48..8d6ecd6 100644
--- a/pitivi/timeline/timeline.py
+++ b/pitivi/timeline/timeline.py
@@ -1026,6 +1026,7 @@ class Timeline(Gtk.Table, Loggable, Zoomable):
# timeline ruler
self.ruler = ruler.ScaleRuler(self.app, self.hadj)
+ self.ruler.get_accessible().set_name("timeline ruler") # used for dogtail
self.ruler.set_size_request(0, 25)
self.ruler.connect("key-press-event", self._keyPressEventCb)
rulerframe = Gtk.Frame()
@@ -1035,6 +1036,7 @@ class Timeline(Gtk.Table, Loggable, Zoomable):
# proportional timeline
self._canvas = TimelineCanvas(self.app)
+ self._canvas.get_accessible().set_name("timeline canvas") # used for dogtail
self._root_item = self._canvas.get_root_item()
self.attach(self._canvas, 1, 2, 1, 2)
diff --git a/pitivi/viewer.py b/pitivi/viewer.py
index be42b10..ae77027 100644
--- a/pitivi/viewer.py
+++ b/pitivi/viewer.py
@@ -247,6 +247,15 @@ class PitiviViewer(Gtk.VBox, Loggable):
bbox.pack_start(self.timecode_entry, False, 10, 0)
self._haveUI = True
+ # Identify widgets for AT-SPI, making our test suite easier to develop
+ # These will show up in sniff, accerciser, etc.
+ self.goToStart_button.get_accessible().set_name("goToStart_button")
+ self.back_button.get_accessible().set_name("back_button")
+ self.playpause_button.get_accessible().set_name("playpause_button")
+ self.forward_button.get_accessible().set_name("forward_button")
+ self.goToEnd_button.get_accessible().set_name("goToEnd_button")
+ self.timecode_entry.get_accessible().set_name("timecode_entry")
+
screen = Gdk.Screen.get_default()
height = screen.get_height()
if height >= 800:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]