katie/scripts/genrgb.py
Ivailo Monev 4967f2f58c add note where the data is from to genrgb.py script
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2022-09-23 19:22:22 +03:00

49 lines
1.4 KiB
Python
Executable file

#!/usr/bin/python
# Data is from /usr/share/X11/rgb.txt
import sys
from collections import OrderedDict
def normalizespace(sstring):
result = sstring.replace(' \t', ' ')
result = result.replace('\t ', ' ')
result = result.replace('\t\t', '\t')
result = result.replace('\t', ' ')
for r in range(10):
result = result.replace(' ', ' ')
return result.strip()
def removespace(sstring):
result = normalizespace(sstring)
result = result.replace(' ', '')
return result.strip()
rgbmap = OrderedDict()
with open(sys.argv[1], 'rb') as f:
for sline in f.readlines():
sline = sline.decode('utf-8')
if sline.startswith('!'):
continue
sline = normalizespace(sline)
llineparts = sline.split(' ')
if len(llineparts) < 4:
continue
scolor = ' '.join(llineparts[3:])
scolor = removespace(scolor.lower())
rgbmap[scolor] = {
'r': llineparts[0],
'g': llineparts[1],
'b': llineparts[2],
}
print('''static const struct X11RGBTblData {
const char *name;
const QRgb value;
} X11RGBTbl[] = {''')
for rgb in sorted(rgbmap.keys()):
print(' { "%s", qRgb(%s, %s, %s) },' % (rgb, rgbmap[rgb]['r'], rgbmap[rgb]['g'], rgbmap[rgb]['b']))
print('''};
static const qint16 X11RGBTblSize = sizeof(X11RGBTbl) / sizeof(X11RGBTblData);''')