orca r3465 - in trunk: . src/orca src/orca/scripts



Author: joanied
Date: Wed Jan 16 00:55:26 2008
New Revision: 3465
URL: http://svn.gnome.org/viewvc/orca?rev=3465&view=rev

Log:
* src/orca/scripts/Evolution.py:
  src/orca/speechgenerator.py:
  src/orca/braillegenerator.py:
  Fix for bug #503874 - Read by row in Evolution reads cell 
  information incorrectly


Modified:
   trunk/ChangeLog
   trunk/src/orca/braillegenerator.py
   trunk/src/orca/scripts/Evolution.py
   trunk/src/orca/speechgenerator.py

Modified: trunk/src/orca/braillegenerator.py
==============================================================================
--- trunk/src/orca/braillegenerator.py	(original)
+++ trunk/src/orca/braillegenerator.py	Wed Jan 16 00:55:26 2008
@@ -1205,6 +1205,7 @@
                     + "looking at action %d" % i)
                 if action.getName(i) == "toggle":
                     regions = self._getBrailleRegionsForCheckBox(obj)
+                    regions[0].append(braille.Region(" "))
 
                     # If this table cell doesn't have any label associated
                     # with it then also braille the table column header.

Modified: trunk/src/orca/scripts/Evolution.py
==============================================================================
--- trunk/src/orca/scripts/Evolution.py	(original)
+++ trunk/src/orca/scripts/Evolution.py	Wed Jan 16 00:55:26 2008
@@ -908,6 +908,16 @@
             column = \
                 parentTable.getColumnAtIndex(event.source.getIndexInParent())
 
+            # If we are on the same row, then just speak/braille the table
+            # cell as if settings.readTableCellRow was False. 
+            # See bug #503874 for more details.
+            #
+            if self.lastMessageRow == row:
+                default.Script.locusOfFocusChanged(self, event,
+                                           oldLocusOfFocus, newLocusOfFocus)
+                settings.readTableCellRow = True
+                return
+
             # This is an indication of whether we should speak all the table
             # cells (the user has moved focus up or down the list, or just
             # deleted a message), or just the current one (focus has moved
@@ -971,6 +981,12 @@
 
                     checkbox = False
                     toRead = True
+                    # Whether or not we want to replace the cell's column
+                    # header with a more user-friendly alternative name.
+                    # Currently we only do this with the "status" column,
+                    # which we replace with "unread" if it is not checked.
+                    #
+                    useAlternativeName = False
                     try:
                         action = cell.queryAction()
                     except NotImplementedError:
@@ -990,6 +1006,15 @@
                                     #
                                     if header.name == _("Status"):
                                         toRead = not checked
+                                        useAlternativeName = True
+                                        break
+                                    # Translators: this is the name of the
+                                    # flagged column header in the message
+                                    # list in Evolution.  The name needs to
+                                    # match what Evolution is using.
+                                    #
+                                    elif header.name == _("Flagged"):
+                                        toRead = checked
                                         break
                                     if not checked:
                                         toRead = False
@@ -999,7 +1024,8 @@
                         # Speak/braille the column header for this table cell
                         # if it has focus (unless it's a checkbox).
                         #
-                        if not checkbox and verbose:
+                        if (verbose or (checkbox and column == i)) \
+                           and not useAlternativeName:
                             settings.brailleVerbosityLevel = \
                                 settings.VERBOSITY_LEVEL_BRIEF
                             settings.speechVerbosityLevel = \
@@ -1057,8 +1083,20 @@
                         elif header.name == _("Attachment"):
                             text = header.name
                             utterances = [ text ]
-                            brailleRegions.append(braille.Region(text))
-                            brailleRegions.append(braille.Region(" "))
+                            if column != i:
+                                brailleRegions.append(braille.Region(text))
+                                brailleRegions.append(braille.Region(" "))
+                        # Translators: this is the name of the
+                        # flagged column header in the message
+                        # list in Evolution.  The name needs to
+                        # match what Evolution is using.
+                        #
+                        elif header.name == _("Flagged"):
+                            text = header.name
+                            utterances = [ text ]
+                            if column != i:
+                                brailleRegions.append(braille.Region(text))
+                                brailleRegions.append(braille.Region(" "))
                         else:
                             brailleRegions.extend(cellRegions)
                             brailleRegions.append(braille.Region(" "))

Modified: trunk/src/orca/speechgenerator.py
==============================================================================
--- trunk/src/orca/speechgenerator.py	(original)
+++ trunk/src/orca/speechgenerator.py	Wed Jan 16 00:55:26 2008
@@ -1348,7 +1348,7 @@
 
         displayedText = self._script.getDisplayedText( \
                           self._script.getRealActiveDescendant(obj))
-        if not already_focused:
+        if not already_focused and not displayedText in utterances:
             utterances.append(displayedText)
 
         # If there is no displayed text, check to see if this table cell 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]