commit/StationPlaylist: 32 new changesets

  • From: commits-noreply@xxxxxxxxxxxxx
  • To: commits+int+220+6085746285340533186@xxxxxxxxxxxxxxxxxxxxx, nvda-addons-commits@xxxxxxxxxxxxx
  • Date: Thu, 21 Feb 2019 15:17:21 +0000 (UTC)

32 new commits in StationPlaylist:

https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/f4ffb1943a65/
Changeset:   f4ffb1943a65
Branch:      None
User:        josephsl
Date:        2019-01-19 04:09:43+00:00
Summary:     Config/reset: register a handler for reset action. Re #93.

Just like config save action, register a post reset handler that'll instruct 
SPLConfig.reset as to what to do (reload or complete reset).
This will be backported to lTS18.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index da36075..d716cf5 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -208,6 +208,7 @@ class ConfigHub(ChainMap):
                self.resetHappened = False
                # #73: listen to config save/reset actions from NVDA Core.
                config.post_configSave.register(self.handlePostConfigSave)
+               config.post_configReset.register(self.handlePostConfigReset)
                # 18.09: pilot features.
                self._pendingPilotFeaturesToggle = False
 
@@ -951,8 +952,9 @@ def closeConfig(splComponent):
        SPLConfig.splComponents.discard(splComponent)
        if len(SPLConfig.splComponents) == 0:
                SPLConfig.save()
-               # No need to keep config save registration alive.
+               # No need to keep config save/reset registration alive.
                
config.post_configSave.unregister(SPLConfig.handlePostConfigSave)
+               
config.post_configReset.unregister(SPLConfig.handlePostConfigReset)
                SPLConfig = None
                _SPLCache.clear()
                _SPLCache = None


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/0d9e149cfa75/
Changeset:   0d9e149cfa75
Branch:      None
User:        josephsl
Date:        2019-01-19 04:09:43+00:00
Summary:     Config reset: add config reset handler and a new comlete reset 
keyword to config.reset. Re #93.

ConfigObj now includes a dedicated handler for config reset action. Also, 
config.reset gains a new complete reset keyword that'll instruct the method as 
to what to do:
* True (defualt): reset all profiles, complete with copying default settings.
* False: just reload profiles.
The value of the keyword comes form factory defaults argument in config reset 
handler.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index d716cf5..2e2bcf0 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -493,7 +493,8 @@ class ConfigHub(ChainMap):
 
        # Reset config.
        # Profile indicates the name of the profile to be reset.
-       def reset(self, profile=None):
+       # #93 (19.03/18.09.7-LTS): complete reset indicates which action to be 
performed (reset if True, reload otherwise).
+       def reset(self, profile=None, completeReset=True):
                profilePool = [] if profile is not None else self.profiles
                if profile is not None:
                        if not self.profileExists(profile):
@@ -519,6 +520,10 @@ class ConfigHub(ChainMap):
                # #94 (19.02/18.09.7-LTS): notify other subsystems to use 
default settings, as timers and other routines might not see default settings.
                splactions.SPLActionProfileSwitched.notify()
 
+       def handlePostConfigReset(self, factoryDefaults=False):
+               # Tell the reset method above to perform appropriate action.
+               self.reset(completeReset=factoryDefaults)
+
        def profileIndexByName(self, name):
                # 8.0 optimization: Only traverse the profiles list if head 
(active profile) or tail does not yield profile name in question.
                if name == self.profiles[0].name:


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/18c925d1ce19/
Changeset:   18c925d1ce19
Branch:      None
User:        josephsl
Date:        2019-01-19 04:09:43+00:00
Summary:     Reload config: use a dedicated reload method for reloading 
profiles from disk. Re #93.

The key difference between reset and reload is that reload method will update 
live profiles via data stored on disk, whereas reset will start from scratch. 
To handle this case, use a separate reload method that'll do exactly that. As a 
result, reset method no longer takes complete reset keyword argument.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index 2e2bcf0..ac98f27 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -493,8 +493,7 @@ class ConfigHub(ChainMap):
 
        # Reset config.
        # Profile indicates the name of the profile to be reset.
-       # #93 (19.03/18.09.7-LTS): complete reset indicates which action to be 
performed (reset if True, reload otherwise).
-       def reset(self, profile=None, completeReset=True):
+       def reset(self, profile=None):
                profilePool = [] if profile is not None else self.profiles
                if profile is not None:
                        if not self.profileExists(profile):
@@ -520,9 +519,27 @@ class ConfigHub(ChainMap):
                # #94 (19.02/18.09.7-LTS): notify other subsystems to use 
default settings, as timers and other routines might not see default settings.
                splactions.SPLActionProfileSwitched.notify()
 
