commit/eMule: 2 new changesets

  • From: commits-noreply@xxxxxxxxxxxxx
  • To: nvda-addons-commits@xxxxxxxxxxxxx
  • Date: Sat, 16 Nov 2019 19:04:19 +0000 (UTC)

2 new commits in eMule:

https://bitbucket.org/nvdaaddonteam/emule/commits/2fef83afe423/
Changeset:   2fef83afe423
Branch:      None
User:        norrumar
Date:        2019-11-16 19:02:05+00:00
Summary:     Version 4.0, for NVDA 2019.3 or  later

Affected #:  4 files

diff --git a/addon/appModules/emule.py b/addon/appModules/emule.py
index 2b94b23..9d47f69 100644
--- a/addon/appModules/emule.py
+++ b/addon/appModules/emule.py
@@ -1,57 +1,54 @@
 # -*- coding: UTF-8 -*-
 # eMule app module
-#Copyright (C) 2012-2018 Noelia Ruiz Martínez, Alberto Buffolino
+#Copyright (C) 2012-2019 Noelia Ruiz Martínez, Alberto Buffolino
 # Released under GPL 2
 
 import appModuleHandler
 import addonHandler
 import eventHandler
-import os
 import api
 import ui
 import speech
 import oleacc
 import winUser
 import windowUtils
-import wx
-import gui
-import textInfos
 import controlTypes
 import NVDAObjects.IAccessible
-from NVDAObjects.IAccessible import IAccessible
-from NVDAObjects.IAccessible.sysListView32 import List
-from ctypes import * # for c_int
 from NVDAObjects.behaviors import RowWithFakeNavigation
 from cursorManager import CursorManager
 from NVDAObjects.window.edit import EditTextInfo
+from scriptHandler import script
 
 addonHandler.initTranslation()
 
 class EmuleRowWithFakeNavigation(RowWithFakeNavigation):
 
-       scriptCategory = 
unicode(addonHandler.getCodeAddon().manifest["summary"])
+       scriptCategory = addonHandler.getCodeAddon().manifest["summary"]
 
        def initOverlayClass(self):
                modifiers = ("control", "shift")
-               for n in xrange(10):
+               for n in range(10):
                        for modifier in modifiers:
                                gesture = 
"kb:NVDA+{mod}+{num}".format(mod=modifier, num=n)
                                self.bindGesture(gesture, "readColumn")
                self.bindGesture("kb:NVDA+shift+c", "copyColumn")
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Reads the specified column for the current list 
item.")
+       )
        def script_readColumn(self, gesture):
-               try:
-                       col = int(gesture.keyName[-1])
-               except AttributeError:
-                       col = int(gesture.mainKeyName[-1])
+               col = int(gesture.mainKeyName[-1])
                if col == 0:
                        col += 10
                if "shift" in gesture.modifierNames:
                        col += 10
                self._moveToColumnNumber(col)
-       # Translators: Message presented in input help mode.
-       script_readColumn.__doc__ = _("Reads the specified column for the 
current list item.")
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Copies the last read column of the selected list 
item to clipboard.")
+       )
        def script_copyColumn(self, gesture):
                try:
                        col = api.getNavigatorObject().columnNumber
@@ -66,17 +63,6 @@ class EmuleRowWithFakeNavigation(RowWithFakeNavigation):
                if api.copyToClip(column):
                        # Translators: Message presented when the current 
column of the list item is copied to clipboard.
                        ui.message(_("%s copied to clipboard") % column)
-       # Translators: Message presented in input help mode.
-       script_copyColumn.__doc__ = _("Copies the last read column of the 
selected list item to clipboard.")
-
-class FixedList(List):
-
-       def _get__columnOrderArray(self):
-               limit=super(FixedList, self).columnCount
-               myCoa = (c_int *limit)()
-               for n in range(0, limit):
-                       myCoa[n] = n
-               return myCoa
 
 class RichEditCursorManager(CursorManager):
 
@@ -86,20 +72,19 @@ class RichEditCursorManager(CursorManager):
 
 class AppModule(appModuleHandler.AppModule):
 
-       scriptCategory = 
unicode(addonHandler.getCodeAddon().manifest["summary"])
+       scriptCategory = addonHandler.getCodeAddon().manifest["summary"]
 
        def chooseNVDAObjectOverlayClasses(self, obj, clsList):
                if obj.role == controlTypes.ROLE_LISTITEM:
                        clsList.insert(0, EmuleRowWithFakeNavigation)
-               elif obj.role==controlTypes.ROLE_LIST:
-                       clsList.insert(0, FixedList)
                elif obj.windowClassName == "RichEdit20W":
                        clsList.insert(0, RichEditCursorManager)
+                       
        def getToolBar(self):
                try:
                        obj = NVDAObjects.IAccessible.getNVDAObjectFromEvent(
-                       
windowUtils.findDescendantWindow(api.getForegroundObject().windowHandle, 
visible=True, controlID=16127),
-                       winUser.OBJID_CLIENT, 0)
+                               
windowUtils.findDescendantWindow(api.getForegroundObject().windowHandle, 
visible=True, controlID=16127
+                       ), winUser.OBJID_CLIENT, 0)
                except LookupError:
                        return None
                return obj
@@ -115,25 +100,31 @@ class AppModule(appModuleHandler.AppModule):
 
        def getName(self):
                where = self.getWhere()
-               if where:
+               if where is not None:
                        return where.name
 
        def getHeader(self):
                obj=api.getFocusObject()
-               if not (obj and obj.windowClassName == 'SysListView32' and 
obj.IAccessibleRole==oleacc.ROLE_SYSTEM_LISTITEM): return
+               if not (obj and obj.windowClassName == 'SysListView32' and 
obj.IAccessibleRole==oleacc.ROLE_SYSTEM_LISTITEM):
+                       return
                obj=obj.parent
-               location=obj.location
-               if location and (len(location)==4):
-                       (left,top,width,height)=location
+               try:
+                       (left,top,width,height) = obj.location
                        
obj=NVDAObjects.IAccessible.getNVDAObjectFromPoint(left, top)
                        return obj
-               return None
+               except:
+                       return None
 
        def statusBarObj(self, pos):
                statusBar = api.getStatusBar()
                if statusBar:
                        return statusBar.getChild(pos).name
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Moves the system focus and mouse to the main 
Tool Bar."),
+               gesture="kb:control+shift+h"
+       )
        def script_toolBar(self, gesture):
                obj = self.getToolBar()
                if obj is not None:
@@ -143,23 +134,29 @@ class AppModule(appModuleHandler.AppModule):
                        if not controlTypes.STATE_FOCUSED in obj.states:
                                obj.setFocus()
                        eventHandler.queueEvent("gainFocus", obj)
-       # Translators: Message presented in input help mode
-       script_toolBar.__doc__=_("Moves the system focus and mouse to the main 
Tool Bar.")
 
+       @script(
+               # Translators: Message presented in input help mode.
+               # For instance: reads the search window, Statistics, IRC, etc.
+               description=_("Reports the current window."),
+               gesture="kb:control+shift+t"
+       )
        def script_where(self, gesture):
                name = self.getName()
                if name is None:
                        return
                ui.message("%s" % name)
-       # Translators: Message presented in input help mode.
-       # For instance: reads the search window, Statistics, IRC, etc.
-       script_where.__doc__=_("Reports the current window.")
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Moves the system focus to the Name field of the 
Search window."),
+               gesture="kb:control+shift+n"
+       )
        def script_name(self, gesture):
                try:
                        obj = NVDAObjects.IAccessible.getNVDAObjectFromEvent(
-                       
windowUtils.findDescendantWindow(api.getForegroundObject().windowHandle, 
visible=True, controlID=2183),
-                       winUser.OBJID_CLIENT, 0)
+                               
windowUtils.findDescendantWindow(api.getForegroundObject().windowHandle, 
visible=True, controlID=2183
+                       ), winUser.OBJID_CLIENT, 0)
                except LookupError:
                        return
                if obj != api.getFocusObject():
@@ -167,17 +164,20 @@ class AppModule(appModuleHandler.AppModule):
                        api.setMouseObject(obj)
                        
winUser.mouse_event(winUser.MOUSEEVENTF_LEFTDOWN,0,0,None,None)
                        
winUser.mouse_event(winUser.MOUSEEVENTF_LEFTUP,0,0,None,None)
-       # Translators: Message presented in input help mode.
-       script_name.__doc__=_("Moves the system focus to the Name field of the 
Search window.")
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Moves the system focus and mouse to the search 
parameters list or Edit field for each option, in the Search window."),
+               gesture="kb:control+shift+p"
+       )
        def script_searchList(self, gesture):
                where = self.getWhere()
                if not hasattr(where, "IAccessibleChildID") or 
where.IAccessibleChildID != 6:
                        return
                try:
                        obj = NVDAObjects.IAccessible.getNVDAObjectFromEvent(
-                       
windowUtils.findDescendantWindow(api.getForegroundObject().windowHandle, 
controlID=2833),
-                       winUser.OBJID_CLIENT, 0)
+                               
windowUtils.findDescendantWindow(api.getForegroundObject().windowHandle, 
controlID=2833
+                       ), winUser.OBJID_CLIENT, 0)
                except LookupError:
                        return
                if obj != api.getFocusObject():
@@ -185,14 +185,17 @@ class AppModule(appModuleHandler.AppModule):
                        api.setMouseObject(obj)
                        
winUser.mouse_event(winUser.MOUSEEVENTF_LEFTDOWN,0,0,None,None)
                        
winUser.mouse_event(winUser.MOUSEEVENTF_LEFTUP,0,0,None,None)
-       # Translators: Message presented in input help mode.
-       script_searchList.__doc__=_("Moves the system focus and mouse to the 
search parameters list or Edit field for each option, in the Search window.")
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Moves the system focus to the first list in the 
current window. For example the results list in the Search window, downloads in 
Transfer, etc."),
+               gesture="kb:control+shift+b"
+       )
        def script_list(self, gesture):
                try:
                        obj = NVDAObjects.IAccessible.getNVDAObjectFromEvent(
-                       
windowUtils.findDescendantWindow(api.getForegroundObject().windowHandle, 
visible=True, className="SysListView32"),
-                       winUser.OBJID_CLIENT, 0)
+                               
windowUtils.findDescendantWindow(api.getForegroundObject().windowHandle, 
visible=True, className="SysListView32"
+                       ), winUser.OBJID_CLIENT, 0)
                except LookupError:
                        return
                if obj != api.getFocusObject():
@@ -200,9 +203,12 @@ class AppModule(appModuleHandler.AppModule):
                        api.setMouseObject(obj)
                        
winUser.mouse_event(winUser.MOUSEEVENTF_LEFTDOWN,0,0,None,None)
                        
winUser.mouse_event(winUser.MOUSEEVENTF_LEFTUP,0,0,None,None)
-       # Translators: Message presented in input help mode.
-       script_list.__doc__=_("Moves the system focus to the first list in the 
current window. For example the results list in the Search window, downloads in 
Transfer, etc.")
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Moves the system focus to read-only edit boxes 
in the current window. For example the IRC received messages."),
+               gesture="kb:control+shift+o"
+       )
        def script_readOnlyEdit(self, gesture):
                where = self.getWhere()
                if hasattr(where, "IAccessibleChildID") and 
where.IAccessibleChildID == 9:
@@ -211,8 +217,8 @@ class AppModule(appModuleHandler.AppModule):
                        cID = None
                try:
                        obj = NVDAObjects.IAccessible.getNVDAObjectFromEvent(
-                       
windowUtils.findDescendantWindow(api.getForegroundObject().windowHandle, 
visible=True, className="RichEdit20W", controlID=cID),
-                       winUser.OBJID_CLIENT, 0)
+                               
windowUtils.findDescendantWindow(api.getForegroundObject().windowHandle, 
visible=True, className="RichEdit20W", controlID=cID
+                       ), winUser.OBJID_CLIENT, 0)
                except LookupError:
                        return
                if obj != api.getFocusObject():
@@ -220,9 +226,12 @@ class AppModule(appModuleHandler.AppModule):
                        api.setMouseObject(obj)
                        
winUser.mouse_event(winUser.MOUSEEVENTF_LEFTDOWN,0,0,None,None)
                        
winUser.mouse_event(winUser.MOUSEEVENTF_LEFTUP,0,0,None,None)
-       # Translators: Message presented in input help mode.
-       script_readOnlyEdit.__doc__=_("Moves the system focus to read-only edit 
boxes in the current window. For example the IRC received messages.")
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Moves the navigator object and mouse to the 
current list headers."),
+               gesture="kb:control+shift+l"
+       )
        def script_header(self, gesture):
                obj = self.getHeader()
                if obj is None:
@@ -231,47 +240,39 @@ class AppModule(appModuleHandler.AppModule):
                api.moveMouseToNVDAObject(obj)
                api.setMouseObject(obj)
                speech.speakObject(obj)
-       # Translators: Message presented in input help mode.
-       script_header.__doc__=_("Moves the navigator object and mouse to the 
current list headers.")
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Reports first object of the Status Bar."),
+               gesture="kb:control+shift+q"
+       )
        def script_statusBarFirstChild(self, gesture):
-               if self.statusBarObj(0) is None:
-                       return
-               ui.message(self.statusBarObj(0))
-       # Translators: Message presented in input help mode.
-       script_statusBarFirstChild.__doc__=_("Reports first object of the 
Status Bar.")
+               if self.statusBarObj(0) is not None:
+                       ui.message(self.statusBarObj(0))
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Reports second object of the Status Bar."),
+               gesture="kb:control+shift+w"
+       )
        def script_statusBarSecondChild(self, gesture):
-               if self.statusBarObj(1) is None:
-                       return
-               ui.message(self.statusBarObj(1))
-       # Translators: Message presented in input help mode.
-       script_statusBarSecondChild.__doc__=_("Reports second object of the 
Status Bar.")
+               if self.statusBarObj(1) is not None:
+                       ui.message(self.statusBarObj(1))
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Reports third object of the Status Bar."),
+               gesture="kb:control+shift+e"
+       )
        def script_statusBarThirdChild(self, gesture):
