diff --git a/QgisModelBaker/gui/panel/tid_configurator_panel.py b/QgisModelBaker/gui/panel/tid_configurator_panel.py index 43f2ba62..c6bedd9b 100644 --- a/QgisModelBaker/gui/panel/tid_configurator_panel.py +++ b/QgisModelBaker/gui/panel/tid_configurator_panel.py @@ -68,7 +68,14 @@ def setup_dialog(self, qgis_project, configuration=None): ) if valid: self.configuration.tool = mode + + if self.configuration and self.configuration.tool: self._reset_tid_configuration() + return True, "" + else: + return False, self.tr( + "To use the OID Manager, configure a connection to an INTERLIS based database." + ) def _reset_tid_configuration(self): self.layer_tids_panel.load_tid_config(self.qgis_project) diff --git a/QgisModelBaker/gui/tid_manager.py b/QgisModelBaker/gui/tid_manager.py index e9bac0d5..d1e2c1d6 100644 --- a/QgisModelBaker/gui/tid_manager.py +++ b/QgisModelBaker/gui/tid_manager.py @@ -16,8 +16,10 @@ ***************************************************************************/ """ -from qgis.core import QgsMapLayer, QgsProject -from qgis.PyQt.QtWidgets import QDialog, QMessageBox +from qgis.core import Qgis, QgsMapLayer, QgsProject +from qgis.gui import QgsMessageBar +from qgis.PyQt.QtCore import Qt +from qgis.PyQt.QtWidgets import QDialog, QMessageBox, QSizePolicy from QgisModelBaker.gui.panel.tid_configurator_panel import TIDConfiguratorPanel from QgisModelBaker.utils import gui_utils @@ -46,7 +48,16 @@ def __init__(self, iface, parent=None, base_config=None): self.setStyleSheet(gui_utils.DEFAULT_STYLE) - self.tid_configurator_panel.setup_dialog(QgsProject.instance()) + self.bar = QgsMessageBar() + self.bar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Fixed) + self.layout().addWidget(self.bar, 0, 0, Qt.AlignTop) + + result, message = self.tid_configurator_panel.setup_dialog( + QgsProject.instance() + ) + if not result: + self.tid_configurator_panel.setEnabled(False) + self.bar.pushMessage(message, Qgis.Warning) def _close_editing(self): editable_layers = []