from qgis.PyQt.QtWidgets import QAction, QMessageBox, QDialog from .dialog_auth import AuthDialog, try_connect_from_keychain from .dialog_saisie import SaisieDialog class AnimationPlugin: def __init__(self, iface): self.iface = iface self.action = None def initGui(self): self.action = QAction("Saisie Animation", self.iface.mainWindow()) self.action.triggered.connect(self.run) self.iface.addToolBarIcon(self.action) self.iface.addPluginToMenu("Animation", self.action) def unload(self): self.iface.removePluginMenu("Animation", self.action) self.iface.removeToolBarIcon(self.action) def run(self): # Tenter la connexion automatique via le coffre-fort QGIS db = try_connect_from_keychain() if db: dlg = SaisieDialog(db, self.iface.mainWindow()) dlg.exec_() else: # Fallback : sélection d'une connexion QGIS (ou saisie manuelle) dlg = AuthDialog(self.iface.mainWindow()) if dlg.exec_() == QDialog.Accepted and dlg.db: saisie = SaisieDialog(dlg.db, self.iface.mainWindow()) saisie.exec_()