diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2008-05-17 22:54:46 +0000 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2008-05-17 22:54:46 +0000 |
| commit | 605ad52612d47d3ff18a4b045bc1ade29277722e (patch) | |
| tree | 159023ca981c3318366020765bae23dbebb39e21 | |
| parent | edd49056e4f324834dbe499a8be69ae07ebe1bdc (diff) | |
| download | enigma2-605ad52612d47d3ff18a4b045bc1ade29277722e.tar.gz enigma2-605ad52612d47d3ff18a4b045bc1ade29277722e.zip | |
add DreamPackageWizard
| -rw-r--r-- | data/skin_default.xml | 17 | ||||
| -rw-r--r-- | lib/python/Components/Scanner.py | 2 | ||||
| -rw-r--r-- | lib/python/Screens/DefaultWizard.py | 56 |
3 files changed, 70 insertions, 5 deletions
diff --git a/data/skin_default.xml b/data/skin_default.xml index 85e5a430..c6d1bb46 100644 --- a/data/skin_default.xml +++ b/data/skin_default.xml @@ -183,7 +183,22 @@ self.instance.move(ePoint((720-wsizex)/2, (576-wsizey)/(count > 7 and 2 or 3) <widget name="arrowdown" pixmap="skin_default/arrowdown.png" position="-100,-100" zPosition="11" size="37,70" transparent="1" alphatest="on"/> <widget name="arrowup" pixmap="skin_default/arrowup.png" position="-100,-100" zPosition="11" size="37,70" transparent="1" alphatest="on"/> <widget name="arrowup2" pixmap="skin_default/arrowup.png" position="-100,-100" zPosition="11" size="37,70" transparent="1" alphatest="on"/> - </screen> + </screen> + <screen name="DreamPackageWizard" position="0,0" size="720,576" title="Welcome..." flags="wfNoBorder" > + <widget name="text" position="153,50" size="340,270" font="Regular;23" /> + <widget source="list" render="Listbox" position="50,300" size="440,200" scrollbarMode="showOnDemand" > + <convert type="StringList" /> + </widget> + <ePixmap pixmap="skin_default/buttons/button_red.png" position="40,225" size="15,16" alphatest="on" /> + <widget name="languagetext" position="55,225" size="95,30" font="Regular;18" /> + <widget name="config" position="50,300" zPosition="1" size="440,200" transparent="1" scrollbarMode="showOnDemand" /> + <!--widget name="stepslider" position="50,500" zPosition="1" borderWidth="2" size="440,20" backgroundColor="dark" /--> + <widget name="wizard" pixmap="skin_default/wizard.png" position="40,50" zPosition="10" size="110,174" transparent="1" alphatest="on"/> + <widget name="rc" pixmap="skin_default/rc.png" position="500,600" zPosition="10" size="154,475" transparent="1" alphatest="on"/> + <widget name="arrowdown" pixmap="skin_default/arrowdown.png" position="-100,-100" zPosition="11" size="37,70" transparent="1" alphatest="on"/> + <widget name="arrowup" pixmap="skin_default/arrowup.png" position="-100,-100" zPosition="11" size="37,70" transparent="1" alphatest="on"/> + <widget name="arrowup2" pixmap="skin_default/arrowup.png" position="-100,-100" zPosition="11" size="37,70" transparent="1" alphatest="on"/> + </screen> <!-- Dish --> <screen name="Dish" flags="wfNoBorder" position="300,100" size="130,160" title="Dish" zPosition="-1" backgroundColor="transparent"> <widget name="Dishpixmap" pixmap="skin_default/icons/dish.png" position="0,0" size="130,160" alphatest="off" /> diff --git a/lib/python/Components/Scanner.py b/lib/python/Components/Scanner.py index 6acdecc8..94c9cc2f 100644 --- a/lib/python/Components/Scanner.py +++ b/lib/python/Components/Scanner.py @@ -24,6 +24,8 @@ def getType(file): return "application/x-debian-package" elif ext == "ogg": return "application/ogg" + elif ext == "dmpkg": + return "application/x-dream-package" return type class Scanner: diff --git a/lib/python/Screens/DefaultWizard.py b/lib/python/Screens/DefaultWizard.py index 87f6816a..33a3d20e 100644 --- a/lib/python/Screens/DefaultWizard.py +++ b/lib/python/Screens/DefaultWizard.py @@ -5,6 +5,8 @@ from Tools.Directories import crawlDirectory, resolveFilename, SCOPE_DEFAULTDIR, from Components.Pixmap import Pixmap, MovingPixmap from Components.config import config, ConfigBoolean, configfile, ConfigYesNo, getConfigListEntry from Components.DreamInfoHandler import DreamInfoHandler, InfoHandler, InfoHandlerParseError +from Components.PluginComponent import plugins +from Plugins.Plugin import PluginDescriptor import os config.misc.defaultchosen = ConfigBoolean(default = True) @@ -15,9 +17,7 @@ class DefaultWizard(WizardLanguage, DreamInfoHandler): def __init__(self, session, silent = True): DreamInfoHandler.__init__(self, self.statusCallback) self.silent = silent - os.system("mount %s %s" % (resolveFilename(SCOPE_DEFAULTPARTITION), resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR))) - self.directory = resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR) - self.xmlfile = "defaultwizard.xml" + self.setDirectory() WizardLanguage.__init__(self, session, showSteps = False) self["wizard"] = Pixmap() @@ -25,6 +25,11 @@ class DefaultWizard(WizardLanguage, DreamInfoHandler): self["arrowdown"] = MovingPixmap() self["arrowup"] = MovingPixmap() self["arrowup2"] = MovingPixmap() + + def setDirectory(self): + os.system("mount %s %s" % (resolveFilename(SCOPE_DEFAULTPARTITION), resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR))) + self.directory = resolveFilename(SCOPE_DEFAULTPARTITIONMOUNTDIR) + self.xmlfile = "defaultwizard.xml" def markDone(self): config.misc.defaultchosen.value = 0 @@ -58,6 +63,17 @@ class DefaultWizard(WizardLanguage, DreamInfoHandler): indexList.append(x) self.installPackages(indexList) +class DreamPackageWizard(DefaultWizard): + def __init__(self, session, packagefile, silent = False): + os.system("mkdir /tmp/package") + os.system("tar xpzf %s -C /tmp/package" % packagefile) + self.packagefile = packagefile + DefaultWizard.__init__(self, session, silent) + + def setDirectory(self): + self.directory = "/tmp/package" + self.xmlfile = "dreampackagewizard.xml" + class ImageDefaultInstaller(DreamInfoHandler): def __init__(self): DreamInfoHandler.__init__(self, self.statusCallback, blocking = True) @@ -67,8 +83,40 @@ class ImageDefaultInstaller(DreamInfoHandler): def statusCallback(self, status, progress): pass - + +def install(choice): + if choice is not None: + #os.system("mkdir /tmp/package && tar xpzf %s ") + choice[2].open(DreamPackageWizard, choice[1]) + +def filescan_open(list, session, **kwargs): + from Screens.ChoiceBox import ChoiceBox + print "open default wizard" + filelist = [(os.path.split(x.path)[1], x.path, session) for x in list] + print filelist + session.openWithCallback(install, ChoiceBox, title = _("Please choose he package..."), list=filelist) + +def filescan(**kwargs): + from Components.Scanner import Scanner, ScanPath + from mimetypes import add_type + add_type("application/x-dream-package", "dmpkg") + return \ + Scanner(mimetypes = ["application/x-dream-package"], + paths_to_scan = + [ + ScanPath(path = "dmpkg", with_subdirs = True), + ScanPath(path = "", with_subdirs = False), + ], + name = "Dream-Package", + description = "Install settings, skins, software...", + openfnc = filescan_open, ) + +print "add dreampackage scanner plugin" +plugins.addPlugin(PluginDescriptor(name="Dream-Package", where = PluginDescriptor.WHERE_FILESCAN, fnc = filescan, internal = True)) +print "added" + wizardManager.registerWizard(DefaultWizard, config.misc.defaultchosen.value, priority = 6) + if config.misc.defaultchosen.value: print "Installing image defaults" installer = ImageDefaultInstaller() |
