+ def removeSatelliteServices(self):
+ current = self.getCurrentSelection()
+ unsigned_orbpos = current.getUnsignedData(4) >> 16
+ if unsigned_orbpos == 0XFFFF:
+ msg = _("Are you sure to remove all cable services?")
+ elif unsigned_orbpos == 0XEEEE:
+ msg = _("Are you sure to remove all terrestrial services?")
+ else:
+ orbpos = current.getData(4) >> 16
+ try:
+ service_name = str(nimmanager.getSatDescription(orbpos))
+ except:
+ if orbpos > 1800: # west
+ orbpos = 3600 - orbpos
+ h = _("W")
+ else:
+ h = _("E")
+ service_name = ("%d.%d" + h) % (orbpos / 10, orbpos % 10)
+ msg = _("Are you sure to remove all %s services?" % service_name)
+ self.session.openWithCallback(self.removeSatelliteServicesCallback, MessageBox, msg)
+
+ def removeSatelliteServicesCallback(self, res):
+ if not res:
+ return
+
+ currentIndex = self.servicelist.getCurrentIndex()
+ current = self.getCurrentSelection()
+ unsigned_orbpos = current.getUnsignedData(4) >> 16
+ if unsigned_orbpos == 0XFFFF:
+ eDVBDB.getInstance().removeServices(0xFFFF0000 - 0x100000000)
+ elif unsigned_orbpos == 0XEEEE:
+ eDVBDB.getInstance().removeServices(0xEEEE0000 - 0x100000000)
+ else:
+ curpath = self.getCurrentSelection().getPath()
+ idx = curpath.find("satellitePosition == ")
+ if idx != -1:
+ tmp = curpath[idx+21:]
+ idx = tmp.find(')')
+ if idx != -1:
+ satpos = int(tmp[:idx])
+ eDVBDB.getInstance().removeServices(-1, -1, -1, satpos)
+
+ if hasattr(self, 'setMode') and hasattr(self, 'showSatellites'):
+ self.setMode()
+ self.showSatellites()
+ self.servicelist.moveToIndex(currentIndex)
+ if currentIndex != self.servicelist.getCurrentIndex():
+ self.servicelist.instance.moveSelection(self.servicelist.instance.moveEnd)
+