-               if self.statusBarObj(2) is None:
-                       return
-               ui.message(self.statusBarObj(2))
-       # Translators: Message presented in input help mode.
-       script_statusBarThirdChild.__doc__=_("Reports third object of the 
Status Bar.")
+               if self.statusBarObj(2) is not None:
+                       ui.message(self.statusBarObj(2))
 
+       @script(
+               # Translators: Message presented in input help mode.
+               description=_("Reports fourth object of the Status Bar."),
+               gesture="kb:control+shift+r"
+       )
        def script_statusBarForthChild(self, gesture):
-               if self.statusBarObj(3) is None:
-                       return
-               ui.message(self.statusBarObj(3))
-       # Translators: Message presented in input help mode.
-       script_statusBarForthChild.__doc__=_("Reports fourth object of the 
Status Bar.")
-
-       __gestures = {
-               "kb:control+shift+h": "toolBar",
-               "kb:control+shift+t": "where",
-               "kb:control+shift+n": "name",
-               "kb:control+shift+p": "searchList",
-               "kb:control+shift+b": "list",
-               "kb:control+shift+o": "readOnlyEdit",
-               "kb:control+shift+l": "header",
-               "kb:control+shift+q": "statusBarFirstChild",
-               "kb:control+shift+w": "statusBarSecondChild",
-               "kb:control+shift+e": "statusBarThirdChild",
-               "kb:control+shift+r": "statusBarForthChild",
-       }
+               if self.statusBarObj(3) is not None:
+                       ui.message(self.statusBarObj(3))

diff --git a/buildVars.py b/buildVars.py
index 863f901..bfe2867 100644
--- a/buildVars.py
+++ b/buildVars.py
@@ -22,7 +22,7 @@ eMule is a P2P program to search and share files.
 You can get more information about eMule at
 http://www.emule-project.net""";),
        # version
-       "addon_version" : "3.21",
+       "addon_version" : "4.0-dev",
        # Author(s)
        "addon_author" : u"Noelia <nrm1977@xxxxxxxxx>, Chris 
<llajta2012@xxxxxxxxx>, Alberto <a.buffolino@xxxxxxxxx>",
        # URL for the add-on documentation support
@@ -30,9 +30,9 @@ http://www.emule-project.net""";),
        # Documentation file name
        "addon_docFileName" : "readme.html",
        # Minimum NVDA version supported (e.g. "2018.3")
-       "addon_minimumNVDAVersion" : "2017.3.0",
+       "addon_minimumNVDAVersion" : "2019.3",
        # Last NVDA version supported/tested (e.g. "2018.4", ideally more 
recent than minimum version)
-       "addon_lastTestedNVDAVersion" : "2019.2.0",
+       "addon_lastTestedNVDAVersion" : "2019.3",
        # Add-on update channel (default is stable or None)
        "addon_updateChannel" : None,
 }

diff --git a/readme.md b/readme.md
index bb21ef3..c90fa5d 100644
--- a/readme.md
+++ b/readme.md
@@ -1,9 +1,10 @@
 # eMule #
 
 *      Authors: Noelia, Chris, Alberto.
-*      NVDA compatibility: 2017.3 to 2019.2
+*      NVDA compatibility: 2019.3 or later
 *      download [stable version][1]
 *      download [development version][3]
+*      download [version compatible with NVDA 2017.3][4]
 
 This add-on helps to improve accessibility of eMule with nVDA.
 It also provides additional keyboard commands for moving in different windows 
and gives Useful information about eMule.
@@ -36,6 +37,9 @@ In this Add-on the following key commands are also available:
 *      nvda+shift+1-0: Reads columns 11 to 20. 
 *      nvda+shift+C: Copies the contents of the last read column to the 
clipboard.
 
+## Changes for 4.0 ##
+*      Reqires NVDA 2019.3 or later.
+
 ## Changes for 3.0 ##
 *       To search text in the readonly edit boxes,  the find dialog  can be 
used, such as nvda+control+f to activate the find dialog.
 
@@ -61,3 +65,4 @@ In this Add-on the following key commands are also available:
 
 [3]: http://addons.nvda-project.org/files/get.php?file=em-dev
 
+[4]: http://addons.nvda-project.org/files/get.php?file=em-o

diff --git a/sconstruct b/sconstruct
index d1e3c76..e890d97 100644
--- a/sconstruct
+++ b/sconstruct
@@ -3,7 +3,6 @@
 #This file is covered by the GNU General Public License.
 #See the file COPYING.txt for more details.
 
-import codecs
 import gettext
 import os
 import os.path
