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
def set_config(self, config: Union[None, Dict[str, Any]]) -> None:
self.global_editor_widget.set_config(config)
def open_editor(self, config: Union[None, Mapping[str, Any]]) -> None:
self.global_editor_widget.set_config(config)
self.setCurrentIndex(1)
def close_editor(self):
self.setCurrentIndex(0)