commit/StationPlaylist: 13 new changesets

  • From: commits-noreply@xxxxxxxxxxxxx
  • To: commits+int+220+6085746285340533186@xxxxxxxxxxxxxxxxxxxxx, nvda-addons-commits@xxxxxxxxxxxxx
  • Date: Wed, 24 Oct 2018 14:40:18 +0000 (UTC)

13 new commits in StationPlaylist:

https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/0b3b8b83f7fa/
Changeset:   0b3b8b83f7fa
Branch:      None
User:        josephsl
Date:        2018-10-06 01:23:30+00:00
Summary:     Column content getter: remove splmisc module version altogether.

Because the SPL track items are now based on SysListView32 objects, they come 
with column content getter function. Thus remove the splmisc module version of 
column contnet getter.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splmisc.py 
b/addon/appModules/splstudio/splmisc.py
index fc5310b..2c71c32 100755
--- a/addon/appModules/splstudio/splmisc.py
+++ b/addon/appModules/splstudio/splmisc.py
@@ -6,7 +6,6 @@
 
 import sys
 py3 = sys.version.startswith("3")
-import ctypes
 import weakref
 import os
 import threading
@@ -14,9 +13,7 @@ from _csv import reader # For cart explorer.
 import gui
 import wx
 import ui
-from winUser import user32, sendMessage
-import winKernel
-from NVDAObjects.IAccessible import sysListView32
+from winUser import user32
 from . import splbase
 from .spldebugging import debugOutput
 from . import splactions
@@ -24,33 +21,6 @@ from . import splactions
 # Python 3 preparation (a compatibility layer until Six module is included).
 rangeGen = range if py3 else xrange
 