@@ -19,7 +18,7 @@ def md2html(source, dest):
        lang = os.path.basename(os.path.dirname(source)).replace('_', '-')
        localeLang = os.path.basename(os.path.dirname(source))
        try:
-               _ = gettext.translation("nvda", localedir=os.path.join("addon", 
"locale"), languages=[localeLang]).ugettext if sys.version_info.major == 2 else 
gettext.translation("nvda", localedir=os.path.join("addon", "locale"), 
languages=[localeLang]).gettext
+               _ = gettext.translation("nvda", localedir=os.path.join("addon", 
"locale"), languages=[localeLang]).gettext
                title=u"{0}".format(_(buildVars.addon_info["addon_summary"]))
        except:
                title="{0}".format(buildVars.addon_info["addon_summary"]) 
@@ -27,20 +26,18 @@ def md2html(source, dest):
                "[[!meta title=\"": "# ",
                "\"]]": " #",
        }
-       with codecs.open(source, "r", "utf-8") as f:
+       with open(source, 'r', encoding="utf-8") as f:
                mdText = f.read()
-               headerList = headerDic.iteritems () if sys.version_info.major 
== 2 else list(headerDic.items())
-               for k, v in headerList:
+               for k, v in headerDic.items():
                        mdText = mdText.replace(k, v, 1)
                htmlText = markdown.markdown(mdText)
-       with codecs.open(dest, "w", "utf-8") as f:
-               f.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-                       "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 
Strict//EN\"\n" +
-                       "    
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\";>\n" +
-                       "<html xmlns=\"http://www.w3.org/1999/xhtml\" ;
xml:lang=\"%s\" lang=\"%s\">\n" % (lang, lang) +
+       with open(dest, 'w', encoding="utf-8") as f:
+               f.write("<!DOCTYPE html>\n" +
+                       "<html lang=\"%s\">\n" % lang +
                        "<head>\n" +
-                       "<meta http-equiv=\"Content-Type\" content=\"text/html; 
charset=UTF-8\"/>\n" +
-                       "<link rel=\"stylesheet\" type=\"text/css\" 
href=\"../style.css\" media=\"screen\"/>\n" +
+                       "<meta charset=\"UTF-8\">\n" +
+                       "<meta name=\"viewport\" content=\"width=device-width, 
initial-scale=1.0\">\n" +
+                       "<link rel=\"stylesheet\" type=\"text/css\" 
href=\"../style.css\" media=\"screen\">\n" +
                        "<title>%s</title>\n" % title +
                        "</head>\n<body>\n"
                )
@@ -109,21 +106,27 @@ def createAddonBundleFromPath(path, dest):
        return dest
 
 def generateManifest(source, dest):
-       with codecs.open(source, "r", "utf-8") as f:
+       with open(source, 'r', encoding="utf-8") as f:
                manifest_template = f.read()
        manifest = manifest_template.format(**buildVars.addon_info)
-       with codecs.open(dest, "w", "utf-8") as f:
+       with open(dest, 'w', encoding="utf-8") as f:
                f.write(manifest)
 
 def generateTranslatedManifest(source, language, out):
-       _ = gettext.translation("nvda", localedir=os.path.join("addon", 
"locale"), languages=[language]).ugettext if sys.version_info.major == 2 else 
gettext.translation("nvda", localedir=os.path.join("addon", "locale"), 
languages=[language]).gettext
+       _ = gettext.translation("nvda", localedir=os.path.join("addon", 
"locale"), languages=[language]).gettext
        vars = {}
        for var in ("addon_summary", "addon_description"):
-               vars[var] = _(buildVars.addon_info[var])
-       with codecs.open(source, "r", "utf-8") as f:
+               if isinstance(buildVars.addon_info[var], str):
+                       vars[var] = _(buildVars.addon_info[var])
+               elif isinstance(buildVars.addon_info[var], list):
+                       vars[var] = ''.join([_(l) for l in 
buildVars.addon_info[var]])
+               else:
+                       raise TypeError("Error with %s key in buildVars" % var)
+
+       with open(source, 'r', encoding="utf-8") as f:
                manifest_template = f.read()
        result = manifest_template.format(**vars)
-       with codecs.open(out, "w", "utf-8") as f:
+       with open(out, 'w', encoding="utf-8") as f:
                f.write(result)
 
 def expandGlobs(files):
@@ -167,10 +170,10 @@ for dir in langDirs:
        translatedManifest = 
env.NVDATranslatedManifest(dir.File("manifest.ini"), [moFile, 
os.path.join("manifest-translated.ini.tpl")])
        env.Depends(translatedManifest, ["buildVars.py"])
        env.Depends(addon, [translatedManifest, moFile])
