OSDN Git Service
James Teh [Wed, 8 Dec 2010 07:35:56 +0000 (17:35 +1000)]
InputGesture: Add a scriptableObject property which allows a gesture to specify a scriptable object which contains scripts specific to this gesture/type of gesture.
James Teh [Wed, 8 Dec 2010 06:42:03 +0000 (16:42 +1000)]
alvaBC6: Reintroduce mapping from display keys to emulate keys on the system keyboard.
James Teh [Wed, 8 Dec 2010 06:40:58 +0000 (16:40 +1000)]
In global gesture maps, allow gestures to emulate key presses by specifying the target gesture identifier (i.e. kb:keyName) as the script name.
This will be used to allow keys on braille displays to emulate key presses on the system keyboard.
This is done by generating a fake script.
James Teh [Wed, 8 Dec 2010 06:37:22 +0000 (16:37 +1000)]
InputManager: Add emulateGesture() method to emulate a gesture; i.e. try executing it first and, if that fails, send it to the OS using InputGesture.send().
James Teh [Wed, 8 Dec 2010 05:18:17 +0000 (15:18 +1000)]
Merge main.
James Teh [Tue, 7 Dec 2010 06:28:40 +0000 (16:28 +1000)]
AppModule now has a terminate() method instead of using __del__() to clean up.
This is necessary because it is possible that some app modules might not be garbage collected until after NVDAHelper is terminated and app module termination depends on NVDAHelper still being initialised. All running app modules are explicitly terminated on exit before NVDAHelper terminates.
Fixes many unlogged exceptions (resulting in a strange sound) when NVDA exits.
Also, fix typo in appModuleHandler.update() which might have caused getAppModuleFromProcessID() to be called more than it should, although this wouldn't have been noticeable in reality.
Fixes #1263.
James Teh [Tue, 7 Dec 2010 03:22:25 +0000 (13:22 +1000)]
espeak synth driver: Remove print statement which was causing debugging crap to be logged as warnings.
James Teh [Tue, 7 Dec 2010 03:16:40 +0000 (13:16 +1000)]
SynthDriver: Remove compatibility code for has* and *MinStep attributes, which were deprecated last release.
James Teh [Tue, 7 Dec 2010 00:43:47 +0000 (10:43 +1000)]
SynthDriver: Fix broken minStep for RateSetting, PitchSetting and InflectionSetting.
minStep was being passed as a positional argument, but it was in the wrong position.
James Teh [Mon, 6 Dec 2010 07:18:02 +0000 (17:18 +1000)]
Updated alvaBC6 driver:
* Use a callback instead of a polling timer to retrieve key presses. This requires an updated alvaw32.dll (version 3.0.4.1 or later).
* Rewrote key handling code to use InputGestures. It is now possible to map any of the display's keys.
* Map braille navigation scripts to appropriate gestures.
Note that display keys that previously emulated system keyboard keys haven't yet been mapped, nor have display keys which changed the braille cursor.
James Teh [Mon, 6 Dec 2010 06:53:44 +0000 (16:53 +1000)]
globalCommands: Add scripts for braille display navigation.
James Teh [Mon, 6 Dec 2010 05:42:11 +0000 (15:42 +1000)]
Remove old unused code.
James Teh [Mon, 6 Dec 2010 02:28:06 +0000 (12:28 +1000)]
BrailleDisplayGesture.identifiers property: Convert to lower case so that identifiers will be normalized.
James Teh [Mon, 6 Dec 2010 02:04:43 +0000 (12:04 +1000)]
Enable BrailleDisplayDrivers to provide a global gesture map using the gestureMap attribute.
James Teh [Mon, 6 Dec 2010 01:54:44 +0000 (11:54 +1000)]
braille: Add BrailleDisplayGesture base class.
James Teh [Mon, 6 Dec 2010 01:52:15 +0000 (11:52 +1000)]
inputCore: Import braille late to avoid circular import issues.
James Teh [Mon, 6 Dec 2010 01:51:16 +0000 (11:51 +1000)]
Remove unnecessary import which can cause nasty circular import issues.
Michael Curran [Sun, 5 Dec 2010 03:16:25 +0000 (13:16 +1000)]
Fix wrong announcing of MS Word 2003 and above spell check error field always as Grammar, and possibly Make error field work better in Word XP. Specific changes:
*NVDAObjects.IAccessible.MSOffice.SDM's SDMChild property: Do not force the name of the child to this SDM object's name if a special 'parentSDMCanOverrideName' variable is found to be false. If the variable doesn't exist at all its assumed to be true. This allows other classes to set this to False to stop the name being replaced by the SDM object.
*appModules.winword.SpellingErrorField: set parentSDMCanOverrideName to False, as the name of the SDM object is not useful as its always "grammar error" for some odd reason, plus this object needs to handle its name with a property getter.
*appModuels.winword.AppModule's chooseNVDAObjectOverlayClasses method: specifically try to support Word XP Spell Check error field, a part from matching correctly, this also entails removing the contentGenericClient class which would have given it use of displayModel, which isn't good for this field.
Fixes #883
Michael Curran [Sun, 5 Dec 2010 02:24:18 +0000 (12:24 +1000)]
Properly announce page break characters when speaking chunks of text such as lines, rather than just saying blank. Note that this is a rather worrying fix and we really should think of a better way to handle these non-blank exceptions in speakTextInfo (tabs were already checked for twice, now formFeeds -- page breaks are as well). Page breaks when moving by chracter were always being spoken, only larger chunks were broken. Fixes #758
Michael Curran [Sat, 4 Dec 2010 23:26:37 +0000 (09:26 +1000)]
IAccessibleHandler.processFocusWinEvent: Change the rule that filters out background focus events so that ather than the root window having to be the foreground winow, the event's window just hasto be in the foreground window, or equal to it. (This may fix a possible incorrect filtering of focus events where the foreground window was not actually the very top (root) window). Also add an extra check to the rule stating that the root window can not be the highest window in the z-order (if it were its very likely that its some form of menu). This particular check fixes the bug in AIM 7 where focus in menus was never reported. Fixes #655
James Teh [Fri, 3 Dec 2010 05:27:21 +0000 (15:27 +1000)]
Update documentation.
James Teh [Fri, 3 Dec 2010 04:06:33 +0000 (14:06 +1000)]
config: When executing a process with elevation, ensure that parameters containing spaces are quoted.
In particular, this is necessary for setSystemConfigToCurrentConfig, as the config path might contain spaces.
Fixes inability to set system config to current config when the username contains a space.
Note that execElevated() now takes params as a list.
Fixes #918.
Michael Curran [Thu, 2 Dec 2010 22:18:51 +0000 (08:18 +1000)]
MSHTML vbufBackend: if after rendering a node's children the buffer contains no useful text for that node, a part from MSAA accName and title, also try making a suitable name text from the href if it exists. This causes particular links that have no content at all and no title to now be rendered. Example: nav list on btopenworld.com. Fixes #633
Michael Curran [Thu, 2 Dec 2010 05:55:38 +0000 (15:55 +1000)]
Applied patch from ticket 954 (commands missing from the user guide). A few small language changes were made after applying. Fixes #954
Michael Curran [Thu, 2 Dec 2010 00:26:12 +0000 (10:26 +1000)]
Added feature to beep when typing lowercase characters while capslock is on. Code mostly taken from patch in ticket 663 with the following changes:
* config option name renamed from beepLowercaseLetters to beepForLowercaseWithCapslock.
* All code to do with checking if it should beep, and actually beeping, is now all in event_typedCharacters rather than some of it being in a function in speech -- its not really speech related code.
* Changed the type of the beep from 2000 hz 50 ms to 3000 hz 40 ms (to slightly distinguish it from the beep for uppercase letters).
* Only check the lower order bit on capslock's key state as this is the toggle bit. The patch was also checking the high order bit (-127) but this is only indicating if its currently pressed.
Michael Curran [Wed, 1 Dec 2010 01:53:40 +0000 (11:53 +1000)]
Merged synthLanguageSupport. For most synths this provides a read-only language property, which allows other code in NVDA to find out the language the synth is currently speaking in. It also standardizes support for setting and listing languages by adding needed types to synthDriverHandler. The addition of the language property will allow NVDA in future to improve its puncutation handling by using appropriate rules according to the synth's current language, rather than simply either a default set of rules or rules based on NVDA's interface language.
Michael Curran [Wed, 1 Dec 2010 01:13:09 +0000 (11:13 +1000)]
source readme: mention that Python's scripts directory must be added to the path variable in order for scons to be run from any location.
James Teh [Tue, 30 Nov 2010 06:47:26 +0000 (16:47 +1000)]
GlobalGestureMap: Add an update() method which adds multiple entries from a mapping. Also allow the constructor to take a mapping of initial entries.
Michael Curran [Tue, 30 Nov 2010 05:26:25 +0000 (15:26 +1000)]
inputCore: When in input help mode, and getting help for a particular gesture (e.g. when in input help mode and pressing a key), if that gesture is bound to a script, a part from speaking the script name and description, now the gesture's identifier, the script name, and the scripts location, are logged at info level. This provides some way of users finding out the specific location of a particular script, in orer to add an entry to gestures.ini.
Michael Curran [Tue, 30 Nov 2010 05:23:35 +0000 (15:23 +1000)]
scriptHandler: add a new getScriptLocation function, which takes a script, and returns its module.class location. A previous version of getScriptLocation used to exist, however this new one now searches the script's class mro until it finds where the script has really been implemented, rather than simply returning the class that the script was originally fetched from.
James Teh [Tue, 30 Nov 2010 03:34:36 +0000 (13:34 +1000)]
Code doc.
James Teh [Tue, 30 Nov 2010 03:18:32 +0000 (13:18 +1000)]
Update code doc.
James Teh [Tue, 30 Nov 2010 02:33:29 +0000 (12:33 +1000)]
Support for global plugins which can globally bind scripts, handle NVDAObject events and choose NVDAObject overlay classes. See globalPluginHandler.GlobalPlugin for details.
Note that there is no longer an _default app module. Global scripts should be added or overridden using global plugins.
App modules should instead subclass appModuleHandler.AppModule (the base AppModule class).
The scripts from the _default app module are now in the new globalCommands.GlobalCommands object.
Fixes #281.
James Teh [Tue, 30 Nov 2010 02:23:17 +0000 (12:23 +1000)]
Rename plugins to global plugins to make it clear that they have global effect. We may also want ot use the term plugin for other things later; e.g. renaming app modules to app plugins.
Michael Curran [Mon, 29 Nov 2010 23:20:34 +0000 (09:20 +1000)]
Only allow one settings dialog to be opened at a time. This is specifically useful for stopping the user from changing the synthesizer while the voice settings dialog is open. Fixes #603
James Teh [Mon, 29 Nov 2010 07:45:29 +0000 (17:45 +1000)]
nvdaHelper remote: IA2Support: Register IAccessibleTable2 and IAccessibleTableCell interfaces for cross-process marshalling.
James Teh [Mon, 29 Nov 2010 06:19:33 +0000 (16:19 +1000)]
Remove pointless code.
James Teh [Mon, 29 Nov 2010 03:51:09 +0000 (13:51 +1000)]
Update What's New.
James Teh [Mon, 29 Nov 2010 03:12:21 +0000 (13:12 +1000)]
Allow plugins to choose NVDAObject overlay classes by implementing a chooseNVDAObjectOverlayClasses method.
James Teh [Mon, 29 Nov 2010 03:09:09 +0000 (13:09 +1000)]
Code doc.
James Teh [Mon, 29 Nov 2010 02:45:08 +0000 (12:45 +1000)]
Dispatch NVDAObject events to all plugins.
As for app modules, plugin event functions are named event_eventName and take two arguments: the NVDAObject and a callable to call the next event handler.
James Teh [Mon, 29 Nov 2010 02:37:18 +0000 (12:37 +1000)]
eventHandler: Refactor event execution to make it possible for events to be executed in an arbitrary number of plugins.
Note that events aren't actually dispatched to plugins yet.
James Teh [Mon, 29 Nov 2010 00:50:57 +0000 (10:50 +1000)]
Allow plugins to bind scripts which are executed globally and take precedence over scripts in all other objects.
James Teh [Mon, 29 Nov 2010 00:50:49 +0000 (10:50 +1000)]
Fixes.
James Teh [Sun, 28 Nov 2010 23:56:30 +0000 (09:56 +1000)]
Add basic code to support plugins.
See the pluginHandler.Plugin class for details.
All plugins are imported and instantiated when NVDA is started and terminated on exit.
Scripts and events aren't yet delivered to plugins. This will be done in subsequent commits.
James Teh [Sun, 28 Nov 2010 22:29:31 +0000 (08:29 +1000)]
appModuleHandler.initialize(): Use appModules.__init__ instead of appModules._default when fetching the list of importers for the appModules package, as _default doesn't exist anymore. This actually makes no practical difference, but it's more correct. :)
James Teh [Fri, 26 Nov 2010 07:31:58 +0000 (17:31 +1000)]
Get rid of the default app module!
The scripts from the default app module have been moved into a separate globalCommands module, which is handled explicitly by scriptHandler.
This was done because these commands are not application specific, so it doesn't make sense for all app modules to inherit them.
It also prevents users from breaking NVDA completely due to a broken default app module in their user configuration.
App modules should now inherit from the base appModuleHandler.AppModule.
James Teh [Fri, 26 Nov 2010 04:58:43 +0000 (14:58 +1000)]
sconstruct: Add certPassword option to specify the password for the private key in the certificate.
Fixes #1221.
James Teh [Fri, 26 Nov 2010 04:02:01 +0000 (14:02 +1000)]
What's New: Add a "Changes for Developers" which documents changes concerning developers.
James Teh [Fri, 26 Nov 2010 03:52:30 +0000 (13:52 +1000)]
Add support for mapping gestures to scripts anywhere in NVDA.
Currently, there are two global gesture maps: the user map and the locale map.
This allows users and locale maintainers to add new bindings and override existing bindings in a single file.
See the inputCore.GlobalGestureMap class for details.
The user map is stored in gestures.ini in the NVDA configuration directory.
The locale map is stored in locale\LANG\gestures.ini, where LANG is the language code.
James Teh [Fri, 26 Nov 2010 03:50:25 +0000 (13:50 +1000)]
Update What's New.
James Teh [Fri, 26 Nov 2010 01:30:06 +0000 (11:30 +1000)]
Implement loading of the locale gesture map.
This is stored in locale\lang\gestures.ini, where lang is the language code.
Also add some extra logging.
James Teh [Fri, 26 Nov 2010 01:19:34 +0000 (11:19 +1000)]
Add support for mapping gestures to scripts anywhere in NVDA.
Currently, there are two global gesture maps: the user map and the locale map.
This allows users and locale maintainers to add new bindings and override existing bindings in a single file.
See the inputCore.GlobalGestureMap class for details.
The user map is stored in gestures.ini in the NVDA configuration directory.
Loading of the locale map is not yet implemented.
Peter Vágner [Thu, 25 Nov 2010 08:21:03 +0000 (09:21 +0100)]
Fixed hindi user guide so key commands are actually generated and the NVDA can be built.
Peter Vágner [Thu, 25 Nov 2010 07:11:58 +0000 (08:11 +0100)]
Added hindi language file and user guide,
Added serbian user guide,
Updated italian language file,
Updated slovak language file and changes.
James Teh [Thu, 25 Nov 2010 06:17:01 +0000 (16:17 +1000)]
App modules no longer have key map files!
Instead, all gesture bindings are done in the app module itself. This keeps everything together in the one place, removes the appModules folder in the NVDA binary distribution (which only contains kbd files) and removes one stage of gesture mapping (which will be necessary to simplify future enhancements).
Note that desktop and laptop bindings, as well as bindings common to both, can all be provided in the same gesture map now, which eliminates another reason for these key map files.
The most common way to bind gestures is to use a magic __gestures dict on the class. bindGesture() can also be used on the instance. See the code doc for baseObject.ScriptableObject for more details.
It's not currently possible for users to override the in-built bindings. This is coming in future.
James Teh [Wed, 24 Nov 2010 03:01:27 +0000 (13:01 +1000)]
Source readme clarifications:
* Change "root of the NVDA source distribution/checkout" to just "root of the NVDA source distribution" to avoid confusion of "/" as a directory separator.
* Document that certFile expects a file in pfx format which must include the private key.
Michael Curran [Wed, 24 Nov 2010 02:32:15 +0000 (12:32 +1000)]
Correct the description for the current navigator object script in both NVDA and the english user guide. Input help now mentions that twice spells the information, and the user guide now mentions that 3 times copies it to the clibpard. Fixes #938.
James Teh [Wed, 24 Nov 2010 01:38:02 +0000 (11:38 +1000)]
Merge main.
James Teh [Tue, 23 Nov 2010 03:11:49 +0000 (13:11 +1000)]
Merge main.
James Teh [Tue, 23 Nov 2010 02:23:17 +0000 (12:23 +1000)]
setup.py: Fetch all data files in the call to setup() now. We no longer run generate.py from setup.py, so there's no need to delay this.
Michael Curran [Mon, 22 Nov 2010 06:55:34 +0000 (16:55 +1000)]
Changed the behaviour of the review follows caret option, so that the review position will only move if the caret moves in the same object. Previously if the caret moved in any object, the review position would jump inside that object. Specific changes:
*NVDAObject.event_caret: only set the review position to the caret if the current navigator object is this object.
*VirtualBuffer._set_selection: rather than unconditionally setting the review position to the new caret position, instead only do this if the current navigator object is the root of this virtualBuffer.
*TreeInterceptor._set_passthrough: if passthrough is turning on, and the focus is currently inside this treeInterceptor, and the review follows focus option is on, set the navigator object to the focus.
*TreeInterceptor._set_selection: if passthrough is turning off, and the navigator object is inside this treeInterceptor, and the review follows caret option is turned on, set the navigator object to the root of this treeInterceptor.
James Teh [Mon, 22 Nov 2010 04:39:08 +0000 (14:39 +1000)]
Next release will be 2011.1.
James Teh [Mon, 22 Nov 2010 00:43:49 +0000 (10:43 +1000)]
sconstruct: Execute pygettext with the python executable, as not all systems will associate .py files with the interpreter.
James Teh [Mon, 22 Nov 2010 00:13:30 +0000 (10:13 +1000)]
Refactor the build process to allow anyone to prepare the source tree and create binary distributions, portable archives, installers, etc. with a simple command.
scons is used to facilitate this.
See the Building NVDA section of the source readme for details.
Notes:
* Of course, SCons is now required for anyone running from source.
* The nvdaHelper build process has now been incorporated into the new build process, so you do not need to run scons from source\NVDAHelper anymore.
* nvdaHelper builds will no longer be provided on the snapshots page. This means that the Windows SDK and several other dependencies are now required, as documented in the source readme.
* You should no longer run generate.py, setup.py or makensis directly. Instead, use scons as documented in the source readme.
* source\include and source\NVDAHelper have been moved out of the source directory.
James Teh [Fri, 19 Nov 2010 04:36:10 +0000 (14:36 +1000)]
sconstruct: Build the client archive relative to the extras\controllerClient directory.
James Teh [Fri, 19 Nov 2010 04:28:38 +0000 (14:28 +1000)]
sconstruct: pot no longer depends on sourceDir, as this depends on comInterfaces and nvdaHelper. Instead, just depend on *.py beneath sourceDir.
James Teh [Fri, 19 Nov 2010 01:34:19 +0000 (11:34 +1000)]
sconstruct: Rather than using normal scons mechanisms to create and remove _buildVersion.py*, do it as actions in the NVDADist builder. This is necessary because we want this to be removed immediately after NVDADist (not just when scons -c is run). Also, env.Clean() seems to make the file some sort of dependency, which causes problems for _buildVersion.pyc and _buildVersion.pyo which aren't scons targets.
Michael Curran [Thu, 18 Nov 2010 04:48:32 +0000 (14:48 +1000)]
Merged main
James Teh [Thu, 18 Nov 2010 00:31:12 +0000 (10:31 +1000)]
api.getReviewPosition(): Don't try to use a tree interceptor that isn't ready. Fixes exceptions when trying to use the review position in a document that hasn't finished loading yet.
James Teh [Wed, 17 Nov 2010 02:28:10 +0000 (12:28 +1000)]
Fix a bug where the "Use currently saved settings on the logon and other secure screens" button did not work if the systemConfig directory did not already exist, which is the case immediately after a clean install. Note that it did work after at least one secure screen appeared (as the directory gets created then).
Fixes #1194.
James Teh [Tue, 16 Nov 2010 06:08:07 +0000 (16:08 +1000)]
Hopefully fix exceptions when scripts are queued for objects in an app but the app closes before the scripts get executed.
Michael Curran [Tue, 16 Nov 2010 02:24:59 +0000 (12:24 +1000)]
Moved logLevel commandline option from NVDA's root sconstruct to nvdaHelper's, renaming it nvdaHelperLogLevel.
Michael Curran [Tue, 16 Nov 2010 02:17:50 +0000 (12:17 +1000)]
Added nvdaHelper/sconscript which for some reason was never added before, should have really be renamed from sconstruct.
James Teh [Tue, 16 Nov 2010 01:36:52 +0000 (11:36 +1000)]
Update bzr ignores.
James Teh [Tue, 16 Nov 2010 01:34:31 +0000 (11:34 +1000)]
Include nvdaHelper build dependencies in the source readme. Remove the separate nvdaHelper build instructions, as nvdaHelper is not built separately anymore.
Michael Curran [Mon, 15 Nov 2010 06:39:26 +0000 (16:39 +1000)]
nvda's root sconstruct: when cleaning _buildVersion.py, also get rid of its .pyc and .pyo files as well.
Michael Curran [Mon, 15 Nov 2010 06:28:44 +0000 (16:28 +1000)]
Integrate generation of comTypes COM interfaces in to scons:
*Rename source/generate.py to source/generateComInterfaces.py, as that is all this file does now.
*NVDA's root sconstruct: generate comtypes COM interfaces in source/comInterfaces with the help of generateComInterfaces.py.
*source/setup.py: no longer call generate.py.
Michael Curran [Mon, 15 Nov 2010 05:17:02 +0000 (15:17 +1000)]
nvda root sconstruct: the release commandline option now only controls filenames and whether NVDA's Python will run optimized, it does not affect nvdaHelper. There is now a new scons commandline option called nvdaHelperDebug. If you set this to 1, then vdaHelper will be built with asertions enabled, debug symbols, it will use debug libraries, and it will not be optimized.
Michael Curran [Mon, 15 Nov 2010 04:17:12 +0000 (14:17 +1000)]
the output dir can now be specifically set on the commandline with outputDir=<dir>
Michael Curran [Mon, 15 Nov 2010 04:07:47 +0000 (14:07 +1000)]
gettext scons tool: import msgfmt and use it that way, rather than spauning a separate Python process each time its used. However to do this msgfmt.MESSAGES must be cleared after each use, and NVDA's root sconstruct must alert scons that the gettextMoFile builder can not be run in parallel.
Michael Curran [Mon, 15 Nov 2010 03:46:20 +0000 (13:46 +1000)]
as txt2tags can not be run in parallel, make sure scons doesn't try, by making all the txt2tags target nodes share a fake side effect.
Michael Curran [Mon, 15 Nov 2010 00:15:58 +0000 (10:15 +1000)]
Generate all archives and the pot etc in a directory called output to stop cluttering NVDA's root directory, and also to make it easier for an automatic snapshot builder to collect up all created files. Also add a 'changes' target which copies user_docs/en/changes.html to the putput directory as nvda_version_changes.html.
Michael Curran [Sun, 14 Nov 2010 22:31:46 +0000 (08:31 +1000)]
Move generation of html documentation from t2t files (including keyCommands) from source/generate.py and into scons:
*Add a t2t scons tool in which provides a builder called txt2tags which converts a given t2t source file in to an html file. Note that the real txt2tags module must be able to be imported by scons, so it either needs to be in Python's site-packages, or in nvda's root directory (not in source).
*Move keyCommandsDoc.py from source in to nvda's root directory.
*keyCommandsDoc: the maker now takes an output filename, not just an input file name.
*keyCommandsDoc: the maker now generates the output in a temporary file (for now the output filename with two underscores after) and then if successfull renames to the appropriate name. The documentation for this function stated that the file was only generated if successfull, which was not the case.
*Ad a keyCommandsDoc tool function to nvda's root sconstruct which provides a builder called keyCommandsDoc which generates a keyCommands t2t from a given userGuide t2t.
*NVDA's root sconstruct: keyCommands.t2t files will be built from all userGuide.t2t files in user_docs, excluding languages that are in a special keyCommandsLangBlacklist (this is currently cs and ja). The blacklisted languages do not have the newer format for their user guide.
*NVDA's root sconstruct: build html files from all t2t files in user_docs, including any keyCommands.t2t files.
*source/generate.py: remove now redundant code that generated keyCommands t2t files and converted t2t files to html files.
Peter Vágner [Sun, 14 Nov 2010 18:09:47 +0000 (19:09 +0100)]
Updated spanish language file,
updated galician language file,
updated danish language file,
Updated polish language file,
Added serbian language file by Dejan Zubovic.
Michael Curran [Sat, 13 Nov 2010 10:01:39 +0000 (20:01 +1000)]
gettext scons tool: execute msgfmt each time in a separate python process, as if scons was building multiple files in parallel msgfmt would produce bad results as there is state kept at module level.
Michael Curran [Sat, 13 Nov 2010 07:56:19 +0000 (17:56 +1000)]
Move gettext mo file generation out of source/generate.py and in to scons:
*Added a gettext scons tool to site_scons/site_tools. This tool provides a gettextMoFile builder, which takes a gettext template file (.po) and compiles it using msgfmt to a .mo.
*NVDA root sconstruct: cause all of NVDA's po files to be compiled to mo files if source is being built.
*Removed locale compilation code from source/generate.py as its now redundant.
Aleksey Sadovoy [Sat, 13 Nov 2010 03:04:32 +0000 (05:04 +0200)]
Newfon synthDriver: fix syntax errors and missing imports.
Use StringInfo instead of VoiceInfo for accel setting (because accelleration isn't a voice-like setting, particularly, it doesn't have language.)
SynthDriverHandler: add missing import
Michael Curran [Fri, 12 Nov 2010 05:29:57 +0000 (15:29 +1000)]
Integrate the building of nvdaHelper into NVDA's scons files:
*NVDA's new root sconstruct: declare and export clientDir, sourceLibDir and sourceLibDir64 variables, which can be used by nvdaHelper and client etc.
* Move source/include to include (at NVDA's root). also change all mentions of the path '#../include' to '#/include' in nvdaHelper's sconscript files.
* Move contents of nvdaHelper's site_scons to NVDA's root site_scons
*Move the nvdaHelper dir out of source and in to the root of NVDA.
* Rename nvdaHelper's sconstruct file to sconscript
* nvdaHelper's archBuild_sconscript: Remove the 'install' target, and at the same time no longer collect built targets to make them be required by the install target.
* NVDAHelper's sconscript (previously sconstruct): no longer create a base environment from which to clone the arch-specific environments, instead Import the environment called 'env' and clone from that.
*nvdaHelper's sconscript: import clientDir, sourceLibDir and sourceLibDir64, and pass arch-specific variants of these to archBuild_sconscript.
*nvdaHelper's archBuild_ssconscript: do not hardcode libInstallDir and clientInstallDir, instead import them (given by nvdaHelper's sconscript).
* Remove pointless print statements from NVDAHelper scons files
* Move the commandline variable declarations (such as targetArchitectures and logLevel) from nvdaHelper's archBuild_sconscript and in to NVDA's new root sconstruct.
* rename the 'isRelease' commandline variable in NVDA's new root sconstruct to 'release' to be compatible with nvdaHelper -- it uses it in quite a few places.
*NVDAHelper's remote, client and local sconscript files: change all mentions of the path '#interfaces' to '../interfaces' (we can no longer really use # as its now at NVDA's root.
*nvdaHelper's remote/apiHooks.cpp: explicitly include nvdaControllerInternal.h above common/log.h as for some reason now scons is failing to scan more than one level deep for implicit dependencies -- all other files including log.h already did this.
*NVDA's new root sconstruct: no longer build an nvdaHelper archive (its no longer needed)
*NVDA's new root sconstruct: there is now a target called 'client' which will build the nvda controller client archive.
Further notes:
*As dist (portable, installer etc) depends on source, any nvdaHelper related libs / EXEs that should be in source will automatically get built when needed.
*controller client will no longer get built just because the rest of nvdaHelper is built, unless you specifically tell scons to build the 'client' target.
Michael Curran [Thu, 11 Nov 2010 05:25:25 +0000 (15:25 +1000)]
nvdaHelper displayModel interface implementation of getWindowTextInRect: when collecting text from descendant windows, ignore windows that are invisible according to IsWindowVisible. This among other things stops text from other tabs bleeding through when reviewing a particular propertysheet in a multitabbed dialog (e.g. file / folder properties in Windows explorer).
James Teh [Wed, 10 Nov 2010 18:41:35 +0000 (04:41 +1000)]
Unneeded import.
James Teh [Wed, 10 Nov 2010 18:36:58 +0000 (04:36 +1000)]
Woops. Not called Tera Term Pro anymore.
James Teh [Wed, 10 Nov 2010 18:23:42 +0000 (04:23 +1000)]
Support for automatically reporting new text when it appears on the screen!
To avoid lag and spam, this must be enabled for individual controls using the LiveText and Terminal NVDAObject behaviors and the DisplayModelLiveText overlay class.
Specific support for mIRC, PuTTY, Tera Term Pro and SecureCRT has been included so far.
See those app modules for examples on how to do this for other applications.
Windows text consoles now use this new LiveText/Terminal behavior, which means they use the same monitoring code. This code is similar to the previous code in winConsoleHandler, but has been simplified and improved somewhat.
James Teh [Wed, 10 Nov 2010 18:16:02 +0000 (04:16 +1000)]
Update What's New.
James Teh [Wed, 10 Nov 2010 18:07:22 +0000 (04:07 +1000)]
Window NVDAObject: redraw(): RedrawWindow() takes client coordinates, not screen coordinates, so convert them first. Fixes failure to redraw some objects.
James Teh [Wed, 10 Nov 2010 17:02:57 +0000 (03:02 +1000)]
Remove unused stuff.
James Teh [Wed, 10 Nov 2010 16:53:00 +0000 (02:53 +1000)]
speech: Don't use globalVars.keyCounter to determine when to kill the speak spelling generator, as keyCounter is currently not set and this is a pretty dodgy way of doing this. Instead, cancel the speak spelling generator (if any) when cancelSpeech is called. Fixes spelling continuing later after being interrupted.
Fixes #1188.
James Teh [Wed, 10 Nov 2010 11:45:59 +0000 (21:45 +1000)]
Add code doc.
James Teh [Wed, 10 Nov 2010 11:31:31 +0000 (21:31 +1000)]
LiveText behavior: Minor fixes:
* Clear the event in startMonitoring() just in case it was left set when monitoring previously.
* If there is a stabilise delay, check if monitoring was stopped while waiting. This is unlikely but possible.
James Teh [Wed, 10 Nov 2010 06:12:24 +0000 (16:12 +1000)]
App module for SecureCRT which reads incoming text automatically.