aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens/LanguageSelection.py
blob: 6b18121ff81f725e29a9d252a82b6ffc0545582e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from Screen import Screen

from Components.MenuList import MenuList
from Components.ActionMap import ActionMap
from Components.Language import language
from Components.LanguageList import *
from Components.config import config


class LanguageSelection(Screen):
	def __init__(self, session):
		Screen.__init__(self, session)
		
		self.list = []
		self["list"] = LanguageList(self.list)
		self.updateList()
		self.onLayoutFinish.append(self.selectActiveLanguage)
				
		self["actions"] = ActionMap(["OkCancelActions", "DirectionActions"], 
		{
			"ok": self.save,
			"cancel": self.close,
			"up": self.up,
			"down": self.down,
			"left": self.left,
			"right": self.right
		}, -1)
		
	def selectActiveLanguage(self):
		self["list"].instance.moveSelectionTo(language.activeLanguage)
		
	def save(self):
		self.run()
		self.close()
	
	def run(self):
		language.activateLanguage(self["list"].l.getCurrentSelectionIndex())
		config.osd.language.value = self["list"].l.getCurrentSelectionIndex()
		config.osd.language.save()
		self.setTitle(_("Language selection"))

	def updateList(self):
		self.list = []
		if len(language.lang) == 0: # no language available => display only english
			self.list.append(LanguageEntryComponent("en", _("English")))
		else:
			for x in language.lang:
				self.list.append(LanguageEntryComponent(x[3].lower(), _(x[0])))
		
		self["list"].l.setList(self.list)

	def up(self):
		self["list"].instance.moveSelection(self["list"].instance.moveUp)
		self.run()
		self.updateList()
		
	def down(self):
		self["list"].instance.moveSelection(self["list"].instance.moveDown)
		self.run()
		self.updateList()

	def left(self):
		self["list"].instance.moveSelection(self["list"].instance.pageUp)
		self.run()
		self.updateList()
		
	def right(self):
		self["list"].instance.moveSelection(self["list"].instance.pageDown)
		self.run()
		self.updateList()