Merge pull request #833 from croneter/fix-clearing-window-vars

Correctly clear window variables e.g. on user switch
This commit is contained in:
croneter 2019-04-21 10:05:26 +02:00 committed by GitHub
commit 8dd1565fc1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -626,6 +626,9 @@ def _sync_from_pms(pick_libraries):
# Remove the section itself # Remove the section itself
old_section.remove() old_section.remove()
# Clear all existing window vars because we did NOT remove them with the
# command section.remove()
clear_window_vars()
# Time to write the sections to Kodi # Time to write the sections to Kodi
for section in sections: for section in sections:
section.to_kodi() section.to_kodi()
@ -638,22 +641,25 @@ def _sync_from_pms(pick_libraries):
def _clear_window_vars(index): def _clear_window_vars(index):
node = 'Plex.nodes.%s' % index node = 'Plex.nodes.%s' % index
utils.window('%s.index' % node, clear=True)
utils.window('%s.title' % node, clear=True) utils.window('%s.title' % node, clear=True)
utils.window('%s.type' % node, clear=True) utils.window('%s.type' % node, clear=True)
utils.window('%s.content' % node, clear=True) utils.window('%s.content' % node, clear=True)
utils.window('%s.path' % node, clear=True) utils.window('%s.path' % node, clear=True)
utils.window('%s.id' % node, clear=True) utils.window('%s.id' % node, clear=True)
utils.window('%s.addon_path' % node, clear=True) utils.window('%s.addon_index' % node, clear=True)
for kind in WINDOW_ARGS: # Just clear everything here, ignore the plex_type
node = 'Plex.nodes.%s.%s' % (index, kind) for typus in (x[0] for y in nodes.NODE_TYPES.values() for x in y):
utils.window(node, clear=True) for kind in WINDOW_ARGS:
node = 'Plex.nodes.%s.%s.%s' % (index, typus, kind)
utils.window(node, clear=True)
def clear_window_vars(): def clear_window_vars():
""" """
Removes all references to sections stored in window vars 'Plex.nodes...' Removes all references to sections stored in window vars 'Plex.nodes...'
""" """
LOG.info('Clearing all the Plex video node variables') LOG.debug('Clearing all the Plex video node variables')
number_of_nodes = int(utils.window('Plex.nodes.total') or 0) number_of_nodes = int(utils.window('Plex.nodes.total') or 0)
utils.window('Plex.nodes.total', clear=True) utils.window('Plex.nodes.total', clear=True)
for index in range(number_of_nodes): for index in range(number_of_nodes):