-from enigma import eTimer, quitMainloop, RT_HALIGN_LEFT, RT_VALIGN_CENTER, eListboxPythonMultiContent, eListbox, gFont
-from Screens.Screen import Screen
-from Screens.MessageBox import MessageBox
from Components.ActionMap import ActionMap, NumberActionMap
-from Components.ScrollLabel import ScrollLabel
-from Components.GUIComponent import *
-from Components.MenuList import MenuList
+from Components.GUIComponent import GUIComponent
from Components.Input import Input
-from Screens.Console import Console
-from Screens.MessageBox import MessageBox
+from Components.Ipkg import IpkgComponent
+from Components.Label import Label
+from Components.MenuList import MenuList
+from Components.Slider import Slider
from Plugins.Plugin import PluginDescriptor
+from Screens.Console import Console
from Screens.ImageWizard import ImageWizard
-from Components.Ipkg import Ipkg
-from Components.Slider import Slider
-from Components.Label import Label
-
+from Screens.MessageBox import MessageBox
+from Screens.MessageBox import MessageBox
+from Screens.Screen import Screen
+from enigma import eTimer, quitMainloop, RT_HALIGN_LEFT, RT_VALIGN_CENTER, eListboxPythonMultiContent, eListbox, gFont
from os import popen
+
class UpdatePluginMenu(Screen):
skin = """
<screen position="200,100" size="300,250" title="Update..." >
self["text"] = Input(sources[0], maxSize=False, type=Input.TEXT)
- self["actions"] = NumberActionMap(["WizardActions", "InputActions"],
+ self["actions"] = NumberActionMap(["WizardActions", "InputActions", "TextEntryActions", "KeyboardInputActions"],
{
"ok": self.go,
"back": self.close,
"left": self.keyLeft,
"right": self.keyRight,
+ "home": self.keyHome,
+ "end": self.keyEnd,
+ "deleteForward": self.deleteForward,
+ "deleteBackward": self.deleteBackward,
"1": self.keyNumberGlobal,
"2": self.keyNumberGlobal,
"3": self.keyNumberGlobal,
def keyRight(self):
self["text"].right()
+ def keyHome(self):
+ self["text"].home()
+
+ def keyEnd(self):
+ self["text"].end()
+
+ def keyDeleteForward(self):
+ self["text"].delete()
+
+ def keyDeleteBackward(self):
+ self["text"].deleteBackward()
+
def keyNumberGlobal(self, number):
print "pressed", number
self["text"].number(number)
<screen position="100,100" size="550,200" title="Software Update..." >
<widget name="activityslider" position="0,0" size="550,5" />
<widget name="slider" position="0,100" size="550,30" />
- <widget name="package" position="10,30" size="420,20" font="Regular;18"/>
- <widget name="status" position="10,60" size="420,45" font="Regular;18"/>
+ <widget name="package" position="10,30" size="540,20" font="Regular;18"/>
+ <widget name="status" position="10,60" size="540,45" font="Regular;18"/>
</screen>"""
def __init__(self, session, args = None):
self.activity = 0
self.activityTimer = eTimer()
- self.activityTimer.timeout.get().append(self.doActivityTimer)
+ self.activityTimer.callback.append(self.doActivityTimer)
self.activityTimer.start(100, False)
- self.ipkg = Ipkg()
+ self.ipkg = IpkgComponent()
self.ipkg.addCallback(self.ipkgCallback)
self.updating = True
self.package.setText(_("Package list update"))
- self.ipkg.cmdUpdate()
+ self.ipkg.startCmd(IpkgComponent.CMD_UPDATE)
self["actions"] = ActionMap(["WizardActions"],
{
self.activityslider.setValue(self.activity)
def ipkgCallback(self, event, param):
- if event == Ipkg.EVENT_DOWNLOAD:
+ if event == IpkgComponent.EVENT_DOWNLOAD:
self.status.setText(_("Downloading"))
- elif event == Ipkg.EVENT_UPGRADE:
+ elif event == IpkgComponent.EVENT_UPGRADE:
if self.sliderPackages.has_key(param):
self.slider.setValue(self.sliderPackages[param])
self.package.setText(param)
self.status.setText(_("Upgrading"))
self.packages += 1
- elif event == Ipkg.EVENT_INSTALL:
+ elif event == IpkgComponent.EVENT_INSTALL:
self.package.setText(param)
self.status.setText(_("Installing"))
self.packages += 1
- elif event == Ipkg.EVENT_CONFIGURING:
+ elif event == IpkgComponent.EVENT_CONFIGURING:
self.package.setText(param)
self.status.setText(_("Configuring"))
- elif event == Ipkg.EVENT_ERROR:
+ elif event == IpkgComponent.EVENT_MODIFIED:
+ self.session.openWithCallback(
+ self.modificationCallback,
+ MessageBox,
+ _("A configuration file (%s) was modified since Installation.\nDo you want to keep your version?") % (param)
+ )
+ elif event == IpkgComponent.EVENT_ERROR:
self.error += 1
- elif event == Ipkg.EVENT_DONE:
+ elif event == IpkgComponent.EVENT_DONE:
if self.updating:
self.updating = False
- self.ipkg.cmdUpgrade(test_only = False)
+ self.ipkg.startCmd(IpkgComponent.CMD_UPGRADE, args = {'test_only': False})
elif self.error == 0:
self.slider.setValue(4)
self.status.setText(_("Error") + " - " + error)
#print event, "-", param
pass
-
+
+ def modificationCallback(self, res):
+ self.ipkg.write(res and "N" or "Y")
+
def exit(self):
if not self.ipkg.isRunning():
if self.packages != 0 and self.error == 0: