52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
import yaml
|
|
from PyQt5.QtCore import QSettings
|
|
from pathlib import Path
|
|
|
|
import logging
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
settings = QSettings("Paul Scherrer Institut", "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()
|