mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Most of this wasn't helpful. What was is now logging instead of print so it can be configured.
90 lines
2.2 KiB
Python
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))
|