Source code for spinetoolbox.spine_db_editor.widgets.metadata_editor

######################################################################################################################
# Copyright (C) 2017-2022 Spine project consortium
# Copyright Spine Toolbox contributors
# This file is part of Spine Toolbox.
# Spine Toolbox 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. This program 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
# this program. If not, see <http://www.gnu.org/licenses/>.
######################################################################################################################

"""Contains machinery to deal with metadata editor."""
from PySide6.QtCore import Qt
from ..mvcmodels.metadata_table_model import MetadataTableModel


[docs]class MetadataEditor: """A DB editor helper class that manages metadata editor.""" def __init__(self, metadata_table_view, db_editor, db_mngr): """ Args: metadata_table_view (MetadataTableView): editor's view db_editor (SpineDBEditor): database editor db_mngr (SpineDBManager): database manager """ self._db_editor = db_editor self._metadata_table_view = metadata_table_view self._metadata_table_model = MetadataTableModel(db_mngr, db_editor.db_maps, db_editor) self._metadata_table_view.sortByColumn(-1, Qt.AscendingOrder) self._metadata_table_view.setModel(self._metadata_table_model) self._metadata_table_view.connect_spine_db_editor(db_editor)
[docs] def connect_signals(self, ui): """Connects user interface signals. Args: ui (Ui_MainWindow): DB editor's user interface """ self._metadata_table_model.msg_error.connect(self._db_editor.msg_error)
[docs] def init_models(self, db_maps): """Initializes editor's models. Args: db_maps (Iterable of DiffDatabaseMapping): database mappings """ self._metadata_table_model.set_db_maps(db_maps)
[docs] def metadata_model(self): """Returns metadata model. Returns: MetadataModel: model """ return self._metadata_table_model