-# Locate column content.
-# Given an object and the column number, locate text in the given column.
-# This is the module level version of column content getter found in the app 
module.
-# This is used by the track item class, Track Tool items and in track finder.
-# In track finder, this is used when encountering the track item but NVDA says 
otherwise.
-def _getColumnContent(obj, col):
-       # Borrowed from SysListView32 implementation.
-       buffer=None
-       processHandle=obj.processHandle
-       sizeofLVITEM = ctypes.sizeof(sysListView32.LVITEM)
-       
internalItem=winKernel.virtualAllocEx(processHandle,None,sizeofLVITEM,winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
-       try:
-               
internalText=winKernel.virtualAllocEx(processHandle,None,520,winKernel.MEM_COMMIT,winKernel.PAGE_READWRITE)
-               try:
-                       
item=sysListView32.LVITEM(iItem=obj.IAccessibleChildID-1,mask=sysListView32.LVIF_TEXT|sysListView32.LVIF_COLUMNS,iSubItem=col,pszText=internalText,cchTextMax=260)
-                       
winKernel.writeProcessMemory(processHandle,internalItem,ctypes.byref(item),sizeofLVITEM,None)
-                       len = 
sendMessage(obj.windowHandle,sysListView32.LVM_GETITEMTEXTW, 
(obj.IAccessibleChildID-1), internalItem)
-                       if len:
-                               
winKernel.readProcessMemory(processHandle,internalItem,ctypes.byref(item),sizeofLVITEM,None)
-                               buffer=ctypes.create_unicode_buffer(len)
-                               
winKernel.readProcessMemory(processHandle,item.pszText,buffer,ctypes.sizeof(buffer),None)
-               finally:
-                       
winKernel.virtualFreeEx(processHandle,internalText,0,winKernel.MEM_RELEASE)
-       finally:
-               
winKernel.virtualFreeEx(processHandle,internalItem,0,winKernel.MEM_RELEASE)
-       return buffer.value if buffer else None
-
 # A custom combo box for cases where combo boxes are not choice controls.
 class CustomComboBox(wx.ComboBox, wx.Choice):
        pass


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/2bbb6d7a6507/
Changeset:   2bbb6d7a6507
Branch:      None
User:        josephsl
Date:        2018-10-08 23:30:56+00:00
Summary:     Playlist snapshots and transcripts: allow these to work while 
focused on playlist list object while the playlist has been loaded.

Until now when the playlist was loaded ye system focus was on the list object, 
when trying to obtain playlist snaphsots or transcripts, NVDA would say, 
'please add a track'> Now it should be no more: similar to track finder fix (a 
few months ago), add ability to obtain these items while system focus is 
focused on the list itself while playlist has been loaded (i.e. system focus is 
not located on tracks yet).

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index 55f6467..eed816d 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -2152,9 +2152,12 @@ class AppModule(appModuleHandler.AppModule):
                        self.finish()
                        return
                if obj.role == controlTypes.ROLE_LIST:
-                       ui.message(_("You need to add tracks before invoking 
this command"))
-                       self.finish()
-                       return
+                       # 18.11/18.09.4-LTS: only say the following if Studio 
says playlist is empty, otherwise move one level down for backward 
compatibility.
+                       if not splbase.studioAPI(0, 124):
+                               ui.message(_("You need to add tracks before 
invoking this command"))
+                               self.finish()
+                               return
+                       obj = obj.firstChild
                scriptCount = scriptHandler.getLastScriptRepeatCount()
                # Display the decorated HTML window on the first press if told 
to do so.
                if 
splconfig.SPLConfig["PlaylistSnapshots"]["ShowResultsWindowOnFirstPress"]:


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/348ff9c41582/
Changeset:   348ff9c41582
Branch:      None
User:        josephsl
Date:        2018-10-10 01:12:54+00:00
Summary:     Playlist transcripts: generate transcripts while focused on a 
playlsit list object while playlist has been loaded.

Same as playlist snapshots: when the playlist is first loaded, focus may not 
move to tracks themselves. Thus ask Studio if there are any tracks shown on 
playlist viewer before telling users that playlist transcripts cannot be 
obtained.
Also, instead of fetching focus object up to three times (initial load, when 
defining start objects, when constructing the playlist transcripts dialog), 
just use the currently focused object.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index eed816d..5327b27 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -2192,12 +2192,14 @@ class AppModule(appModuleHandler.AppModule):
                        self.finish()
                        return
                if obj.role == controlTypes.ROLE_LIST:
-                       ui.message(_("You need to add tracks before invoking 
this command"))
-                       self.finish()
-                       return
+                       # 18.11/18.09.4-LTS: only say the following if Studio 
says playlist is empty, otherwise move one level down for backward 
compatibility.
+                       if not splbase.studioAPI(0, 124):
+                               ui.message(_("You need to add tracks before 
invoking this command"))
+                               self.finish()
+                               return
+                       obj = obj.firstChild
                try:
-                       startObj =  api.getFocusObject()
-                       d = splmisc.SPLPlaylistTranscriptsDialog(gui.mainFrame, 
api.getFocusObject())
+                       d = splmisc.SPLPlaylistTranscriptsDialog(gui.mainFrame, 
obj)
                        gui.mainFrame.prePopup()
                        d.Raise()
                        d.Show()


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/6e4f32f27d59/
Changeset:   6e4f32f27d59
Branch:      None
User:        josephsl
Date:        2018-10-10 01:15:41+00:00
Summary:     Comment typo

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index 5327b27..8df15bc 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -2152,7 +2152,7 @@ class AppModule(appModuleHandler.AppModule):
                        self.finish()
                        return
                if obj.role == controlTypes.ROLE_LIST:
-                       # 18.11/18.09.4-LTS: only say the following if Studio 
says playlist is empty, otherwise move one level down for backward 
compatibility.
+                       # 18.11/18.09.5-LTS: only say the following if Studio 
says playlist is empty, otherwise move one level down for backward 
compatibility.
                        if not splbase.studioAPI(0, 124):
                                ui.message(_("You need to add tracks before 
invoking this command"))
                                self.finish()
@@ -2192,7 +2192,7 @@ class AppModule(appModuleHandler.AppModule):
                        self.finish()
                        return
                if obj.role == controlTypes.ROLE_LIST:
-                       # 18.11/18.09.4-LTS: only say the following if Studio 
says playlist is empty, otherwise move one level down for backward 
compatibility.
+                       # 18.11/18.09.5-LTS: only say the following if Studio 
says playlist is empty, otherwise move one level down for backward 
compatibility.
                        if not splbase.studioAPI(0, 124):
                                ui.message(_("You need to add tracks before 
invoking this command"))
                                self.finish()


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/d4625878478e/
Changeset:   d4625878478e
Branch:      None
User:        josephsl
Date:        2018-10-10 01:19:11+00:00
Summary:     Readme entry for playlsit list object and playlist 
snapshots/transcripts commands.

Affected #:  1 file

diff --git a/readme.md b/readme.md
index 28ce650..faf518d 100755
--- a/readme.md
+++ b/readme.md
@@ -191,6 +191,10 @@ From studio window, you can press Alt+NVDA+0 to open the 
add-on configuration di
 
 If you are using Studio on a touchscreen computer running Windows 8 or later 
and have NVDA 2012.3 or later installed, you can perform some Studio commands 
from the touchscreen. First use three finger tap to switch to SPL mode, then 
use the touch commands listed above to perform commands.
 
+## Version 18.11/18.09.5-LTS
+
+* You can now obtain playlist snapshots (SPL Assistant, F8) and transcripts 
(SPL Assistant, Shift+F8) while a playlist is loaded but the first track isn't 
focused.
+
 ## Version 18.10.2/18.09.4-LTS
 
 * Fixed inability to close the add-on settings screen if Apply button was 
pressed and subsequently OK or Cancel buttons were pressed.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/033b5e2a47a3/
Changeset:   033b5e2a47a3
Branch:      None
User:        josephsl
Date:        2018-10-12 17:50:37+00:00
Summary:     Merge branch 'stable' of 
https://bitbucket.org/nvdaaddonteam/stationPlaylist

Affected #:  1 file

diff --git a/addon/doc/de/readme.md b/addon/doc/de/readme.md
index cfd2191..c8627a3 100644
--- a/addon/doc/de/readme.md
+++ b/addon/doc/de/readme.md
@@ -3,7 +3,7 @@
 * Authoren: Geoff Shang, Joseph Lee und andere Entwickler
 * lade [stabile Version][1] herunter
 * lade [Entwickler-Version][2] herunter
-* Download [long-term support version][3] - for Studio 5.10/5.11 users
+* [Für Studio 5.10 / 5.11 (LTS-Version) herunterladen][3]
 
 Dieses Erweiterungspaket verbessert die Zugänglichkeit von Station Playlist
 Studio. Es stehen außerdem Befehle zur Verfügung, um Station Playlist von
@@ -16,8 +16,8 @@ Quellcodeverzeichnis der Erweiterung auf Github.
 
 WICHTIGE HINWEISE:
 
-* This add-on requires NVDA 2018.3 or later and StationPlaylist Studio 5.11
-  or later.
+* Diese Erweiterung erfordert NVDA 2018.3 oder höher und StationPlaylist
+  Studio 5.11 oder höher.
 * Wenn Sie Windows 8 oder höher verwenden, setzen Sie die Reduzierung der
   Lautstärke anderer Audioquellen auf "nie" im Dialog Sprachausgabe im
   NVDA-Einstellungsmenü.
@@ -58,22 +58,24 @@ angegeben.
 * Alt+NVDA+R aus dem Studio-Fenster: Benachrichtigungseinstellungen für
   Bibliothek-Scans.
 * Strg+Umschalt+X aus dem Studio-Fenster: Braille-Timer-Einstellungen.
-* Control+Alt+left/right arrow (while focused on a track in Studio, Creator,
-  and Track Tool): Announce previous/next track column.
-* Control+Alt+up/down arrow (while focused on a track in Studio only): Move
-  to previous or next track and announce specific columns (unavailable in
-  add-on 15.x).
-* Control+NVDA+1 through 0 (while focused on a track in Studio, Creator, and
-  Track Tool): Announce column content for a specified column. Pressing this
-  command twice will display column information on a browse mode window.
-* Control+NVDA+- (hyphen in Studio): display data for all columns in a track
-  on a browse mode window.
-* Alt+NVDA+C while focused on a track (Studio only): announces track
-  comments if any.
+* Strg+Alt+Pfeiltaste nach links/rechts (während Sie sich auf einen Track im
+  Studio, Creator und Track Tool befinden): Ankündigung der
+  vorherigen/nächsten Track-Spalte.
+* Strg+Alt+Pfeiltaste nach oben/unten (während Sie sich nur auf einen Track
+  in Studio befinden): Wechseln Sie zum vorherigen oder nächsten Track und
+  kündigen Sie bestimmte Spalten an (nicht verfügbar im Add-on 15.x).
+* Strg+NVDA+1 bis 0 (während sie sich auf einen Track im Studio, Creator und
+  Track Tool befinden): Ankündigung von Spalteninhalten für eine bestimmte
+  Spalte. Wenn Sie diesen Befehl zweimal drücken, werden
+  Spalteninformationen in einem Fenster des Lesemodus angezeigt.
+* Strg+NVDA+Minus (Bindestrich) in Studio): Zeigt Daten für alle Spalten in
+  einer Spur in einem Fenster des Lesemodus an.
+* Alt+NVDA+C während der Fokus auf einen Track (nur Studio): Meldet
+  Track-Kommentare, falls vorhanden.
 * Alt+NVDA+0 aus dem Studio-Fenster: Öffnet den Konfigurationsdialog der
   SPL-Erweiterung.
-* Alt+NVDA+- (hyphen) from Studio window: Send feedback to add-on developer
-  using the default email client.
+* Alt+NVDA+Minus (Bindestrich) aus dem Studio-Fenster: Senden Sie Feedback
+  an den Entwickler der Erweiterung mit der E-Mail-Programm.
 * Alt+NVDA+F1: öffnet das Willkommensdialog.
 
 ## nicht zugewiesene Befehle
@@ -287,11 +289,12 @@ erreicht haben.
 
 ## Spaltenexplorer
 
-By pressing Control+NVDA+1 through 0 or SPL Assistant, 1 through 0, you can
-obtain contents of specific columns. By default, these are artist, title,
-duration, intro, category, filename, year, album, genre and time
-scheduled. You can configure which columns will be explored via columns
-explorer dialog found in add-on settings dialog.
+Durch Drücken von Strg+NVDA+1 bis 0 oder SPL Assistant, 1 bis 0, können Sie
+den Inhalt bestimmter Spalten erhalten. Standardmäßig sind dies Künstler,
+Titel, Dauer, Intro, Kategorie, Dateiname, Jahr, Album, Genre und
+Zeitplanung. Sie können konfigurieren, welche Spalten über den
+Spalten-Explorer-Dialog im Einstellungsdialog des Add-ons erkundet werden
+sollen.
 
 ## Playlist-Statistiken
 
@@ -327,38 +330,44 @@ Studio-Befehle über den Touchscreen ausführen. Tippen Sie 
zunächst einmal
 mit drei Fingern, um in den SPL-Touchmodus zu wechseln. Verwenden Sie dann
 die oben aufgeführten Touch-Befehle, um Befehle auszuführen.
 
-## Version 18.10.2/18.09.4-LTS
+## Version 18.10.2 / 18.09.4-LTS
 
-* Fixed inability to close the add-on settings screen if Apply button was
-  pressed and subsequently OK or Cancel buttons were pressed.
+* Es wurde ein Fehler behoben, dass der Bildschirm mit den Einstellungen der
+  Erweiterung nicht geschlossen werden konnte, wenn auf den Schalter
+  "Übernehmen" gedrückt und anschließend auf "OK" oder "Abbrechen" gedrückt
+  wurde.
 
-## Version 18.10.1/18.09.3-LTS
+## Version 18.10.1 / 18.09.3-LTS
 
-* Resolved several issues related to encoder connection announcement
-  feature, including not announcing status messages, failing to play the
-  first selected track, or not switching to Studio window when
-  connected. These bugs are caused by wxPython 4 (NVDA 2018.3 or later).
+* Mehrere Probleme im Zusammenhang mit der Ansage-Funktion für die
+  Encoderverbindung wurden behoben, darunter das Verzichten auf
+  Statusmeldungen, das Nichtwiedergeben des ersten ausgewählten Tracks oder
+  das Wechseln zum Studio-Fenster, wenn eine Verbindung besteht. Diese
+  Fehler werden durch wxPython 4 (NVDA 2018.3 oder höher) verursacht.
 
 ## Version 18.10
 
-* NVDA 2018.3 or later is required.
-* Internal changes to make the add-on more compatible with Python 3.
+* NVDA 2018.3 oder höher ist erforderlich.
+* Interne Änderungen, um die Erweiterung besser mit Python 3 kompatibel zu
+  machen.
 
 ## Version 18.09.1-LTS
 
-* When obtaining playlist transcripts in HTML table format, column headers
-  are no longer rendered as a Python list string.
+* Wenn Sie Playlist-Transkripte im HTML-Tabellenformat erhalten, werden
+  Spaltenüberschriften nicht mehr als Python-Listenzeichenfolge dargestellt.
 
 ## Version 18.09-LTS
 
-Version 18.09.x is the last release series to support Studio 5.10 and based
-on old technologies, with 18.10 and later supporting Studio 5.11/5.20 and
-new features. Some new features will be backported to 18.09.x if needed.
+Version 18.09.x ist die letzte Release-Reihe, die Studio 5.10 unterstützt
+und auf alten Technologien basiert, mit 18.10 und später Studio 5.11/5.20
+und neuen Features. Einige neue Features werden bei Bedarf auf 18.09.x
+zurückportiert.
 
 * NVDA 2018.3 oder höher wird auf Grund der Einführung von wxPython 4
   empfohlen.
-* Add-on settings screen is now fully based on multi-page interface derived
-  from NVDA 2018.2 and later.
+* Der Bildschirm für die zusätzlichen Einstellungen basiert nun vollständig
+  auf einer mehrseitigen Schnittstelle, die von NVDA 2018.2 und höher
+  abgeleitet wurde.
 * Die schnellen und langsamen Ringe der Testkanäle wurden zum Kanal
   "Entwicklung" kombiniert, mit einer Option für Benutzer von
   Entwicklungs-Snapshots zum Testen von Pilotfunktionen, indem das
@@ -371,16 +380,17 @@ new features. Some new features will be backported to 
18.09.x if needed.
   Community-Website für NVDA-Erweiterungen besuchen
   (addons.nvda-project.org), StationPlaylist Studio auswählen und dann die
   entsprechende Version herunterladen.
-* Column inclusion checkboxes for column announcement and playlist
-  transcripts, as well as metadata streams checkboxes have been converted to
-  checkable list controls.
-* When switching between settings panels, NvDA will remember current
-  settings for profile-specific settings (alarms, column announcements,
-  metadata streaming settings).
-* Added CSV (comma-separated values) format as a playlist transcripts
-  format.
-* Pressing Control+NvDA+C to save settings will now also save Studio add-on
-  settings (requires NVDA 2018.3).
+* Die Kontrollkästchen für die Spaltenansage und die Transkription von
+  Wiedergabelisten sowie die Kontrollkästchen für Metadatenströme wurden in
+  überprüfbare Listensteuerelemente umgewandelt.
+* Beim Umschalten zwischen den Einstellungsfeldern speichert NvDA die
+  aktuellen Einstellungen für profilspezifische Einstellungen (Alarme,
+  Spaltenansagen, Metadaten-Streaming-Einstellungen).
+* CSV-Format (kommagetrennte Werte) als Format für
+  Wiedergabelistentranskripte hinzugefügt.
+* Wenn Sie zum Speichern der Einstellungen Strg+NVDA+C drücken, werden nun
+  auch die Einstellungen der Studio-Erweiterung gespeichert (erfordert NVDA
+  2018.3).
 
 ## Version 18.08.2
 
@@ -398,64 +408,77 @@ new features. Some new features will be backported to 
18.09.x if needed.
 * NVDA kündigt eine entsprechende Meldung an, wenn kein Text zur Änderung
   der Wiedergabeliste vorhanden ist, was häufig nach dem Laden einer
   unveränderten Wiedergabeliste oder beim Starten von Studio der Fall ist.
-* NVDA will no longer appear to do nothing or play error tones when trying
-  to obtain metadata streaming status via SPL Assistant (E).
+* NVDA scheint nichts mehr zu tun oder Fehlertöne abzuspielen, wenn versucht
+  wird, den Metadaten-Streaming-Status über den SPL-Assistenten (E) zu
+  erhalten.
 
 ## Version 18.08
 
-* Add-on settings dialog is now based on multi-category settings interface
-  found in NVDA 2018.2. Consequently, this release requires NVDA 2018.2 or
-  later. The old add-on settings interface is deprecated and will be removed
-  later in 2018.
+* Der Dialog für zusätzliche Einstellungen basiert nun auf der in NVDA
+  2018.2 enthaltenen Schnittstelle für Einstellungen in mehreren
+  Kategorien. Daher erfordert diese Version die NVDA 2018.2 oder höher. Die
+  alte Erweiterungs-Einstellungsoberfläche ist veraltet und wird später im
+  Jahr 2018 entfernt.
 * Es wurde ein neuer Abschnitt (Schaltfläche / Steuerung) in den
   Einstellungen der Erweiterung hinzugefügt, um die Optionen für die
   Transkripte der Wiedergabeliste zu konfigurieren, mit dem die
   Spalteneinbindung und -reihenfolge für diese Funktion und andere
   Einstellungen konfiguriert werden können.
-* When creating a table-based playlist transcripts and if custom column
-  ordering and/or column removal is in effect, NVDA will use custom column
-  presentation order specified from add-on settings and/or not include
-  information from removed columns.
-* When using column navigation commands in track items
-  (Control+Alt+home/end/left arrow/right arrow) in Studio, Creator, and
-  Track Tool, NVDA will no longer announce wrong column data after changing
-  column position on screen via mouse.
+* Bei der Erstellung einer tabellenbasierten Wiedergabelistentranskription
+  und wenn eine benutzerdefinierte Spaltenreihenfolge bzw. Spaltenentfernung
+  in Kraft ist, verwendet NVDA eine benutzerdefinierte Spaltenpräsentation,
+  die in den Einstellungen der Erweiterung angegeben ist bzw. keine
+  Informationen aus entfernten Spalten enthält.
+* Wenn Sie in Studio, Creator und Track Tool Spaltennavigationsbefehle in
+  Track-Listen (Strg+Alt+Pos1 / Ende / Pfeiltaste nach links / Pfeiltaste
+  nach rechts) verwenden, wird NVDA keine falschen Spaltendaten mehr melden,
+  nachdem Sie die Spaltenposition auf dem Bildschirm per Maus geändert
+  haben.
 * Signifikante Verbesserungen der Reaktionsfähigkeit von NVDA bei der
   Verwendung von Spaltennavigationsbefehlen im Creator und Track
   Tool. Insbesondere bei der Verwendung von Creator reagiert NVDA besser,
   wenn dieser Befehle zur Spaltennavigation verwendet.
-* NVDA will no longer play error tones or appear to do nothing when
-  attempting to add comments to tracks in Studio or when exiting NVDA while
-  using Studio, caused by wxPython 4 compatibility issue.
+* NVDA spielt keine Fehlertöne mehr ab oder scheint nichts zu tun, wenn
+  versucht wird, Kommentare zu Tracks in Studio hinzuzufügen oder wenn NVDA
+  während der Nutzung von Studio verlassen wird, verursacht durch ein
+  Kompatibilitätsproblem mit wxPython 4.
 
 ## Version 18.07
 
-* Added an experimental multi-category add-on settings screen, accessible by
-  toggling a setting in add-on settings/Advanced dialog (you need to restart
-  NVDA after configuring this setting for the new dialog to show up). This
-  is for NVDA 2018.2 users, and not all add-on settings can be configured
-  from this new screen.
-* NVDA will no longer play error tones or appear to do nothing when trying
-  to rename a broadcast profile from add-on settings, caused by wxPython 4
-  compatibility issue.
-* When restarting NvDA and/or Studio after making changes to settings in a
-  broadcast profile other than normal profile, NVDA will no longer revert to
-  old settings.
-* It is now possible to obtain playlist transcripts for the current
-  hour. Select "current hour" from list of playlist range options in
-  playlist transcripts dialog (SPL Assistant, Shift+F8).
-* Added an option in Playlist Transcripts dialog to have transcripts saved
-  to a file (all formats) or copied to the clipboard (text and Markdown
-  table formats only) in addition to viewing transcripts on screen. When
-  transcripts are saved, they are saved to user's Documents folder under
-  "nvdasplPlaylistTranscripts" subfolder.
-* Status column is no longer included when creating playlist transcripts in
-  HTML and Markdown table formats.
-* When focused on a track in Creator and Track Tool, pressing
-  Control+NVDA+number row twice will present column information on a browse
-  mode window.
-* In Creator and Track Tool, added Control+Alt+Home/End keys to move Column
-  Navigator to first or last column for the focused track.
+* Es wurde ein experimenteller Bildschirm mit mehrkategorischen
+  Einstellungen der Erweiterung hinzugefügt, auf den Sie durch Umschalten
+  einer Einstellung in den Einstellungen der Erweiterung bzw. Erweitertes
+  Dialogfeld zugreifen können (Sie müssen NVDA neu starten, nachdem Sie
+  diese Einstellung konfiguriert haben, damit der neue Dialog angezeigt
+  wird). Dies ist für Benutzer von NVDA 2018.2. Nicht alle Einstellungen der
+  Erweiterung können über diesen neuen Bildschirm konfiguriert werden.
+  
+Übersetzt mit www.DeepL.com/Translator
+* NVDA spielt keine Fehlertöne mehr ab oder scheint nichts zu tun, wenn
+  versucht wird, ein Broadcast-Profil aus Add-On-Einstellungen umzubenennen,
+  verursacht durch ein Kompatibilitätsproblem mit wxPython 4.
+* Wenn Sie NVDA bzw. Studio neu starten, nachdem Sie Änderungen an
+  Einstellungen in einem anderen als dem normalen Profil vorgenommen haben,
+  kehrt NVDA nicht mehr zu den alten Einstellungen zurück.
+* Es ist nun möglich, Transkripte von Playlisten für die aktuelle Stunde zu
+  erhalten. Wählen Sie "aktuelle Stunde" aus der Liste der Optionen für den
+  Wiedergabelistenbereich im Dialogfeld für Wiedergabelistentranskripte
+  (SPL-Assistent, Umschalt+F8).
+* Im Dialogfeld "Playlist-Transkripte" wurde eine Option hinzugefügt, mit
+  der Transkripte in einer Datei gespeichert (alle Formate) oder in die
+  Zwischenablage kopiert werden können (nur Text- und
+  Abschriftentabellenformate), zusätzlich zur Anzeige von Transkripten auf
+  dem Bildschirm. Beim Speichern von Transkripten werden diese im Ordner
+  Documents des Benutzers unter dem Unterordner "nvdasplPlaylistTranscripts"
+  gespeichert.
+* Die Statusspalte ist bei der Erstellung von Playlist-Transkripten im HTML-
+  und Markdown-Tabellenformat nicht mehr enthalten.
+* Wenn Sie sich im Creator and Track Tool auf eine Spur konzentrieren,
+  drücken Sie zweimal Strg+NVDA+1 bis 0 zweimal, um Spalteninformationen im
+  Lesemodus anzuzeigen.
+* Im Creator and Track Tool wurden die Tasten Strg+Alt+Pos1/Ende
+  hinzugefügt, um den Spaltenavigator zur ersten oder letzten Spalte für die
+  fokussierte Spur zu verschieben.
 
 ## Version 18.06.1
 
@@ -463,31 +486,36 @@ new features. Some new features will be backported to 
18.09.x if needed.
   Unfähigkeit, den Track Finder (Strg+NVDA+F) zu öffnen, die Dialoge für
   Spaltensuche und Time Ranger Finder in Studio und den Stream Labeler
   Dialog (F12) im Encoder-Fenster.
-* While opening a find dialog from Studio and an unexpected error occurs,
-  NVDA will present more appropriate messages instead of saying that another
-  find dialog is open.
-* In encoders window, NVDA will no longer play error tones or appear to do
-  nothing when attempting to open encoder settings dialog (Alt+NVDA+0).
+* Während des Öffnens eines Suchdialogs aus Studio heraus und ein
+  unerwarteter Fehler auftritt, zeigt NVDA angemessenere Meldungen an,
+  anstatt zu sagen, dass ein anderer Suchdialog geöffnet ist.
+* Im Encoder-Fenster gibt NVDA keine Fehlertöne mehr wieder oder scheint
+  nichts zu tun, wenn versucht wird, den Dialog Encoder-Einstellungen zu
+  öffnen (Alt+NVDA+0).
 
 ## Version 18.06
 
-* In add-on settings, added "Apply" button so changes to settings can be
-  applied to the currently selected and/or active profile without closing
-  the dialog first. This feature is available for NVDA 2018.2 users.
+* In den zusätzlichen Einstellungen wurde die Schaltfläche "Übernehmen"
+  hinzugefügt, so dass Änderungen an den Einstellungen auf das aktuell
+  ausgewählte und/oder aktive Profil angewendet werden können, ohne den
+  Dialog zuerst zu schließen. Diese Funktion ist für Benutzer von NVDA
+  2018.2 verfügbar.
 * Es wurde ein Problem behoben, bei dem NVDA Änderungen an den Einstellungen
   der Spalten-Explorer vornehmen konnte, obwohl im Dialogfeld für die
   Einstellungen der Erweiterung auf die Schaltfläche "Abbrechen" geklickt
   wurde.
-* In Studio, when pressing Control+NVDA+number row twice while focused on a
-  track, NVDA will display column information for a specific column on a
-  browse mode window.
-* While focused on a track in Studio, pressing Control+NVDA+Dash will
-  display data for all columns on a browse mode window.
-* In StationPlaylist Creator, when focused on a track, pressing
-  Control+NVDA+number row will announce data in specific column.
-* Added a button in Studio add-on settings to configure Columns Explorer for
-  SPL Creator.
-* Added Markdown table format as a playlist transcripts format.
+* Wenn Sie in Studio die Strg+NVDA+1 bis 0 zweimal drücken, während Sie sich
+  auf einen Track befinden, zeigt NVDA Spalteninformationen für eine
+  bestimmte Spalte im Lesemodus an.
+* Wenn Sie sich in Studio auf einen Track befinden, drücken Sie
+  Strg+NVDA+Minus (Bindestrich), um Daten für alle Spalten im Lesemodus
+  anzuzeigen.
+* Wenn Sie im StationPlaylist Creator auf einen Track sich befinden, drücken
+  Sie Strg+NVDA+1 bis 0, um Daten in einer bestimmten Spalte anzuzeigen.
+* Eine Schaltfläche in den Einstellungen der Studio-Erweiterung hinzugefügt,
+  um den Spalten-Explorer für SPL Creator zu konfigurieren.
+* Das Format der Abschriftentabelle wurde als Format für
+  Wiedergabelistentranskripte hinzugefügt.
 * Der Befehl für die Entwicklerrückmeldung per E-Mail wurde von
   Strg+NVDA+Bindestrich auf Alt+NVDA+Bindestrich geändert.
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/5f401e68bab1/
Changeset:   5f401e68bab1
Branch:      None
User:        josephsl
Date:        2018-10-16 18:13:33+00:00
Summary:     Config save action: register and unregister config save action 
unconditionally.

Config save action is now a requirement, making this add-on compatible with 
NVDA 2018.3 and later.
Also, add a call to unregister function for config save action to signal that 
config save routine won't be called again (unless a really obscure bug makes 
this assumption false).
This change is destined for LTS18 in 2019.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index e5de429..3bac5ec 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -210,8 +210,7 @@ class ConfigHub(ChainMap):
                # Reset flag (only engaged if reset did happen).
                self.resetHappened = False
                # #73: listen to config save/reset actions from NVDA Core.
-               if hasattr(config, "post_configSave"):
-                       
config.post_configSave.register(self.handlePostConfigSave)
+               config.post_configSave.register(self.handlePostConfigSave)
                # 18.09: pilot features.
                self._pendingPilotFeaturesToggle = False
 
@@ -959,6 +958,8 @@ def closeConfig(splComponent):
        SPLConfig.splComponents.discard(splComponent)
        if len(SPLConfig.splComponents) == 0:
                SPLConfig.save()
+               # No need to keep config save registration alive.
+               
config.post_configSave.unregister(SPLConfig.handlePostConfigSave)
                SPLConfig = None
                _SPLCache.clear()
                _SPLCache = None


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/36ffe1d043cf/
Changeset:   36ffe1d043cf
Branch:      None
User:        josephsl
Date:        2018-10-16 21:31:49+00:00
Summary:     Metadata streaming (18.11): NVDA will no longer appear to do 
nothing or play error tones when trying to announce metadata stremaing 
connection message when Studio starts.

Regression: scope resolution problem: metadataStatus is part of splmisc module, 
so make sure to include that namespace. This fixes an issue where if metadata 
streaming announcement is set to be announced when Studio starts, an error tone 
or nothing will be done instead.
This patch will be backported to LTS18 as that too is affected by this 
regression.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index 8df15bc..f0213c1 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -722,7 +722,7 @@ class AppModule(appModuleHandler.AppModule):
                        # #40 (18.02): call the internal announcer in order to 
not hold up action handler queue.
                        # #51 (18.03/15.14-LTS): if this is called within two 
seconds (status time-out), status will be announced multiple times.
                        # 18.04: hopefully the error message won't be shown as 
this is supposed to run right after locating Studio handle.
-                       
splmisc._earlyMetadataAnnouncerInternal(metadataStatus())
+                       
splmisc._earlyMetadataAnnouncerInternal(splmisc.metadataStatus())
 
        # Studio API heartbeat.
        # Although useful for library scan detection, it can be extended to 
cover other features.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/6e89ac1d2dbe/
Changeset:   6e89ac1d2dbe
Branch:      None
User:        josephsl
Date:        2018-10-16 21:34:23+00:00
Summary:     Readme entry for metadata streaming announcement fix

Affected #:  1 file

diff --git a/readme.md b/readme.md
index faf518d..9d87611 100755
--- a/readme.md
+++ b/readme.md
@@ -194,6 +194,7 @@ If you are using Studio on a touchscreen computer running 
Windows 8 or later and
 ## Version 18.11/18.09.5-LTS
 
 * You can now obtain playlist snapshots (SPL Assistant, F8) and transcripts 
(SPL Assistant, Shift+F8) while a playlist is loaded but the first track isn't 
focused.
+* NVDA will no longer appear to do nothing or play error tones when trying to 
announce metadata streaming status when Studio starts if configured to do so.
 
 ## Version 18.10.2/18.09.4-LTS
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/10c33afd33e7/
Changeset:   10c33afd33e7
Branch:      None
User:        josephsl
Date:        2018-10-18 19:35:17+00:00
Summary:     Metadata streaming announcer (18.11): do not cut off other text 
announcements if told to announce metadata status at startup. Re #82.

Working around event race condition: if Studio starts and if it happens Studio 
window gets focused and metadata status is to be announced, one of the 
following things can happen:
1. Status is announced just befor3e Studio window gets focused.
2. Metadata status will be announced after status bar texts are announced.
3. Metadata status will cut off status bar text for Studio window.
4. Metadata status is cut off by other status bar messages.
Thus add a flag in internal metadata status announcer that should not cause 
speech to be canceled if announcing metadata status at startup. This resolves a 
case where metadata status may cut off status bar name change texts.
This will be backported to LTS18.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splmisc.py 
b/addon/appModules/splstudio/splmisc.py
index 2c71c32..6f6a7d7 100755
--- a/addon/appModules/splstudio/splmisc.py
+++ b/addon/appModules/splstudio/splmisc.py
@@ -418,9 +418,10 @@ def metadataStatus():
 # Internal metadata status announcer.
 # The idea is to pause for a while and announce the status message and playing 
the accompanying wave file.
 # This is necessary in order to allow extension points to work correctly and 
to not hold up other registered action handlers.
-def _metadataAnnouncerInternal(status):
+# A special startup flag will be used so other text sequences will not be cut 
off.
+def _metadataAnnouncerInternal(status, startup=False):
        import nvwave, queueHandler, speech
-       speech.cancelSpeech()
+       if not startup: speech.cancelSpeech()
        queueHandler.queueFunction(queueHandler.eventQueue, ui.message, status)
        nvwave.playWaveFile(os.path.join(os.path.dirname(__file__), 
"SPL_Metadata.wav"))
        # #51 (18.03/15.14-LTS): close link to metadata announcer thread when 
finished.
@@ -430,12 +431,12 @@ def _metadataAnnouncerInternal(status):
 # Handle a case where instant profile ssitch occurs twice within the switch 
time-out.
 _earlyMetadataAnnouncer = None
 
-def _earlyMetadataAnnouncerInternal(status):
+def _earlyMetadataAnnouncerInternal(status, startup=False):
        global _earlyMetadataAnnouncer
        if _earlyMetadataAnnouncer is not None:
                _earlyMetadataAnnouncer.cancel()
                _earlyMetadataAnnouncer = None
-       _earlyMetadataAnnouncer = threading.Timer(2, 
_metadataAnnouncerInternal, args=[status])
+       _earlyMetadataAnnouncer = threading.Timer(2, 
_metadataAnnouncerInternal, args=[status], kwargs={"startup": startup})
        _earlyMetadataAnnouncer.start()
 
 # Delay the action handler if Studio handle is not found.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/416175a1c0db/
Changeset:   416175a1c0db
Branch:      None
User:        josephsl
Date:        2018-10-18 19:41:53+00:00
Summary:     Metadata status announcer (18.11): defer status announcement until 
Studio window is shown. Re #82.

Once Studio window handle is found, if NVDA is told to announce metadata 
status, it'll proceed to announce this after waiting for two seconds. This 
meant the announcement could be made, cut off by other text, or the 
announcement can cut off status bar texts. Thus delay metadata announcement 
until two seconds after Studio window itself shows up via a combination of an 
event and foreground event.
This will be backported to LTS18 as it affects long-term version users.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index f0213c1..bbcfbe3 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -664,6 +664,8 @@ class AppModule(appModuleHandler.AppModule):
                except AttributeError:
                        debugOutput("failed to initialize GUI subsystem")
                        self.prefsMenu = None
+               # #82 (18.11/18.09.5-lts): notify others when Studio window 
gets focused the first time in order to synchronize announcement order.
+               self._initStudioWindowFocused = threading.Event()
                # Let me know the Studio window handle.
                # 6.1: Do not allow this thread to run forever (seen when 
evaluation times out and the app module starts).
                self.noMoreHandle = threading.Event()
@@ -722,7 +724,9 @@ class AppModule(appModuleHandler.AppModule):
                        # #40 (18.02): call the internal announcer in order to 
not hold up action handler queue.
                        # #51 (18.03/15.14-LTS): if this is called within two 
seconds (status time-out), status will be announced multiple times.
                        # 18.04: hopefully the error message won't be shown as 
this is supposed to run right after locating Studio handle.
-                       
splmisc._earlyMetadataAnnouncerInternal(splmisc.metadataStatus())
+                       # #82 (18.11/18.09.5-lts): wait until Studio window 
gets focused for the first time.
+                       self._initStudioWindowFocused.wait()
+                       
splmisc._earlyMetadataAnnouncerInternal(splmisc.metadataStatus(), startup=True)
 
        # Studio API heartbeat.
        # Although useful for library scan detection, it can be extended to 
cover other features.
@@ -743,6 +747,14 @@ class AppModule(appModuleHandler.AppModule):
        def SPLConPassthrough(self):
                return splconfig.SPLConfig["Advanced"]["SPLConPassthrough"]
 
+       # The only job of the below event is to notify others that Studio 
window has appeared for the first time.
+       # This is used to coordinate various status announcements.
+
+       def event_foreground(self, obj, nextHandler):
+               if not self._initStudioWindowFocused.isSet() and 
obj.windowClassName == "TStudioForm":
+                       self._initStudioWindowFocused.set()
+               nextHandler()
+
        def event_NVDAObject_init(self, obj):
                # From 0.01: previously focused item fires focus event when it 
shouldn't.
                if obj.windowClassName == "TListView" and obj.role in 
(controlTypes.ROLE_CHECKBOX, controlTypes.ROLE_LISTITEM) and 
controlTypes.STATE_FOCUSED not in obj.states:


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/4c681c05db0f/
Changeset:   4c681c05db0f
Branch:      None
User:        josephsl
Date:        2018-10-19 16:17:55+00:00
Summary:     Readme entry for metadata/status bar race condition fix. Fixes #82.

Affected #:  1 file

diff --git a/readme.md b/readme.md
index 9d87611..79ec613 100755
--- a/readme.md
+++ b/readme.md
@@ -195,6 +195,7 @@ If you are using Studio on a touchscreen computer running 
Windows 8 or later and
 
 * You can now obtain playlist snapshots (SPL Assistant, F8) and transcripts 
(SPL Assistant, Shift+F8) while a playlist is loaded but the first track isn't 
focused.
 * NVDA will no longer appear to do nothing or play error tones when trying to 
announce metadata streaming status when Studio starts if configured to do so.
+* If configured to announce metadata streaming status at startup, metadata 
streaming status announcement will no longer cut off announcements about status 
bar changes and vice versa.
 
 ## Version 18.10.2/18.09.4-LTS
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/e39e855e70ce/
Changeset:   e39e855e70ce
Branch:      stable
User:        josephsl
Date:        2018-10-22 01:42:49+00:00
Summary:     Metadata status announcement: announce it at startup if NVDA 
restarts while Studio is running and focused in places other than playlist 
viewer. Re #83.

Consider the following: user runs Studio, opens Options or other screens, then 
restarts NVDA. If NVDA is told to announce metadata streaming status at 
startup, with this condition active, NVDA won't announce this because it is 
waiting for foreground event on playlist viewer to be activated.
Thus see if NVDA has restarted while STudio is running, and if so, just 
announce current metadata status. This is done by asking NVDA for a foreground 
object, and if this is queried while NVDA is starting, it'll be None (not 
defined), as NVDA's notion of foreground is a global flag.
This will be backported to LTS18 and no readme entry is necessary.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index bbcfbe3..3335f31 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -724,8 +724,11 @@ class AppModule(appModuleHandler.AppModule):
                        # #40 (18.02): call the internal announcer in order to 
not hold up action handler queue.
                        # #51 (18.03/15.14-LTS): if this is called within two 
seconds (status time-out), status will be announced multiple times.
                        # 18.04: hopefully the error message won't be shown as 
this is supposed to run right after locating Studio handle.
-                       # #82 (18.11/18.09.5-lts): wait until Studio window 
gets focused for the first time.
-                       self._initStudioWindowFocused.wait()
+                       # #82 (18.11/18.09.5-lts): wait until Studio window 
shows up (foreground or background) for the first time.
+                       # #83: if NVDA restarts while Studio is running and 
foreground window is something other than playlist viewer, the below method 
won't work at all.
+                       # Thankfully, NVDA's notion of foreground window 
depends on a global variable, and if it is not set, this is a restart with 
Studio running, so just announce it.
+                       if api.getForegroundObject() is not None:
+                               self._initStudioWindowFocused.wait()
                        
splmisc._earlyMetadataAnnouncerInternal(splmisc.metadataStatus(), startup=True)
 
        # Studio API heartbeat.

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

--

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: