|
import modules.scripts as scripts |
|
import scripts.cc_const as const |
|
import json |
|
|
|
STYLE_FILE = scripts.basedir() + '/' + 'styles.json' |
|
|
|
EMPTY_STYLE = { |
|
'styles' : {}, |
|
'deleted' : {} |
|
} |
|
|
|
class StyleManager(): |
|
def __init__(self): |
|
self.STYLE_SHEET = None |
|
|
|
def load_styles(self): |
|
if self.STYLE_SHEET is not None: |
|
return |
|
|
|
try: |
|
with open(STYLE_FILE, 'r') as json_file: |
|
self.STYLE_SHEET = json.loads(json_file.read()) |
|
print('[Vec. CC] Style Sheet Loaded...') |
|
except IOError: |
|
with open(STYLE_FILE, 'w+') as json_file: |
|
self.STYLE_SHEET = EMPTY_STYLE |
|
json_file.write(json.dumps(self.STYLE_SHEET)) |
|
print('[Vec. CC] Creating Empty Style Sheet...') |
|
|
|
def list_style(self): |
|
return list(self.STYLE_SHEET['styles'].keys()) |
|
|
|
def get_style(self, style_name): |
|
try: |
|
style = self.STYLE_SHEET['styles'][style_name] |
|
return style['alt'], style['brightness'], style['contrast'], style['saturation'], style['rgb'][0], style['rgb'][1], style['rgb'][2] |
|
except KeyError: |
|
print(f'\n[Warning] No Style of Name "{style_name}" Found!\n') |
|
return False, const.Brightness.default, const.Contrast.default, const.Saturation.default, const.R.default, const.G.default, const.B.default |
|
|
|
def save_style(self, style_name, latent, bri, con, sat, r, g, b): |
|
if style_name in self.STYLE_SHEET['styles'].keys(): |
|
print(f'\n[Warning] Duplicated Style Name "{style_name}" Detected! Values are not saved!\n') |
|
return self.list_style() |
|
|
|
style = { |
|
'alt' : latent, |
|
'brightness' : bri, |
|
'contrast' : con, |
|
'saturation' : sat, |
|
'rgb' : [r, g, b] |
|
} |
|
|
|
self.STYLE_SHEET['styles'].update({style_name:style}) |
|
|
|
with open(STYLE_FILE, 'w+') as json_file: |
|
json_file.write(json.dumps(self.STYLE_SHEET)) |
|
|
|
print(f'\nStyle of Name "{style_name}" Saved!\n') |
|
return self.list_style() |
|
|
|
def delete_style(self, style_name): |
|
try: |
|
style = self.STYLE_SHEET['styles'][style_name] |
|
del self.STYLE_SHEET['styles'][style_name] |
|
except KeyError: |
|
print(f'\n[Warning] No Style of Name "{style_name}" Found!\n') |
|
return self.list_style() |
|
|
|
self.STYLE_SHEET['deleted'].update({style_name:style}) |
|
|
|
with open(STYLE_FILE, 'w+') as json_file: |
|
json_file.write(json.dumps(self.STYLE_SHEET)) |
|
|
|
print(f'\nStyle of Name "{style_name}" Deleted!\n') |
|
return self.list_style() |
|
|