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)