From 5db2dc5c63948651b3e4b337d7057cd940ccc644 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Thu, 13 Dec 2007 01:25:52 +0000 Subject: [PATCH] factor out loadPNG into generic LoadPixmap --- lib/python/Components/ChoiceList.py | 5 +++-- lib/python/Components/EpgList.py | 6 ++++-- lib/python/Components/FileList.py | 8 +++++--- lib/python/Components/MediaPlayer.py | 15 +++++++++------ lib/python/Components/ParentalControlList.py | 4 ++-- lib/python/Components/PluginList.py | 7 ++++--- lib/python/Components/SelectionList.py | 5 +++-- lib/python/Components/ServiceList.py | 15 ++++++++------- lib/python/Components/TimerList.py | 5 +++-- .../Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py | 5 +++-- lib/python/Plugins/Plugin.py | 4 ++-- lib/python/Screens/LanguageSelection.py | 7 ++++--- lib/python/Screens/PluginBrowser.py | 10 ++++++---- lib/python/Screens/RdsDisplay.py | 11 ++++++----- lib/python/Tools/LoadPixmap.py | 7 +++++++ lib/python/Tools/Makefile.am | 3 +-- 16 files changed, 70 insertions(+), 47 deletions(-) create mode 100644 lib/python/Tools/LoadPixmap.py diff --git a/lib/python/Components/ChoiceList.py b/lib/python/Components/ChoiceList.py index 14216cf..07bb56d 100644 --- a/lib/python/Components/ChoiceList.py +++ b/lib/python/Components/ChoiceList.py @@ -2,7 +2,8 @@ from HTMLComponent import HTMLComponent from GUIComponent import GUIComponent from MenuList import MenuList from Tools.Directories import SCOPE_SKIN_IMAGE, resolveFilename -from enigma import RT_HALIGN_LEFT, eListboxPythonMultiContent, eListbox, gFont, loadPNG +from enigma import RT_HALIGN_LEFT, eListboxPythonMultiContent, eListbox, gFont +from Tools.LoadPixmap import LoadPixmap def ChoiceEntryComponent(key, text): res = [ text ] @@ -11,7 +12,7 @@ def ChoiceEntryComponent(key, text): else: res.append((eListboxPythonMultiContent.TYPE_TEXT, 32, 00, 800, 25, 0, RT_HALIGN_LEFT, text[0])) - png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "key_" + key + "-fs8.png")) + png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "key_" + key + "-fs8.png")) if png is not None: res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 30, 20, png)) diff --git a/lib/python/Components/EpgList.py b/lib/python/Components/EpgList.py index 0c4290d..ba8d029 100644 --- a/lib/python/Components/EpgList.py +++ b/lib/python/Components/EpgList.py @@ -1,9 +1,11 @@ from HTMLComponent import HTMLComponent from GUIComponent import GUIComponent -from enigma import eEPGCache, eListbox, eListboxPythonMultiContent, gFont, loadPNG, \ +from enigma import eEPGCache, eListbox, eListboxPythonMultiContent, gFont, \ RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_HALIGN_CENTER, RT_VALIGN_CENTER +from Tools.LoadPixmap import LoadPixmap + from time import localtime, time from ServiceReference import ServiceReference from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE @@ -49,7 +51,7 @@ class EPGList(HTMLComponent, GUIComponent): assert(type == EPG_TYPE_SIMILAR) self.l.setBuildFunc(self.buildSimilarEntry) self.epgcache = eEPGCache.getInstance() - self.clock_pixmap = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, 'epgclock-fs8.png')) + self.clock_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'epgclock-fs8.png')) def getEventFromId(self, service, eventid): event = None diff --git a/lib/python/Components/FileList.py b/lib/python/Components/FileList.py index ae171c3..61297ac 100644 --- a/lib/python/Components/FileList.py +++ b/lib/python/Components/FileList.py @@ -8,8 +8,10 @@ from Components.Harddisk import harddiskmanager from Tools.Directories import SCOPE_SKIN_IMAGE, resolveFilename -from enigma import RT_HALIGN_LEFT, loadPNG, eListbox, eListboxPythonMultiContent, \ +from enigma import RT_HALIGN_LEFT, eListbox, eListboxPythonMultiContent, \ eServiceReference, eServiceCenter, gFont +from Tools.LoadPixmap import LoadPixmap + EXTENSIONS = { "mp3": "music", @@ -29,12 +31,12 @@ def FileEntryComponent(name, absolute = None, isDir = False): res = [ (absolute, isDir) ] res.append((eListboxPythonMultiContent.TYPE_TEXT, 35, 1, 470, 20, 0, RT_HALIGN_LEFT, name)) if isDir: - png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "extensions/directory.png")) + png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "extensions/directory.png")) else: extension = name.split('.') extension = extension[-1].lower() if EXTENSIONS.has_key(extension): - png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "extensions/" + EXTENSIONS[extension] + ".png")) + png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "extensions/" + EXTENSIONS[extension] + ".png")) else: png = None if png is not None: diff --git a/lib/python/Components/MediaPlayer.py b/lib/python/Components/MediaPlayer.py index a728aef..416b015 100644 --- a/lib/python/Components/MediaPlayer.py +++ b/lib/python/Components/MediaPlayer.py @@ -6,7 +6,10 @@ from MenuList import MenuList from Tools.Directories import SCOPE_SKIN_IMAGE, resolveFilename from os import path -from enigma import eListboxPythonMultiContent, eListbox, RT_VALIGN_CENTER, loadPNG, gFont, eServiceCenter +from enigma import eListboxPythonMultiContent, eListbox, RT_VALIGN_CENTER, gFont, eServiceCenter + +from Tools.LoadPixmap import LoadPixmap + STATE_PLAY = 0 STATE_PAUSE = 1 @@ -15,11 +18,11 @@ STATE_REWIND = 3 STATE_FORWARD = 4 STATE_NONE = 5 -PlayIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_mp_play.png")) -PauseIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_mp_pause.png")) -StopIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_mp_stop.png")) -RewindIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_mp_rewind.png")) -ForwardIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_mp_forward.png")) +PlayIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "ico_mp_play.png")) +PauseIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "ico_mp_pause.png")) +StopIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "ico_mp_stop.png")) +RewindIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "ico_mp_rewind.png")) +ForwardIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "ico_mp_forward.png")) def PlaylistEntryComponent(serviceref, state): res = [ serviceref ] diff --git a/lib/python/Components/ParentalControlList.py b/lib/python/Components/ParentalControlList.py index f518555..9ec469a 100644 --- a/lib/python/Components/ParentalControlList.py +++ b/lib/python/Components/ParentalControlList.py @@ -5,9 +5,9 @@ from MenuList import MenuList from Components.ParentalControl import parentalControl from Tools.Directories import SCOPE_SKIN_IMAGE, resolveFilename -from enigma import loadPNG, eListbox, eListboxPythonMultiContent, gFont, RT_HALIGN_LEFT +from enigma import LoadPixmap, eListbox, eListboxPythonMultiContent, gFont, RT_HALIGN_LEFT -lockPicture = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "lock-fs8.png")) +lockPicture = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "lock-fs8.png")) def ParentalControlEntryComponent(service, name, locked = True): res = [ (service, name, locked) ] diff --git a/lib/python/Components/PluginList.py b/lib/python/Components/PluginList.py index 3a3bef1..153c61a 100644 --- a/lib/python/Components/PluginList.py +++ b/lib/python/Components/PluginList.py @@ -6,7 +6,8 @@ from MenuList import MenuList from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest -from enigma import loadPNG, eListboxPythonMultiContent, eListbox, gFont +from enigma import eListboxPythonMultiContent, eListbox, gFont +from Tools.LoadPixmap import LoadPixmap def PluginEntryComponent(plugin): res = [ plugin ] @@ -15,7 +16,7 @@ def PluginEntryComponent(plugin): res.append(MultiContentEntryText(pos=(120, 26), size=(320, 17), font=1, text=plugin.description)) if plugin.icon is None: - png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "plugin.png")) + png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "plugin.png")) else: png = plugin.icon res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 5), size=(100, 40), png = png)) @@ -37,7 +38,7 @@ def PluginDownloadComponent(plugin, name): res.append(MultiContentEntryText(pos=(120, 26), size=(320, 17), font=1, text=plugin.description)) if plugin.icon is None: - png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "plugin.png")) + png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "plugin.png")) else: png = plugin.icon res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 0), size=(100, 50), png = png)) diff --git a/lib/python/Components/SelectionList.py b/lib/python/Components/SelectionList.py index 6b02e5b..10b1d53 100644 --- a/lib/python/Components/SelectionList.py +++ b/lib/python/Components/SelectionList.py @@ -1,9 +1,10 @@ from GUIComponent import GUIComponent from MenuList import MenuList from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE -from enigma import eListboxPythonMultiContent, loadPNG, eListbox, gFont, RT_HALIGN_LEFT +from enigma import eListboxPythonMultiContent, eListbox, gFont, RT_HALIGN_LEFT +from Tools.LoadPixmap import LoadPixmap -selectionpng = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "selectioncross-fs8.png")) +selectionpng = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "selectioncross-fs8.png")) def SelectionEntryComponent(description, value, index, selected): res = [ (description, value, index, selected) ] diff --git a/lib/python/Components/ServiceList.py b/lib/python/Components/ServiceList.py index 46c024d..e39b1d0 100644 --- a/lib/python/Components/ServiceList.py +++ b/lib/python/Components/ServiceList.py @@ -2,7 +2,8 @@ from HTMLComponent import HTMLComponent from GUIComponent import GUIComponent from skin import parseColor -from enigma import loadPNG, eListboxServiceContent, eListbox, eServiceCenter, eServiceReference, gFont, eRect +from enigma import eListboxServiceContent, eListbox, eServiceCenter, eServiceReference, gFont, eRect +from Tools.LoadPixmap import LoadPixmap from string import upper @@ -16,27 +17,27 @@ class ServiceList(HTMLComponent, GUIComponent): GUIComponent.__init__(self) self.l = eListboxServiceContent() - pic = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "folder.png")) + pic = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "folder.png")) if pic: self.l.setPixmap(self.l.picFolder, pic) - pic = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "marker-fs8.png")) + pic = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "marker-fs8.png")) if pic: self.l.setPixmap(self.l.picMarker, pic) - pic = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_dvb_s-fs8.png")) + pic = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "ico_dvb_s-fs8.png")) if pic: self.l.setPixmap(self.l.picDVB_S, pic) - pic = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_dvb_c-fs8.png")) + pic = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "ico_dvb_c-fs8.png")) if pic: self.l.setPixmap(self.l.picDVB_C, pic) - pic = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_dvb_t-fs8.png")) + pic = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "ico_dvb_t-fs8.png")) if pic: self.l.setPixmap(self.l.picDVB_T, pic) - pic = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "ico_service_group-fs8.png")) + pic = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "ico_service_group-fs8.png")) if pic: self.l.setPixmap(self.l.picServiceGroup, pic) diff --git a/lib/python/Components/TimerList.py b/lib/python/Components/TimerList.py index b1d9ba0..269eb3b 100644 --- a/lib/python/Components/TimerList.py +++ b/lib/python/Components/TimerList.py @@ -3,8 +3,9 @@ from GUIComponent import GUIComponent from Tools.FuzzyDate import FuzzyTime -from enigma import eListboxPythonMultiContent, eListbox, gFont, loadPNG, \ +from enigma import eListboxPythonMultiContent, eListbox, gFont, \ RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_VALIGN_CENTER +from Tools.LoadPixmap import LoadPixmap from timer import TimerEntry from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE @@ -62,7 +63,7 @@ class TimerList(HTMLComponent, GUIComponent, object): res.append((eListboxPythonMultiContent.TYPE_TEXT, width-240, 50, 240, 20, 1, RT_HALIGN_RIGHT|RT_VALIGN_CENTER, state)) if timer.disabled: - png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "redx.png")) + png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "redx.png")) res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 490, 5, 40, 40, png)) return res diff --git a/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py b/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py index 3148879..d6d2759 100644 --- a/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py +++ b/lib/python/Plugins/Extensions/GraphMultiEPG/GraphMultiEpg.py @@ -17,7 +17,8 @@ from Screens.EpgSelection import EPGSelection from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE from RecordTimer import RecordTimerEntry, parseEvent from ServiceReference import ServiceReference -from enigma import eEPGCache, eListbox, gFont, loadPNG, eListboxPythonMultiContent, \ +from Tools.LoadPixmap import LoadPixmap +from enigma import eEPGCache, eListbox, gFont, eListboxPythonMultiContent, \ RT_HALIGN_LEFT, RT_HALIGN_CENTER, RT_VALIGN_CENTER, RT_WRAP, eRect, eTimer from time import localtime, time, strftime @@ -38,7 +39,7 @@ class EPGList(HTMLComponent, GUIComponent): if overjump_empty: self.l.setSelectableFunc(self.isSelectable) self.epgcache = eEPGCache.getInstance() - self.clock_pixmap = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, 'epgclock-fs8.png')) + self.clock_pixmap = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, 'epgclock-fs8.png')) self.time_base = None self.time_epoch = time_epoch self.list = None diff --git a/lib/python/Plugins/Plugin.py b/lib/python/Plugins/Plugin.py index b01b9b8..f6f9b48 100644 --- a/lib/python/Plugins/Plugin.py +++ b/lib/python/Plugins/Plugin.py @@ -1,5 +1,5 @@ -from enigma import loadPNG from Components.config import ConfigSubsection, config +from Tools.LoadPixmap import LoadPixmap config.plugins = ConfigSubsection() @@ -63,7 +63,7 @@ class PluginDescriptor: def updateIcon(self, path): if type(self.iconstr) is str: - self.icon = loadPNG(path + "/" + self.iconstr) + self.icon = LoadPixmap(path + "/" + self.iconstr) else: self.icon = None diff --git a/lib/python/Screens/LanguageSelection.py b/lib/python/Screens/LanguageSelection.py index 81eb2d4..3e95b79 100644 --- a/lib/python/Screens/LanguageSelection.py +++ b/lib/python/Screens/LanguageSelection.py @@ -7,14 +7,15 @@ from Components.Sources.List import List from Tools.Directories import * -from enigma import eListboxPythonMultiContent, loadPNG, gFont, RT_HALIGN_LEFT +from enigma import eListboxPythonMultiContent, gFont, RT_HALIGN_LEFT +from Tools.LoadPixmap import LoadPixmap def LanguageEntryComponent(file, name, index): res = [ index ] res.append((eListboxPythonMultiContent.TYPE_TEXT, 80, 10, 200, 50, 0, RT_HALIGN_LEFT ,name)) - png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "countries/" + file + ".png")) + png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "countries/" + file + ".png")) if png == None: - png = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "countries/missing.png")) + png = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "countries/missing.png")) res.append((eListboxPythonMultiContent.TYPE_PIXMAP, 10, 5, 60, 40, png)) return res diff --git a/lib/python/Screens/PluginBrowser.py b/lib/python/Screens/PluginBrowser.py index 5459ccc..fbb809d 100644 --- a/lib/python/Screens/PluginBrowser.py +++ b/lib/python/Screens/PluginBrowser.py @@ -1,6 +1,6 @@ from Screen import Screen -from enigma import eConsoleAppContainer, loadPNG +from enigma import eConsoleAppContainer from Components.ActionMap import ActionMap from Components.PluginComponent import plugins @@ -10,6 +10,8 @@ from Screens.MessageBox import MessageBox from Screens.Console import Console from Plugins.Plugin import PluginDescriptor from Tools.Directories import resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE +from Tools.LoadPixmap import LoadPixmap + class PluginBrowser(Screen): def __init__(self, session): @@ -168,9 +170,9 @@ class PluginDownloadBrowser(Screen): def updateList(self): self.list = [] - expandableIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "expandable-plugins.png")) - expandedIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "expanded-plugins.png")) - verticallineIcon = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "verticalline-plugins.png")) + expandableIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "expandable-plugins.png")) + expandedIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "expanded-plugins.png")) + verticallineIcon = LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "verticalline-plugins.png")) self.plugins = {} for x in self.pluginlist: diff --git a/lib/python/Screens/RdsDisplay.py b/lib/python/Screens/RdsDisplay.py index 9b60fae..d4b2257 100644 --- a/lib/python/Screens/RdsDisplay.py +++ b/lib/python/Screens/RdsDisplay.py @@ -1,10 +1,11 @@ -from enigma import iPlayableService, loadPNG, iRdsDecoder +from enigma import iPlayableService, iRdsDecoder from Screens.Screen import Screen from Components.ActionMap import NumberActionMap from Components.ServiceEventTracker import ServiceEventTracker from Components.Pixmap import Pixmap from Components.Label import Label from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE +from Tools.LoadPixmap import LoadPixmap class RdsInfoDisplay(Screen): ALLOW_SUSPEND = True @@ -121,10 +122,10 @@ class RassInteractive(Screen): 9 : self["subpages_9"] } self.subpage_png = { - 1 : loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "rass_page1.png")), - 2 : loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "rass_page2.png")), - 3 : loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "rass_page3.png")), - 4 : loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "rass_page4.png")) } + 1 : LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "rass_page1.png")), + 2 : LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "rass_page2.png")), + 3 : LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "rass_page3.png")), + 4 : LoadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, "rass_page4.png")) } self.current_page=0; self.current_subpage=0; diff --git a/lib/python/Tools/LoadPixmap.py b/lib/python/Tools/LoadPixmap.py new file mode 100644 index 0000000..033b843 --- /dev/null +++ b/lib/python/Tools/LoadPixmap.py @@ -0,0 +1,7 @@ +from enigma import loadPNG + +def LoadPixmap(path, desktop = None): + ptr = loadPNG(path) + if ptr and desktop: + desktop.makeCompatiblePixmap(ptr) + return ptr diff --git a/lib/python/Tools/Makefile.am b/lib/python/Tools/Makefile.am index 5af6b1b..0bc8200 100644 --- a/lib/python/Tools/Makefile.am +++ b/lib/python/Tools/Makefile.am @@ -4,5 +4,4 @@ install_PYTHON = \ FuzzyDate.py XMLTools.py Directories.py NumericalTextInput.py \ KeyBindings.py BoundFunction.py ISO639.py Notifications.py __init__.py \ RedirectOutput.py DreamboxHardware.py Import.py Event.py CList.py \ - RedirectTime.py - + RedirectTime.py LoadPixmap.py -- 2.7.4