From 3e0e9863d6c8defbf223062b34e253e6450f7ff9 Mon Sep 17 00:00:00 2001 From: Renaud Barate Date: Fri, 20 Jan 2012 10:22:02 +0000 Subject: [PATCH] Add type 'Repertoire' --- Ihm/I_MCSIMP.py | 2 +- InterfaceQT4/monUniqueBasePanel.py | 24 ++++++++++++++++++++---- Noyau/N_VALIDATOR.py | 6 ++++++ UiQT4/desUniqueBase.ui | 7 +++++++ 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/Ihm/I_MCSIMP.py b/Ihm/I_MCSIMP.py index 614d41ce..896e384a 100644 --- a/Ihm/I_MCSIMP.py +++ b/Ihm/I_MCSIMP.py @@ -582,7 +582,7 @@ class MCSIMP(I_OBJECT.OBJECT): valid=1 except ValError,e: #traceback.print_exc() - comment=str(e) + comment=unicode(e) valid=0 return valid,comment diff --git a/InterfaceQT4/monUniqueBasePanel.py b/InterfaceQT4/monUniqueBasePanel.py index 0897dca3..3f2e60df 100644 --- a/InterfaceQT4/monUniqueBasePanel.py +++ b/InterfaceQT4/monUniqueBasePanel.py @@ -79,6 +79,7 @@ class MonUniqueBasePanel(DUnBase,QTPanel,SaisieValeur): self.connect(self.BSalome,SIGNAL("pressed()"),self.BSalomePressed) self.connect(self.BView2D,SIGNAL("clicked()"),self.BView2DPressed) self.connect(self.BFichier,SIGNAL("clicked()"),self.BFichierPressed) + self.connect(self.BRepertoire,SIGNAL("clicked()"),self.BRepertoirePressed) def detruitBouton(self): @@ -86,10 +87,15 @@ class MonUniqueBasePanel(DUnBase,QTPanel,SaisieValeur): self.BSalome.setIcon(icon) mc = self.node.item.get_definition() #if ( (self.node.item.get_nom() != "FileName" ) and ( mc.type[0]!="Fichier")) : - if mc.type[0]!="Fichier" and mc.type[0]!="FichierNoAbs": + if mc.type[0] == "Fichier" or mc.type[0] == "FichierNoAbs": + self.bParametres.close() + self.BRepertoire.close() + elif mc.type[0] == "Repertoire": + self.bParametres.close() self.BFichier.close() else : - self.bParametres.close() + self.BFichier.close() + self.BRepertoire.close() type = mc.type[0] # TODO: Use type properties instead of hard-coded "grno" and "grma" type check enable_salome_selection = self.editor.salome and \ @@ -132,7 +138,8 @@ class MonUniqueBasePanel(DUnBase,QTPanel,SaisieValeur): 'I' : "Un entier est attendu", 'Matrice' : 'Une Matrice est attendue', 'Fichier' : 'Un fichier est attendu', - 'FichierNoAbs' : 'Un fichier est attendu'} + 'FichierNoAbs' : 'Un fichier est attendu', + 'Repertoire' : u'Un répertoire est attendu'} mctype = mc.type[0] if type(mctype) == types.ClassType: @@ -180,7 +187,16 @@ class MonUniqueBasePanel(DUnBase,QTPanel,SaisieValeur): elif hasattr(self, "BSelectInFile"): self.BSelectInFile.setVisible(0) - + def BRepertoirePressed(self): + directory = QFileDialog.getExistingDirectory(self.appliEficas, + directory = self.appliEficas.CONFIGURATION.savedir, + options = QFileDialog.ShowDirsOnly) + + if not directory.isNull(): + absdir = os.path.abspath(unicode(directory)) + self.appliEficas.CONFIGURATION.savedir = os.path.dirname(absdir) + self.lineEditVal.setText(directory) + def BSelectInFilePressed(self): from monSelectImage import MonSelectImage MonSelectImage(file=self.image,parent=self).show() diff --git a/Noyau/N_VALIDATOR.py b/Noyau/N_VALIDATOR.py index 7c8420a2..1ec334a3 100644 --- a/Noyau/N_VALIDATOR.py +++ b/Noyau/N_VALIDATOR.py @@ -139,6 +139,12 @@ class TypeProtocol(PProtocol): if (len(typ) > 2 and typ[2] == "Sauvegarde") or isinstance(obj, type("")): return obj else : raise ValError("%s n'est pas un fichier valide" % repr(obj)) + elif type_permis == 'Repertoire': + import os + if os.path.isdir(obj): + return obj + else: + raise ValError(u"%s n'est pas un répertoire valide" % repr(obj)) elif type(type_permis) == types.ClassType or isinstance(type_permis,type): try: if self.is_object_from(obj,type_permis): return obj diff --git a/UiQT4/desUniqueBase.ui b/UiQT4/desUniqueBase.ui index 5f3936ad..f00fb15c 100644 --- a/UiQT4/desUniqueBase.ui +++ b/UiQT4/desUniqueBase.ui @@ -151,6 +151,13 @@ + + + + Répertoire + + + -- 2.39.2