From 21f7d1f555aaee934524bf6181b9941c642246a8 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Wed, 25 Jun 2008 11:50:01 +0000 Subject: [PATCH] take care of hotplug events just when the infobar is execing (no other menu is visible) --- .../Plugins/Extensions/MediaScanner/plugin.py | 18 ++++++++++++------ lib/python/Screens/InfoBar.py | 6 ++++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/python/Plugins/Extensions/MediaScanner/plugin.py b/lib/python/Plugins/Extensions/MediaScanner/plugin.py index c5f6043e..5b320ea9 100644 --- a/lib/python/Plugins/Extensions/MediaScanner/plugin.py +++ b/lib/python/Plugins/Extensions/MediaScanner/plugin.py @@ -1,5 +1,6 @@ from Plugins.Plugin import PluginDescriptor from Components.Scanner import scanDevice +from Screens.InfoBar import InfoBar def execute(option): print "execute", option @@ -57,12 +58,17 @@ def menuHook(menuid): global_session = None def partitionListChanged(action, device): - pass -# if action == 'add' and device.is_hotplug: -# print "mountpoint", device.mountpoint -# print "description", device.description -# print "force_mounted", device.force_mounted -# mountpoint_choosen((device.description, device.mountpoint, global_session)) + if InfoBar.instance: + if InfoBar.instance.execing: + if action == 'add' and device.is_hotplug: + print "mountpoint", device.mountpoint + print "description", device.description + print "force_mounted", device.force_mounted + mountpoint_choosen((device.description, device.mountpoint, global_session)) + else: + print "main infobar is not execing... so we ignore hotplug event!" + else: + print "hotplug event.. but no infobar" def sessionstart(reason, session): global global_session diff --git a/lib/python/Screens/InfoBar.py b/lib/python/Screens/InfoBar.py index 99979b13..8f400d24 100644 --- a/lib/python/Screens/InfoBar.py +++ b/lib/python/Screens/InfoBar.py @@ -40,6 +40,7 @@ class InfoBar(InfoBarBase, InfoBarShowHide, Screen): ALLOW_SUSPEND = True + instance = None def __init__(self, session): Screen.__init__(self, session) @@ -69,6 +70,11 @@ class InfoBar(InfoBarBase, InfoBarShowHide, }) self.current_begin_time=0 + assert InfoBar.instance is None, "class InfoBar is a singleton class and just one instance of this class is allowed!" + InfoBar.instance = self + + def __onClose(self): + InfoBar.instance = None def __eventInfoChanged(self): if self.execing: -- 2.30.2