begin attribute refactoring
This commit is contained in:
parent
03e755b91f
commit
2208e7ccb2
@ -163,41 +163,110 @@ class screenManager():
|
||||
self.env['runtime']['debug'].writeDebugOut('screenManager:update:highlight: ' + str(e),debug.debugLevel.ERROR)
|
||||
|
||||
def formatAttributes(self, attribute, attributeFormatString = None):
|
||||
# "black",
|
||||
# "red",
|
||||
# "green",
|
||||
# "brown",
|
||||
# "blue",
|
||||
# "magenta",
|
||||
# "cyan",
|
||||
# "white",
|
||||
# "default" # white.
|
||||
# _order_
|
||||
# "fg",
|
||||
# "bg",
|
||||
# "bold",
|
||||
# "italics",
|
||||
# "underscore",
|
||||
# "strikethrough",
|
||||
# "reverse",
|
||||
# "blink"
|
||||
# "fontsieze"
|
||||
# "fontfamily"
|
||||
if not attributeFormatString:
|
||||
attributeFormatString = self.env['runtime']['settingsManager'].getSetting('general', 'attributeFormatString')
|
||||
if not attributeFormatString:
|
||||
return ''
|
||||
if attributeFormatString == '':
|
||||
return ''
|
||||
if not attribute:
|
||||
return ''
|
||||
if len(attribute) != 10:
|
||||
return ''
|
||||
# 0 FG color (name)
|
||||
try:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirBGColor', self.env['runtime']['screenDriver'].getFenrirBGColor(attribute))
|
||||
attributeFormatString = attributeFormatString.replace('fenrirFGColor', _(attribute[0]))
|
||||
except Exception as e:
|
||||
pass
|
||||
attributeFormatString = attributeFormatString.replace('fenrirFGColor', '')
|
||||
# 1 BG color (name)
|
||||
try:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirFGColor', self.env['runtime']['screenDriver'].getFenrirFGColor(attribute))
|
||||
attributeFormatString = attributeFormatString.replace('fenrirBGColor', _(attribute[1]))
|
||||
except Exception as e:
|
||||
pass
|
||||
attributeFormatString = attributeFormatString.replace('fenrirBGColor', '')
|
||||
# 2 bold (True/ False)
|
||||
try:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirUnderline', self.env['runtime']['screenDriver'].getFenrirUnderline(attribute))
|
||||
if attribute[2]:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirBold', _('bold'))
|
||||
except Exception as e:
|
||||
pass
|
||||
pass
|
||||
attributeFormatString = attributeFormatString.replace('fenrirBold', '')
|
||||
# 3 italics (True/ False)
|
||||
try:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirBold', self.env['runtime']['screenDriver'].getFenrirBold(attribute))
|
||||
if attribute[3]:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirItalics', _('italic'))
|
||||
except Exception as e:
|
||||
pass
|
||||
pass
|
||||
attributeFormatString = attributeFormatString.replace('fenrirItalics', '')
|
||||
# 4 underline (True/ False)
|
||||
try:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirBlink', self.env['runtime']['screenDriver'].getFenrirBlink(attribute))
|
||||
if attribute[4]:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirUnderline', _('underline'))
|
||||
except Exception as e:
|
||||
pass
|
||||
pass
|
||||
attributeFormatString = attributeFormatString.replace('fenrirUnderline', '')
|
||||
# 5 strikethrough (True/ False)
|
||||
try:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirFontSize', self.env['runtime']['screenDriver'].getFenrirFontSize(attribute))
|
||||
if attribute[5]:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirStrikethrough', _('strikethrough'))
|
||||
except Exception as e:
|
||||
pass
|
||||
pass
|
||||
attributeFormatString = attributeFormatString.replace('fenrirStrikethrough', '')
|
||||
# 6 reverse (True/ False)
|
||||
try:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirFont', self.env['runtime']['screenDriver'].getFenrirFont(attribute))
|
||||
if attribute[6]:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirReverse', _('reverse'))
|
||||
except Exception as e:
|
||||
pass
|
||||
pass
|
||||
attributeFormatString = attributeFormatString.replace('fenrirReverse', '')
|
||||
# 7 blink (True/ False)
|
||||
try:
|
||||
if attribute[7]:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirBlink', _('blink'))
|
||||
except Exception as e:
|
||||
pass
|
||||
attributeFormatString = attributeFormatString.replace('fenrirBlink', '')
|
||||
# 8 font size (int/ string)
|
||||
try:
|
||||
try:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirFontSize', int(attribute[8]))
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirFontSize', str(attribute[8]))
|
||||
except:
|
||||
pass
|
||||
except Exception as e:
|
||||
pass
|
||||
attributeFormatString = attributeFormatString.replace('fenrirFontSize', _('default'))
|
||||
# 9 font family (string)
|
||||
try:
|
||||
attributeFormatString = attributeFormatString.replace('fenrirFont', attribute[9])
|
||||
except Exception as e:
|
||||
pass
|
||||
attributeFormatString = attributeFormatString.replace('fenrirFont', _('default'))
|
||||
|
||||
return attributeFormatString
|
||||
|
||||
def isSuspendingScreen(self, screen = None):
|
||||
if screen == None:
|
||||
screen = self.env['screen']['newTTY']
|
||||
|
@ -36,14 +36,12 @@ class Terminal:
|
||||
cursor = self.screen.cursor
|
||||
allAttributes = []
|
||||
text = '\n'.join(self.screen.display)
|
||||
|
||||
#start = time.time()
|
||||
#for y in range(self.screen.lines):
|
||||
# line = self.screen.buffer[y]
|
||||
# attributes = [(char.reverse, char.fg, char.bg, char.bold, char.italics, char.underscore, char.strikethrough)
|
||||
# for char in (line[x] for x in range(self.screen.columns))]
|
||||
# allAttributes.append((attributes))
|
||||
#print(time.time() -start)
|
||||
start = time.time()
|
||||
for y in range(self.screen.lines):
|
||||
line = self.screen.buffer[y]
|
||||
attributes = [char[1:] for char in (line[x] for x in range(self.screen.columns)),False, 'default', 'default']
|
||||
allAttributes.append((attributes))
|
||||
print(time.time() -start)
|
||||
self.screen.dirty.clear()
|
||||
return {"cursor": (cursor.x, cursor.y),
|
||||
'lines': self.screen.lines,
|
||||
|
Loading…
Reference in New Issue
Block a user