Source code for qudi.tools.config_editor.global_editor

# -*- coding: utf-8 -*-

"""
QWidget serving as main editor for the global configuration section

.. Copyright (c) 2021, the qudi developers. See the AUTHORS.md file at the top-level directory of this
.. distribution and on <https://github.com/Ulm-IQO/qudi-core/>
..
.. This file is part of qudi.
..
.. Qudi is free software: you can redistribute it and/or modify it under the terms of
.. the GNU Lesser General Public License as published by the Free Software Foundation,
.. either version 3 of the License, or (at your option) any later version.
..
.. Qudi is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
.. without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.. See the GNU Lesser General Public License for more details.
..
.. You should have received a copy of the GNU Lesser General Public License along with qudi.
.. If not, see <https://www.gnu.org/licenses/>.
"""

__all__ = ['GlobalEditorWidget']

from PySide2 import QtCore, QtWidgets
from typing import Optional, Mapping, Dict, Union, Any
from qudi.tools.config_editor.global_widgets import GlobalConfigWidget


[docs] class GlobalEditorWidget(QtWidgets.QStackedWidget): """ """
[docs] def __init__(self, parent: Optional[QtWidgets.QWidget] = None) -> None: super().__init__(parent=parent) self.placeholder_label = QtWidgets.QLabel( 'Please load configuration from file\n' 'or create a new one.' ) font = self.placeholder_label.font() font.setBold(True) font.setPointSize(font.pointSize() + 4) self.placeholder_label.setFont(font) self.placeholder_label.setAlignment(QtCore.Qt.AlignCenter) self.placeholder_label.setSizePolicy( QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding ) self.addWidget(self.placeholder_label) self.global_editor_widget = GlobalConfigWidget() self.addWidget(self.global_editor_widget) self.setCurrentIndex(0)
@property def config(self) -> Union[None, Dict[str, Any]]: if self.currentIndex() == 0: return None else: return self.global_editor_widget.config
[docs] def set_config(self, config: Union[None, Dict[str, Any]]) -> None: self.global_editor_widget.set_config(config)
[docs] def open_editor(self, config: Union[None, Mapping[str, Any]]) -> None: self.global_editor_widget.set_config(config) self.setCurrentIndex(1)
[docs] def close_editor(self): self.setCurrentIndex(0)