X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3890c277efa3bb9797b107e7b459017707f2bf0c..43f543871592eda0489f6dcbf3ad901309aaa9f9:/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py diff --git a/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py b/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py index db911865..997b9571 100755 --- a/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py +++ b/lib/python/Plugins/SystemPlugins/SkinSelector/plugin.py @@ -1,44 +1,34 @@ +# -*- coding: iso-8859-1 -*- # (c) 2006 Stephan Reichholf # This Software is Free, use it where you want, when you want for whatever you want and modify it if you want but don't remove my copyright! - -from enigma import * from Screens.Screen import Screen +from Screens.Standby import TryQuitMainloop from Screens.MessageBox import MessageBox from Components.ActionMap import NumberActionMap from Components.Pixmap import Pixmap -from Components.GUIComponent import * +from Components.Sources.StaticText import StaticText from Components.MenuList import MenuList from Plugins.Plugin import PluginDescriptor - from Components.config import config -from Tools.Directories import SCOPE_SKIN - -from Components.config import config - -import os, sys +from Tools.Directories import resolveFilename, SCOPE_PLUGINS +from os import path, walk class SkinSelector(Screen): - skin = """ - - - - - """ - + # for i18n: + # _("Choose your Skin") skinlist = [] root = "/usr/share/enigma2/" def __init__(self, session, args = None): - self.skin = SkinSelector.skin Screen.__init__(self, session) self.skinlist = [] - self.session = session self.previewPath = "" + path.walk(self.root, self.find, "") - os.path.walk(self.root, self.find, "") - + self["key_red"] = StaticText(_("Close")) + self["introduction"] = StaticText(_("Press OK to activate the selected skin.")) self.skinlist.sort() self["SkinList"] = MenuList(self.skinlist) self["Preview"] = Pixmap() @@ -47,14 +37,28 @@ class SkinSelector(Screen): { "ok": self.ok, "back": self.close, + "red": self.close, "up": self.up, "down": self.down, "left": self.left, "right": self.right, "info": self.info, }, -1) - - self.onLayoutFinish.append(self.loadPreview) + + self.onLayoutFinish.append(self.layoutFinished) + + def layoutFinished(self): + tmp = config.skin.primary_skin.value.find('/skin.xml') + if tmp != -1: + tmp = config.skin.primary_skin.value[:tmp] + idx = 0 + for skin in self.skinlist: + if skin == tmp: + break + idx += 1 + if idx < len(self.skinlist): + self["SkinList"].moveToIndex(idx) + self.loadPreview() def up(self): self["SkinList"].up() @@ -73,7 +77,7 @@ class SkinSelector(Screen): self.loadPreview() def info(self): - aboutbox = self.session.open(MessageBox,_("Enigma2 Skinselector v0.5 BETA\n\nIf you experience any problems please contact\nstephan@reichholf.net\n\n\xA9 2006 - Stephan Reichholf"), MessageBox.TYPE_INFO) + aboutbox = self.session.open(MessageBox,_("Enigma2 Skinselector\n\nIf you experience any problems please contact\nstephan@reichholf.net\n\n\xA9 2006 - Stephan Reichholf"), MessageBox.TYPE_INFO) aboutbox.setTitle(_("About...")) def find(self, arg, dirname, names): @@ -104,9 +108,8 @@ class SkinSelector(Screen): else: pngpath = self.root+self["SkinList"].getCurrent()+"/prev.png" - if not os.path.exists(pngpath): - # FIXME: don't use hardcoded path - pngpath = "/usr/lib/enigma2/python/Plugins/SystemPlugins/SkinSelector/noprev.png" + if not path.exists(pngpath): + pngpath = resolveFilename(SCOPE_PLUGINS, "SystemPlugins/SkinSelector/noprev.png") if self.previewPath != pngpath: self.previewPath = pngpath @@ -115,16 +118,16 @@ class SkinSelector(Screen): def restartGUI(self, answer): if answer is True: - quitMainloop(3) + self.session.open(TryQuitMainloop, 3) def SkinSelMain(session, **kwargs): session.open(SkinSelector) -def SkinSelSetup(menuid): +def SkinSelSetup(menuid, **kwargs): if menuid == "system": - return [("Skin...", SkinSelMain)] + return [(_("Skin"), SkinSelMain, "skin_selector", None)] else: return [] def Plugins(**kwargs): - return PluginDescriptor(name="Skinselector", description="Select Your Skin", where = PluginDescriptor.WHERE_SETUP, fnc=SkinSelSetup) + return PluginDescriptor(name="Skinselector", description="Select Your Skin", where = PluginDescriptor.WHERE_MENU, fnc=SkinSelSetup)