63 lines
2.2 KiB
Python
Raw Normal View History

2020-12-05 21:38:34 -05:00
import os
import shutil
from pathlib import Path
2020-12-05 21:38:34 -05:00
HOME = Path.home()
RESOURCES_PATH = os.path.join(HOME, '.qt_material')
2020-12-05 21:38:34 -05:00
########################################################################
class ResourseGenerator:
""""""
2020-12-05 21:38:34 -05:00
# ----------------------------------------------------------------------
2021-01-23 14:37:30 -05:00
def __init__(self, primary, secondary, disabled, source, parent='theme'):
"""Constructor"""
2020-12-05 21:38:34 -05:00
self.contex = [
(os.path.join(RESOURCES_PATH, parent, 'disabled'), disabled),
(os.path.join(RESOURCES_PATH, parent, 'primary'), primary),
]
2020-12-05 21:38:34 -05:00
2021-01-23 14:37:30 -05:00
self.source = source
self.secondary = secondary
for folder, _ in self.contex:
shutil.rmtree(folder, ignore_errors=True)
os.makedirs(folder, exist_ok=True)
2020-12-05 21:38:34 -05:00
self.index = os.path.join(RESOURCES_PATH, parent)
2020-12-05 21:38:34 -05:00
# ----------------------------------------------------------------------
def generate(self):
""""""
2021-01-23 14:37:30 -05:00
for icon in os.listdir(self.source):
if not icon.endswith('.svg'):
continue
2020-12-05 21:38:34 -05:00
2021-01-23 14:37:30 -05:00
with open(os.path.join(self.source, icon), 'r') as file_input:
content_original = file_input.read()
2020-12-05 21:38:34 -05:00
for folder, color in self.contex:
2021-01-23 14:37:30 -05:00
new_content = self.replace_color(content_original, color)
new_content = self.replace_color(new_content, self.secondary, '#ff0000')
file_to_write = os.path.join(folder, icon)
with open(file_to_write, 'w') as file_output:
file_output.write(new_content)
2020-12-05 21:38:34 -05:00
# ----------------------------------------------------------------------
def replace_color(self, content, replace, color='#0000ff'):
""""""
colors = [color] + [''.join(list(color)[:i] + ['\\\n'] + list(color)[i:]) for i in range(1, 7)]
for c in colors:
content = content.replace(c, replace)
2020-12-05 21:38:34 -05:00
replace = '#ffffff00'
color = '#000000'
colors = [color] + [''.join(list(color)[:i] + ['\\\n'] + list(color)[i:]) for i in range(1, 7)]
for c in colors:
content = content.replace(c, replace)
2020-12-11 11:40:55 -05:00
return content