-       #Convert markdown files to html
-       for mdFile in env.Glob(os.path.join('addon', 'doc', '*', '*.md')):
-               htmlFile = env.markdown(mdFile)
-               env.Depends(htmlFile, [mdFile, moFile])
-               env.Depends(addon, htmlFile)
+#Convert markdown files to html
+for mdFile in env.Glob(os.path.join('addon', 'doc', '*', '*.md')):
+       htmlFile = env.markdown(mdFile)
+       env.Depends(htmlFile, mdFile)
+       env.Depends(addon, htmlFile)
 env.Default(addon)
 env.Clean (addon, ['.sconsign.dblite', 'addon/doc/en/'])


https://bitbucket.org/nvdaaddonteam/emule/commits/1abb645b710b/
Changeset:   1abb645b710b
Branch:      2019.3
User:        norrumar
Date:        2019-11-16 19:03:29+00:00
Summary:     Merge branch 'stable' into 2019.3

Affected #:  22 files

diff --git a/addon/doc/ar/readme.md b/addon/doc/ar/readme.md
index 405ee45..4921820 100644
--- a/addon/doc/ar/readme.md
+++ b/addon/doc/ar/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      مطورو الإضافة: Noelia, Chris, Alberto
-*      NVDA compatibility: 2017.3 to 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      تحميل [الإصدار النهائي][1]
 *      تحميل [الإصدار التجريبي][3]
 

diff --git a/addon/doc/bg/readme.md b/addon/doc/bg/readme.md
index 88554bd..987d4c7 100644
--- a/addon/doc/bg/readme.md
+++ b/addon/doc/bg/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Автори: Noelia, Chris, Alberto.
-*      Съвместимост с NVDA: от 2017.3 до 2019.1
+*      Съвместимост с NVDA: от 2017.3 до 2019.2
 *      Изтегляне на [стабилна версия][1]
 *      Изтегляне на [тестова версия][3]
 

diff --git a/addon/doc/da/readme.md b/addon/doc/da/readme.md
index d8ef3db..3b2a7a6 100644
--- a/addon/doc/da/readme.md
+++ b/addon/doc/da/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Forfattere: Noelia, Chris, Alberto.
-*      NVDA-kompatibilitet: 2017.3 til 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      download [stabil version][1]
 *      download [udviklingsversion][3]
 

diff --git a/addon/doc/de/readme.md b/addon/doc/de/readme.md
index 95a8f55..a68323f 100644
--- a/addon/doc/de/readme.md
+++ b/addon/doc/de/readme.md
@@ -3,7 +3,7 @@
 [[!meta title="eMule 0.50A"]]
 
 *      Authoren: Noelia, Chris, Alberto.
-*      NVDA-Kompatibilität: 2017.3 bis 2019.1
+*      NVDA-Kompatibilität: 2017.3 bis 2019.2
 *      [Stabile Version herunterladen][1]
 *      [Entwicklerversion herunterladen][3]
 

diff --git a/addon/doc/es/readme.md b/addon/doc/es/readme.md
index c8b2770..7d76ad2 100644
--- a/addon/doc/es/readme.md
+++ b/addon/doc/es/readme.md
@@ -1,9 +1,9 @@
 # eMule #
 
 *      Autores: Noelia, Chris, Alberto.
-*      Compatibilidad con NVDA: de 2017.3 a 2019.1
+*      Compatibilidad con NVDA: de 2017.3 a 2019.2
 *      descarga [versión estable][1]
-*      Descargar [versión de desarrollo][3]
+*      descargar [versión de desarrollo][3]
 
 Este complemento te ayuda a mejorar la accesibilidad de eMule con
 NVDA. También proporciona comandos de teclado adicionales para moverse en
@@ -49,9 +49,9 @@ Cuando estés dentro de una lista, puedes mover el cursor  
entre las filas y
 las columnas utilizando alt+control+Flechas.  En este complemento también
 están disponibles las siguientes órdenes de teclado:
 
-*      NVDA+control+1-0: Lee las primeras 10 columnas.
-*      NVDA+shift+1-0: Lee las columnas 11 a 20.
-*      NVDA+shift+C: Copia el contenido de la última columna leída al
+*      nvda+control+1-0: Lee las primeras 10 columnas.
+*      nvda+shift+1-0: Lee las columnas 11 a 20.
+*      nvda+shift+C: Copia el contenido de la última columna leída al
   portapapeles.
 
 ## Cambios para 3.0 ##

diff --git a/addon/doc/fi/readme.md b/addon/doc/fi/readme.md
index c09df58..58b57ee 100644
--- a/addon/doc/fi/readme.md
+++ b/addon/doc/fi/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Tekijät: Noelia, Chris, Alberto.
-*      NVDA-yhteensopivuus: 2017.3-2019.1
+*      Yhteensopivuus: NVDA 2017.3-2019.2
 *      Lataa [vakaa versio][1]
 *      Lataa [kehitysversio][3]
 

diff --git a/addon/doc/fr/readme.md b/addon/doc/fr/readme.md
index db94e24..5d4a459 100644
--- a/addon/doc/fr/readme.md
+++ b/addon/doc/fr/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Autheurs : Noelia, Chris, Alberto.
-*      Compatibilité NVDA: 2017.3 à 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      Télécharger [version stable][1]
 *      Télécharger  [version de développement][3]
 

diff --git a/addon/doc/gl/readme.md b/addon/doc/gl/readme.md
index 046fdd7..a422054 100644
--- a/addon/doc/gl/readme.md
+++ b/addon/doc/gl/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Autores: Noelia, Chris, Alberto.
-*      Compatibilidade con NVDA: da 2017.3 á 2019.1
+*      Compatibilidade con NVDA: da 2017.3 á 2019.2
 *      descarga [versión estable][1]
 *      Descargar [versión de desenvolvemento][3]
 

diff --git a/addon/doc/hr/readme.md b/addon/doc/hr/readme.md
index bed7c40..18efd1c 100644
--- a/addon/doc/hr/readme.md
+++ b/addon/doc/hr/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Autori: Noelia, Chris, Alberto.
-*      NVDA compatibility: 2017.3 to 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      preuzmite [Stabilnu inačicu][1]
 *      preuzmite [razvojnu inačicu][3]
 

diff --git a/addon/doc/hu/readme.md b/addon/doc/hu/readme.md
index 113d507..13a030e 100644
--- a/addon/doc/hu/readme.md
+++ b/addon/doc/hu/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Készítők: Noelia, Chris, Alberto.
-*      NVDA compatibility: 2017.3 to 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      Letöltés [stabil verzió][1]
 *      Letöltés [fejlesztői verzió][3]
 

diff --git a/addon/doc/it/readme.md b/addon/doc/it/readme.md
index 800d00c..765fdcd 100644
--- a/addon/doc/it/readme.md
+++ b/addon/doc/it/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Autori: Noelia, Chris, Alberto.
-*      Compatibilità con NVDA: dalla 2017.3 alla 2019.1
+*      Compatibilità con NVDA: dalla 2017.3 alla 2019.2
 *      Scarica la [versione stabile][1]
 *      Scarica la [versione in sviluppo][3]
 

diff --git a/addon/doc/nl/readme.md b/addon/doc/nl/readme.md
index 19cdd1e..f64c056 100644
--- a/addon/doc/nl/readme.md
+++ b/addon/doc/nl/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Auteurs: Noelia, Chris, Alberto.
-*      NVDA compatibility: 2017.3 to 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      download [stabiele versie][1]
 *      download [ontwikkelversie][3]
 

diff --git a/addon/doc/pl/readme.md b/addon/doc/pl/readme.md
index dda4838..f223ff6 100644
--- a/addon/doc/pl/readme.md
+++ b/addon/doc/pl/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Autorzy: Noelia, Chris, Alberto.
-*      Zgodność z NVDA: 2017.3 do 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      Pobierz [wersja stabilna][1]
 *      Pobierz [wersja rozwojowa][3]
 

diff --git a/addon/doc/pt_BR/readme.md b/addon/doc/pt_BR/readme.md
index c9268f6..788f511 100644
--- a/addon/doc/pt_BR/readme.md
+++ b/addon/doc/pt_BR/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Autores: Noelia, Chris, Alberto.
-*      NVDA compatibility: 2017.3 to 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      baixe a [versão estável][1]
 *      baixe a [versão de desenvolvimento][3]
 

diff --git a/addon/doc/pt_PT/readme.md b/addon/doc/pt_PT/readme.md
index 7f700ab..9c95adb 100644
--- a/addon/doc/pt_PT/readme.md
+++ b/addon/doc/pt_PT/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Autores: Noelia, Chris, Alberto.
-*      Compatibilidade com o NVDA: 2017.3 até 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      baixar [versão estável] [1]
 *      baixar [versão de desenvolvimento] [3]
 

diff --git a/addon/doc/ro/readme.md b/addon/doc/ro/readme.md
index 9557c7d..071180e 100644
--- a/addon/doc/ro/readme.md
+++ b/addon/doc/ro/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Autori: Noelia, Chris, Alberto.
-*      Compatibilitate NVDA: 2017.3 - 2019.1
+*      Compatibilitate NVDA: 2017.3 - 2019.2
 *      Descărcați [versiunea stabilă][1]
 *      Descărcați [versiunea în dezvoltare][3]
 

diff --git a/addon/doc/ru/readme.md b/addon/doc/ru/readme.md
index 1149029..c7bd502 100644
--- a/addon/doc/ru/readme.md
+++ b/addon/doc/ru/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Авторы: Noelia, Chris, Alberto.
-*      NVDA compatibility: 2017.3 to 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      загрузить [стабильную версию][1]
 *      загрузить [разрабатываемую версию][3]
 

diff --git a/addon/doc/sk/readme.md b/addon/doc/sk/readme.md
index 27fbc94..7206eb4 100644
--- a/addon/doc/sk/readme.md
+++ b/addon/doc/sk/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Autori: Noelia, Chris, Alberto.
-*      NVDA compatibility: 2017.3 to 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      Stiahnuť [stabilná verzia][1]
 *      Stiahnuť [Vývojová verzia][3]
 

diff --git a/addon/doc/sr/readme.md b/addon/doc/sr/readme.md
index 48d3a1e..7bf8e5e 100644
--- a/addon/doc/sr/readme.md
+++ b/addon/doc/sr/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Autori: Noelia, Chris, Alberto.
-*      NVDA compatibility: 2017.3 to 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      Preuzmi[stabilnu verziju][1]
 *      Preuzmi[verziju u razvoju][3]
 

diff --git a/addon/doc/tr/readme.md b/addon/doc/tr/readme.md
index 00b1698..b738771 100644
--- a/addon/doc/tr/readme.md
+++ b/addon/doc/tr/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Yazarlar: Noelia, Chris, Alberto.
-*      NVDA compatibility: 2017.3 to 2019.1
+*      NVDA compatibility: 2017.3 to 2019.2
 *      İndir [kararlı versiyon][1]
 *      İndir [geliştirme sürümü][3]
 

diff --git a/addon/doc/vi/readme.md b/addon/doc/vi/readme.md
index 22f2fb7..5c28dae 100644
--- a/addon/doc/vi/readme.md
+++ b/addon/doc/vi/readme.md
@@ -1,7 +1,7 @@
 # eMule #
 
 *      Tác giả: Noelia, Chris, Alberto.
-*      NVDA tương thích: 2017.3 đến 2019.1
+*      NVDA tương thích: 2017.3 đến 2019.2
 *      tải về [phiên bản chính thức][1]
 *      tải về [phiên bản thử nghiệm][3]
 

diff --git a/addon/doc/zh_CN/readme.md b/addon/doc/zh_CN/readme.md
index cee10af..39f3e64 100644
--- a/addon/doc/zh_CN/readme.md
+++ b/addon/doc/zh_CN/readme.md
@@ -1,7 +1,7 @@
 # eMule-NVDA电骡支持插件 #
 
 *      作者: Noelia, Chris, Alberto.
-*      NVDA兼容版本: 2017.3至2019.1
+*      NVDA兼容版本: 2017.3至2019.2
 *      下载[稳定版本][1]
 *      下载[开发版本][3]
 
@@ -13,15 +13,15 @@
 
 ## 快捷键: ##
 
-*      CTRL加SHIFT加H,移动鼠标和焦点到”主工具栏
-*      CTRL加SHIFT加T:朗读当前窗口。
+*      CTRL加SHIFT加H: 移动鼠标和焦点到”主工具栏
+*      CTRL加SHIFT加T: 朗读当前窗口。
 *      CTRL加SHIFT加N: 移动焦点到“查找”窗口的“名称”编辑区。
 *      CTRL加SHIFT加P: 切换焦点和鼠标到“搜索”窗口的搜索参数列表和编辑区选项。
 *      control + shift + b:将焦点移动到当前窗口的列表中。例如,可在“搜索”窗口中使用,在“传输”窗口中下载等。
 *      control + shift + o:将焦点移动到当前窗口中的只读编辑框。例如,IRC收到消息,可用服务器等。
 *      control + NVDA + f:如果插入符号位于只读编辑框中,则打开查找对话框以使用命令搜索NVDA中可用的文本。
-*      CTRL加SHIFT加L:移动鼠标和浏览对象到当前列表的表头。
-*      CTRL加SHIFT加L:朗读状态栏的第一个对象,提供最近一次活动的信息。
+*      CTRL加SHIFT加L: 移动鼠标和浏览对象到当前列表的表头。
+*      CTRL加SHIFT加L: 朗读状态栏的第一个对象,提供最近一次活动的信息。
 *      CTRL加SHIFT加W: 朗读状态栏的第二个对象,提供当前服务器的用户和文件的数目信息。
 *      CTRL加SHIFT加E: 查看第三个状态栏的对象,常用来了解上传和下载速度。
 *      CTRL加SHIFT加R: 查看状态栏的第四个对象,用来了解 ED2K 和 KAD 网络的连接情况。

Repository URL: https://bitbucket.org/nvdaaddonteam/emule/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.

Other related posts: