mirror of
https://github.com/nqrduck/nqrduck-spectrometer.git
synced 2024-11-09 12:30:01 +00:00
Implemented default_settings.
This commit is contained in:
parent
3af5b8603a
commit
f94ff08411
4 changed files with 34 additions and 0 deletions
|
@ -1,8 +1,10 @@
|
||||||
"""Base class for all spectrometer controllers."""
|
"""Base class for all spectrometer controllers."""
|
||||||
|
|
||||||
|
import logging
|
||||||
import ast
|
import ast
|
||||||
from nqrduck.module.module_controller import ModuleController
|
from nqrduck.module.module_controller import ModuleController
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
class BaseSpectrometerController(ModuleController):
|
class BaseSpectrometerController(ModuleController):
|
||||||
"""The base class for all spectrometer controllers."""
|
"""The base class for all spectrometer controllers."""
|
||||||
|
@ -11,6 +13,11 @@ class BaseSpectrometerController(ModuleController):
|
||||||
"""Initializes the spectrometer controller."""
|
"""Initializes the spectrometer controller."""
|
||||||
super().__init__(module)
|
super().__init__(module)
|
||||||
|
|
||||||
|
def on_loading(self):
|
||||||
|
"""Called when the module is loading."""
|
||||||
|
logger.debug("Loading spectrometer controller")
|
||||||
|
self.module.model.load_default_settings()
|
||||||
|
|
||||||
def save_settings(self, path: str) -> None:
|
def save_settings(self, path: str) -> None:
|
||||||
"""Saves the settings of the spectrometer."""
|
"""Saves the settings of the spectrometer."""
|
||||||
# We get the different settings objects from the model
|
# We get the different settings objects from the model
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
from PyQt6.QtCore import QSettings
|
||||||
from PyQt6.QtGui import QPixmap
|
from PyQt6.QtGui import QPixmap
|
||||||
from nqrduck.module.module_model import ModuleModel
|
from nqrduck.module.module_model import ModuleModel
|
||||||
from .settings import Setting
|
from .settings import Setting
|
||||||
|
@ -101,6 +102,25 @@ class BaseSpectrometerModel(ModuleModel):
|
||||||
super().__init__(module)
|
super().__init__(module)
|
||||||
self.settings = OrderedDict()
|
self.settings = OrderedDict()
|
||||||
self.pulse_parameter_options = OrderedDict()
|
self.pulse_parameter_options = OrderedDict()
|
||||||
|
self.default_settings = QSettings("nqrduck-spectrometer", "nqrduck")
|
||||||
|
|
||||||
|
def set_default_settings(self) -> None:
|
||||||
|
"""Sets the default settings of the spectrometer."""
|
||||||
|
self.default_settings.clear()
|
||||||
|
for category in self.settings.keys():
|
||||||
|
for setting in self.settings[category]:
|
||||||
|
setting_string = f"{self.module.model.name},{setting.name}"
|
||||||
|
self.default_settings.setValue(setting_string, setting.value)
|
||||||
|
logger.debug(f"Setting default value for {setting_string} to {setting.value}")
|
||||||
|
|
||||||
|
def load_default_settings(self) -> None:
|
||||||
|
"""Load the default settings of the spectrometer."""
|
||||||
|
for category in self.settings.keys():
|
||||||
|
for setting in self.settings[category]:
|
||||||
|
setting_string = f"{self.module.model.name},{setting.name}"
|
||||||
|
if self.default_settings.contains(setting_string):
|
||||||
|
logger.debug(f"Loading default value for {setting_string}")
|
||||||
|
setting.value = self.default_settings.value(setting_string)
|
||||||
|
|
||||||
def add_setting(self, setting: Setting, category: str) -> None:
|
def add_setting(self, setting: Setting, category: str) -> None:
|
||||||
"""Adds a setting to the spectrometer.
|
"""Adds a setting to the spectrometer.
|
||||||
|
|
|
@ -96,6 +96,11 @@ class BaseSpectrometerView(ModuleView):
|
||||||
# Now we add a save and load button to the widget
|
# Now we add a save and load button to the widget
|
||||||
self.button_layout = QHBoxLayout()
|
self.button_layout = QHBoxLayout()
|
||||||
|
|
||||||
|
# Default Settings Button
|
||||||
|
self.default_button = QPushButton("Default Settings")
|
||||||
|
self.default_button.clicked.connect(self.module.model.set_default_settings)
|
||||||
|
self.button_layout.addWidget(self.default_button)
|
||||||
|
|
||||||
# Save Button
|
# Save Button
|
||||||
self.save_button = QPushButton("Save Settings")
|
self.save_button = QPushButton("Save Settings")
|
||||||
self.save_button.setIcon(Logos.Save16x16())
|
self.save_button.setIcon(Logos.Save16x16())
|
||||||
|
|
|
@ -43,6 +43,8 @@ class SpectrometerController(ModuleController):
|
||||||
logger.debug("Adding spectrometer to spectrometer model: %s", module_name)
|
logger.debug("Adding spectrometer to spectrometer model: %s", module_name)
|
||||||
self._module.model.add_spectrometers(module_name, module)
|
self._module.model.add_spectrometers(module_name, module)
|
||||||
|
|
||||||
|
module.controller.on_loading()
|
||||||
|
|
||||||
self._module.view.create_menu_entry()
|
self._module.view.create_menu_entry()
|
||||||
|
|
||||||
def process_signals(self, key: str, value: object) -> None:
|
def process_signals(self, key: str, value: object) -> None:
|
||||||
|
|
Loading…
Reference in a new issue