dcs-retribution/qt_ui/liberation_theme.py
Dan Albert 1c4aec83cb Clean up start-up logging.
Most of this wasn't helpful. What was is now logging instead of print
so it can be configured.
2020-10-06 22:24:47 -07:00

90 lines
2.2 KiB
Python

import json
import logging
import os
from typing import Dict
global __theme_index
THEME_PREFERENCES_FILE_PATH = "liberation_theme.json"
DEFAULT_THEME_INDEX = 1
# new themes can be added here
THEMES: Dict[int, Dict[str, str]] = {
0: {'themeName': 'Vanilla',
'themeFile': 'windows-style.css',
'themeIcons': 'medium',
},
1: {'themeName': 'DCS World',
'themeFile': 'style-dcs.css',
'themeIcons': 'light',
},
}
def init():
global __theme_index
__theme_index = DEFAULT_THEME_INDEX
if os.path.isfile(THEME_PREFERENCES_FILE_PATH):
try:
with(open(THEME_PREFERENCES_FILE_PATH)) as prefs:
pref_data = json.loads(prefs.read())
__theme_index = pref_data["theme_index"]
set_theme_index(__theme_index)
save_theme_config()
except:
# is this necessary?
set_theme_index(DEFAULT_THEME_INDEX)
logging.exception("Unable to change theme")
else:
# is this necessary?
set_theme_index(DEFAULT_THEME_INDEX)
logging.error(
f"Using default theme because {THEME_PREFERENCES_FILE_PATH} "
"does not exist"
)
# set theme index then use save_theme_config to save to file
def set_theme_index(x):
global __theme_index
__theme_index = x
# get theme index to reference other theme properties(themeName, themeFile, themeIcons)
def get_theme_index():
global __theme_index
return __theme_index
# get theme name based on current index
def get_theme_name():
theme_name = THEMES[get_theme_index()]['themeName']
return theme_name
# get theme icon sub-folder name based on current index
def get_theme_icons():
theme_icons = THEMES[get_theme_index()]['themeIcons']
return str(theme_icons)
# get theme stylesheet css based on current index
def get_theme_css_file():
theme_file = THEMES[get_theme_index()]['themeFile']
return str(theme_file)
# save current theme index to json file
def save_theme_config():
pref_data = {
"theme_index": get_theme_index()
}
with(open(THEME_PREFERENCES_FILE_PATH, "w")) as prefs:
prefs.write(json.dumps(pref_data))