aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFraxinas <andreas.frisch@multimedia-labs.de>2011-02-23 14:13:42 +0100
committerFraxinas <andreas.frisch@multimedia-labs.de>2011-02-23 14:13:42 +0100
commitd15066ea9f5412d83fb46db2974ef08646d86634 (patch)
treed4dc4086e60002c17d55f4904b77a6f88ebc1800
parent102118bc5545165bb9323c5a1f053778821e8f5f (diff)
parentb4053026b1af27eee25d483cfdc33d91678479bd (diff)
downloadenigma2-d15066ea9f5412d83fb46db2974ef08646d86634.tar.gz
enigma2-d15066ea9f5412d83fb46db2974ef08646d86634.zip
Merge branch 'master' of git.opendreambox.org:/git/enigma2
-rwxr-xr-xlib/python/Components/PluginComponent.py18
-rwxr-xr-xlib/python/Plugins/Plugin.py1
-rw-r--r--lib/python/Screens/Standby.py11
-rw-r--r--main/enigma.cpp3
4 files changed, 19 insertions, 14 deletions
diff --git a/lib/python/Components/PluginComponent.py b/lib/python/Components/PluginComponent.py
index e5194b28..93b08900 100755
--- a/lib/python/Components/PluginComponent.py
+++ b/lib/python/Components/PluginComponent.py
@@ -14,6 +14,7 @@ class PluginComponent:
def __init__(self):
self.plugins = {}
self.pluginList = [ ]
+ self.installedPluginList = [ ]
self.setPluginPrefix("Plugins.")
self.resetWarnings()
@@ -73,6 +74,7 @@ class PluginComponent:
plugins = [ plugins ]
for p in plugins:
+ p.path = path
p.updateIcon(path)
new_plugins.append(p)
@@ -91,17 +93,25 @@ class PluginComponent:
#ignore already installed but reloaded plugins
for p in plugins_removed:
for pa in plugins_added:
- if pa.name == p.name and pa.where == p.where:
+ if pa.path == p.path and pa.where == p.where:
pa.needsRestart = False
for p in plugins_removed:
self.removePlugin(p)
for p in plugins_added:
- self.addPlugin(p)
-
+ if self.firstRun or p.needsRestart is False:
+ self.addPlugin(p)
+ else:
+ for installed_plugin in self.installedPluginList:
+ if installed_plugin.path == p.path:
+ if installed_plugin.where == p.where:
+ p.needsRestart = False
+ self.addPlugin(p)
+
if self.firstRun:
self.firstRun = False
+ self.installedPluginList = self.pluginList
def getPlugins(self, where):
"""Get list of plugins in a specific category"""
@@ -124,8 +134,6 @@ class PluginComponent:
def clearPluginList(self):
self.pluginList = []
self.plugins = {}
- self.firstRun = True
- self.restartRequired = False
def shutdown(self):
for p in self.pluginList[:]:
diff --git a/lib/python/Plugins/Plugin.py b/lib/python/Plugins/Plugin.py
index 9ecdbc26..e26174a1 100755
--- a/lib/python/Plugins/Plugin.py
+++ b/lib/python/Plugins/Plugin.py
@@ -65,6 +65,7 @@ class PluginDescriptor:
self.name = name
self.internal = internal
self.needsRestart = needsRestart
+ self.path = None
if isinstance(where, list):
self.where = where
else:
diff --git a/lib/python/Screens/Standby.py b/lib/python/Screens/Standby.py
index 1a7ebbd1..94a56ee4 100644
--- a/lib/python/Screens/Standby.py
+++ b/lib/python/Screens/Standby.py
@@ -160,14 +160,9 @@ class TryQuitMainloop(MessageBox):
self.conntected=False
self.session.nav.record_event.remove(self.getRecordEvent)
if value:
- # hack .. we dont like to show any other screens when this screen has closed
- self.onClose = [self.__closed]
- self.session.dialog_stack = []
- self.session.summary_stack = [None]
- MessageBox.close(self, True)
-
- def __closed(self):
- quitMainloop(self.retval)
+ quitMainloop(self.retval)
+ else:
+ MessageBox.close(self, True)
def __onShow(self):
global inTryQuitMainloop
diff --git a/main/enigma.cpp b/main/enigma.cpp
index 1cdd867b..91645d89 100644
--- a/main/enigma.cpp
+++ b/main/enigma.cpp
@@ -251,8 +251,9 @@ int main(int argc, char **argv)
{
gPainter p(my_lcd_dc);
- p.resetClip(eRect(0, 0, 132, 64));
+ p.resetClip(eRect(ePoint(0, 0), my_lcd_dc->size()));
p.clear();
+ p.flush();
}
return exit_code;