+       # Reload config.
+       # Go through profiles and reinitialize them.
+       def reload(self, profile=None):
+               profilePool = [] if profile is not None else self.profiles
+               if profile is not None:
+                       if not self.profileExists(profile):
+                               raise ValueError("The specified profile does 
not exist")
+                       else: profilePool.append(self.profileByName(profile))
+               for conf in profilePool:
+                       # Update the profile with data coming from the disk.
+                       # No need to cache the updated profile again as cached 
copy is same as the saved profile.
+                       # For now, whatever profile that was active will be 
used.
+                       savedProfile = self._unlockConfig(conf.filename, 
profileName=conf.name, prefill=conf.filename == SPLIni, validateNow=True).dict()
+                       conf.update(savedProfile)
+                       conf["ColumnAnnouncement"]["IncludedColumns"] = 
set(conf["ColumnAnnouncement"]["IncludedColumns"])
+                       # Just like reset method, if dealing with normal 
profile, transform playlist transcripts setting.
+                       if conf.filename == SPLIni:
+                               conf["PlaylistTranscripts"]["IncludedColumns"] 
= set(conf["PlaylistTranscripts"]["IncludedColumns"])
+
        def handlePostConfigReset(self, factoryDefaults=False):
-               # Tell the reset method above to perform appropriate action.
-               self.reset(completeReset=factoryDefaults)
+               self.reset() if factoryDefaults else self.reload()
 
        def profileIndexByName(self, name):
                # 8.0 optimization: Only traverse the profiles list if head 
(active profile) or tail does not yield profile name in question.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/ef002d8e3481/
Changeset:   ef002d8e3481
Branch:      None
User:        josephsl
Date:        2019-01-19 04:09:43+00:00
Summary:     Reload config: remove deprecated keys if dealign with normal 
profile, just like ConfigHub constructor. Re #93.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index ac98f27..239e320 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -537,6 +537,11 @@ class ConfigHub(ChainMap):
                        # Just like reset method, if dealing with normal 
profile, transform playlist transcripts setting.
                        if conf.filename == SPLIni:
                                conf["PlaylistTranscripts"]["IncludedColumns"] 
= set(conf["PlaylistTranscripts"]["IncludedColumns"])
+                               # Just like constructor, remove deprecated keys 
if any.
+                               for entry in SPLDeprecatedKeys:
+                                       section, key = entry.split("/")
+                                       if key in conf[section]: del 
conf[section][key]
+                               if "Update" in conf: del conf["Update"]
 
        def handlePostConfigReset(self, factoryDefaults=False):
                self.reset() if factoryDefaults else self.reload()


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/118586bd5788/
Changeset:   118586bd5788
Branch:      None
User:        josephsl
Date:        2019-01-19 04:09:43+00:00
Summary:     SPL actions: add config reset action. Re #94.

Add a dedicated extension point action for config reset scenario. This action 
will take factory defaults keyword that will cause handlers to reset settings 
to defaults or use settings from disk in response to this flag being true or 
false, respectively. Ultimately, handlers will call profile switch handler with 
special flags to instruct the latter to not perform certain actions that could 
disrupt an active broadcast (if there is one going on).

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splactions.py 
b/addon/appModules/splstudio/splactions.py
index 34dc723..38230e1 100644
--- a/addon/appModules/splstudio/splactions.py
+++ b/addon/appModules/splstudio/splactions.py
@@ -18,5 +18,7 @@ SPLActionSettingsLoaded = extensionPoints.Action()
 SPLActionProfileSwitched = extensionPoints.Action()
 # Settings are being saved.
 SPLActionSettingsSaved = extensionPoints.Action()
+# Settings are reloading or set to factory defaults.
+SPLActionSettingsReset = extensionPoints.Action()
 # Studio is terminating.
 SPLActionAppTerminating = extensionPoints.Action()


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/d87df7e4adbb/
Changeset:   d87df7e4adbb
Branch:      None
User:        josephsl
Date:        2019-01-19 04:09:44+00:00
Summary:     Reload config: use configobj.get_extra_values function. Re #94.

Similar to Config Hub constructor, configobj.get_extra_values function can be 
used to remove deprecated keys.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index 239e320..0a12bb5 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -538,9 +538,10 @@ class ConfigHub(ChainMap):
                        if conf.filename == SPLIni:
                                conf["PlaylistTranscripts"]["IncludedColumns"] 
= set(conf["PlaylistTranscripts"]["IncludedColumns"])
                                # Just like constructor, remove deprecated keys 
if any.
-                               for entry in SPLDeprecatedKeys:
-                                       section, key = entry.split("/")
-                                       if key in conf[section]: del 
conf[section][key]
+                               deprecatedKeys = get_extra_values(conf)
+                               for section, key in deprecatedKeys:
+                                       if section == (): continue
+                                       del conf[section[0]][key]
                                if "Update" in conf: del conf["Update"]
 
        def handlePostConfigReset(self, factoryDefaults=False):


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/8e6fa62a1efa/
Changeset:   8e6fa62a1efa
Branch:      None
User:        josephsl
Date:        2019-01-19 04:09:44+00:00
Summary:     Config: register and call config reset handlers when settings are 
reloaded or reset to defaults. Re #93.

Register for and call config reset handlers when add-on settings are reloaded 
from disk or reset to factory defaults. A separate handler is needed becasue 
although each handler will call profile switch handler, some of them need to 
perform specific actions (suchas not connecting to the new metadata servers 
whiel reloading settings from disk).

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index 0a12bb5..a2d69c7 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -517,7 +517,8 @@ class ConfigHub(ChainMap):
                # 18.08: don't forget to change type for Playlist 
Transcripts/included columns set.
                self["PlaylistTranscripts"]["IncludedColumns"] = 
set(_SPLDefaults["PlaylistTranscripts"]["IncludedColumns"])
                # #94 (19.02/18.09.7-LTS): notify other subsystems to use 
default settings, as timers and other routines might not see default settings.
-               splactions.SPLActionProfileSwitched.notify()
+               # The below action will ultimately call profile switch handler 
so subsystems can take appropriate action.
+               splactions.SPLActionSettingsReset.notify(factoryDefaults=True)
 
        # Reload config.
        # Go through profiles and reinitialize them.
@@ -543,6 +544,9 @@ class ConfigHub(ChainMap):
                                        if section == (): continue
                                        del conf[section[0]][key]
                                if "Update" in conf: del conf["Update"]
+               # #94 (19.02/18.09.7-LTS): same as reset method but settings 
from disk will be applied.
+               splactions.SPLActionSettingsReset.notify(factoryDefaults=False)
+
 
        def handlePostConfigReset(self, factoryDefaults=False):
                self.reset() if factoryDefaults else self.reload()


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/b70f83e49cc7/
Changeset:   b70f83e49cc7
Branch:      None
User:        josephsl
Date:        2019-01-19 04:09:44+00:00
Summary:     Studio app module/microphone alarm: turn off mic alarm/interval 
timer when settings are reloaded or reset to defaults. Re #93.

An older solution merely called profile switch handler to tell the microphone 
alarm/interval timer to stop when configuration was reset to defaults. This 
time, no matter what happens (reload or reset), microphone alarm/interval timer 
will be stopped and restarted when warranted.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index 5c10945..0f38895 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -645,7 +645,9 @@ class AppModule(appModuleHandler.AppModule):
                except:
                        pass
                # #40 (17.12): react to profile switches.
+               # #94 (19.03/18.09.7-LTS): also listen to profile reset action.
                
splactions.SPLActionProfileSwitched.register(self.actionProfileSwitched)
+               
splactions.SPLActionSettingsReset.register(self.actionSettingsReset)
                debugOutput("loading add-on settings")
                splconfig.initialize()
                # Announce status changes while using other programs.
@@ -969,6 +971,14 @@ class AppModule(appModuleHandler.AppModule):
                # #38 (17.11/15.10-LTS): obtain microphone alarm status.
                if splbase._SPLWin is not None: 
self.doExtraAction(self.sayStatus(2, statusText=True))
 
+       def actionSettingsReset(self, factoryDefaults=False):
+               # Regardless of factory defaults flag, turn off microphone 
alarm timers.
+               if micAlarmT is not None: micAlarmT.cancel()
+               micAlarmT = None
+               if micAlarmT2 is not None: micAlarmT2.Stop()
+               micAlarmT2 = None
+               if splbase._SPLWin is not None: 
self.doExtraAction(self.sayStatus(2, statusText=True))
+
        # Alarm announcement: Alarm notification via beeps, speech or both.
        def alarmAnnounce(self, timeText, tone, duration, intro=False):
                if splconfig.SPLConfig["General"]["AlarmAnnounce"] in ("beep", 
"both"):
@@ -1034,6 +1044,7 @@ class AppModule(appModuleHandler.AppModule):
                # Also allows profile switch handler to unregister itself as 
well.
                # At the same time, close any opened SPL add-on dialogs.
                
splactions.SPLActionProfileSwitched.unregister(self.actionProfileSwitched)
+               
splactions.SPLActionSettingsReset.unregister(self.actionSettingsReset)
                splactions.SPLActionAppTerminating.notify()
                debugOutput("closing microphone alarm/interval thread")
                global micAlarmT, micAlarmT2


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/8b9d94feb77d/
Changeset:   8b9d94feb77d
Branch:      None
User:        josephsl
Date:        2019-01-19 04:09:44+00:00
Summary:     Metadata streaming status: do not run metadata connector when 
settings are reloaded or reset to defaults. Re #93.

A possible issue when reloading or resetting settings is the fact that metadata 
connector might be run, causing servers to be closed. This won't happen anymore 
in order to keep the broadcast/metadata streaming going.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splmisc.py 
b/addon/appModules/splstudio/splmisc.py
index a81e47a..464d8b3 100755
--- a/addon/appModules/splstudio/splmisc.py
+++ b/addon/appModules/splstudio/splmisc.py
@@ -442,7 +442,8 @@ _delayMetadataAction = False
 
 # Connect and/or announce metadata status when broadcast profile switching 
occurs.
 # The config dialog active flag is only invoked when being notified while 
add-on settings dialog is focused.
-def metadata_actionProfileSwitched(configDialogActive=False):
+# Settings reset flag is used to prevent metadata server connection when 
settings are reloaded from disk or reset to defaults.
+def metadata_actionProfileSwitched(configDialogActive=False, 
settingsReset=False):
        from . import splconfig
        # Only connect if add-on settings is active in order to avoid wasting 
thread running time.
        if configDialogActive:
@@ -464,13 +465,19 @@ def 
metadata_actionProfileSwitched(configDialogActive=False):
                if not handle:
                        _delayMetadataAction = True
                        return
-               metadataConnector()
+               if not settingsReset: metadataConnector()
                # #47 (18.02/15.13-LTS): call the internal announcer via 
wx.CallLater in order to not hold up action handler queue.
                # #51 (18.03/15.14-LTS): wx.CallLater isn't enough - there must 
be ability to cancel it.
                _earlyMetadataAnnouncerInternal(metadataStatus())
 
 splactions.SPLActionProfileSwitched.register(metadata_actionProfileSwitched)
 
+# The only job of this action handler is to call profile switch handler above 
with special flags.
+def metadata_actionSettingsReset(factoryDefaults=False):
+       metadata_actionProfileSwitched(settingsReset=True)
+
+splactions.SPLActionSettingsReset.register(metadata_actionSettingsReset)
+
 # Playlist transcripts processor
 # Takes a snapshot of the active playlist (a 2-D array) and transforms it into 
various formats.
 # To account for expansions, let a master function call different formatters 
based on output format.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/49d52e35c74a/
Changeset:   49d52e35c74a
Branch:      None
User:        josephsl
Date:        2019-01-23 16:18:41+00:00
Summary:     Studio app module: microphone alarm threads/timers are global 
variables.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index 0f38895..c3bcda8 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -972,6 +972,7 @@ class AppModule(appModuleHandler.AppModule):
                if splbase._SPLWin is not None: 
self.doExtraAction(self.sayStatus(2, statusText=True))
 
        def actionSettingsReset(self, factoryDefaults=False):
+               global micAlarmT, micAlarmT2
                # Regardless of factory defaults flag, turn off microphone 
alarm timers.
                if micAlarmT is not None: micAlarmT.cancel()
                micAlarmT = None


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/8af3b5be6c62/
Changeset:   8af3b5be6c62
Branch:      None
User:        josephsl
Date:        2019-01-23 16:49:59+00:00
Summary:     Config: preserve pilot features flag when reloading or reseting 
settings. Re #94.

When reloading or resetting settings with changes to pilot features flag, the 
changed flag will be overwritten by what's coming from disk or default 
settings, respectively. Thus preserve this flag if possible.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index a2d69c7..8ce0571 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -500,6 +500,8 @@ class ConfigHub(ChainMap):
                                raise ValueError("The specified profile does 
not exist")
                        else: profilePool.append(self.profileByName(profile))
                for conf in profilePool:
+                       # Preserve pilot feature flag.
+                       pilotFeatures = conf["Advanced"]["PilotFeatures"] if 
conf.name == defaultProfileName else None
                        # Retrieve the profile path, as ConfigObj.reset 
nullifies it.
                        profilePath = conf.filename
                        conf.reset()
@@ -508,6 +510,7 @@ class ConfigHub(ChainMap):
                        copyProfile(_SPLDefaults, conf, complete=profilePath == 
SPLIni)
                        # Convert certain settings to a different format.
                        conf["ColumnAnnouncement"]["IncludedColumns"] = 
set(_SPLDefaults["ColumnAnnouncement"]["IncludedColumns"])
+                       if conf.name == defaultProfileName: 
conf["Advanced"]["PilotFeatures"] = pilotFeatures
                # Switch back to normal profile via a custom variant of swap 
routine.
                if self.profiles[0].name != defaultProfileName:
                        npIndex = self.profileIndexByName(defaultProfileName)
@@ -530,14 +533,17 @@ class ConfigHub(ChainMap):
                        else: profilePool.append(self.profileByName(profile))
                for conf in profilePool:
                        # Update the profile with data coming from the disk.
+                       # The only exception is pilot features flag, with live 
setting (or settings change) taking precedence.
                        # No need to cache the updated profile again as cached 
copy is same as the saved profile.
                        # For now, whatever profile that was active will be 
used.
+                       pilotFeatures = conf["Advanced"]["PilotFeatures"] if 
conf.name == defaultProfileName else None
                        savedProfile = self._unlockConfig(conf.filename, 
profileName=conf.name, prefill=conf.filename == SPLIni, validateNow=True).dict()
                        conf.update(savedProfile)
                        conf["ColumnAnnouncement"]["IncludedColumns"] = 
set(conf["ColumnAnnouncement"]["IncludedColumns"])
-                       # Just like reset method, if dealing with normal 
profile, transform playlist transcripts setting.
+                       # Just like reset method, if dealing with normal 
profile, transform playlist transcripts setting along with loading current 
pilot features flag.
                        if conf.filename == SPLIni:
                                conf["PlaylistTranscripts"]["IncludedColumns"] 
= set(conf["PlaylistTranscripts"]["IncludedColumns"])
+                               conf["Advanced"]["PilotFeatures"] = 
pilotFeatures
                                # Just like constructor, remove deprecated keys 
if any.
                                deprecatedKeys = get_extra_values(conf)
                                for section, key in deprecatedKeys:
@@ -547,7 +553,6 @@ class ConfigHub(ChainMap):
                # #94 (19.02/18.09.7-LTS): same as reset method but settings 
from disk will be applied.
                splactions.SPLActionSettingsReset.notify(factoryDefaults=False)
 
-
        def handlePostConfigReset(self, factoryDefaults=False):
                self.reset() if factoryDefaults else self.reload()
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/fe15921d329f/
Changeset:   fe15921d329f
Branch:      None
User:        josephsl
Date:        2019-01-24 17:48:28+00:00
Summary:     Config reset: prompt for confirmation if instant and/or 
tiome-based profile is active. Re #94.

It might be possible that a reset takes place while instant and/or time-based 
profile is active. If this happens without warning, trigger state will become 
unpredictable (timers still running, switch flags showing wrong values, etc.). 
Therefore prompt for confirmation before resetting add-on settings to defaults 
if the above condition is true (won't affect reload because reload method will 
let the currently actie profile run).

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index 8ce0571..3ef881a 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -554,7 +554,30 @@ class ConfigHub(ChainMap):
                splactions.SPLActionSettingsReset.notify(factoryDefaults=False)
 
        def handlePostConfigReset(self, factoryDefaults=False):
-               self.reset() if factoryDefaults else self.reload()
+               def factoryResetInternal():
+                       if self._switchProfileFlags:
+                               if gui.messageBox(
+                                       # Translators: Message displayed when 
attempting to reset Studio add-on settings while an instant switch or 
time-based profile is active.
+                                       _("An instant switch or time-based 
profile is active. Resetting Studio add-on settings means normal profile will 
become active and switch profile settings will be left in unpredictable state. 
Are you sure you wish to reset Studio add-on settings to factory defaults?"),
+                                       # Translators: The title of the 
confirmation dialog for Studio add-on settings reset.
+                                       _("SPL Studio add-on reset"),
+                                       wx.YES_NO | wx.NO_DEFAULT | 
wx.ICON_QUESTION
+                               ) == wx.NO:
+                                       return
+                               # End all triggers if needed, beginning with 
time-based profile.
+                               global triggerTimer, _SPLTriggerEndTimer, 
_triggerProfileActive
+                               _triggerProfileActive = False
+                               if _SPLTriggerEndTimer is not None and 
_SPLTriggerEndTimer.IsRunning():
+                                       _SPLTriggerEndTimer.Stop()
+                                       _SPLTriggerEndTimer = None
+                               if triggerTimer is not None and 
triggerTimer.IsRunning():
+                                       triggerTimer.Stop()
+                                       triggerTimer = None
+                               self.prevProfile = None
+                               self.switchHistory = [None]
+                               self._switchProfileFlags = 0
+                       self.reset()
+               self.reload() if not factoryDefaults else 
wx.CallAfter(factoryResetInternal)
 
        def profileIndexByName(self, name):
                # 8.0 optimization: Only traverse the profiles list if head 
(active profile) or tail does not yield profile name in question.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/32ebeb725f49/
Changeset:   32ebeb725f49
Branch:      None
User:        josephsl
Date:        2019-01-25 16:39:08+00:00
Summary:     Merge branch 'stable' of 
https://bitbucket.org/nvdaaddonteam/stationPlaylist

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfui.py 
b/addon/appModules/splstudio/splconfui.py
index 1fe792e..abbdfc0 100755
--- a/addon/appModules/splstudio/splconfui.py
+++ b/addon/appModules/splstudio/splconfui.py
@@ -1527,11 +1527,32 @@ class ResetDialog(wx.Dialog):
                        parent.Enable()
                        self.Destroy()
                        return
+               # #96 (19.02/18.09.7-LTS): ask once more if switch profiles are 
active or trigger timer is running.
+               if splconfig.SPLConfig._switchProfileFlags or 
splconfig.triggerTimer is not None and splconfig.triggerTimer.IsRunning():
+                       if gui.messageBox(
+                               # Translators: Message displayed when 
attempting to reset Studio add-on settings while an instant switch or 
time-based profile is active.
+                               _("An instant switch or time-based profile is 
active. Resetting Studio add-on settings means normal profile will become 
active and switch profile settings will be left in unpredictable state. Are you 
sure you wish to reset Studio add-on settings to factory defaults?"),
+                               # Translators: The title of the confirmation 
dialog for Studio add-on settings reset.
+                               _("SPL Studio add-on reset"),
+                               wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION
+                       ) == wx.NO:
+                               return
                import threading, sys, globalVars
                # Reset all profiles.
                # LTS: Only a priveleged thread should do this, otherwise 
unexpected things may happen.
                with threading.Lock() as resetting:
                        global _configDialogOpened
+                       # #96 (19.02/18.09.7-LTS): remove any switch profile 
flags.
+                       splconfig._triggerProfileActive = False
+                       if splconfig._SPLTriggerEndTimer is not None and 
splconfig._SPLTriggerEndTimer.IsRunning():
+                               splconfig._SPLTriggerEndTimer.Stop()
+                               splconfig._SPLTriggerEndTimer = None
+                       if splconfig.triggerTimer is not None and 
splconfig.triggerTimer.IsRunning():
+                               splconfig.triggerTimer.Stop()
+                               splconfig.triggerTimer = None
+                       splconfig.SPLConfig.prevProfile = None
+                       splconfig.SPLConfig.switchHistory = [None]
+                       splconfig.SPLConfig._switchProfileFlags = 0
                        splconfig.SPLConfig.reset()
                        if self.resetInstantProfileCheckbox.Value:
                                if splconfig.SPLConfig.instantSwitch is not 
None:


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/44eb2cb3a97e/
Changeset:   44eb2cb3a97e
Branch:      None
User:        josephsl
Date:        2019-01-25 18:18:16+00:00
Summary:     Merge branch 'stable'

Affected #:  2 files

diff --git a/buildVars.py b/buildVars.py
index 4b9dd06..885d3b4 100755
--- a/buildVars.py
+++ b/buildVars.py
@@ -20,7 +20,7 @@ addon_info = {
        "addon_description" : _("""Enhances support for StationPlaylist Studio.
 In addition, adds global commands for the studio from everywhere."""),
        # version
-       "addon_version" : "19.01",
+       "addon_version" : "19.02",
        # Author(s)
        "addon_author" : u"Geoff Shang, Joseph Lee and other contributors",
        # URL for the add-on documentation support

diff --git a/readme.md b/readme.md
index 685628c..0be0327 100755
--- a/readme.md
+++ b/readme.md
@@ -196,6 +196,7 @@ If you are using Studio on a touchscreen computer running 
Windows 8 or later and
 
 * Removed standalone add-on update check feature, including update check 
command from SPL Assistant (Control+Shift+U) and add-on update check options 
from add-on settings. Add-on update check is now performed by Add-on Updater.
 * NVDA will no longer appear to do nothing or play error tones when microphone 
active interval is set, used to remind broadcasters that microphone is active 
with periodic beeps.
+* When resetting add-on settings from add-on settings dialog/reset panel, NVDA 
will ask once more if an instant switch profile or a time-based profile is 
active.
 * After resetting Studio add-on settings, NvDA will turn off microphone alarm 
timer and announce metadata streaming status, similar to after switching 
between broadcast profiles.
 
 ## Version 19.01.1


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/7a95968e4edc/
Changeset:   7a95968e4edc
Branch:      None
User:        josephsl
Date:        2019-01-25 21:57:07+00:00
Summary:     Reset config: move profile switch confirmation to the actual 
config module and react to possible exceptions. Re #96.

Because config reset handler will check for profile switch flags and will call 
reset method anyway, remove the confirmation message from config dialog/reset 
panel/reset dialog.
As a way of communicating confirmation failure, the internal function used to 
check profile switch flags and others will raise a runtime exception, which is 
then caught by the UI module and cause the rest of the reset routine to not be 
executed. Although not quite elegant, this change allows reset handler to take 
care of some important details about config profile switch flags.
Also, the internal function to be called form reset handler will take a boolean 
flag that specifies what to do when users say 'no' when confirmation message 
appears:
* Return nothing if this is done from NVDA menu/keyboard.
* Raise runtime error if carried out from add-on settings, and set to True when 
called from add-on settings dialog.

Affected #:  2 files

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index 3ef881a..e7c9a8c 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -553,9 +553,13 @@ class ConfigHub(ChainMap):
                # #94 (19.02/18.09.7-LTS): same as reset method but settings 
from disk will be applied.
                splactions.SPLActionSettingsReset.notify(factoryDefaults=False)
 
-       def handlePostConfigReset(self, factoryDefaults=False):
-               def factoryResetInternal():
-                       if self._switchProfileFlags:
+       def handlePostConfigReset(self, factoryDefaults=False, 
resetViaConfigDialog=False):
+               def factoryResetInternal(resetViaConfigDialog=False):
+                       # An internal function to perform confirmation message 
presentation in order to avoid freezes.
+                       # Also, if done from add-on settings dialog, 
communicate failure through an exception.
+                       global triggerTimer, _SPLTriggerEndTimer, 
_triggerProfileActive
+                       # #96 (19.02/18.09.7-LTS): ask once more if switch 
profiles are active or trigger timer is running.
+                       if self._switchProfileFlags or triggerTimer is not None 
and triggerTimer.IsRunning():
                                if gui.messageBox(
                                        # Translators: Message displayed when 
attempting to reset Studio add-on settings while an instant switch or 
time-based profile is active.
                                        _("An instant switch or time-based 
profile is active. Resetting Studio add-on settings means normal profile will 
become active and switch profile settings will be left in unpredictable state. 
Are you sure you wish to reset Studio add-on settings to factory defaults?"),
@@ -563,9 +567,9 @@ class ConfigHub(ChainMap):
                                        _("SPL Studio add-on reset"),
                                        wx.YES_NO | wx.NO_DEFAULT | 
wx.ICON_QUESTION
                                ) == wx.NO:
-                                       return
+                                       if not resetViaConfigDialog: return
+                                       else: raise RuntimeError("Instant 
switch and/or time-based profile must remain active, reset cannot proceed")
                                # End all triggers if needed, beginning with 
time-based profile.
-                               global triggerTimer, _SPLTriggerEndTimer, 
_triggerProfileActive
                                _triggerProfileActive = False
                                if _SPLTriggerEndTimer is not None and 
_SPLTriggerEndTimer.IsRunning():
                                        _SPLTriggerEndTimer.Stop()
@@ -577,7 +581,10 @@ class ConfigHub(ChainMap):
                                self.switchHistory = [None]
                                self._switchProfileFlags = 0
                        self.reset()
-               self.reload() if not factoryDefaults else 
wx.CallAfter(factoryResetInternal)
+               if not factoryDefaults: self.reload()
+               else:
+                       # Because gui.messageBox freezes if not done from main 
thread, queue it if and only if this is done from the keyboard or via NVDA menu.
+                       factoryResetInternal(True) if resetViaConfigDialog else 
wx.CallAfter(factoryResetInternal)
 
        def profileIndexByName(self, name):
                # 8.0 optimization: Only traverse the profiles list if head 
(active profile) or tail does not yield profile name in question.

diff --git a/addon/appModules/splstudio/splconfui.py 
b/addon/appModules/splstudio/splconfui.py
index abbdfc0..38744ab 100755
--- a/addon/appModules/splstudio/splconfui.py
+++ b/addon/appModules/splstudio/splconfui.py
@@ -1527,33 +1527,17 @@ class ResetDialog(wx.Dialog):
                        parent.Enable()
                        self.Destroy()
                        return
-               # #96 (19.02/18.09.7-LTS): ask once more if switch profiles are 
active or trigger timer is running.
-               if splconfig.SPLConfig._switchProfileFlags or 
splconfig.triggerTimer is not None and splconfig.triggerTimer.IsRunning():
-                       if gui.messageBox(
-                               # Translators: Message displayed when 
attempting to reset Studio add-on settings while an instant switch or 
time-based profile is active.
-                               _("An instant switch or time-based profile is 
active. Resetting Studio add-on settings means normal profile will become 
active and switch profile settings will be left in unpredictable state. Are you 
sure you wish to reset Studio add-on settings to factory defaults?"),
-                               # Translators: The title of the confirmation 
dialog for Studio add-on settings reset.
-                               _("SPL Studio add-on reset"),
-                               wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION
-                       ) == wx.NO:
-                               return
                import threading, sys, globalVars
                # Reset all profiles.
                # LTS: Only a priveleged thread should do this, otherwise 
unexpected things may happen.
                with threading.Lock() as resetting:
                        global _configDialogOpened
-                       # #96 (19.02/18.09.7-LTS): remove any switch profile 
flags.
-                       splconfig._triggerProfileActive = False
-                       if splconfig._SPLTriggerEndTimer is not None and 
splconfig._SPLTriggerEndTimer.IsRunning():
-                               splconfig._SPLTriggerEndTimer.Stop()
-                               splconfig._SPLTriggerEndTimer = None
-                       if splconfig.triggerTimer is not None and 
splconfig.triggerTimer.IsRunning():
-                               splconfig.triggerTimer.Stop()
-                               splconfig.triggerTimer = None
-                       splconfig.SPLConfig.prevProfile = None
-                       splconfig.SPLConfig.switchHistory = [None]
-                       splconfig.SPLConfig._switchProfileFlags = 0
-                       splconfig.SPLConfig.reset()
+                       # #96 (19.03/18.09.7-LTS): call the reset handler 
instead of reset method directly so the additional confirmation message can be 
shown.
+                       # Without an exception, reset will continue.
+                       try:
+                               
splconfig.SPLConfig.handlePostConfigReset(factoryDefaults=True, 
resetViaConfigDialog=True)
+                       except RuntimeError:
+                               return
                        if self.resetInstantProfileCheckbox.Value:
                                if splconfig.SPLConfig.instantSwitch is not 
None:
                                        splconfig.SPLConfig.instantSwitch = None


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/e12d818a9552/
Changeset:   e12d818a9552
Branch:      None
User:        josephsl
Date:        2019-01-25 22:10:45+00:00
Summary:     Readme entry on config reset action, also fixes typo for config 
save action work from 18.09. Fixes #93.

Affected #:  1 file

diff --git a/readme.md b/readme.md
index 0be0327..0097898 100755
--- a/readme.md
+++ b/readme.md
@@ -192,6 +192,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 19.03/18.09.7-LTS
+
+* Pressing Control+NVDA+R to reload saved settings will now also reload Studio 
add-on settings, and pressing this command three times will also reset Studio 
add-on settings to defaults along with NVDA settings.
+
 ## Version 19.02
 
 * Removed standalone add-on update check feature, including update check 
command from SPL Assistant (Control+Shift+U) and add-on update check options 
from add-on settings. Add-on update check is now performed by Add-on Updater.
@@ -258,7 +262,7 @@ Version 18.09.x is the last release series to support 
Studio 5.10 and based on o
 * 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).
+* Pressing Control+NVDA+C to save settings will now also save Studio add-on 
settings (requires NVDA 2018.3).
 
 ## Version 18.08.2
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/15ff2ef00255/
Changeset:   15ff2ef00255
Branch:      None
User:        josephsl
Date:        2019-01-26 05:46:46+00:00
Summary:     Reset config: change question to warning icon when asking for 
confirmation while instant switch and/or time-based profile is active. Re #96.

Instead of a question (no sound at all), use a warning icon (with sound).

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index e7c9a8c..dd2c901 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -565,7 +565,7 @@ class ConfigHub(ChainMap):
                                        _("An instant switch or time-based 
profile is active. Resetting Studio add-on settings means normal profile will 
become active and switch profile settings will be left in unpredictable state. 
Are you sure you wish to reset Studio add-on settings to factory defaults?"),
                                        # Translators: The title of the 
confirmation dialog for Studio add-on settings reset.
                                        _("SPL Studio add-on reset"),
-                                       wx.YES_NO | wx.NO_DEFAULT | 
wx.ICON_QUESTION
+                                       wx.YES_NO | wx.NO_DEFAULT | 
wx.ICON_WARNING
                                ) == wx.NO:
                                        if not resetViaConfigDialog: return
                                        else: raise RuntimeError("Instant 
switch and/or time-based profile must remain active, reset cannot proceed")


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/6322901325a5/
Changeset:   6322901325a5
Branch:      None
User:        josephsl
Date:        2019-01-27 07:15:17+00:00
Summary:     threading.Thread: isAlive -> is_alive.

CPython issue 35283: Python 3.7 and 3.8 will present a pending/official 
deprecation warning for threading.Thread.isAlive() function because dummy 
thread comes with incomplete implementation for isAlive method. This does not 
affect threading.Thread.is_alive() method which still works across dummy 
threads and Python threads.
Therefore calls to Thread.isAlive has been converted to Threading.is_alive. 
This affects library scan monitor and background encoder monitorin Studio 
add-on (there's really no need to document this).
This must be backported to LTS18 because of consistency between Python 2 and 3.

Affected #:  2 files

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index c3bcda8..5bfd86d 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -1489,7 +1489,7 @@ class AppModule(appModuleHandler.AppModule):
        # Report library scan (number of items scanned) in the background.
        def monitorLibraryScan(self):
                global libScanT
-               if libScanT and libScanT.isAlive() and 
api.getForegroundObject().windowClassName == "TTrackInsertForm":
+               if libScanT and libScanT.is_alive() and 
api.getForegroundObject().windowClassName == "TTrackInsertForm":
                        return
                if splbase.studioAPI(1, 32) < 0:
                        self.libraryScanning = False
@@ -1846,7 +1846,7 @@ class AppModule(appModuleHandler.AppModule):
        def script_escape(self, gesture):
                gesture.send()
                if self.libraryScanning:
-                       if not libScanT or (libScanT and not 
libScanT.isAlive()):
+                       if not libScanT or (libScanT and not 
libScanT.is_alive()):
                                self.monitorLibraryScan()
 
        # The developer would like to get feedback from you.

diff --git a/addon/globalPlugins/splUtils/encoders.py 
b/addon/globalPlugins/splUtils/encoders.py
index 41919da..686cf37 100755
--- a/addon/globalPlugins/splUtils/encoders.py
+++ b/addon/globalPlugins/splUtils/encoders.py
@@ -343,7 +343,7 @@ class Encoder(IAccessible):
                        self._setFlags(self.encoderId, not 
self.backgroundMonitor, SPLBackgroundMonitor, "BackgroundMonitor")
                        if self.backgroundMonitor:
                                try:
-                                       monitoring = 
self.threadPool[self.IAccessibleChildID].isAlive()
+                                       monitoring = 
self.threadPool[self.IAccessibleChildID].is_alive()
                                except KeyError:
                                        monitoring = False
                                if not monitoring: self.connectStart()


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/0279e3e934c0/
Changeset:   0279e3e934c0
Branch:      None
User:        josephsl
Date:        2019-01-28 04:52:25+00:00
Summary:     Config: remove duplicated import of add-on handler used when 
checking if pilot features can be used.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index dd2c901..2b0d075 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -674,7 +674,6 @@ class ConfigHub(ChainMap):
        def canEnablePilotFeatures(self):
                if self._pendingPilotFeaturesToggle:
                        return False
-               import addonHandler
                SPLAddonManifest = 
addonHandler.Addon(os.path.join(os.path.dirname(__file__), "..", "..")).manifest
                return SPLAddonManifest['updateChannel'] == "dev"
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/60b5f63c8d41/
Changeset:   60b5f63c8d41
Branch:      None
User:        josephsl
Date:        2019-01-28 05:06:18+00:00
Summary:     Test drive: add a new property that returns if the current build 
is a development build.

Sometimes, a feature may need to be tested by development branch users for a 
while (not just pilot features users). Thus introduce a new property in Config 
Hub that'll check if the current branch is a dev build or not, used to shield 
new features from old behavior.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index 2b0d075..c93fba2 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -670,14 +670,18 @@ class ConfigHub(ChainMap):
                if showSwitchIndex: return current
 
        # 18.09: determine if pilot features can be used.
+       # 19.03: split into two functions: the test drive checker function and 
a dev channel checker.
+       # There are times when a feature must be tested by more users without 
introducing regressions to stable branch users.
        @property
-       def canEnablePilotFeatures(self):
-               if self._pendingPilotFeaturesToggle:
-                       return False
+       def isDevVersion(self):
                SPLAddonManifest = 
addonHandler.Addon(os.path.join(os.path.dirname(__file__), "..", "..")).manifest
                return SPLAddonManifest['updateChannel'] == "dev"
 
        @property
+       def canEnablePilotFeatures(self):
+               return self.isDevVersion and not 
self._pendingPilotFeaturesToggle
+
+       @property
        def testDrive(self):
                return self.canEnablePilotFeatures and 
self["Advanced"]["PilotFeatures"]
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/08ea5c7c3b55/
Changeset:   08ea5c7c3b55
Branch:      None
User:        josephsl
Date:        2019-02-01 15:31:54+00:00
Summary:     Merge branch 'stable' of 
https://bitbucket.org/nvdaaddonteam/stationPlaylist

Affected #:  17 files

diff --git a/addon/doc/de/readme.md b/addon/doc/de/readme.md
index 5a2a801..311e6a9 100644
--- a/addon/doc/de/readme.md
+++ b/addon/doc/de/readme.md
@@ -25,14 +25,12 @@ WICHTIGE HINWEISE:
 * Ab 2018 werden die [Änderungsnotizen älterer SPL-Erweiterungsversionen][5]
   auf Github zu finden sein. Diese Readme-Version listet Änderungen ab
   Version 7.0 (ab 2016) auf.
-* Bestimmte Features (insbesondere Erweiterungsaktualisierungen)
-  funktionieren unter bestimmten Bedingungen nicht. Dies kann beispielsweise
-  vorkommen, wenn die NVDA im abgesicherten Modus ausgeführt wird.
+* Certain add-on features won't work under some conditions, including
+  running NVDA in secure mode.
 * Aufgrund technischer Einschränkungen können Sie diese Erweiterung nicht
   auf der Windows-Store-Version von NVDA installieren oder verwenden.
-* Die Update-Funktion, die mit dieser Erweiterung kommt, wird 2019 nicht
-  mehr verfügbar sein. Verwenden Sie den Addon-Updater, um diese Erweiterung
-  zu aktualisieren.
+* Add-on update feature that comes with this add-on has been removed. Use
+  Add-on Updater to update this add-on.
 
 ## Tastenkürzel
 
@@ -186,8 +184,6 @@ Folgende Befehle stehen zur Verfügung:
   in...).
 * T: Cart-Bearbeitungs-/Einfügemodus ein und ausschalten.
 * U: Studiozeit.
-* STRG+Umschalt+U: überprüft, ob Aktualisierungen für die Erweiterung
-  vorhanden sind. (Wird 2019 entfernt.)
 * W: Wetter und Temperatur, wenn konfiguriert.
 * Y: Status der Playlist-Änderungen.
 * 1 bis 0 (bis 6 für Studio 5.0x): sagt den Spalteninhalt für eine bestimmte
@@ -334,6 +330,22 @@ 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 19.02
+
+* Removed standalone add-on update check feature, including update check
+  command from SPL Assistant (Control+Shift+U) and add-on update check
+  options from add-on settings. Add-on update check is now performed by
+  Add-on Updater.
+* NVDA will no longer appear to do nothing or play error tones when
+  microphone active interval is set, used to remind broadcasters that
+  microphone is active with periodic beeps.
+* When resetting add-on settings from add-on settings dialog/reset panel,
+  NVDA will ask once more if an instant switch profile or a time-based
+  profile is active.
+* After resetting Studio add-on settings, NvDA will turn off microphone
+  alarm timer and announce metadata streaming status, similar to after
+  switching between broadcast profiles.
+
 ## Version 19.01.1
 
 * NVDA will no longer announce "monitoring library scan" after closing

diff --git a/addon/doc/es/readme.md b/addon/doc/es/readme.md
index d6d938f..7cf81c2 100644
--- a/addon/doc/es/readme.md
+++ b/addon/doc/es/readme.md
@@ -25,13 +25,12 @@ NOTAS IMPORTANTES:
 * A partir de 2018, los [registros de cambios para versiones antiguas][5] se
   encontrarán en GitHub. Este léeme del complemento listará cambios desde la
   versión 7.0 (2016 en adelante).
-* Ciertas características del complemento (especialmente la actualización)
-  no funcionarán bajo algunas condiciones, incluyendo la ejecución de NVDA
-  en modo seguro.
+* Ciertas características del complemento no funcionarán bajo algunas
+  condiciones, incluyendo la ejecución de NVDA en modo seguro.
 * Debido a limitaciones técnicas, no puedes instalar ni utilizar este
   complemento en la versión de Windows Store de NVDA.
-* La característica actualizar complemento que viene con este complemento no
-  estará ya en 2019. Utiliza Add-on Updater para actualizarlo.
+* Se ha eliminado la característica actualizar complemento que viene con
+  este complemento. Utiliza Add-on Updater para actualizarlo.
 
 ## Teclas de atajo
 
@@ -188,8 +187,6 @@ Las órdenes disponibles son:
   (comienzos de pistas).
 * T: modo editar/insertar Cart activado/desactivado.
 * U: Studio al día.
-* Control+Shift+U: busca actualizaciones del complemento (se elimina en
-  2019).
 * W: clima y temperatura si se configuró.
 * Y: Estado modificado de lista de reproducción.
 * 1 hasta 0 (6 para Studio 5.0x): anuncia el contenido de la columna para
@@ -329,6 +326,25 @@ realizar algunas órdenes de Studio desde la pantalla 
táctil. Primero utiliza
 un toque con tres dedos para cambiar a modo SPL, entonces utiliza las
 órdenes táctiles listadas arriba para llevar a cabo tareas.
 
+## Versión 19.02
+
+* Se ha eliminado la función de comprobación de actualizaciones incorporada
+  en el complemento, incluyendo la orden para buscar actualizaciones en el
+  asistente de SPL (ctrl+shift+u) y las opciones de búsqueda de
+  actualizaciones del complemento en los ajustes. Ahora es Add-on Updater el
+  encargado de buscar actualizaciones.
+* NVDA ya no parecerá no hacer nada o no reproducirá tonos de error cuando
+  se configure un intervalo de activación del micrófono, usado para recordar
+  a los locutores que el micrófono está activo emitiendo pitidos periódicos.
+* Cuando se restablecen los ajustes del complemento desde el diálogo de
+  configuración / panel de restablecimiento, NVDA preguntará una vez más si
+  se encuentra activo un perfil de cambio instantáneo o un perfil basado en
+  tiempo.
+* Tras restablecer los ajustes del complemento de Studio, NVDA desactivará
+  el temporizador de la alarma del micrófono y el anuncio del estado de los
+  metadatos del flujo, al igual que ocurre al cambiar entre perfiles de
+  emisión.
+
 ## Versión 19.01.1
 
 * NVDA ya no anunciará "Monitorizando escaneo de biblioteca" tras cerrar

diff --git a/addon/doc/fr/readme.md b/addon/doc/fr/readme.md
index d8fe798..b47f521 100644
--- a/addon/doc/fr/readme.md
+++ b/addon/doc/fr/readme.md
@@ -25,14 +25,13 @@ NOTES IMPORTANTES :
 * À partir de 2018, [les journal des changements des anciennes versions du
   module complémentaire][5] seront trouvés sur GitHub. Ce fichier readme
   ajoutera les changements depuis la version 7.0 (à partir de 2016).
-* Certaines fonctionnalités du module complémentaire (notamment la mise à
-  jour de modules complémentaires) ne fonctionneront pas dans certaines
-  conditions, notamment l'exécution de NVDA en mode sécurisé.
+* Certaines fonctionnalités du module complémentaire ne fonctionneront pas
+  dans certaines conditions, notamment l'exécution de NVDA en mode sécurisé.
 * En raison de limitations techniques, vous ne pouvez pas installer ou
   utiliser ce module complémentaire sur la version Windows Store de NVDA.
 * La fonctionnalité de mise à jour du module complémentaire fournie avec ce
-  module complémentaire ne sera plus disponible en 2019. Utilisez Add-on
-  Updater pour mettre à jour ce module complémentaire.
+  module complémentaire a été supprimée. Utilisez Add-on Updater pour mettre
+  à jour ce module complémentaire.
 
 ## Raccourcis clavier
 
@@ -195,8 +194,6 @@ Les commandes disponibles sont :
   débute dans).
 * T : Mode édition/insertion chariot activé/désactivé.
 * U: temps de fonctionnement Studio.
-* Contrôle+Maj+U : Rechercher les mises à jour du module complémentaire
-  (suppression en 2019).
 * W: Météo et température si configurée.
 * Y: Statut de la modification de la playlist.
 * 1 jusqu'à 0 (6 pour Studio 5.0x) : Annoncer le contenu de la colonne pour
@@ -339,6 +336,27 @@ un écran tactile. Tout d'abord utiliser une tape à trois 
doigts pour
 basculer en mode SPL, puis utilisez les commandes tactile énumérées
 ci-dessus pour exécuter des commandes.
 
+## Version 19.02
+
+* Suppression de la fonctionnalité de vérification de mise à jour autonome
+  du module complémentaire y compris la commande de vérification de mise à
+  jour à partir de l'Assistant SPL (Contrôle+Maj+U) et les options de
+  vérification de mise à jour à partir des paramètres du module
+  complémentaire. La vérification de mise à jour du module complémentaire
+  est maintenant effectuée par Add-on Updater.
+* NVDA ne semble plus rien faire ou ne lit plus une tonalité d'erreur
+  lorsque l'intervalle d'activation du microphone est défini, il est utilisé
+  pour se souvenir lors de la diffusion que le microphone est actif avec des
+  bips périodiques.
+* Lors de la réinitialisation des paramètres du module complémentaire à
+  partir du dialogue Paramètres module complémentaire / panneau
+  réinitialisation, NVDA demandra à nouveau si un changement de profil
+  immédiat ou un profil basé sur l'heure est actif.
+* Après avoir réinitialisé les paramètres du module complémentaire Studio,
+  NVDA désactive le minuteur alarme microphone et annonce le statut des
+  métadonnées en streaming, comme après le basculement entre les profils de
+  diffusion.
+
 ## Version 19.01.1
 
 * NVDA n'annoncera plus "Contrôle du balayage de la bibliothèque en cours"

diff --git a/addon/doc/gl/readme.md b/addon/doc/gl/readme.md
index 1231808..cbd1bcc 100644
--- a/addon/doc/gl/readme.md
+++ b/addon/doc/gl/readme.md
@@ -25,13 +25,12 @@ NOTAS IMPORTANTES:
 * A partires de 2018, os [rexistros de cambios para versións vellas][5]
   atoparanse en GitHub. Este readme do complemento listará cambios dende a
   versión 7.0 (2016 en diante).
-* Certas características do complemento (especialmente a actualización) non
-  funcionarán baixo algunhas condicións, incluindo a execución do NVDA en
-  modo seguro.
+* Certain add-on features won't work under some conditions, including
+  running NVDA in secure mode.
 * Debido a limitacións técnicas, non podes instalar nin usar este
   complemento na versión de Windows Store do NVDA.
-* A característica de actualización que vén con este complemento xa non
-  existirá no 2019. Utiliza Add-on Updater para actualizar este complemento.
+* Add-on update feature that comes with this add-on has been removed. Use
+  Add-on Updater to update this add-on.
 
 ## Teclas de atallo
 
@@ -183,8 +182,6 @@ As ordes dispoñibles son:
   pista).
 * T: modo editar/insertar Cart aceso/apagado.
 * U: Studio up time.
-* Control+Shift+U: procurar actualizacións do complemento (eliminarase en
-  2019).
 * W: Clima e temperatura se se configurou.
 * Y: Estado da lista de reprodución modificada.
 * 1 ata 0 (6 para Studio 5.0x): anuncia contidos de columna para una columna
@@ -322,6 +319,22 @@ realizar algunhas ordes do Studio dende a pantalla tactil. 
Primeiro usa un
 toque con tgres dedos para cambiar a modo SPL, logo usa as ordes tactiles
 listadas arriba para realizar ordes.
 
+## Version 19.02
+
+* Removed standalone add-on update check feature, including update check
+  command from SPL Assistant (Control+Shift+U) and add-on update check
+  options from add-on settings. Add-on update check is now performed by
+  Add-on Updater.
+* NVDA will no longer appear to do nothing or play error tones when
+  microphone active interval is set, used to remind broadcasters that
+  microphone is active with periodic beeps.
+* When resetting add-on settings from add-on settings dialog/reset panel,
+  NVDA will ask once more if an instant switch profile or a time-based
+  profile is active.
+* After resetting Studio add-on settings, NvDA will turn off microphone
+  alarm timer and announce metadata streaming status, similar to after
+  switching between broadcast profiles.
+
 ## Versión 19.01.1
 
 * NVDA xa non anunciará "Monitorizando escaneado de biblioteca" tras pechar

diff --git a/addon/doc/vi/readme.md b/addon/doc/vi/readme.md
index 411bc40..627fb42 100644
--- a/addon/doc/vi/readme.md
+++ b/addon/doc/vi/readme.md
@@ -21,13 +21,12 @@ CÁC LƯU Ý QUAN TRỌNG:
 * Từ 2018, [bản ghi những thay đổi cho các bản phát hành cũ của add-on][5]
   sẽ được tìm thấy trên GitHub. Tập tin readme này sẽ liệt kê các thay đổi
   từ phiên bản 6.0 (2016 trở lên).
-* Một số tính năng nhất định của add-on (đặc biệt là cập nhật add-on) sẽ
-  không hoạt động trong vài điều kiện, bao gồm chạy NVDA trong chế độ bảo
-  vệ.
+* Vài tính năng nhất định của add-on sẽ không hoạt động trong vài điều kiện,
+  bao gồm chạy NVDA trong chế độ bảo vệ.
 * Vì những giới hạn kĩ thuật, bạn không thể cài hay dùng add-on này với
   phiên bản NVDA từ Windows Store.
-* Tính năng cập nhật add-on không còn trong phiên bản  2019. Hãy dùng Add-on
-  Updater để cập nhật add-on này.
+* Tính năng cập nhật add-on đã bị gỡ bỏ. Hãy dùng Add-on Updater để cập nhật
+  add-on này.
 
 ## Các phím tắt
 
@@ -165,7 +164,6 @@ Các lệnh được hỗ trợ bao gồm:
 * Shift+S: thời gian đến khi sẽ phát track được chọn (track bắt đầu).
 * T: bật / tắt chèn / chỉnh sửa Cart.
 * U: Studio tăng thời gian.
-* Control+Shift+U: kiểm tra cập nhật add-on (bị gỡ bỏ trong phiên bản 2019).
 * W: thời tiết và nhiệt độ nếu được cấu hình.
 * Y: trạng thái chỉnh sửa danh sách phát.
 * 1 đến 0 (6 cho Studio 5.0x): thông báo nội dung của một cột được chỉ định.
@@ -284,6 +282,23 @@ NVDA 2012.3 trở lên, bạn có thể thực hiện vài lệnh của 
Studio t
 cảm ứng. Trước tiên, dùng thao tác chạm ba ngón để chuyển sang chế độ SPL,
 và sử dụng các thao tác cảm ứng đã liệt kê ở trên để thực hiện các lệnh.
 
+## Phiên bản 19.02
+
+* Gỡ bỏ tính năng độc lập kiểm tra cập nhật add-on, bao gồm lệnh kiểm tra
+  cập nhật từ SPL Assistant (Control+Shift+U) và tùy chọn kiểm tra cập nhật
+  add-on từ cài đặt add-on. Giờ đây, tính năng này sẽ được thực hiện bởi
+  Add-on Updater (Cập nhật add-on).
+* NVDA sẽ không còn tình trạng không làm gì hoặc phát âm thanh báo lỗi khi
+  khoảng thời gian hoạt động của microphone được thiết lập, dùng để nhắc nhớ
+  các phát thanh viên rằng microphone đang hoạt động bằng một tiếng beep
+  ngắn.
+* Khi khôi phục các cài đặt add-on từ hộp thoại cài đặt add-on / bảng khôi
+  phục cài đặt, NVDA sẽ hỏi thêm một lần nữa nếu có một hồ sơ chuyển nhanh
+  hay hồ sơ theo thời gian đang được kích hoạt.
+* Sau khi khôi phục các cài đặt của Studio add-on, NvDA sẽ tắt hẹn giờ báo
+  động microphone và thông báo trạng thái metadata streaming, tương tự như
+  sau khi chuyển giữa các hồ sơ phát thanh.
+
 ## Phiên bản 19.01.1
 
 * NVDA sẽ không còn thông báo "Đang theo dõi việcquét thư viện" sau khi đóng

diff --git a/addon/locale/de/LC_MESSAGES/nvda.po 
b/addon/locale/de/LC_MESSAGES/nvda.po
index 8af9332..e7524b8 100644
--- a/addon/locale/de/LC_MESSAGES/nvda.po
+++ b/addon/locale/de/LC_MESSAGES/nvda.po
@@ -52,6 +52,20 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "Mikrofon ist aktiv"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+"Einmaliges Drücken meldet die Daten für eine Titelspalte. Zweimaliges "
+"Drücken zeigt die Daten in einem virtuellen Fenster an"
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "Station Playlist Studio (SPL)"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr "Leer"
@@ -65,14 +79,6 @@ msgstr "Titeldaten"
 msgid "{headerText} not found"
 msgstr "{headerText} konnte nicht ermittelt werden"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-"Einmaliges Drücken meldet die Daten für eine Titelspalte. Zweimaliges "
-"Drücken zeigt die Daten in einem virtuellen Fenster an"
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -360,12 +366,6 @@ msgstr ""
 "F12: Wechselt zu einem Instant-Switchh-Profil.\n"
 "Umschalt+F1: Benutzerhandbuch öffnen"
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "Station Playlist Studio (SPL)"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1729,6 +1729,19 @@ msgstr ""
 msgid "Warning"
 msgstr "Warnung"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Einstellungen zur Studio-Erweiterung"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr ""

diff --git a/addon/locale/de_CH/LC_MESSAGES/nvda.po 
b/addon/locale/de_CH/LC_MESSAGES/nvda.po
index 33241a9..e9cfa0f 100644
--- a/addon/locale/de_CH/LC_MESSAGES/nvda.po
+++ b/addon/locale/de_CH/LC_MESSAGES/nvda.po
@@ -52,6 +52,18 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "Mikrofon ist aktiv"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "Station Playlist Studio (SPL)"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr ""
@@ -66,12 +78,6 @@ msgstr "Vorspiel von Titeln"
 msgid "{headerText} not found"
 msgstr "{headerText} konnte nicht ermittelt werden"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -359,12 +365,6 @@ msgstr ""
 "F12: Wechselt zu einem Instant-Switchh-Profil.\n"
 "Shift+F1: Benutzerhandbuch öffnen"
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "Station Playlist Studio (SPL)"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1740,6 +1740,19 @@ msgstr ""
 msgid "Warning"
 msgstr "Warnung"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Einstellungen zur Studio-Erweiterung"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr ""

diff --git a/addon/locale/es/LC_MESSAGES/nvda.po 
b/addon/locale/es/LC_MESSAGES/nvda.po
index 5794883..22f437f 100755
--- a/addon/locale/es/LC_MESSAGES/nvda.po
+++ b/addon/locale/es/LC_MESSAGES/nvda.po
@@ -52,6 +52,20 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "Micrófono activo"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+"Pulsando una vez anuncia los datos para una columna de pista, pulsando dos "
+"veces presentará los datos de columna en una ventana en modo exploración"
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "StationPlaylist Studio"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr "en blanco"
@@ -65,14 +79,6 @@ msgstr "Datos de pista"
 msgid "{headerText} not found"
 msgstr "{headerText} no encontrado"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-"Pulsando una vez anuncia los datos para una columna de pista, pulsando dos "
-"veces presentará los datos de columna en una ventana en modo exploración"
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -364,12 +370,6 @@ msgstr ""
 "F12: Cambia a un perfil de cambio instantáeo.\n"
 "Shift+F1: abre una guía de usuario en línea."
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "StationPlaylist Studio"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1717,6 +1717,19 @@ msgstr ""
 msgid "Warning"
 msgstr "Precaución"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Opciones del complemento Studio"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr "Se aplicaron con éxito las opciones predeterminadas del complemento."

diff --git a/addon/locale/fr/LC_MESSAGES/nvda.po 
b/addon/locale/fr/LC_MESSAGES/nvda.po
index 759d6b6..cb2e2e2 100755
--- a/addon/locale/fr/LC_MESSAGES/nvda.po
+++ b/addon/locale/fr/LC_MESSAGES/nvda.po
@@ -51,6 +51,21 @@ msgstr "{header} : ()"
 msgid "Microphone active"
 msgstr "Microphone actif"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+"Si vous appuyez une fois sur les données d'une colonne de piste, appuyez "
+"deux fois pour afficher les données de colonne dans une fenêtre de "
+"navigation."
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "StationPlaylist Studio"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr "vide"
@@ -64,15 +79,6 @@ msgstr "Données de piste"
 msgid "{headerText} not found"
 msgstr "{headerText} introuvable"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-"Si vous appuyez une fois sur les données d'une colonne de piste, appuyez "
-"deux fois pour afficher les données de colonne dans une fenêtre de "
-"navigation."
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -363,12 +369,6 @@ msgstr ""
 "F12 : Basculer vers un changement de profil immédiat.\n"
 "Maj+F1 : Ouvre le guide de l'utilisateur en ligne."
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "StationPlaylist Studio"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1730,6 +1730,19 @@ msgstr ""
 msgid "Warning"
 msgstr "Attention"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Paramètres Module Complémentaire Studio"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr ""

diff --git a/addon/locale/gl/LC_MESSAGES/nvda.po 
b/addon/locale/gl/LC_MESSAGES/nvda.po
index 7f7df89..4521878 100755
--- a/addon/locale/gl/LC_MESSAGES/nvda.po
+++ b/addon/locale/gl/LC_MESSAGES/nvda.po
@@ -52,6 +52,20 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "Micrófono activo"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+"Premendo unha vez anuncia os datos para unha columna de pista, premendo dúas "
+"veces presentará os datos de columna nunha ventá en modo exploración"
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "StationPlaylist Studio"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr "en branco"
@@ -65,14 +79,6 @@ msgstr "Datos da pista"
 msgid "{headerText} not found"
 msgstr "{headerText} non atopado"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-"Premendo unha vez anuncia os datos para unha columna de pista, premendo dúas "
-"veces presentará os datos de columna nunha ventá en modo exploración"
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -360,12 +366,6 @@ msgstr ""
 "F12: Cambia a un perfil de cambio instantáneo.\n"
 "Shift+F1: Abre a guía de usuario en liña."
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "StationPlaylist Studio"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1706,6 +1706,19 @@ msgstr ""
 msgid "Warning"
 msgstr "Precaución"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Opcións do complemento Studio"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr "Aplicáronse con éxito as opcións predeterminadas do complemento."

diff --git a/addon/locale/he/LC_MESSAGES/nvda.po 
b/addon/locale/he/LC_MESSAGES/nvda.po
index 6520093..d65e97a 100644
--- a/addon/locale/he/LC_MESSAGES/nvda.po
+++ b/addon/locale/he/LC_MESSAGES/nvda.po
@@ -51,6 +51,20 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "המיקרופון פעיל"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+"לחיצה פעם אחת מכריזה על נתונים עבור מעקב עמודה, לחיצה פעמיים יציג נתוני "
+"עמודה בחלון מצב גלישה"
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "StationPlaylist Studio"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr "ריק"
@@ -64,14 +78,6 @@ msgstr "עקוב אחר הנתונים"
 msgid "{headerText} not found"
 msgstr "{headerText}  לא נמצא"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-"לחיצה פעם אחת מכריזה על נתונים עבור מעקב עמודה, לחיצה פעמיים יציג נתוני "
-"עמודה בחלון מצב גלישה"
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -348,12 +354,6 @@ msgstr ""
 "F12: מעבר מידי לפרופיל אחר.\n"
 "Shift+F1: פתיחת המדריך המקוון."
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "StationPlaylist Studio"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1612,6 +1612,19 @@ msgstr "האם ברצונך לשחזר את הגדרות SPL  לבררת המח
 msgid "Warning"
 msgstr "אזהרה"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "הגדרות תוסף הסטודיו"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr "הגדרות בררת המחדל של התוסף הוחלו בהצלחה."

diff --git a/addon/locale/hr/LC_MESSAGES/nvda.po 
b/addon/locale/hr/LC_MESSAGES/nvda.po
index f0e9282..306158f 100644
--- a/addon/locale/hr/LC_MESSAGES/nvda.po
+++ b/addon/locale/hr/LC_MESSAGES/nvda.po
@@ -48,6 +48,18 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "Mikrofon je uključen "
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "StationPlaylist Studio "
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr ""
@@ -62,12 +74,6 @@ msgstr "Početak zapisa "
 msgid "{headerText} not found"
 msgstr "{headerText} nije pronađen"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -348,12 +354,6 @@ msgstr ""
 "F12: Prebaci se na profil za trenutnu promjenu.\n"
 "Šift+F1: Otvori online uputstvo."
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "StationPlaylist Studio "
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1691,6 +1691,19 @@ msgstr "Jeste li sigurni da želite vratiti postavke SPL 
dodatka na zadane?"
 msgid "Warning"
 msgstr "Upozorenje"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Postavke Studio dodatka "
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr "Uspješno primijenjene zadane postavke dodatka."

diff --git a/addon/locale/pl/LC_MESSAGES/nvda.po 
b/addon/locale/pl/LC_MESSAGES/nvda.po
index 7c60566..1c45c43 100755
--- a/addon/locale/pl/LC_MESSAGES/nvda.po
+++ b/addon/locale/pl/LC_MESSAGES/nvda.po
@@ -49,6 +49,18 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "mikrofon aktywny"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "Station Playlist Studio"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr ""
@@ -63,12 +75,6 @@ msgstr "Intro"
 msgid "{headerText} not found"
 msgstr "{headerText} nieznaleziono"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -352,12 +358,6 @@ msgstr ""
 "F12: Switch to an instant switch profile.\n"
 "Shift+F1: Open online user guide."
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "Station Playlist Studio"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1676,6 +1676,19 @@ msgstr "Czy jesteś pewien, że chcesz resetu ustawień 
dodatku SPL?"
 msgid "Warning"
 msgstr "Ostrzeżenie"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Ustawienia dodatku SPL"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr "Reset się udał!"

diff --git a/addon/locale/pt_PT/LC_MESSAGES/nvda.po 
b/addon/locale/pt_PT/LC_MESSAGES/nvda.po
index 388afc2..3e00428 100644
--- a/addon/locale/pt_PT/LC_MESSAGES/nvda.po
+++ b/addon/locale/pt_PT/LC_MESSAGES/nvda.po
@@ -52,6 +52,20 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "Microfone activo"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+"Pressionando uma vez anuncia os dados para uma coluna de pistas, pressionar "
+"duas vezes apresentará os dados da coluna numa janela do modo de navegação"
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "StationPlaylist Studio"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr "Em branco"
@@ -65,14 +79,6 @@ msgstr "dados da pista"
 msgid "{headerText} not found"
 msgstr "{headerText} não encontrado"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-"Pressionando uma vez anuncia os dados para uma coluna de pistas, pressionar "
-"duas vezes apresentará os dados da coluna numa janela do modo de navegação"
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -355,12 +361,6 @@ msgstr ""
 "F12: Mude para um perfil de comutação instantânea. \n"
 "Shift + F1: Abra o guia do utilizador on-line."
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "StationPlaylist Studio"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1713,6 +1713,19 @@ msgstr ""
 msgid "Warning"
 msgstr "Aviso"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Configurações do extra do Studio"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr "Configurações do extra aplicadas com sucesso"

diff --git a/addon/locale/ro/LC_MESSAGES/nvda.po 
b/addon/locale/ro/LC_MESSAGES/nvda.po
index ae0d5c8..99e9bdc 100644
--- a/addon/locale/ro/LC_MESSAGES/nvda.po
+++ b/addon/locale/ro/LC_MESSAGES/nvda.po
@@ -50,6 +50,20 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "Microfon activ"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+"Apăsarea odată anunță datele pentru o coloană de piesă, apăsarea de două ori "
+"va prezenta datele coloanei într-o fereastră a modului de navigare"
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "StationPlaylist Studio"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr "gol"
@@ -63,14 +77,6 @@ msgstr "Date despre melodie"
 msgid "{headerText} not found"
 msgstr "{headerText} negăsit."
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-"Apăsarea odată anunță datele pentru o coloană de piesă, apăsarea de două ori "
-"va prezenta datele coloanei într-o fereastră a modului de navigare"
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -356,12 +362,6 @@ msgstr ""
 "F12: Mută la un profil instant.\n"
 "Shift+F1: Deschide ajutorul online."
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "StationPlaylist Studio"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -854,18 +854,6 @@ msgstr "Ajutor asistent SPL pentru aspectul Jaws."
 msgid "SPL Assistant help for Window-Eyes layout"
 msgstr "Ajutor asistent SPL pentru aspectul Window-Eyes"
 
-#. Translators: Title of the add-on update check dialog.
-msgid "Studio add-on update"
-msgstr "Verifică actualizări addon"
-
-#. Translators: The title of the dialog presented while checking for add-on 
updates.
-msgid "Add-on update check"
-msgstr "Actualizarea extensiei add-on se caută"
-
-#. Translators: The message displayed while checking for newer version of 
Studio add-on.
-msgid "Checking for new version of Studio add-on..."
-msgstr "Se caută versiune nouă la extensia add-on Studio..."
-
 #. Translators: A message informing users that Studio is not running so 
certain commands will not work.
 msgid "Studio main window not found"
 msgstr "Fereastra principală Studio nu a fost găsită"
@@ -974,6 +962,7 @@ msgid "Do not show this message again"
 msgstr "Nu mai arăta acest mesaj din nou"
 
 #. Translators: A message giving basic information about the add-on.
+#, fuzzy
 msgid ""
 "Welcome to StationPlaylist Studio add-on for NVDA,\n"
 "your companion to broadcasting with SPL Studio using NVDA screen reader.\n"
@@ -984,7 +973,6 @@ msgid ""
 "* Various ways to find tracks.\n"
 "* Cart Explorer to learn cart assignments.\n"
 "* Comprehensive settings and documentation.\n"
-"* Check for add-on updates automatically or manually.\n"
 "* Completely free, open-source and community-driven.\n"
 "* And much more.\n"
 "\n"
@@ -1107,81 +1095,6 @@ msgstr "Anunță progresul și numărul de elemente ale 
scanării de librării"
 msgid "Scan count"
 msgstr "Numărul de scanări"
 
-#. Translators: one of the error messages when trying to update the add-on.
-msgid ""
-"An error occured while checking for add-on update. Please check NVDA log for "
-"details."
-msgstr ""
-"A apărut o eroare în timp ce se căutau actualizările. Vă rugăm să verificați "
-"jurnalul NVDA pentru mai multe detalii."
-
-#. Translators: one of the error messages when trying to update the add-on.
-msgid ""
-"NVDA is in secure mode. Please restart with secure mode disabled before "
-"checking for add-on updates."
-msgstr ""
-"NVDA este în modul de siguranță. Vă rugăm să-l reporniți cu modul de "
-"siguranță dezactivat înainte de a căuta actualizări."
-
-#. Translators: one of the error messages when trying to update the add-on.
-msgid ""
-"This is a try build of StationPlaylist Studio add-on. Please install the "
-"latest stable release to receive updates again."
-msgstr ""
-"Aceasta este o compilare de încercare a suplimentului StationPlaylist "
-"Studio. Vă rugăm să instalați versiunea stabilă pentru a primi actualizări "
-"din nou."
-
-#. Translators: one of the error messages when trying to update the add-on.
-msgid ""
-"Update checking not supported while running NVDA from source. Please run "
-"this add-on from an installed or a portable version of NVDA."
-msgstr ""
-"Căutarea actualizărilor nu este suportată atâtta timp cât NVDA rulează din "
-"sursă. Vă rugăm să rulați acest supliment dintr-o versiune instalată sau "
-"portabilă a NVDA."
-
-#. Translators: one of the error messages when trying to update the add-on.
-msgid ""
-"This is a Windows Store version of NVDA. Add-on updating is supported on "
-"desktop version of NVDA."
-msgstr ""
-"Aceasta este o versiune NVDA de Windows Store. Actualizarea suplimentului "
-"este suportată în versiunea de desktop."
-
-#. Translators: one of the error messages when trying to update the add-on.
-msgid ""
-"Cannot update add-on directly. Please check for add-on updates by going to "
-"add-ons manager."
-msgstr ""
-"Nu se poate actualiza suplimentul în mod direct. Vă rugăm să căutați "
-"actualizări înainte de a merge în administratorul de suplimente."
-
-#. Translators: one of the error messages when trying to update the add-on.
-msgid ""
-"No internet connection. Please connect to the internet before checking for "
-"add-on update."
-msgstr ""
-"Nu există conexiune la internet. Vă rugăm să vă conectați la internet "
-"înainte de a căuta actualizări."
-
-#. Translators: one of the error messages when trying to update the add-on.
-msgid ""
-"Add-on Updater add-on might be running. Please use that add-on to check for "
-"updates."
-msgstr ""
-"Suplimentul Add-on Updater ar putea să ruleze. Vă rugăm să utilizați acel "
-"supliment pentru a căuta actualizări."
-
-#. Translators: one of the error messages when trying to update the add-on.
-#, fuzzy
-msgid ""
-"Add-on update feature from SPL Studio add-on is no more, please use Add-on "
-"Updater add-on to check for updates."
-msgstr ""
-"Suplimentul Add-on Updater ar putea să ruleze. Vă rugăm să utilizați acel "
-"supliment pentru a căuta actualizări."
-
 #. Translators: title of a panel to configure broadcast profiles.
 #, fuzzy
 msgid "Broadcast profiles"
@@ -1711,14 +1624,6 @@ msgstr ""
 msgid "Advanced options"
 msgstr "Opțiuni avansate"
 
-#. Translators: A checkbox to toggle automatic add-on updates.
-msgid "Automatically check for add-on &updates"
-msgstr "Verifică automat pentru act&ualizări addon"
-
-#. Translators: The label for a setting in SPL add-on settings/advanced 
options to select automatic update interval in days.
-msgid "Update &interval in days"
-msgstr "&Interval actualizare în zile"
-
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
 msgstr ""
@@ -1737,20 +1642,6 @@ msgstr ""
 "Caracteristici pilot: Vreau să testez și să ofer &feedback prematur la "
 "caracteristicile aflate în dezvoltare"
 
-#. Translators: The confirmation prompt displayed when changing update 
interval to zero days (updates will be checked every time Studio app module 
loads).
-msgid ""
-"Update interval has been set to zero days, so updates to the Studio add-on "
-"will be checked every time NVDA and/or Studio starts. Are you sure you wish "
-"to continue?"
-msgstr ""
-"Intervalul de actualizare a fost setat la zero zile, astfel încât "
-"actualizările pentru add-on-ul Studio vor fi verificate de fiecare dată când "
-"NVDA și / sau Studio pornesc. Sigur doriți să continuați?"
-
-#. Translators: The title of the update interval dialog.
-msgid "Confirm update interval"
-msgstr "Confirmați intervalul de actualizare"
-
 #. Translators: The confirmation prompt displayed when about to enable pilot 
flag (with risks involved).
 #, fuzzy
 msgid ""
@@ -1814,6 +1705,19 @@ msgstr "Sigur vreți să resetați setările addonului SPL 
la implicit?"
 msgid "Warning"
 msgstr "Atenţie"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Verifică actualizări addon"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr "Setările implicite ale add-onului s-au aplicat cu succes."
@@ -1984,59 +1888,6 @@ msgstr "Profil de &bază:"
 msgid "Transcript action:"
 msgstr "Acțiune de transcriere:"
 
-#. No need to interact with the user.
-#. Translators: Presented when no add-on update is available.
-msgid "No add-on update available."
-msgstr "Nicio actualizare disponibilă."
-
-#. Translators: Text shown if an add-on update is available.
-#, python-brace-format
-msgid "Studio add-on {newVersion} is available. Would you like to update?"
-msgstr "Studio add-on {newVersion} este disponibilă. Doriți să o actualizați?"
-
-#. Translators: The title of the dialog displayed while downloading add-on 
update.
-msgid "Downloading Add-on Update"
-msgstr "Se descarcă actualizarea suplimentului"
-
-#. Translators: The progress message indicating that a connection is being 
established.
-msgid "Connecting"
-msgstr "Se conectează"
-
-#. Translators: A message indicating that an error occurred while downloading 
an update to NVDA.
-msgid "Error downloading add-on update."
-msgstr "Eroare la descărcarea actualizării."
-
-#. Translators: The message displayed when an error occurs when opening an 
add-on package for adding.
-#, python-format
-msgid ""
-"Failed to open add-on package file at %s - missing file or invalid file "
-"format"
-msgstr ""
-"Eșuare la deschiderea fișierului cu pachetul suplimentului la %s - fișierul "
-"este omis sau formatul acestuia este invalid"
-
-#. Translators: The message displayed when trying to update an add-on that is 
not going to be compatible with the current version of NVDA.
-#, python-brace-format
-msgid ""
-"Studio add-on {newVersion} is not compatible with this version of NVDA. "
-"Please use NVDA {year}.{major} or later."
-msgstr ""
-"Suplimentul {newVersion} Nu este compatibil cu această versiune de NVDA. Vă "
-"rugăm să folosiți NVDA {year}.{major} sau mai nou."
-
-#. Translators: The title of the dialog presented while an Addon is being 
updated.
-msgid "Updating Add-on"
-msgstr "Se actualizează suplimentul"
-
-#. Translators: The message displayed while an addon is being updated.
-msgid "Please wait while the add-on is being updated."
-msgstr "Vă rugăm să așteptați până când suplimentul este actualizat."
-
-#. Translators: The message displayed when an error occurs when installing an 
add-on package.
-#, python-format
-msgid "Failed to update add-on  from %s"
-msgstr "Eșuare la actualizarea suplimentului de la %s"
-
 #. Help message for SPL Controller
 #. Translators: the dialog text for SPL Controller help.
 msgid ""
@@ -2325,6 +2176,135 @@ msgstr ""
 "Conține suport pentru StationPlaylist Studio.\n"
 "De asemenea, adaugă comenzi globale pentru studio de oriunde."
 
+#~ msgid "Add-on update check"
+#~ msgstr "Actualizarea extensiei add-on se caută"
+
+#~ msgid "Checking for new version of Studio add-on..."
+#~ msgstr "Se caută versiune nouă la extensia add-on Studio..."
+
+#~ msgid ""
+#~ "An error occured while checking for add-on update. Please check NVDA log "
+#~ "for details."
+#~ msgstr ""
+#~ "A apărut o eroare în timp ce se căutau actualizările. Vă rugăm să "
+#~ "verificați jurnalul NVDA pentru mai multe detalii."
+
+#~ msgid ""
+#~ "NVDA is in secure mode. Please restart with secure mode disabled before "
+#~ "checking for add-on updates."
+#~ msgstr ""
+#~ "NVDA este în modul de siguranță. Vă rugăm să-l reporniți cu modul de "
+#~ "siguranță dezactivat înainte de a căuta actualizări."
+
+#~ msgid ""
+#~ "This is a try build of StationPlaylist Studio add-on. Please install the "
+#~ "latest stable release to receive updates again."
+#~ msgstr ""
+#~ "Aceasta este o compilare de încercare a suplimentului StationPlaylist "
+#~ "Studio. Vă rugăm să instalați versiunea stabilă pentru a primi "
+#~ "actualizări din nou."
+
+#~ msgid ""
+#~ "Update checking not supported while running NVDA from source. Please run "
+#~ "this add-on from an installed or a portable version of NVDA."
+#~ msgstr ""
+#~ "Căutarea actualizărilor nu este suportată atâtta timp cât NVDA rulează "
+#~ "din sursă. Vă rugăm să rulați acest supliment dintr-o versiune instalată "
+#~ "sau portabilă a NVDA."
+
+#~ msgid ""
+#~ "This is a Windows Store version of NVDA. Add-on updating is supported on "
+#~ "desktop version of NVDA."
+#~ msgstr ""
+#~ "Aceasta este o versiune NVDA de Windows Store. Actualizarea suplimentului "
+#~ "este suportată în versiunea de desktop."
+
+#~ msgid ""
+#~ "Cannot update add-on directly. Please check for add-on updates by going "
+#~ "to add-ons manager."
+#~ msgstr ""
+#~ "Nu se poate actualiza suplimentul în mod direct. Vă rugăm să căutați "
+#~ "actualizări înainte de a merge în administratorul de suplimente."
+
+#~ msgid ""
+#~ "No internet connection. Please connect to the internet before checking "
+#~ "for add-on update."
+#~ msgstr ""
+#~ "Nu există conexiune la internet. Vă rugăm să vă conectați la internet "
+#~ "înainte de a căuta actualizări."
+
+#~ msgid ""
+#~ "Add-on Updater add-on might be running. Please use that add-on to check "
+#~ "for updates."
+#~ msgstr ""
+#~ "Suplimentul Add-on Updater ar putea să ruleze. Vă rugăm să utilizați acel "
+#~ "supliment pentru a căuta actualizări."
+
+#, fuzzy
+#~ msgid ""
+#~ "Add-on update feature from SPL Studio add-on is no more, please use Add-"
+#~ "on Updater add-on to check for updates."
+#~ msgstr ""
+#~ "Suplimentul Add-on Updater ar putea să ruleze. Vă rugăm să utilizați acel "
+#~ "supliment pentru a căuta actualizări."
+
+#~ msgid "Automatically check for add-on &updates"
+#~ msgstr "Verifică automat pentru act&ualizări addon"
+
+#~ msgid "Update &interval in days"
+#~ msgstr "&Interval actualizare în zile"
+
+#~ msgid ""
+#~ "Update interval has been set to zero days, so updates to the Studio add-"
+#~ "on will be checked every time NVDA and/or Studio starts. Are you sure you "
+#~ "wish to continue?"
+#~ msgstr ""
+#~ "Intervalul de actualizare a fost setat la zero zile, astfel încât "
+#~ "actualizările pentru add-on-ul Studio vor fi verificate de fiecare dată "
+#~ "când NVDA și / sau Studio pornesc. Sigur doriți să continuați?"
+
+#~ msgid "Confirm update interval"
+#~ msgstr "Confirmați intervalul de actualizare"
+
+#~ msgid "No add-on update available."
+#~ msgstr "Nicio actualizare disponibilă."
+
+#~ msgid "Studio add-on {newVersion} is available. Would you like to update?"
+#~ msgstr ""
+#~ "Studio add-on {newVersion} este disponibilă. Doriți să o actualizați?"
+
+#~ msgid "Downloading Add-on Update"
+#~ msgstr "Se descarcă actualizarea suplimentului"
+
+#~ msgid "Connecting"
+#~ msgstr "Se conectează"
+
+#~ msgid "Error downloading add-on update."
+#~ msgstr "Eroare la descărcarea actualizării."
+
+#~ msgid ""
+#~ "Failed to open add-on package file at %s - missing file or invalid file "
+#~ "format"
+#~ msgstr ""
+#~ "Eșuare la deschiderea fișierului cu pachetul suplimentului la %s - "
+#~ "fișierul este omis sau formatul acestuia este invalid"
+
+#~ msgid ""
+#~ "Studio add-on {newVersion} is not compatible with this version of NVDA. "
+#~ "Please use NVDA {year}.{major} or later."
+#~ msgstr ""
+#~ "Suplimentul {newVersion} Nu este compatibil cu această versiune de NVDA. "
+#~ "Vă rugăm să folosiți NVDA {year}.{major} sau mai nou."
+
+#~ msgid "Updating Add-on"
+#~ msgstr "Se actualizează suplimentul"
+
+#~ msgid "Please wait while the add-on is being updated."
+#~ msgstr "Vă rugăm să așteptați până când suplimentul este actualizat."
+
+#~ msgid "Failed to update add-on  from %s"
+#~ msgstr "Eșuare la actualizarea suplimentului de la %s"
+
 #~ msgid "Error"
 #~ msgstr "Eroare"
 

diff --git a/addon/locale/sr/LC_MESSAGES/nvda.po 
b/addon/locale/sr/LC_MESSAGES/nvda.po
index 5c3331e..1202195 100644
--- a/addon/locale/sr/LC_MESSAGES/nvda.po
+++ b/addon/locale/sr/LC_MESSAGES/nvda.po
@@ -49,6 +49,18 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "Mikrofon aktivan"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "StationPlaylist Studio"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr ""
@@ -63,12 +75,6 @@ msgstr "Uvodni zapis"
 msgid "{headerText} not found"
 msgstr "{headerText} nije pronađen"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -348,12 +354,6 @@ msgstr ""
 "F12: Prebaci se na profil za trenutnu promenu.\n"
 "Šift+F1: Otvori online uputstvo."
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "StationPlaylist Studio"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1695,6 +1695,19 @@ msgstr ""
 msgid "Warning"
 msgstr "Upozorenje"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Podešavanja Studio dodatka"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr "Uspešno primenjena podrazumevana podešavanja dodatka."

diff --git a/addon/locale/vi/LC_MESSAGES/nvda.po 
b/addon/locale/vi/LC_MESSAGES/nvda.po
index a075790..a6756c1 100644
--- a/addon/locale/vi/LC_MESSAGES/nvda.po
+++ b/addon/locale/vi/LC_MESSAGES/nvda.po
@@ -49,6 +49,20 @@ msgstr "{header}: ()"
 msgid "Microphone active"
 msgstr "Microphone hoạt động"
 
+#. Translators: input help mode message for column explorer commands.
+msgid ""
+"Pressing once announces data for a track column, pressing twice will present "
+"column data in a browse mode window"
+msgstr ""
+"Bấm một lần để thông báo dữ liệu ở cột track, bấm hai lần sẽ trình bày dữ "
+"liệu trên một cửa sổ ở chế độ duyệt"
+
+#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
+#. Add-on summary, usually the user visible name of the addon.
+#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
+msgid "StationPlaylist Studio"
+msgstr "StationPlaylist Studio"
+
 #. Translators: presented when column information for a track is empty.
 msgid "blank"
 msgstr "rỗng"
@@ -62,14 +76,6 @@ msgstr "Dữ liệu track"
 msgid "{headerText} not found"
 msgstr "không tìm thấy {headerText}"
 
-#. Translators: input help mode message for column explorer commands.
-msgid ""
-"Pressing once announces data for a track column, pressing twice will present "
-"column data in a browse mode window"
-msgstr ""
-"Bấm một lần để thông báo dữ liệu ở cột track, bấm hai lần sẽ trình bày dữ "
-"liệu trên một cửa sổ ở chế độ duyệt"
-
 #. Translators: location text for a playlist item (example: item 1 of 10).
 #, python-brace-format
 msgid "Item {current} of {total}"
@@ -355,12 +361,6 @@ msgstr ""
 "F12: chuyển đến một hồ sơ chuyển nhanh.\n"
 "Shift+F1: mở tài liệu hướng dẫn trực tuyến."
 
-#. Translators: Script category for Station Playlist commands in input 
gestures dialog.
-#. Add-on summary, usually the user visible name of the addon.
-#. Translators: Summary for this add-on to be shown on installation and add-on 
information.
-msgid "StationPlaylist Studio"
-msgstr "StationPlaylist Studio"
-
 #. Translators: The sign-on message for Studio app module.
 #, python-brace-format
 msgid "Using SPL Studio version {SPLVersion}"
@@ -1671,6 +1671,19 @@ msgstr ""
 msgid "Warning"
 msgstr "Cảnh báo"
 
+#. Translators: Message displayed when attempting to reset Studio add-on 
settings while an instant switch or time-based profile is active.
+msgid ""
+"An instant switch or time-based profile is active. Resetting Studio add-on "
+"settings means normal profile will become active and switch profile settings "
+"will be left in unpredictable state. Are you sure you wish to reset Studio "
+"add-on settings to factory defaults?"
+msgstr ""
+
+#. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
+#, fuzzy
+msgid "SPL Studio add-on reset"
+msgstr "Cài đặt Studio Add-on"
+
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
 msgstr "Đã áp dụng các thiết lập mặc định của add-on."


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/0fe3296f0d8e/
Changeset:   0fe3296f0d8e
Branch:      None
User:        josephsl
Date:        2019-02-04 07:05:27+00:00
Summary:     Merge branch 'stable'

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfui.py 
b/addon/appModules/splstudio/splconfui.py
index 38744ab..176870e 100755
--- a/addon/appModules/splstudio/splconfui.py
+++ b/addon/appModules/splstudio/splconfui.py
@@ -1438,7 +1438,7 @@ class SayStatusPanel(gui.SettingsPanel):
 # It is also one of two panels (the other one being broadcast profiles) that 
will perform extra actions if OK or Apply is clicked from add-on settings 
dialog (postSave).
 class AdvancedOptionsPanel(gui.SettingsPanel):
        # Translators: title of a panel to configure advanced SPL add-on 
options such as update checking.
-       title = _("Advanced options")
+       title = _("Advanced")
 
        def makeSettings(self, settingsSizer):
                advOptionsHelper = gui.guiHelper.BoxSizerHelper(self, 
sizer=settingsSizer)


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/a2d16c1224d7/
Changeset:   a2d16c1224d7
Branch:      None
User:        josephsl
Date:        2019-02-04 07:06:00+00:00
Summary:     ConfiUI: add a base panel for column announcements handler. Re #97.

A new column announcements base panel will be used just for handling column 
order changes. This abstract base panel (to be declared as abstract in the 
future) is responsible for dealing with column announcement setting changes, 
most notably column order up/down button handling. As this is an abstract 
panel, it cannot be instantiated - any panel that deals with rearrange control 
can subclass this panel (until a more usable way to work with wx.RearrangeCtrl 
is found).
This change is exclusive to stable channel in 2019.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfui.py 
b/addon/appModules/splstudio/splconfui.py
index 176870e..8d687e0 100755
--- a/addon/appModules/splstudio/splconfui.py
+++ b/addon/appModules/splstudio/splconfui.py
@@ -1267,6 +1267,39 @@ class PlaylistTranscriptsPanel(gui.SettingsPanel):
                self.Disable()
                ColumnAnnouncementsDialog(self, playlistTranscripts=True).Show()
 
+class ColumnAnnouncementsBasePanel(gui.SettingsPanel):
+
+       def onColumnSelection(self, evt):
+               selIndex = self.trackColumns.GetSelection()
+               self.upButton.Disable() if selIndex == 0 else 
self.upButton.Enable()
+               if selIndex == self.trackColumns.GetCount()-1:
+                       self.dnButton.Disable()
+               else: self.dnButton.Enable()
+
+       def onMoveUp(self, evt):
+               tones.beep(1000, 200)
+               selIndex = self.trackColumns.GetSelection()
+               if selIndex > 0:
+                       selItem = self.trackColumns.GetString(selIndex)
+                       self.trackColumns.Delete(selIndex)
+                       self.trackColumns.Insert(selItem, selIndex-1)
+                       self.trackColumns.Select(selIndex-1)
+                       self.onColumnSelection(None)
+
+       def onMoveDown(self, evt):
+               tones.beep(500, 200)
+               selIndex = self.trackColumns.GetSelection()
+               if selIndex < self.trackColumns.GetCount()-1:
+                       selItem = self.trackColumns.GetString(selIndex)
+                       self.trackColumns.Delete(selIndex)
+                       self.trackColumns.Insert(selItem, selIndex+1)
+                       self.trackColumns.Select(selIndex+1)
+                       self.onColumnSelection(None)
+                       # Hack: Wen the last item is selected, forcefully move 
the focus to "move up" button.
+                       # This will cause NVDA to say "unavailable" as focus is 
lost momentarily. A bit anoying but a necessary hack.
+                       if self.FindFocus().GetId() == wx.ID_OK:
+                               self.upButton.SetFocus()
+
 # Columns Explorer for Studio, Track Tool and Creator
 # Configure which column will be announced when Control+NVDA+number row keys 
are pressed.
 # In 2018, the panel will house Columns Explorer buttons, but eventually 
columns combo boxes should be part of main settings interface.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/64dfd627ad78/
Changeset:   64dfd627ad78
Branch:      None
User:        josephsl
Date:        2019-02-04 07:06:00+00:00
Summary:     Column announcements and playlist transcripts: powered by column 
announcements base panel. Re #97.

Becasue column announcements and playlist transcripts panels rely on column 
order event handler, subclass them from column announcements base panel. This 
means these panels will display column inclusion/order controls on the landing 
page instead of using a custom dialog. Although there is code duplication, it 
makes sense as these two panels may include separate labels for these controls.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfui.py 
b/addon/appModules/splstudio/splconfui.py
index 8d687e0..876595c 100755
--- a/addon/appModules/splstudio/splconfui.py
+++ b/addon/appModules/splstudio/splconfui.py
@@ -1300,6 +1300,170 @@ class ColumnAnnouncementsBasePanel(gui.SettingsPanel):
                        if self.FindFocus().GetId() == wx.ID_OK:
                                self.upButton.SetFocus()
 
+class ColumnAnnouncementsPanelEx(ColumnAnnouncementsBasePanel):
+       # Translators: title of a panel to configure column announcements 
(order and what columns should be announced).
+       title = _("Column announcements")
+
+       def makeSettings(self, settingsSizer):
+               colAnnouncementsHelper = gui.guiHelper.BoxSizerHelper(self, 
sizer=settingsSizer)
+               self.columnOrder = 
splconfig._SPLDefaults["ColumnAnnouncement"]["ColumnOrder"]
+               # Without manual conversion below, it produces a rare bug where 
clicking cancel after changing column inclusion causes new set to be retained.
+               self.includedColumns = 
set(splconfig._SPLDefaults["ColumnAnnouncement"]["IncludedColumns"])
+               # #77 (18.09-LTS): record temporary settings.
+               self._curProfileSettings = {}
+
+               # Translators: the label for a setting in SPL add-on settings 
to toggle custom column announcement.
+               
self.columnOrderCheckbox=colAnnouncementsHelper.addItem(wx.CheckBox(self,wx.ID_ANY,label=_("Announce
 columns in the &order shown on screen")))
+               
self.columnOrderCheckbox.SetValue(splconfig._SPLDefaults["ColumnAnnouncement"]["UseScreenColumnOrder"])
+
+               # Translators: Help text to select columns to be announced.
+               labelText = _("&Select columns to be announced\n(artist and 
title are announced by default):")
+
+               # Same as metadata dialog (wx.CheckListBox isn't user friendly).
+               # Gather values for checkboxes except artist and title.
+               # 6.1: Split these columns into rows.
+               # 17.04: Gather items into a single list instead of three.
+               # #76 (18.09-LTS): completely changed to use custom check list 
box (NVDA Core issue 7491).
+               # For this one, remove Artist and Title.
+               self.includedColumns.discard("Artist")
+               self.includedColumns.discard("Title")
+               checkableColumns = 
("Duration","Intro","Category","Filename","Outro","Year","Album","Genre","Mood","Energy","Tempo","BPM","Gender","Rating","Time
 Scheduled")
+               self.checkedColumns = 
colAnnouncementsHelper.addLabeledControl(labelText, CustomCheckListBox, 
choices=checkableColumns)
+               self.checkedColumns.SetCheckedStrings(self.includedColumns)
+               self.checkedColumns.SetSelection(0)
+
+               # wxPython 4 contains RearrangeList to allow item orders to be 
changed automatically.
+               # Because wxPython 3 doesn't include this, work around by using 
a variant of list box and move up/down buttons.
+               # 17.04: The label for the list below is above the list, so 
move move up/down buttons to the right of the list box.
+               # Translators: The label for a setting in SPL add-on dialog to 
select column announcement order.
+               self.trackColumns = 
colAnnouncementsHelper.addLabeledControl(_("Column &order:"), wx.ListBox, 
choices=self.columnOrder)
+               self.trackColumns.Bind(wx.EVT_LISTBOX,self.onColumnSelection)
+               self.trackColumns.SetSelection(0)
+
+               sizer = gui.guiHelper.BoxSizerHelper(self, 
orientation=wx.HORIZONTAL)
+               # Translators: The label for a button in column announcement 
dialog to change column position for the selected column.
+               self.upButton = wx.Button(self, wx.ID_ANY, label=_("Move &up"))
+               self.upButton.Bind(wx.EVT_BUTTON,self.onMoveUp)
+               self.upButton.Disable()
+               # Translators: The label for a button in column announcement 
dialog to change column position for the selected column.
+               self.dnButton = wx.Button(self, wx.ID_ANY, label=_("Move 
&down"))
+               self.dnButton.Bind(wx.EVT_BUTTON,self.onMoveDown)
+               sizer.sizer.AddMany((self.upButton, self.dnButton))
+               colAnnouncementsHelper.addItem(sizer.sizer)
+
+               # Translators: the label for a setting in SPL add-on settings 
to toggle whether column headers should be included when announcing track 
information.
+               self.columnHeadersCheckbox = 
colAnnouncementsHelper.addItem(wx.CheckBox(self, label=_("Include column 
&headers when announcing track information")))
+               
self.columnHeadersCheckbox.SetValue(splconfig._SPLDefaults["ColumnAnnouncement"]["IncludeColumnHeaders"])
+
+       def onPanelActivated(self):
+               selectedProfile = _selectedProfile
+               if selectedProfile is None: selectedProfile = 
splconfig.SPLConfig.activeProfile
+               curProfile = splconfig.SPLConfig.profileByName(selectedProfile)
+               if selectedProfile not in self._curProfileSettings: settings = 
dict(curProfile)
+               else: settings = dict(self._curProfileSettings[selectedProfile])
+               
self.columnOrderCheckbox.SetValue(settings["ColumnAnnouncement"]["UseScreenColumnOrder"])
+               self.columnOrder = 
list(settings["ColumnAnnouncement"]["ColumnOrder"])
+               # 6.1: Again convert list to set.
+               self.includedColumns = 
set(settings["ColumnAnnouncement"]["IncludedColumns"])
+               
self.columnHeadersCheckbox.SetValue(settings["ColumnAnnouncement"]["IncludeColumnHeaders"])
+               super(ColumnAnnouncementsPanelEx, self).onPanelActivated()
+
+       def onPanelDeactivated(self):
+               selectedProfile = _selectedProfile
+               if selectedProfile is None: selectedProfile = 
splconfig.SPLConfig.activeProfile
+               curProfile = splconfig.SPLConfig.profileByName(selectedProfile)
+               currentSettings = {"ColumnAnnouncement": {}}
+               currentSettings["ColumnAnnouncement"]["UseScreenColumnOrder"] = 
self.columnOrderCheckbox.GetValue()
+               currentSettings["ColumnAnnouncement"]["ColumnOrder"] = 
list(self.columnOrder)
+               currentSettings["ColumnAnnouncement"]["IncludedColumns"] = 
set(self.includedColumns)
+               currentSettings["ColumnAnnouncement"]["IncludeColumnHeaders"] = 
self.columnHeadersCheckbox.GetValue()
+               if currentSettings["ColumnAnnouncement"] != 
curProfile["ColumnAnnouncement"]:
+                       self._curProfileSettings[selectedProfile] = 
dict(currentSettings)
+               super(ColumnAnnouncementsPanelEx, self).onPanelDeactivated()
+
+       def onSave(self):
+               selectedProfile = _selectedProfile
+               if selectedProfile is None: selectedProfile = 
splconfig.SPLConfig.activeProfile
+               curProfile = splconfig.SPLConfig.profileByName(selectedProfile)
+               curProfile["ColumnAnnouncement"]["UseScreenColumnOrder"] = 
self.columnOrderCheckbox.Value
+               curProfile["ColumnAnnouncement"]["ColumnOrder"] = 
self.columnOrder
+               curProfile["ColumnAnnouncement"]["IncludedColumns"] = 
self.includedColumns
+               curProfile["ColumnAnnouncement"]["IncludeColumnHeaders"] = 
self.columnHeadersCheckbox.Value
+               self._curProfileSettings.clear()
+               if not _configApplyOnly: self._curProfileSettings = None
+
+       def onDiscard(self):
+               # 6.1: Discard changes to included columns set.
+               if self.includedColumns is not None: 
self.includedColumns.clear()
+               self.includedColumns = None
+               self._curProfileSettings.clear()
+               self._curProfileSettings = None
+
+class PlaylistTranscriptsPanelEx(ColumnAnnouncementsBasePanel):
+       # Translators: Title of a panel to configure playlsit transcripts 
options.
+       title = _("Playlist transcripts")
+
+       def makeSettings(self, settingsSizer):
+               playlistTranscriptsHelper = gui.guiHelper.BoxSizerHelper(self, 
sizer=settingsSizer)
+
+               from . import splmisc
+               #self.transcriptFormat = 
splconfig.SPLConfig["PlaylistTranscripts"]["TranscriptFormat"]
+               self.columnOrder = 
splconfig.SPLConfig["PlaylistTranscripts"]["ColumnOrder"]
+               # Again manually create a new set.
+               self.includedColumns = 
set(splconfig.SPLConfig["PlaylistTranscripts"]["IncludedColumns"])
+               #self.availableTranscriptFormats = [output[0] for output in 
splmisc.SPLPlaylistTranscriptFormats]
+               #self.availableTranscriptFormats.insert(0, "")
+
+               # Translators: the label for a setting in SPL add-on settings 
to select preferred playlist transcript format.
+               #labelText = _("&Prefered transcript format:")
+               # Translators: one of the transcript format options.
+               #self.transcriptFormatsList = 
playlistTranscriptsHelper.addLabeledControl(labelText, wx.Choice, 
choices=[_("ask me every time")]+[output[2] for output in 
splmisc.SPLPlaylistTranscriptFormats])
+               
#self.transcriptFormatsList.SetSelection(self.availableTranscriptFormats.index(splconfig.SPLConfig["PlaylistTranscripts"]["TranscriptFormat"]))
+
+               # Translators: Help text to select columns to be announced.
+               labelText = _("&Select columns to be included in playlist 
transcripts\n(artist and title are always included):")
+
+               # Gather values for checkboxes except artist and title.
+               # 6.1: Split these columns into rows.
+               # 17.04: Gather items into a single list instead of three.
+               # #76 (18.09-LTS): completely changed to use custom check list 
box (NVDA Core issue 7491).
+               # For this one, remove Artist and Title.
+               self.includedColumns.discard("Artist")
+               self.includedColumns.discard("Title")
+               checkableColumns = 
("Duration","Intro","Category","Filename","Outro","Year","Album","Genre","Mood","Energy","Tempo","BPM","Gender","Rating","Time
 Scheduled")
+               self.checkedColumns = 
playlistTranscriptsHelper.addLabeledControl(labelText, CustomCheckListBox, 
choices=checkableColumns)
+               self.checkedColumns.SetCheckedStrings(self.includedColumns)
+               self.checkedColumns.SetSelection(0)
+
+               # wxPython 4 contains RearrangeList to allow item orders to be 
changed automatically.
+               # Because wxPython 3 doesn't include this, work around by using 
a variant of list box and move up/down buttons.
+               # 17.04: The label for the list below is above the list, so 
move move up/down buttons to the right of the list box.
+               # Translators: The label for a setting in SPL add-on dialog to 
select column announcement order.
+               self.trackColumns = 
playlistTranscriptsHelper.addLabeledControl(_("Column &order:"), wx.ListBox, 
choices=self.columnOrder)
+               self.trackColumns.Bind(wx.EVT_LISTBOX,self.onColumnSelection)
+               self.trackColumns.SetSelection(0)
+
+               sizer = gui.guiHelper.BoxSizerHelper(self, 
orientation=wx.HORIZONTAL)
+               # Translators: The label for a button in column announcement 
dialog to change column position for the selected column.
+               self.upButton = wx.Button(self, wx.ID_ANY, label=_("Move &up"))
+               self.upButton.Bind(wx.EVT_BUTTON,self.onMoveUp)
+               self.upButton.Disable()
+               # Translators: The label for a button in column announcement 
dialog to change column position for the selected column.
+               self.dnButton = wx.Button(self, wx.ID_ANY, label=_("Move 
&down"))
+               self.dnButton.Bind(wx.EVT_BUTTON,self.onMoveDown)
+               sizer.sizer.AddMany((self.upButton, self.dnButton))
+               playlistTranscriptsHelper.addItem(sizer.sizer)
+
+       def onSave(self):
+               #splconfig.SPLConfig["PlaylistTranscripts"]["TranscriptFormat"] 
= self.availableTranscriptFormats[self.transcriptFormatsList.GetSelection()]
+               splconfig.SPLConfig["PlaylistTranscripts"]["ColumnOrder"] = 
list(self.columnOrder)
+               splconfig.SPLConfig["PlaylistTranscripts"]["IncludedColumns"] = 
set(self.includedColumns)
+
+       def onDiscard(self):
+               # 6.1: Discard changes to included columns set.
+               if self.includedColumns is not None: 
self.includedColumns.clear()
+               self.includedColumns = None
+
 # Columns Explorer for Studio, Track Tool and Creator
 # Configure which column will be announced when Control+NVDA+number row keys 
are pressed.
 # In 2018, the panel will house Columns Explorer buttons, but eventually 
columns combo boxes should be part of main settings interface.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/e029c08725bf/
Changeset:   e029c08725bf
Branch:      None
User:        josephsl
Date:        2019-02-04 07:06:00+00:00
Summary:     Pilot: use a subclass of SPL config dialog to house the new column 
announcement and playlist transcripts panels.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfui.py 
b/addon/appModules/splstudio/splconfui.py
index 876595c..7a80dc0 100755
--- a/addon/appModules/splstudio/splconfui.py
+++ b/addon/appModules/splstudio/splconfui.py
@@ -1841,10 +1841,28 @@ class SPLConfigDialog(gui.MultiCategorySettingsDialog):
                self.onCancel(None)
 
 
+class SPLConfigDialogEx(SPLConfigDialog):
+       # Translators: This is the label for the StationPlaylist Studio 
configuration dialog.
+       title = _("Studio Add-on Settings")
+       categoryClasses=[
+               BroadcastProfilesPanel,
+               GeneralSettingsPanel,
+               AlarmsPanel,
+               PlaylistSnapshotsPanel,
+               MetadataStreamingPanel,
+               ColumnAnnouncementsPanelEx,
+               ColumnsExplorerPanel,
+               PlaylistTranscriptsPanelEx,
+               SayStatusPanel,
+               AdvancedOptionsPanel,
+               ResetSettingsPanel,
+       ]
+
+
 # Open the above dialog upon request.
 def onConfigDialog(evt):
        # 5.2: Guard against alarm dialogs.
        if _alarmDialogOpened or _metadataDialogOpened:
                # Translators: Presented when an alarm dialog is opened.
                wx.CallAfter(gui.messageBox, _("Another add-on settings dialog 
is open. Please close the previously opened dialog first."), 
translate("Error"), wx.OK|wx.ICON_ERROR)
-       else: gui.mainFrame._popupSettingsDialog(SPLConfigDialog)
+       else: gui.mainFrame._popupSettingsDialog(SPLConfigDialog if not 
splconfig.SPLConfig.testDrive else SPLConfigDialogEx)


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/2aacbf34173e/
Changeset:   2aacbf34173e
Branch:      None
User:        josephsl
Date:        2019-02-13 07:58:37+00:00
Summary:     Merge branch 'stable' of 
https://bitbucket.org/nvdaaddonteam/stationPlaylist

Affected #:  12 files

diff --git a/addon/locale/de/LC_MESSAGES/nvda.po 
b/addon/locale/de/LC_MESSAGES/nvda.po
index e7524b8..cb29968 100644
--- a/addon/locale/de/LC_MESSAGES/nvda.po
+++ b/addon/locale/de/LC_MESSAGES/nvda.po
@@ -1644,8 +1644,9 @@ msgstr ""
 "Titelinformationen mit einbeziehen"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Erweiterte Optionen"
+#, fuzzy
+msgid "Advanced"
+msgstr "Fortgeschritten"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2208,3 +2209,6 @@ msgstr ""
 "Verbessert die Unterstützung für Station Playlist Studio.\n"
 "Des weiteren fügt es Tastenkombinationen für das Studio aus beliebigen "
 "Programmen hinzu."
+
+#~ msgid "Advanced options"
+#~ msgstr "Erweiterte Optionen"

diff --git a/addon/locale/de_CH/LC_MESSAGES/nvda.po 
b/addon/locale/de_CH/LC_MESSAGES/nvda.po
index e9cfa0f..e1704be 100644
--- a/addon/locale/de_CH/LC_MESSAGES/nvda.po
+++ b/addon/locale/de_CH/LC_MESSAGES/nvda.po
@@ -1657,8 +1657,9 @@ msgstr ""
 "Titelinformationen mit einbeziehen"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Erweiterte Optionen"
+#, fuzzy
+msgid "Advanced"
+msgstr "Fortgeschritten"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2219,3 +2220,6 @@ msgstr ""
 "Verbessert die Unterstützung für Station Playlist Studio.\n"
 "Des weiteren fügt es Tastenkombinationen für das Studio aus beliebigen "
 "Programmen hinzu."
+
+#~ msgid "Advanced options"
+#~ msgstr "Erweiterte Optionen"

diff --git a/addon/locale/es/LC_MESSAGES/nvda.po 
b/addon/locale/es/LC_MESSAGES/nvda.po
index 22f437f..97eacf6 100755
--- a/addon/locale/es/LC_MESSAGES/nvda.po
+++ b/addon/locale/es/LC_MESSAGES/nvda.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: StationPlaylist 17.04\n"
 "Report-Msgid-Bugs-To: nvda-translations@xxxxxxxxxxxxx\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-01-11 12:34-0800\n"
+"PO-Revision-Date: 2019-02-01 11:25+0100\n"
 "Last-Translator: José Manuel Delicado <jmdaweb@xxxxxxxxxxx>\n"
 "Language-Team: Add-ons translation team <LL@xxxxxx>\n"
 "Language: es_ES\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.9\n"
+"X-Generator: Poedit 2.2.1\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 #. Translators: Presented when attempting to install Studio add-on on 
unsupported Windows releases.
@@ -1634,8 +1634,9 @@ msgstr ""
 "las pistas actual y siguiente"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Opciones avanzadas"
+#, fuzzy
+msgid "Advanced"
+msgstr "avanzado"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -1724,11 +1725,15 @@ msgid ""
 "will be left in unpredictable state. Are you sure you wish to reset Studio "
 "add-on settings to factory defaults?"
 msgstr ""
+"Hay un perfil de cambio instantáneo o basado en tiempo activado. Si "
+"restableces los ajustes del complemento de Studio se activará el perfil "
+"normal y los ajustes del resto de perfiles quedarán en un estado "
+"impredecible. ¿Estás seguro de que quieres restablecer los ajustes del "
+"complemento de Studio a los valores de fábrica?"
 
 #. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
-#, fuzzy
 msgid "SPL Studio add-on reset"
-msgstr "Opciones del complemento Studio"
+msgstr "Restablecimiento del complemento SPL Studio"
 
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
@@ -2191,3 +2196,6 @@ msgid ""
 msgstr ""
 "Mejora el soporte para Station Playlist Studio.\n"
 "Además, agrega comandos globales para el estudio desde cualquier parte."
+
+#~ msgid "Advanced options"
+#~ msgstr "Opciones avanzadas"

diff --git a/addon/locale/fr/LC_MESSAGES/nvda.po 
b/addon/locale/fr/LC_MESSAGES/nvda.po
index cb2e2e2..c8269d4 100755
--- a/addon/locale/fr/LC_MESSAGES/nvda.po
+++ b/addon/locale/fr/LC_MESSAGES/nvda.po
@@ -5,17 +5,17 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StationPlaylist 19.01.1\n"
+"Project-Id-Version: StationPlaylist 19.02\n"
 "Report-Msgid-Bugs-To: nvda-translations@xxxxxxxxxxxxx\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-01-11 12:35-0800\n"
+"PO-Revision-Date: 2019-02-01 23:00+0100\n"
 "Last-Translator: Rémy Ruiz <remyruiz@xxxxxxxxx>\n"
 "Language-Team: Rémy Ruiz <remyruiz@xxxxxxxxx>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.9\n"
+"X-Generator: Poedit 1.8.12\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 #. Translators: Presented when attempting to install Studio add-on on 
unsupported Windows releases.
@@ -1647,8 +1647,9 @@ msgstr ""
 "pour la piste actuelles et suivante"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Options avancées"
+#, fuzzy
+msgid "Advanced"
+msgstr "avancé"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -1737,11 +1738,15 @@ msgid ""
 "will be left in unpredictable state. Are you sure you wish to reset Studio "
 "add-on settings to factory defaults?"
 msgstr ""
+"Un changement immédiat ou un profils basé sur l'heure est actif. "
+"Réinitialiser les paramètres du module complémentaire Studio signifie que le "
+"profil normal deviendra actif et que les paramètres du changement de profil "
+"resteront dans un état imprévisible. Voulez-vous vraiment réinitialiser les "
+"paramètres du module complémentaire Studio aux paramètres d’usine?"
 
 #. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
-#, fuzzy
 msgid "SPL Studio add-on reset"
-msgstr "Paramètres Module Complémentaire Studio"
+msgstr "Réinitialiser le module complémentaire SPL Studio"
 
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
@@ -2206,3 +2211,6 @@ msgid ""
 msgstr ""
 "Améliore la prise en charge de StationPlaylist Studio.\n"
 "En outre, ajoute des commandes globales pour studio où que vous soyez."
+
+#~ msgid "Advanced options"
+#~ msgstr "Options avancées"

diff --git a/addon/locale/gl/LC_MESSAGES/nvda.po 
b/addon/locale/gl/LC_MESSAGES/nvda.po
index 4521878..0111c31 100755
--- a/addon/locale/gl/LC_MESSAGES/nvda.po
+++ b/addon/locale/gl/LC_MESSAGES/nvda.po
@@ -1624,8 +1624,9 @@ msgstr ""
 "das pistas actual e seguinte"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Opcións avanzadas"
+#, fuzzy
+msgid "Advanced"
+msgstr "avanzado"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2176,3 +2177,6 @@ msgid ""
 msgstr ""
 "Mellora o soporte para Station Playlist Studio.\n"
 "Ademáis, engade ordes globais para o estudio dende calquera parte."
+
+#~ msgid "Advanced options"
+#~ msgstr "Opcións avanzadas"

diff --git a/addon/locale/he/LC_MESSAGES/nvda.po 
b/addon/locale/he/LC_MESSAGES/nvda.po
index d65e97a..e57933e 100644
--- a/addon/locale/he/LC_MESSAGES/nvda.po
+++ b/addon/locale/he/LC_MESSAGES/nvda.po
@@ -1536,8 +1536,9 @@ msgid ""
 msgstr "כלול שם הרצועה ומיקום נוכחי בעת הכרזה על המידע הנוכחי ועל הרצועה הבא"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "אפשרויות מתקדמות"
+#, fuzzy
+msgid "Advanced"
+msgstr "מתקדם"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2056,3 +2057,6 @@ msgid ""
 msgstr ""
 "מנגיש את תוכנת StationPlaylist  Studio  .  \n"
 "בנוסף, מאפשר ביצוע פקודות מכל מקום אחר במחשב."
+
+#~ msgid "Advanced options"
+#~ msgstr "אפשרויות מתקדמות"

diff --git a/addon/locale/hr/LC_MESSAGES/nvda.po 
b/addon/locale/hr/LC_MESSAGES/nvda.po
index 306158f..29af4a5 100644
--- a/addon/locale/hr/LC_MESSAGES/nvda.po
+++ b/addon/locale/hr/LC_MESSAGES/nvda.po
@@ -1616,8 +1616,9 @@ msgstr ""
 "trenutnom i sljedećem zapisu"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Napredne postavke"
+#, fuzzy
+msgid "Advanced"
+msgstr "Napredni"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2160,3 +2161,6 @@ msgid ""
 msgstr ""
 "Poboljšava podršku za StationPlaylist Studio.\n"
 "Također, dodaje komande za studio bilo gdje."
+
+#~ msgid "Advanced options"
+#~ msgstr "Napredne postavke"

diff --git a/addon/locale/pl/LC_MESSAGES/nvda.po 
b/addon/locale/pl/LC_MESSAGES/nvda.po
index 1c45c43..03ee8df 100755
--- a/addon/locale/pl/LC_MESSAGES/nvda.po
+++ b/addon/locale/pl/LC_MESSAGES/nvda.po
@@ -1599,8 +1599,9 @@ msgstr ""
 "następnego utworu"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Zaawansowane"
+#, fuzzy
+msgid "Advanced"
+msgstr "Zaawansowany"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2139,3 +2140,6 @@ msgid ""
 msgstr ""
 "Poprawia dostępność Station Playlist Studio.\n"
 "Ponadto, dodaje globalne komendy dla studia, dostępne z każdego miejsca."
+
+#~ msgid "Advanced options"
+#~ msgstr "Zaawansowane"

diff --git a/addon/locale/pt_PT/LC_MESSAGES/nvda.po 
b/addon/locale/pt_PT/LC_MESSAGES/nvda.po
index 3e00428..4a30fe3 100644
--- a/addon/locale/pt_PT/LC_MESSAGES/nvda.po
+++ b/addon/locale/pt_PT/LC_MESSAGES/nvda.po
@@ -1632,8 +1632,9 @@ msgstr ""
 "e próximas"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Opções avançadas"
+#, fuzzy
+msgid "Advanced"
+msgstr "Avançado"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2178,3 +2179,6 @@ msgid ""
 msgstr ""
 "Melhora o suporte para StationPlaylist Studio.\n"
 "Além disso, adiciona comandos globais para o estúdio em todos os lugares."
+
+#~ msgid "Advanced options"
+#~ msgstr "Opções avançadas"

diff --git a/addon/locale/ro/LC_MESSAGES/nvda.po 
b/addon/locale/ro/LC_MESSAGES/nvda.po
index 99e9bdc..ac4c989 100644
--- a/addon/locale/ro/LC_MESSAGES/nvda.po
+++ b/addon/locale/ro/LC_MESSAGES/nvda.po
@@ -1621,8 +1621,9 @@ msgstr ""
 "despre melodiile actuale și viitoare"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Opțiuni avansate"
+#, fuzzy
+msgid "Advanced"
+msgstr "Avansat"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2176,6 +2177,9 @@ msgstr ""
 "Conține suport pentru StationPlaylist Studio.\n"
 "De asemenea, adaugă comenzi globale pentru studio de oriunde."
 
+#~ msgid "Advanced options"
+#~ msgstr "Opțiuni avansate"
+
 #~ msgid "Add-on update check"
 #~ msgstr "Actualizarea extensiei add-on se caută"
 

diff --git a/addon/locale/sr/LC_MESSAGES/nvda.po 
b/addon/locale/sr/LC_MESSAGES/nvda.po
index 1202195..e79a2e3 100644
--- a/addon/locale/sr/LC_MESSAGES/nvda.po
+++ b/addon/locale/sr/LC_MESSAGES/nvda.po
@@ -1617,8 +1617,9 @@ msgstr ""
 "trenutnom i sledećem zapisu"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Napredne opcije"
+#, fuzzy
+msgid "Advanced"
+msgstr "Napredan"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2160,3 +2161,6 @@ msgid ""
 msgstr ""
 "Poboljšava podršku za StationPlaylist Studio.\n"
 "Takođe, dodaje globalne komande za studio bilo gde."
+
+#~ msgid "Advanced options"
+#~ msgstr "Napredne opcije"

diff --git a/addon/locale/vi/LC_MESSAGES/nvda.po 
b/addon/locale/vi/LC_MESSAGES/nvda.po
index a6756c1..122fb17 100644
--- a/addon/locale/vi/LC_MESSAGES/nvda.po
+++ b/addon/locale/vi/LC_MESSAGES/nvda.po
@@ -7,14 +7,14 @@ msgstr ""
 "Project-Id-Version: stationPlaylist 17.02\n"
 "Report-Msgid-Bugs-To: nvda-translations@xxxxxxxxxxxxx\n"
 "POT-Creation-Date: 2017-02-03 19:00+1000\n"
-"PO-Revision-Date: 2019-01-11 12:50-0800\n"
+"PO-Revision-Date: 2019-02-03 00:23+0700\n"
 "Last-Translator: Dang Manh Cuong <dangmanhcuong@xxxxxxxxx>\n"
 "Language-Team: \n"
 "Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.9\n"
+"X-Generator: Poedit 2.2.1\n"
 
 #. Translators: Presented when attempting to install Studio add-on on 
unsupported Windows releases.
 msgid ""
@@ -450,7 +450,7 @@ msgstr "Chuyển giữa nhiều cài đặt hẹn giờ chữ nổi."
 
 #. Translators: Standard dialog message when an item one wishes to search is 
not found (copy this from main nvda.po).
 msgid "Search string not found."
-msgstr "Không tìm thấy chuỗi."
+msgstr "Không tìm thấy chuỗi tìm kiếm."
 
 #. Translators: Presented when a user attempts to find tracks but is not at 
the track list.
 msgid "Track finder is available only in track list."
@@ -1425,7 +1425,7 @@ msgid "Check to enable metadata streaming, uncheck to 
disable."
 msgstr "Chọn để bật metadata streaming, bỏ chọn để tắt."
 
 msgid "&Stream:"
-msgstr "&Stream:"
+msgstr "&Phát:"
 
 #. Translators: A checkbox to let metadata streaming status be applied to the 
currently active broadcast profile.
 msgid "&Apply streaming changes to the selected profile"
@@ -1591,8 +1591,9 @@ msgstr ""
 "Bao gồm &vị trí track khi thông báo thông tin của track hiện tại và track kế"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Các tùy chọn nâng cao"
+#, fuzzy
+msgid "Advanced"
+msgstr "nâng cao"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -1678,11 +1679,15 @@ msgid ""
 "will be left in unpredictable state. Are you sure you wish to reset Studio "
 "add-on settings to factory defaults?"
 msgstr ""
+"Một hồ sơ chuyển nhanh hoặc hồ sơ theo thời gian đang hoạt động. Việc khôi "
+"phục các cài đặt của Studio add-on có nghĩa là hồ sơ bình thường sẽ được "
+"kích hoạt và các cài đặt chuyển hồ sơ sẽ còn trong trạng thái không xác "
+"định. Bạn có chắc chắn khôi phục các cài đặt Studio add-on về thiết lập mặc "
+"định của nhà sản xuất không?"
 
 #. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
-#, fuzzy
 msgid "SPL Studio add-on reset"
-msgstr "Cài đặt Studio Add-on"
+msgstr "Khôi phục cài đặt SPL Studio add-on"
 
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
@@ -2135,3 +2140,6 @@ msgid ""
 msgstr ""
 "Cải thiện hỗ trợ cho StationPlaylist Studio.\n"
 "Ngoài ra là thêm các lệnh toàn cục cho studio từ bất cứ đâu."
+
+#~ msgid "Advanced options"
+#~ msgstr "Các tùy chọn nâng cao"


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/66b3e095599b/
Changeset:   66b3e095599b
Branch:      None
User:        josephsl
Date:        2019-02-13 08:00:11+00:00
Summary:     Merge branch 'master' into i97ColumnAnnouncementsBasePanel

Affected #:  12 files

diff --git a/addon/locale/de/LC_MESSAGES/nvda.po 
b/addon/locale/de/LC_MESSAGES/nvda.po
index e7524b8..cb29968 100644
--- a/addon/locale/de/LC_MESSAGES/nvda.po
+++ b/addon/locale/de/LC_MESSAGES/nvda.po
@@ -1644,8 +1644,9 @@ msgstr ""
 "Titelinformationen mit einbeziehen"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Erweiterte Optionen"
+#, fuzzy
+msgid "Advanced"
+msgstr "Fortgeschritten"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2208,3 +2209,6 @@ msgstr ""
 "Verbessert die Unterstützung für Station Playlist Studio.\n"
 "Des weiteren fügt es Tastenkombinationen für das Studio aus beliebigen "
 "Programmen hinzu."
+
+#~ msgid "Advanced options"
+#~ msgstr "Erweiterte Optionen"

diff --git a/addon/locale/de_CH/LC_MESSAGES/nvda.po 
b/addon/locale/de_CH/LC_MESSAGES/nvda.po
index e9cfa0f..e1704be 100644
--- a/addon/locale/de_CH/LC_MESSAGES/nvda.po
+++ b/addon/locale/de_CH/LC_MESSAGES/nvda.po
@@ -1657,8 +1657,9 @@ msgstr ""
 "Titelinformationen mit einbeziehen"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Erweiterte Optionen"
+#, fuzzy
+msgid "Advanced"
+msgstr "Fortgeschritten"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2219,3 +2220,6 @@ msgstr ""
 "Verbessert die Unterstützung für Station Playlist Studio.\n"
 "Des weiteren fügt es Tastenkombinationen für das Studio aus beliebigen "
 "Programmen hinzu."
+
+#~ msgid "Advanced options"
+#~ msgstr "Erweiterte Optionen"

diff --git a/addon/locale/es/LC_MESSAGES/nvda.po 
b/addon/locale/es/LC_MESSAGES/nvda.po
index 22f437f..97eacf6 100755
--- a/addon/locale/es/LC_MESSAGES/nvda.po
+++ b/addon/locale/es/LC_MESSAGES/nvda.po
@@ -8,7 +8,7 @@ msgstr ""
 "Project-Id-Version: StationPlaylist 17.04\n"
 "Report-Msgid-Bugs-To: nvda-translations@xxxxxxxxxxxxx\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-01-11 12:34-0800\n"
+"PO-Revision-Date: 2019-02-01 11:25+0100\n"
 "Last-Translator: José Manuel Delicado <jmdaweb@xxxxxxxxxxx>\n"
 "Language-Team: Add-ons translation team <LL@xxxxxx>\n"
 "Language: es_ES\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.9\n"
+"X-Generator: Poedit 2.2.1\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 #. Translators: Presented when attempting to install Studio add-on on 
unsupported Windows releases.
@@ -1634,8 +1634,9 @@ msgstr ""
 "las pistas actual y siguiente"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Opciones avanzadas"
+#, fuzzy
+msgid "Advanced"
+msgstr "avanzado"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -1724,11 +1725,15 @@ msgid ""
 "will be left in unpredictable state. Are you sure you wish to reset Studio "
 "add-on settings to factory defaults?"
 msgstr ""
+"Hay un perfil de cambio instantáneo o basado en tiempo activado. Si "
+"restableces los ajustes del complemento de Studio se activará el perfil "
+"normal y los ajustes del resto de perfiles quedarán en un estado "
+"impredecible. ¿Estás seguro de que quieres restablecer los ajustes del "
+"complemento de Studio a los valores de fábrica?"
 
 #. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
-#, fuzzy
 msgid "SPL Studio add-on reset"
-msgstr "Opciones del complemento Studio"
+msgstr "Restablecimiento del complemento SPL Studio"
 
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
@@ -2191,3 +2196,6 @@ msgid ""
 msgstr ""
 "Mejora el soporte para Station Playlist Studio.\n"
 "Además, agrega comandos globales para el estudio desde cualquier parte."
+
+#~ msgid "Advanced options"
+#~ msgstr "Opciones avanzadas"

diff --git a/addon/locale/fr/LC_MESSAGES/nvda.po 
b/addon/locale/fr/LC_MESSAGES/nvda.po
index cb2e2e2..c8269d4 100755
--- a/addon/locale/fr/LC_MESSAGES/nvda.po
+++ b/addon/locale/fr/LC_MESSAGES/nvda.po
@@ -5,17 +5,17 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StationPlaylist 19.01.1\n"
+"Project-Id-Version: StationPlaylist 19.02\n"
 "Report-Msgid-Bugs-To: nvda-translations@xxxxxxxxxxxxx\n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-01-11 12:35-0800\n"
+"PO-Revision-Date: 2019-02-01 23:00+0100\n"
 "Last-Translator: Rémy Ruiz <remyruiz@xxxxxxxxx>\n"
 "Language-Team: Rémy Ruiz <remyruiz@xxxxxxxxx>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.9\n"
+"X-Generator: Poedit 1.8.12\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
 #. Translators: Presented when attempting to install Studio add-on on 
unsupported Windows releases.
@@ -1647,8 +1647,9 @@ msgstr ""
 "pour la piste actuelles et suivante"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Options avancées"
+#, fuzzy
+msgid "Advanced"
+msgstr "avancé"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -1737,11 +1738,15 @@ msgid ""
 "will be left in unpredictable state. Are you sure you wish to reset Studio "
 "add-on settings to factory defaults?"
 msgstr ""
+"Un changement immédiat ou un profils basé sur l'heure est actif. "
+"Réinitialiser les paramètres du module complémentaire Studio signifie que le "
+"profil normal deviendra actif et que les paramètres du changement de profil "
+"resteront dans un état imprévisible. Voulez-vous vraiment réinitialiser les "
+"paramètres du module complémentaire Studio aux paramètres d’usine?"
 
 #. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
-#, fuzzy
 msgid "SPL Studio add-on reset"
-msgstr "Paramètres Module Complémentaire Studio"
+msgstr "Réinitialiser le module complémentaire SPL Studio"
 
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
@@ -2206,3 +2211,6 @@ msgid ""
 msgstr ""
 "Améliore la prise en charge de StationPlaylist Studio.\n"
 "En outre, ajoute des commandes globales pour studio où que vous soyez."
+
+#~ msgid "Advanced options"
+#~ msgstr "Options avancées"

diff --git a/addon/locale/gl/LC_MESSAGES/nvda.po 
b/addon/locale/gl/LC_MESSAGES/nvda.po
index 4521878..0111c31 100755
--- a/addon/locale/gl/LC_MESSAGES/nvda.po
+++ b/addon/locale/gl/LC_MESSAGES/nvda.po
@@ -1624,8 +1624,9 @@ msgstr ""
 "das pistas actual e seguinte"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Opcións avanzadas"
+#, fuzzy
+msgid "Advanced"
+msgstr "avanzado"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2176,3 +2177,6 @@ msgid ""
 msgstr ""
 "Mellora o soporte para Station Playlist Studio.\n"
 "Ademáis, engade ordes globais para o estudio dende calquera parte."
+
+#~ msgid "Advanced options"
+#~ msgstr "Opcións avanzadas"

diff --git a/addon/locale/he/LC_MESSAGES/nvda.po 
b/addon/locale/he/LC_MESSAGES/nvda.po
index d65e97a..e57933e 100644
--- a/addon/locale/he/LC_MESSAGES/nvda.po
+++ b/addon/locale/he/LC_MESSAGES/nvda.po
@@ -1536,8 +1536,9 @@ msgid ""
 msgstr "כלול שם הרצועה ומיקום נוכחי בעת הכרזה על המידע הנוכחי ועל הרצועה הבא"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "אפשרויות מתקדמות"
+#, fuzzy
+msgid "Advanced"
+msgstr "מתקדם"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2056,3 +2057,6 @@ msgid ""
 msgstr ""
 "מנגיש את תוכנת StationPlaylist  Studio  .  \n"
 "בנוסף, מאפשר ביצוע פקודות מכל מקום אחר במחשב."
+
+#~ msgid "Advanced options"
+#~ msgstr "אפשרויות מתקדמות"

diff --git a/addon/locale/hr/LC_MESSAGES/nvda.po 
b/addon/locale/hr/LC_MESSAGES/nvda.po
index 306158f..29af4a5 100644
--- a/addon/locale/hr/LC_MESSAGES/nvda.po
+++ b/addon/locale/hr/LC_MESSAGES/nvda.po
@@ -1616,8 +1616,9 @@ msgstr ""
 "trenutnom i sljedećem zapisu"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Napredne postavke"
+#, fuzzy
+msgid "Advanced"
+msgstr "Napredni"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2160,3 +2161,6 @@ msgid ""
 msgstr ""
 "Poboljšava podršku za StationPlaylist Studio.\n"
 "Također, dodaje komande za studio bilo gdje."
+
+#~ msgid "Advanced options"
+#~ msgstr "Napredne postavke"

diff --git a/addon/locale/pl/LC_MESSAGES/nvda.po 
b/addon/locale/pl/LC_MESSAGES/nvda.po
index 1c45c43..03ee8df 100755
--- a/addon/locale/pl/LC_MESSAGES/nvda.po
+++ b/addon/locale/pl/LC_MESSAGES/nvda.po
@@ -1599,8 +1599,9 @@ msgstr ""
 "następnego utworu"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Zaawansowane"
+#, fuzzy
+msgid "Advanced"
+msgstr "Zaawansowany"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2139,3 +2140,6 @@ msgid ""
 msgstr ""
 "Poprawia dostępność Station Playlist Studio.\n"
 "Ponadto, dodaje globalne komendy dla studia, dostępne z każdego miejsca."
+
+#~ msgid "Advanced options"
+#~ msgstr "Zaawansowane"

diff --git a/addon/locale/pt_PT/LC_MESSAGES/nvda.po 
b/addon/locale/pt_PT/LC_MESSAGES/nvda.po
index 3e00428..4a30fe3 100644
--- a/addon/locale/pt_PT/LC_MESSAGES/nvda.po
+++ b/addon/locale/pt_PT/LC_MESSAGES/nvda.po
@@ -1632,8 +1632,9 @@ msgstr ""
 "e próximas"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Opções avançadas"
+#, fuzzy
+msgid "Advanced"
+msgstr "Avançado"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2178,3 +2179,6 @@ msgid ""
 msgstr ""
 "Melhora o suporte para StationPlaylist Studio.\n"
 "Além disso, adiciona comandos globais para o estúdio em todos os lugares."
+
+#~ msgid "Advanced options"
+#~ msgstr "Opções avançadas"

diff --git a/addon/locale/ro/LC_MESSAGES/nvda.po 
b/addon/locale/ro/LC_MESSAGES/nvda.po
index 99e9bdc..ac4c989 100644
--- a/addon/locale/ro/LC_MESSAGES/nvda.po
+++ b/addon/locale/ro/LC_MESSAGES/nvda.po
@@ -1621,8 +1621,9 @@ msgstr ""
 "despre melodiile actuale și viitoare"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Opțiuni avansate"
+#, fuzzy
+msgid "Advanced"
+msgstr "Avansat"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2176,6 +2177,9 @@ msgstr ""
 "Conține suport pentru StationPlaylist Studio.\n"
 "De asemenea, adaugă comenzi globale pentru studio de oriunde."
 
+#~ msgid "Advanced options"
+#~ msgstr "Opțiuni avansate"
+
 #~ msgid "Add-on update check"
 #~ msgstr "Actualizarea extensiei add-on se caută"
 

diff --git a/addon/locale/sr/LC_MESSAGES/nvda.po 
b/addon/locale/sr/LC_MESSAGES/nvda.po
index 1202195..e79a2e3 100644
--- a/addon/locale/sr/LC_MESSAGES/nvda.po
+++ b/addon/locale/sr/LC_MESSAGES/nvda.po
@@ -1617,8 +1617,9 @@ msgstr ""
 "trenutnom i sledećem zapisu"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Napredne opcije"
+#, fuzzy
+msgid "Advanced"
+msgstr "Napredan"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -2160,3 +2161,6 @@ msgid ""
 msgstr ""
 "Poboljšava podršku za StationPlaylist Studio.\n"
 "Takođe, dodaje globalne komande za studio bilo gde."
+
+#~ msgid "Advanced options"
+#~ msgstr "Napredne opcije"

diff --git a/addon/locale/vi/LC_MESSAGES/nvda.po 
b/addon/locale/vi/LC_MESSAGES/nvda.po
index a6756c1..122fb17 100644
--- a/addon/locale/vi/LC_MESSAGES/nvda.po
+++ b/addon/locale/vi/LC_MESSAGES/nvda.po
@@ -7,14 +7,14 @@ msgstr ""
 "Project-Id-Version: stationPlaylist 17.02\n"
 "Report-Msgid-Bugs-To: nvda-translations@xxxxxxxxxxxxx\n"
 "POT-Creation-Date: 2017-02-03 19:00+1000\n"
-"PO-Revision-Date: 2019-01-11 12:50-0800\n"
+"PO-Revision-Date: 2019-02-03 00:23+0700\n"
 "Last-Translator: Dang Manh Cuong <dangmanhcuong@xxxxxxxxx>\n"
 "Language-Team: \n"
 "Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.9\n"
+"X-Generator: Poedit 2.2.1\n"
 
 #. Translators: Presented when attempting to install Studio add-on on 
unsupported Windows releases.
 msgid ""
@@ -450,7 +450,7 @@ msgstr "Chuyển giữa nhiều cài đặt hẹn giờ chữ nổi."
 
 #. Translators: Standard dialog message when an item one wishes to search is 
not found (copy this from main nvda.po).
 msgid "Search string not found."
-msgstr "Không tìm thấy chuỗi."
+msgstr "Không tìm thấy chuỗi tìm kiếm."
 
 #. Translators: Presented when a user attempts to find tracks but is not at 
the track list.
 msgid "Track finder is available only in track list."
@@ -1425,7 +1425,7 @@ msgid "Check to enable metadata streaming, uncheck to 
disable."
 msgstr "Chọn để bật metadata streaming, bỏ chọn để tắt."
 
 msgid "&Stream:"
-msgstr "&Stream:"
+msgstr "&Phát:"
 
 #. Translators: A checkbox to let metadata streaming status be applied to the 
currently active broadcast profile.
 msgid "&Apply streaming changes to the selected profile"
@@ -1591,8 +1591,9 @@ msgstr ""
 "Bao gồm &vị trí track khi thông báo thông tin của track hiện tại và track kế"
 
 #. Translators: title of a panel to configure advanced SPL add-on options such 
as update checking.
-msgid "Advanced options"
-msgstr "Các tùy chọn nâng cao"
+#, fuzzy
+msgid "Advanced"
+msgstr "nâng cao"
 
 #. Translators: A checkbox to toggle if SPL Controller command can be used to 
invoke Assistant layer.
 msgid "Allow SPL C&ontroller command to invoke SPL Assistant layer"
@@ -1678,11 +1679,15 @@ msgid ""
 "will be left in unpredictable state. Are you sure you wish to reset Studio "
 "add-on settings to factory defaults?"
 msgstr ""
+"Một hồ sơ chuyển nhanh hoặc hồ sơ theo thời gian đang hoạt động. Việc khôi "
+"phục các cài đặt của Studio add-on có nghĩa là hồ sơ bình thường sẽ được "
+"kích hoạt và các cài đặt chuyển hồ sơ sẽ còn trong trạng thái không xác "
+"định. Bạn có chắc chắn khôi phục các cài đặt Studio add-on về thiết lập mặc "
+"định của nhà sản xuất không?"
 
 #. Translators: The title of the confirmation dialog for Studio add-on 
settings reset.
-#, fuzzy
 msgid "SPL Studio add-on reset"
-msgstr "Cài đặt Studio Add-on"
+msgstr "Khôi phục cài đặt SPL Studio add-on"
 
 #. Translators: A dialog message shown when settings were reset to defaults.
 msgid "Successfully applied default add-on settings."
@@ -2135,3 +2140,6 @@ msgid ""
 msgstr ""
 "Cải thiện hỗ trợ cho StationPlaylist Studio.\n"
 "Ngoài ra là thêm các lệnh toàn cục cho studio từ bất cứ đâu."
+
+#~ msgid "Advanced options"
+#~ msgstr "Các tùy chọn nâng cao"


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/46feb8f23cdb/
Changeset:   46feb8f23cdb
Branch:      None
User:        josephsl
Date:        2019-02-15 05:09:06+00:00
Summary:     Readme on recent changes, along with a word on experimental 
featuress.

Column inclusion/order control placement marked as 'experimental'.

Affected #:  1 file

diff --git a/readme.md b/readme.md
index 0097898..0c0d996 100755
--- a/readme.md
+++ b/readme.md
@@ -18,6 +18,7 @@ IMPORTANT NOTES:
 * Certain add-on features won't work under some conditions, including running 
NVDA in secure mode.
 * Due to tecnical limitations, you cannot install or use this add-on on 
Windows Store version of NVDA.
 * Add-on update feature that comes with this add-on has been removed. Use 
Add-on Updater to update this add-on.
+* Features marked as "experimental" are meant to test something before a wider 
release, so they will not be enabled in stable releases.
 
 ## Shortcut keys
 
@@ -195,6 +196,8 @@ If you are using Studio on a touchscreen computer running 
Windows 8 or later and
 ## Version 19.03/18.09.7-LTS
 
 * Pressing Control+NVDA+R to reload saved settings will now also reload Studio 
add-on settings, and pressing this command three times will also reset Studio 
add-on settings to defaults along with NVDA settings.
+* Renamed Studio add-on settings dialog's "Advanced options" panel to 
"Advanced".
+* 19.03 Experimental: in column announcements and playlist transcripts panels 
(add-on settings), custom column inclusion/order controls will be visible up 
front instead of having to select a button to open a dialog to configure these 
settings.
 
 ## Version 19.02
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/21f89d4f5bd1/
Changeset:   21f89d4f5bd1
Branch:      None
User:        josephsl
Date:        2019-02-15 05:13:36+00:00
Summary:     COlumn inclusion/order: marked as experimental for dev snapshot 
users. re #97.

Affected #:  1 file
Diff not available.

https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/1b7a1893de76/
Changeset:   1b7a1893de76
Branch:      None
User:        josephsl
Date:        2019-02-15 16:13:26+00:00
Summary:     Merge branch 'stable' of 
https://bitbucket.org/nvdaaddonteam/stationPlaylist

Affected #:  4 files
Diff not available.

https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/f475570f9241/
Changeset:   f475570f9241
Branch:      None
User:        josephsl
Date:        2019-02-17 05:02:58+00:00
Summary:     Config: move isDevVersion function to outside of ConfigHub.

Because other modules might check if the dev version of the add-on is running 
(especially without SPLConfig loaded), move dev version checker to outside of 
the config hub class.

Affected #:  1 file
Diff not available.

https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/b4d4050c56e3/
Changeset:   b4d4050c56e3
Branch:      stable
User:        josephsl
Date:        2019-02-17 05:04:56+00:00
Summary:     Column announcements base panel: use the newly revised 
isDevVersion function from config module.

Affected #:  1 file
Diff not available.

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: