''' boites de dialogues ''' from PyQt4.QtCore import SIGNAL, Qt, QString from PyQt4.QtGui import QDialog from lib.ui.ecran_altitude import Ui_alt_fenetre from lib.ui.ecran_confirmation import Ui_cfrm_fenetre from lib.ui.ecran_message import Ui_msg_fenetre from lib.ui.ecran_saisie import Ui_saisi_fenetre from lib.ui.ecran_vol import Ui_vol_fenetre def dmConfirmer(txt): """affiche une boite de dialogue pour demander confirmation d'une action""" ecran = EcranConfirmation() ecran.afficher(txt) ecran.show() ecran.exec_() retour = ecran.resultat() del ecran return retour class EcranConfirmation(QDialog): """boite de dialogue d'affichage de texte longs""" def __init__(self, parent=None): """initialisation de la fenetre - le controle source est le widget a remettre a jour avec le texte a la fermeture""" super (EcranConfirmation, self).__init__() self._resultat = False self.createWidgets() def createWidgets(self): """construction de l'interface""" self.ui = Ui_cfrm_fenetre() self.ui.setupUi(self) self.connect(self.ui.cfrm_non, SIGNAL("clicked()"), self.non, Qt.UniqueConnection) self.connect(self.ui.cfrm_oui, SIGNAL("clicked()"), self.oui, Qt.UniqueConnection) def afficher(self, texte = "Confirmer?"): self.ui.cfrm_txt.setText(QString.fromUtf8(texte)) def resultat(self): return self._resultat def oui(self): self._resultat = True self.done(1) def non(self): self.done(0) def dmSaisie(txt): """affiche une boite de dialogue dediee a la saisie d'un texte""" ecran = EcranSaisie() ecran.afficher(txt) ecran.show() ecran.exec_() retour = ecran.resultat() del ecran return retour class EcranSaisie(QDialog): """boite de dialogue d'affichage de texte longs""" def __init__(self, parent=None): """initialisation de la fenetre - le controle source est le widget a remettre a jour avec le texte a la fermeture""" super (EcranSaisie, self).__init__() self._resultat = "" self.createWidgets() def createWidgets(self): """construction de l'interface""" self.ui = Ui_saisi_fenetre() self.ui.setupUi(self) self.connect(self.ui.saisi_annuler, SIGNAL("clicked()"), self.annuler, Qt.UniqueConnection) self.connect(self.ui.saisi_ok, SIGNAL("clicked()"), self.ok, Qt.UniqueConnection) self.ui.saisi_ok.setShortcut("Enter") self.ui.saisi_reponse.setFocus() def afficher(self, texte = "Saisir votre texte ici:"): self.ui.saisi_txt.setText(QString.fromUtf8(texte)) def resultat(self): self._resultat = self.ui.saisi_reponse.text().toUtf8() return self._resultat def ok(self): self.done(1) def annuler(self): self._resultat = "" self.done(0) def dmMessage(txt): """affiche une msgbox""" ecran = EcranMessage() ecran.afficher(txt) ecran.show() ecran.exec_() del ecran class EcranMessage(QDialog): """boite de dialogue d'affichage de texte longs""" def __init__(self, parent=None): """initialisation de la fenetre - le controle source est le widget a remettre a jour avec le texte a la fermeture""" super (EcranMessage, self).__init__() self._resultat = "" self.createWidgets() def createWidgets(self): """construction de l'interface""" self.ui = Ui_msg_fenetre() self.ui.setupUi(self) self.connect(self.ui.msg_ok, SIGNAL("clicked()"), self.ok, Qt.UniqueConnection) self.ui.msg_ok.setShortcut("Enter") def afficher(self, texte = "Message"): self.ui.msg_txt.majTexte(texte) def ok(self): self.done(1) def dmVol(actuelle, maxi = None): fen = EcranVol(actuelle, maxi) fen.show() fen.exec_() return fen.resultat() class EcranVol(QDialog): """interface de gestion du vol d'un pion renvoie la nouvelle altitude du pion""" def __init__(self, actuelle = 0, maxi = None, parent=None): """initialisation de la fenetre""" super (EcranVol, self).__init__(parent) self._resultat = 0 self.createWidgets() self.ouverture(actuelle, maxi) def createWidgets(self): """construction de l'interface""" #construction de l'interface self.ui = Ui_vol_fenetre() self.ui.setupUi(self) self.connect(self.ui.vol_ok, SIGNAL("clicked()"), self.ok) self.ui.vol_valeur.selectAll() def ouverture(self, actuelle, maxi): """ouverture en mode edition""" if maxi != None: self.ui.vol_valeur.setMaximum(maxi) if actuelle > maxi: actuelle = maxi self.ui.vol_valeur.setValue(actuelle) self._resultat = actuelle def resultat(self): return self._resultat def ok(self): """enregistre le terrain cree/edite""" self._resultat = self.ui.vol_valeur.value() self.done(1) def keyPressEvent(self, event): if event.key() == Qt.Key_Return: self.ok() def dmAltitude(maxi = None): fen = EcranAltitude(maxi) fen.show() fen.exec_() return fen.resultat() class EcranAltitude(QDialog): """interface de gestion du vol d'un pion renvoie la nouvelle altitude du pion""" def __init__(self, maxi, parent=None): """initialisation de la fenetre""" super (EcranAltitude, self).__init__(parent) self._resultat = 0 self._maxi = maxi self.createWidgets() def createWidgets(self): """construction de l'interface""" #construction de l'interface self.ui = Ui_alt_fenetre() self.ui.setupUi(self) if self._maxi: self.ui.alt_valeur.setMaximum(self._maxi) self.connect(self.ui.alt_ok, SIGNAL("clicked()"), self.ok) self.ui.alt_valeur.selectAll() def resultat(self): return self._resultat def ok(self): """enregistre le terrain cree/edite""" self._resultat = self.ui.alt_valeur.value() self.done(1)