132 lines
4.9 KiB
Python
132 lines
4.9 KiB
Python
#!/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# Fenrir TTY screen reader
|
|
# By Chrys, Storm Dragon, and contributers.
|
|
|
|
from fenrirscreenreader.core import debug
|
|
from fenrirscreenreader.core.settingsData import settingsData
|
|
|
|
class quickMenuManager():
|
|
def __init__(self):
|
|
self.position = 0
|
|
self.quickMenu = []
|
|
self.settings = settingsData
|
|
|
|
def initialize(self, environment):
|
|
self.env = environment
|
|
self.loadMenu(self.env['runtime']['settingsManager'].getSetting('menu', 'quickMenu'))
|
|
def shutdown(self):
|
|
pass
|
|
def loadMenu(self, menuString):
|
|
self.position = 0
|
|
self.quickMenu = []
|
|
if menuString == '':
|
|
return
|
|
entrys = menuString.split(';')
|
|
for e in entrys:
|
|
entry = e.split('#')
|
|
if len(entry) != 2:
|
|
continue
|
|
try:
|
|
t = self.settings[entry[0]][entry[1]]
|
|
except:
|
|
print(entry[0],entry[1], 'not found')
|
|
continue
|
|
self.quickMenu.append({'section': entry[0], 'setting': entry[1]})
|
|
def nextEntry(self):
|
|
if len(self.quickMenu) == 0:
|
|
return False
|
|
self.position += 1
|
|
if self.position >= len(self.quickMenu):
|
|
self.position = 0
|
|
return True
|
|
def prevEntry(self):
|
|
if len(self.quickMenu) == 0:
|
|
return False
|
|
self.position -= 1
|
|
if self.position < 0:
|
|
self.position = len(self.quickMenu) - 1
|
|
return True
|
|
def nextValue(self):
|
|
if len(self.quickMenu) == 0:
|
|
return False
|
|
section = self.quickMenu[self.position]['section']
|
|
setting = self.quickMenu[self.position]['setting']
|
|
valueString = ''
|
|
try:
|
|
valueString = self.env['runtime']['settingsManager'].getSetting(section, setting)
|
|
except:
|
|
return False
|
|
|
|
try:
|
|
if isinstance(self.settings[section][setting], str):
|
|
value = str(valueString)
|
|
return False
|
|
elif isinstance(self.settings[section][setting], bool):
|
|
if not valueString in ['True','False']:
|
|
return False
|
|
value = not value
|
|
self.env['runtime']['settingsManager'].setSetting(section, setting, str(value))
|
|
elif isinstance(self.settings[section][setting], int):
|
|
value = int(valueString)
|
|
value += 1
|
|
self.env['runtime']['settingsManager'].setSetting(section, setting, str(value))
|
|
elif isinstance(self.settings[section][setting], float):
|
|
value = float(valueString)
|
|
value += 0.05
|
|
if value > 1.0:
|
|
value = 1.0
|
|
self.env['runtime']['settingsManager'].setSetting(section, setting, str(value)[:4])
|
|
except Exception as e:
|
|
return False
|
|
return True
|
|
def prevValue(self):
|
|
if len(self.quickMenu) == 0:
|
|
return False
|
|
section = self.quickMenu[self.position]['section']
|
|
setting = self.quickMenu[self.position]['setting']
|
|
valueString = ''
|
|
try:
|
|
valueString = self.env['runtime']['settingsManager'].getSetting(section, setting)
|
|
except:
|
|
return False
|
|
try:
|
|
if isinstance(self.settings[section][setting], str):
|
|
value = str(valueString)
|
|
return False
|
|
elif isinstance(self.settings[section][setting], bool):
|
|
if not valueString in ['True','False']:
|
|
return False
|
|
value = not value
|
|
self.env['runtime']['settingsManager'].setSetting(section, setting, str(value))
|
|
elif isinstance(self.settings[section][setting], int):
|
|
value = int(valueString)
|
|
value -= 1
|
|
if value < 0:
|
|
value = 0
|
|
self.env['runtime']['settingsManager'].setSetting(section, setting, str(value))
|
|
elif isinstance(self.settings[section][setting], float):
|
|
value = float(valueString)
|
|
value -= 0.05
|
|
if value < 0.0:
|
|
value = 0.0
|
|
self.env['runtime']['settingsManager'].setSetting(section, setting, str(value)[:4])
|
|
except Exception as e:
|
|
return False
|
|
return True
|
|
def getCurrentEntry(self):
|
|
if len(self.quickMenu) == 0:
|
|
return ''
|
|
try:
|
|
return _(self.quickMenu[self.position]['section']) + ' ' + _(self.quickMenu[self.position]['setting'])
|
|
except:
|
|
return _('setting invalid')
|
|
def getCurrentValue(self):
|
|
if len(self.quickMenu) == 0:
|
|
return ''
|
|
try:
|
|
return self.env['runtime']['settingsManager'].getSetting(self.quickMenu[self.position]['section'], self.quickMenu[self.position]['setting'])
|
|
except:
|
|
return _('setting value invalid')
|