Files
SwissMX/app_config.py

60 lines
1.4 KiB
Python

#TODO:
# currently 2 settings/configs are used
# QSettings -> cat ~/.config/Paul\ Scherrer\ Institut/SwissMX.conf
# yaml -> swissmx.yaml
# QSettings are changed by program
# #yaml is fixed and not altened by program
import yaml
from PyQt5.QtCore import QSettings
from pathlib import Path
import logging
logger = logging.getLogger(__name__)
settings = QSettings("PSI", "SwissMX")
inst_folder = Path(__file__).absolute().parent
config_file = inst_folder / "swissmx.yaml"
configs = yaml.load(config_file.read_text(),Loader=yaml.FullLoader)
endstation = configs["configure_for"]
appsconf = configs[endstation]
simulated = appsconf.get("simulate", False)
logger.info(f"configuring for endstation: {endstation.upper()}")
if simulated:
logger.warning("SIMULATION is ACTIVE")
css_file = inst_folder / "swissmx.css"
def font(name: str) -> str:
p = Path(__file__).absolute().parent / "fonts" / name
return str(p)
def logo(size: int = 0) -> str:
p = Path(__file__).absolute().parent / "logos" / "logo.png"
if size:
p = Path(__file__).absolute().parent / "logos" / f"tell_logo_{size}x{size}.png"
return str(p)
def option(key: str) -> bool:
try:
return settings.value(key, type=bool)
except:
logger.error(f"option {key} not known")
return False
def toggle_option(key: str):
v = settings.value(key, type=bool)
settings.setValue(key, not v)
settings.sync()