From: Pascale Noyret Date: Mon, 2 Jun 2008 14:15:13 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: V1_14a5~2 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=cff001cfc25a8e7eb207154d11e287d7522593dc;p=modules%2Feficas.git *** empty log message *** --- diff --git a/InterfaceQT/monOptionsEditeur.py b/InterfaceQT/monOptionsEditeur.py index 7432ae37..89c4510c 100644 --- a/InterfaceQT/monOptionsEditeur.py +++ b/InterfaceQT/monOptionsEditeur.py @@ -140,6 +140,6 @@ class Options(desOptions): self.initAll() def ChangePathDoc(self): - self.configuration.path_doc=str(self.LERepDoc.currentText()) + self.configuration.path_doc=str(self.LERepDoc.text()) self.configuration.save_params() diff --git a/InterfaceQT4/monOptionsEditeur.py b/InterfaceQT4/monOptionsEditeur.py index 7432ae37..89c4510c 100644 --- a/InterfaceQT4/monOptionsEditeur.py +++ b/InterfaceQT4/monOptionsEditeur.py @@ -140,6 +140,6 @@ class Options(desOptions): self.initAll() def ChangePathDoc(self): - self.configuration.path_doc=str(self.LERepDoc.currentText()) + self.configuration.path_doc=str(self.LERepDoc.text()) self.configuration.save_params() diff --git a/InterfaceQT4/monOptionsPdf.py b/InterfaceQT4/monOptionsPdf.py new file mode 100644 index 00000000..a7c81d29 --- /dev/null +++ b/InterfaceQT4/monOptionsPdf.py @@ -0,0 +1,22 @@ +from OptionsPdf import desPdf + +class OptionPdf(desPdf): + def __init__(self,parent = None,name = None,modal = 0,fl = 0,configuration=None): + desPdf.__init__(self,parent,name,modal,fl) + self.configuration=configuration + self.initVal() + + def initVal(self): + if hasattr(self.configuration,'exec_acrobat'): + self.LERepPdf.setText(self.configuration.exec_acrobat) + else : + self.LERepPdf.clear() + + def LeRepPdfPressed(self): + nouveau=str(self.LERepPdf.text()) + self.configuration.exec_acrobat=nouveau + self.configuration.save_params() + + def BokClicked(self): + self.LeRepPdfPressed() + self.close() diff --git a/InterfaceQT4/monParamPanel.py b/InterfaceQT4/monParamPanel.py new file mode 100644 index 00000000..84472fcd --- /dev/null +++ b/InterfaceQT4/monParamPanel.py @@ -0,0 +1,138 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os,re + +# Modules Eficas +import prefs + +from qt import * + +from desParam import DParam +from qtCommun import QTPanel +from qtCommun import QTPanelTBW2 + +# Import des panels + +class MonParamPanel(DParam,QTPanelTBW2,QTPanel): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + DParam.__init__(self,parent,name,fl) + QTPanel.__init__(self,node,parent) + QTPanelTBW2.__init__(self,node,parent) + self.InitLEs() + + def InitLEs(self): + nom=self.node.item.get_nom() + self.lineEditNom.setText(nom) + valeur=self.node.item.get_valeur() + if valeur != None: + #str=QString("").setNum(valeur) + self.lineEditVal.setText(str(valeur)) + else : + self.lineEditVal.clear() + + def BOkParamPressed(self): + val=self.LEValeurPressed() + nom=self.LENomPressed() + if not nom : + commentaire="Entrer un nom de parametre" + self.Commentaire.setText(QString(commentaire)) + self.editor.affiche_infos(commentaire) + return + self.node.item.set_nom(nom) + self.node.item.set_valeur(val) + self.node.update_texte() + self.node.update_valid() + self.editor.init_modif() + self.InitLEs() + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def LEValeurPressed(self): + self.Commentaire.setText(QString("")) + commentaire="Valeur incorrecte" + qtVal=self.lineEditVal.text() + boul=2 + try : + val,boul=QString.toInt(qtVal) + except : + pass + if boul == 0 : + try : + val,boul=QString.toDouble(qtVal) + except : + pass + if boul == 0 : + try : + val=str(qtVal) + boul=1 + except : + pass + if boul: commentaire="Valeur correcte" + self.Commentaire.setText(QString(commentaire)) + valString=str(self.lineEditVal.text()) + return valString + + def LENomPressed(self): + self.Commentaire.setText(QString("")) + qtNom=self.lineEditNom.text() + nom=str(qtNom) + numDebutPattern=re.compile('[a-zA-Z]') + if numDebutPattern.match(nom) : + return nom + else : + commentaire="Les noms de parametre doivent commencer par une lettre" + self.Commentaire.setText(QString(commentaire)) + self.editor.affiche_infos(commentaire) + return None + + def BuildTabCommand(self): + QTPanelTBW2.BuildLBNouvCommande(self) + + def LEFiltreTextChanged(self): + QTPanelTBW2.LEFiltreTextChanged(self) + + def LEfiltreReturnPressed(self): + QTPanelTBW2.LEfiltreReturnPressed(self) + + def LBNouvCommandeClicked(self): + QTPanelTBW2.LBNouvCommandeClicked(self) + + def AppelleBuildLBRegles(self): + listeRegles=self.node.item.get_regles() + listeNomsEtapes = self.node.item.get_l_noms_etapes() + self.BuildLBRegles(listeRegles,listeNomsEtapes) + + def BNextPressed(self) : + QTPanelTBW2.BNextPressed(self) + + def BOkPressed(self): + QTPanel.BOkPressed(self) + + def ViewDoc(self): + QTPanel.ViewDoc(self) + diff --git a/InterfaceQT4/monPlusieursASSDPanel.py b/InterfaceQT4/monPlusieursASSDPanel.py new file mode 100644 index 00000000..5cc6b305 --- /dev/null +++ b/InterfaceQT4/monPlusieursASSDPanel.py @@ -0,0 +1,118 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os + +# Modules Eficas +import prefs + +from qt import * +from monPlusieursIntoPanel import MonPlusieursIntoPanel +from desPlusieursInto import DPlusInto +from qtCommun import QTPanel +from politiquesValidation import PolitiquePlusieurs +# Import des panels + +class MonPlusieursASSDPanel(MonPlusieursIntoPanel): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + QTPanel.__init__(self,node,parent) + DPlusInto.__init__(self,parent,name,fl) + + self.listeValeursCourantes=self.node.item.GetListeValeurs() + self.InitValeursCourantes() + self.DisplayListBoxCourantes() + self.DisplayListBoxPossibles() + + self.politique=PolitiquePlusieurs(node,parent) + #QObject.connect(self.listBoxVal, SIGNAL("doubleClicked(QListBoxItem*)" ), self.Ajout1Valeur ) + # QObject.connect(self.listBoxVal, SIGNAL("doubleClicked(QListBoxItem*)" ), self.ClicASSD ) + + def DisplayListBoxPossibles(self): + listeNomsSD = self.node.item.get_sd_avant_du_bon_type() + self.listBoxVal.clear() + for aSD in listeNomsSD: + self.listBoxVal.insertItem( aSD) + if len(listeNomsSD) == 1 : + self.listBoxVal.setSelected(0,1) + + def DisplayListBoxCourantes(self): + self.LBValeurs.clear() + for aSD in self.listNomsValeurs : + self.LBValeurs.insertItem( aSD) + + def InitValeursCourantes(self): + self.listNomsValeurs=[] + for i in self.listeValeursCourantes : + self.listNomsValeurs.append(i.get_name()) + + def BOkPourListePressed(self): + if self.listeValeursCourantes == [] : + self.editor.affiche_infos("Pas de Validation d un groupe vide") + return + self.node.item.set_valeur(self.listeValeursCourantes) + self.editor.affiche_infos("Valeur Acceptée") + pass + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def Sup1Valeur(self): + index=self.LBValeurs.currentItem() + self.LBValeurs.removeItem(self.LBValeurs.currentItem()) + listeVal=[] + i=0 + for valeur in self.listeValeursCourantes : + if i != index : listeVal.append(valeur) + i = i+1 + self.listeValeursCourantes=listeVal + self.InitValeursCourantes() + self.DisplayListBoxCourantes() + self.DisplayListBoxPossibles() + + def Ajout1Valeur(self): + liste=[] + if self.listBoxVal.currentText().latin1() == None : return + liste.append(self.listBoxVal.currentText().latin1()) + index=self.LBValeurs.currentItem() + 1 + if index==0 : index = -1 + listeVal=[] + for valeur in self.listeValeursCourantes : + valeurSD,validite=self.node.item.eval_valeur(valeur) + if validite : listeVal.append(valeur) + validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) + self.Commentaire.setText(comm2) + if not validite : + self.editor.affiche_infos(comm) + else: + l1=self.listeValeursCourantes[:index] + l3=self.listeValeursCourantes[index:] + for valeur in listeRetour: + self.LBValeurs.insertItem(QString(str(valeur)),index) + index=index+1 + self.listeValeursCourantes=l1+listeRetour+l3 + self.InitValeursCourantes() + self.DisplayListBoxCourantes() + self.DisplayListBoxPossibles() diff --git a/InterfaceQT4/monPlusieursBasePanel.py b/InterfaceQT4/monPlusieursBasePanel.py new file mode 100644 index 00000000..6f21db54 --- /dev/null +++ b/InterfaceQT4/monPlusieursBasePanel.py @@ -0,0 +1,176 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os + +# Modules Eficas +import prefs + +from qt import * + +from desPlusieursBase import DPlusBase +from qtCommun import QTPanel +from qtSaisie import SaisieValeur +from politiquesValidation import PolitiquePlusieurs + +# Import des panels + +class MonPlusieursBasePanel(DPlusBase,QTPanel,SaisieValeur): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + QTPanel.__init__(self,node,parent) + DPlusBase.__init__(self,parent,name,fl) + self.politique=PolitiquePlusieurs(node,parent) + self.BuildLBValeurs() + self.listeValeursCourantes=self.node.item.GetListeValeurs() + self.InitCommentaire() + self.detruitBouton() + + def detruitBouton(self): + mc = self.node.item.get_definition() + type = mc.type[0] + print self.editor.salome + if not('grma' in repr(type)) or not(self.editor.salome) : + self.BSalome.close() + self.BView2D.close() + + def ViewDoc(self): + QTPanel.ViewDoc(self) + + def BuildLBValeurs(self): + # redefinit en raison de l heritage par monFonctionPanel + SaisieValeur.BuildLBValeurs(self) + + def BOkPourListePressed(self): + if self.listeValeursCourantes == [] : + self.editor.affiche_infos("Pas de validation d un groupe vide") + return + self.node.item.set_valeur(self.listeValeursCourantes) + self.editor.affiche_infos("Valeur Acceptée") + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def BParametresPressed(self): + QTPanel.BParametresPressed(self) + + def LEValeurPressed(self): + self.Ajout1Valeur() + + def Sup1Valeur(self): + index=self.LBValeurs.currentItem() + self.LEValeur.setText(self.LBValeurs.currentText()) + self.LBValeurs.removeItem(self.LBValeurs.currentItem()) + listeVal=[] + i=0 + for valeur in self.listeValeursCourantes : + if i != index : listeVal.append(valeur) + i = i+1 + self.listeValeursCourantes=listeVal + + + def Ajout1Valeur(self,valeur=None): + liste,validite=SaisieValeur.TraiteLEValeur(self,valeur) + if validite == 0 : return + if liste ==[] : return + + index=self.LBValeurs.currentItem() + 1 + listeVal=[] + for valeur in self.listeValeursCourantes : + listeVal.append(valeur) + validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) + self.Commentaire.setText(comm2) + if not validite : + self.editor.affiche_infos(comm) + else: + self.LEValeur.setText(QString("")) + l1=self.listeValeursCourantes[:index] + l3=self.listeValeursCourantes[index:] + for valeur in listeRetour: + self.LBValeurs.insertItem(QString(str(valeur)),index) + index=index+1 + self.listeValeursCourantes=l1+listeRetour+l3 + + def BImportPressed(self): + init=QString( self.editor.CONFIGURATION.rep_user) + fn = QFileDialog.getOpenFileName(init, self.trUtf8('All Files (*)',)) + if fn == None : return + if fn == "" : return + from monSelectVal import MonSelectVal + MonSelectVal(file=fn,parent=self).show() + + def InitCommentaire(self): + commentaire="" + mc = self.node.item.get_definition() + d_aides = { 'TXM' : 'chaînes de caractères', + 'R' : 'réels', + 'I' : 'entiers', + 'C' : 'complexes'} + type = mc.type[0] + if not d_aides.has_key(type) : + if mc.min == mc.max: + commentaire="Entrez "+str(mc.min)+" valeurs " + else : + commentaire="Entrez entre "+str(mc.min)+" et "+str(mc.max)+" valeurs " + else : + if mc.min == mc.max: + commentaire="Entrez "+str(mc.min)+" "+d_aides[type] + else : + commentaire="Entrez entre "+str(mc.min)+" et "+str(mc.max) +" " + d_aides[type] + aideval=self.node.item.aide() + commentaire=commentaire + "\n" + aideval + self.Commentaire.setText(QString(commentaire)) + + def BSalomePressed(self): + + genea=self.node.item.get_genealogie() + kwType = None + for e in genea: + if "GROUP_NO" in e: kwType = "GROUP_NO" + if "GROUP_MA" in e: kwType = "GROUP_MA" + + #print "BkwType",kwType + #print "editor", self.editor + selection, commentaire = self.editor.parent.appliEficas.selectGroupFromSalome(kwType,editor=self.editor) + if commentaire !="" : + self.Commentaire.setText(QString(commentaire)) + monTexte="" + if selection == [] : return + for geomElt in selection: + monTexte=geomElt+"," + monTexte= monTexte[0:-1] + self.LEValeur.setText(QString(monTexte)) + + def BView2DPressed(self): + valeur=self.LEValeur.text() + if valeur == QString("") : + valeur=self.LBValeurs.currentText() + if valeur == QString("") : return + valeur = str(valeur) + if valeur : + ok, msgError = self.editor.parent.appliEficas.displayShape(valeur) + if not ok: + self.editor.parent.appli.affiche_infos(msgError) + diff --git a/InterfaceQT4/monPlusieursIntoPanel.py b/InterfaceQT4/monPlusieursIntoPanel.py new file mode 100644 index 00000000..80fa4235 --- /dev/null +++ b/InterfaceQT4/monPlusieursIntoPanel.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os + +# Modules Eficas +import prefs + +from qt import * + +from desPlusieursInto import DPlusInto +from qtCommun import QTPanel +from qtSaisie import SaisieValeur +from politiquesValidation import PolitiquePlusieurs + +# Import des panels + +class MonPlusieursIntoPanel(DPlusInto,QTPanel,SaisieValeur): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + QTPanel.__init__(self,node,parent) + DPlusInto.__init__(self,parent,name,fl) + self.politique=PolitiquePlusieurs(node,parent) + SaisieValeur.BuildLBValeurs(self) + self.listeValeursCourantes=self.node.item.GetListeValeurs() + SaisieValeur.RemplitPanel(self,self.listeValeursCourantes) + QObject.connect(self.listBoxVal, SIGNAL("doubleClicked(QListBoxItem*)" ), self.Ajout1Valeur ) + self.InitCommentaire() + + def BOkPourListePressed(self): + if self.listeValeursCourantes == [] : + self.editor.affiche_infos("Pas de validation d un groupe vide") + return + self.node.item.set_valeur(self.listeValeursCourantes) + self.editor.affiche_infos("Valeur Acceptée") + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def ViewDoc(self): + QTPanel.ViewDoc(self) + + def Sup1Valeur(self): + index=self.LBValeurs.currentItem() + self.LBValeurs.removeItem(self.LBValeurs.currentItem()) + listeVal=[] + i=0 + for valeur in self.listeValeursCourantes : + if i != index : listeVal.append(valeur) + i = i+1 + self.listeValeursCourantes=listeVal + SaisieValeur.RemplitPanel(self,self.listeValeursCourantes) + + def Ajout1Valeur(self): + liste=[] + if self.listBoxVal.currentText().latin1() == None : return + liste.append(self.listBoxVal.currentText().latin1()) + index=self.LBValeurs.currentItem() + 1 + if index==0 : index = -1 + listeVal=[] + for valeur in self.listeValeursCourantes : + listeVal.append(valeur) + validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) + self.Commentaire.setText(comm2) + if not validite : + self.editor.affiche_infos(comm) + else: + l1=self.listeValeursCourantes[:index] + l3=self.listeValeursCourantes[index:] + for valeur in listeRetour: + self.LBValeurs.insertItem(QString(str(valeur)),index) + index=index+1 + self.listeValeursCourantes=l1+listeRetour+l3 + SaisieValeur.RemplitPanel(self,self.listeValeursCourantes) + + def InitCommentaire(self): + commentaire="" + mc = self.node.item.get_definition() + d_aides = { 'TXM' : 'chaînes de caractères', + 'R' : 'réels', + 'I' : 'entiers', + 'C' : 'complexes'} + type = mc.type[0] + if not d_aides.has_key(type) : + if mc.min == mc.max: + commentaire="Entrez "+str(mc.min)+" valeurs " + else : + commentaire="Entrez entre "+str(mc.min)+" et "+str(mc.max)+" valeurs " + else : + if mc.min == mc.max: + commentaire="Entrez "+str(mc.min)+" "+d_aides[type] + else : + commentaire="Entrez entre "+str(mc.min)+" et "+str(mc.max)+" "+d_aides[type] + aideval=self.node.item.aide() + commentaire=commentaire + "\n" + aideval + self.Commentaire.setText(QString(commentaire)) + diff --git a/InterfaceQT4/monPoursuitePanel.py b/InterfaceQT4/monPoursuitePanel.py new file mode 100644 index 00000000..3ba31b20 --- /dev/null +++ b/InterfaceQT4/monPoursuitePanel.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +# Modules Eficas + +import os,traceback,sys +from qt import * +from desMacro import DMacro + +from monMacroPanel import MonMacroPanel +import convert + + +# Import des panels + +class MonPoursuitePanel(MonMacroPanel): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + MonMacroPanel.__init__(self,node,parent,name,fl) + #Version TK ?? + self.ajoutPageOk() + + def ajoutPageOk(self) : + self.TabPage = QWidget(self.TWChoix,"TabPage") + self.LENomFichier = QLineEdit(self.TabPage,"LENomFichier") + self.LENomFichier.setGeometry(QRect(18,127,450,30)) + self.textLabel1_3 = QLabel(self.TabPage,"textLabel1_3") + self.textLabel1_3.setGeometry(QRect(70,50,350,41)) + self.BBrowse = QPushButton(self.TabPage,"BBrowse") + self.BBrowse.setGeometry(QRect(288,306,161,41)) + self.TWChoix.insertTab(self.TabPage,QString("")) + self.textLabel1_3.setText(self._DMacro__tr("La commande POURSUITE requiert un nom de Fichier :")) + self.BBrowse.setText(self._DMacro__tr("Edit")) + self.TWChoix.changeTab(self.TabPage,self._DMacro__tr("Fichier Poursuite")) + self.TWChoix.setCurrentPage(2) + if hasattr(self.node.item.object,'fichier_ini'): + self.LENomFichier.setText(self.node.item.object.fichier_ini) + else : + self.LENomFichier.setText("") + self.connect(self.BBrowse,SIGNAL("clicked()"),self.BBrowsePressed) + self.connect(self.LENomFichier,SIGNAL("returnPressed()"),self.LENomFichReturnPressed) + + + def BBrowsePressed(self): + self.node.makeEdit() + + def BOkIncPressed (self): + self.LENomFichReturnPressed() + + def LENomFichReturnPressed(self): + nomFichier=str(self.LENomFichier.text()) + if not os.path.isfile(nomFichier) : + commentaire = "Fichier introuvable" + self.Commentaire.setText(QString(commentaire)) + self.editor.affiche_infos(commentaire) + return + + text=self.convert_file(nomFichier) + + # Si probleme a la lecture-conversion on arrete le traitement + if not text: + return + + try : + self.node.item.object.change_fichier_init(nomFichier,text) + commentaire = "Fichier modifie : " + self.node.item.get_nom() + self.Commentaire.setText(QString(commentaire)) + except: + l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1]) + QMessageBox.critical( self, "Erreur fatale au chargement du fichier Include", l[0]) + commentaire = "Fichier invalide" + self.Commentaire.setText(QString(commentaire)) + self.editor.affiche_infos(commentaire) + return + + + def convert_file(self,file): + """ + Methode pour convertir le fichier file dans le format courant + """ + format=self.editor.format_fichier + text=None + if convert.plugins.has_key(format): + # Le convertisseur existe on l'utilise + p=convert.plugins[format]() + p.readfile(file) + text=p.convert('execnoparseur') + else : + commentaire = "Impossible de lire le fichier : Format inconnu" + self.Commentaire.setText(QString(commentaire)) + self.editor.affiche_infos(commentaire) + return text + diff --git a/InterfaceQT4/monRacinePanel.py b/InterfaceQT4/monRacinePanel.py new file mode 100644 index 00000000..bf8f3a8e --- /dev/null +++ b/InterfaceQT4/monRacinePanel.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +# Modules Eficas + +from desRacine import DRac +from qtCommun import QTPanel +from qtCommun import QTPanelTBW2 +from qtCommun import itemColore +from qt import * + + +# Import des panels + +class MonRacinePanel(DRac,QTPanelTBW2): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + DRac.__init__(self,parent,name,fl) + QTPanel.__init__(self,node,parent) + QTPanelTBW2.__init__(self,node,parent,racine=1) + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def BOkPressed(self): + self.DefCmd() + + def ViewDoc(self): + QTPanel.ViewDoc(self) + + def BNextPressed(self): + QTPanelTBW2.BNextPressed(self) + + def BuildTabCommand(self): + QTPanelTBW2.BuildLBNouvCommande(self) + + def LEFiltreTextChanged(self): + QTPanelTBW2.LEFiltreTextChanged(self) + + def LEfiltreReturnPressed(self): + QTPanelTBW2.LEfiltreReturnPressed(self) + + def LBNouvCommandeClicked(self): + QTPanelTBW2.LBNouvCommandeClicked(self) + + def AppelleBuildLBRegles(self): + listeRegles=self.node.item.get_regles() + listeNomsEtapes = self.node.item.get_l_noms_etapes() + self.BuildLBRegles(listeRegles,listeNomsEtapes) + + def DefCmd(self): + if self.LBNouvCommande.selectedItem()== None : return + name=str(self.LBNouvCommande.selectedItem().text()) + if name==QString(" "): return + if name.find("GROUPE :")==0 : return + self.editor.init_modif() + new_node = self.node.append_child(name,'first') diff --git a/InterfaceQT4/monSelectVal.py b/InterfaceQT4/monSelectVal.py new file mode 100644 index 00000000..c3c64148 --- /dev/null +++ b/InterfaceQT4/monSelectVal.py @@ -0,0 +1,84 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +# Modules Eficas + +from desSelectVal import DSelVal +from qt import * + +# Import des panels + +class MonSelectVal(DSelVal): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,file,parent,name = None,fl = 0): + self.FonctPanel=parent + DSelVal.__init__(self,parent,name,Qt.WType_Dialog) + self.dictSepar={} + self.separateur=" " + self.texte=" " + self.textTraite="" + self.file=str(file) + self.readVal() + self.initVal() + + def readVal(self): + f = open(self.file, "rb") + self.texte = f.read() + f.close() + + def initVal(self): + self.TBtext.clear() + self.TBtext.setText(self.texte) + self.dictSepar["virgule"]="," + self.dictSepar["point-virgule"]=";" + self.dictSepar["espace"]=" " + + def SeparateurSelect(self,numero): + monBouton=self.BGSeparateur.find(numero) + self.separateur=self.dictSepar[str(monBouton.text())] + + def BImportSelPressed(self): + text=str(self.TBtext.selectedText()) + self.textTraite=text + self.Traitement() + + def BImportToutPressed(self): + self.textTraite=self.texte + self.Traitement() + + def Traitement(self): + import string + if self.textTraite[-1]=="\n" : self.textTraite=self.textTraite[0:-1] + self.textTraite=string.replace(self.textTraite,"\n",self.separateur) + liste1=self.textTraite.split(self.separateur) + liste=[] + for val in liste1 : + val=str(val) + try : + val=eval(val,{}) + except : + pass + liste.append(val) + self.FonctPanel.AjoutNValeur(liste) diff --git a/InterfaceQT4/monUniqueASSDPanel.py b/InterfaceQT4/monUniqueASSDPanel.py new file mode 100644 index 00000000..a2280be3 --- /dev/null +++ b/InterfaceQT4/monUniqueASSDPanel.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os + +# Modules Eficas +import prefs + +from qt import * + +from desUniqueASSD import DUnASSD +from qtCommun import QTPanel +from qtSaisie import SaisieValeur +from politiquesValidation import PolitiqueUnique + +# Import des panels + +class MonUniqueASSDPanel(DUnASSD,QTPanel,SaisieValeur): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + self.editor=parent + QTPanel.__init__(self,node,parent) + DUnASSD.__init__(self,parent,name,fl) + self.politique=PolitiqueUnique(node,parent) + self.InitListBoxASSD() + self.InitCommentaire() + + def BOkPressed(self): + self.ClicASSD() + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def ViewDoc(self): + QTPanel.ViewDoc(self) + + def InitCommentaire(self): + mc = self.node.item.get_definition() + try : + type = mc.type[0].__name__ + except : + type = str(mc.type[0]) + if len(mc.type)>1 : + for typ in mc.type[1:] : + try : + l=typ.__name__ + except: + l=str(typ) + type = type + ' ou '+l + commentaire="Un objet de type "+type+" est attendu" + aideval=self.node.item.aide() + commentaire=commentaire +"\n"+ aideval + self.Commentaire.setText(QString(commentaire)) diff --git a/InterfaceQT4/monUniqueBasePanel.py b/InterfaceQT4/monUniqueBasePanel.py new file mode 100644 index 00000000..91bc8c08 --- /dev/null +++ b/InterfaceQT4/monUniqueBasePanel.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os + +# Modules Eficas +import prefs + +from qt import * + +from desUniqueBase import DUnBase +from qtCommun import QTPanel +from qtSaisie import SaisieValeur +from politiquesValidation import PolitiqueUnique + +# Import des panels + +class MonUniqueBasePanel(DUnBase,QTPanel,SaisieValeur): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + self.editor=parent + QTPanel.__init__(self,node,parent) + DUnBase.__init__(self,parent,name,fl) + self.politique=PolitiqueUnique(node,parent) + self.InitLineEditVal() + self.InitCommentaire() + self.detruitBouton() + + def ViewDoc(self): + QTPanel.ViewDoc(self) + + def detruitBouton(self): + mc = self.node.item.get_definition() + type = mc.type[0] + #if not('grma' in repr(type)): + if not('grma' in repr(type)) or not(self.editor.salome) : + self.BSalome.close() + self.BView2D.close() + + def InitLineEditVal(self): + valeur=self.node.item.get_valeur() + valeurTexte=self.politique.GetValeurTexte(valeur) + if valeurTexte != None: + try : + str=QString("").setNum(valeurTexte) + except : + str=QString(valeurTexte) + self.lineEditVal.setText(str) + + + def InitCommentaire(self): + mc = self.node.item.get_definition() + d_aides = { 'TXM' : "Une chaîne de caractères est attendue", + 'R' : "Un réel est attendu", + 'I' : "Un entier est attendu"} + type = mc.type[0] + commentaire=d_aides.get(type,"Type de base inconnu") + aideval=self.node.item.aide() + commentaire=commentaire +"\n"+ aideval + self.Commentaire.setText(QString(commentaire)) + + def BOk2Pressed(self): + SaisieValeur.BOk2Pressed(self) + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def LEValeurPressed(self): + SaisieValeur.LEValeurPressed(self) + + def BParametresPressed(self): + QTPanel.BParametresPressed(self) + + def Ajout1Valeur(self,valeur): + SaisieValeur.LEValeurPressed(self,valeur) + + def BSalomePressed(self): + genea=self.node.item.get_genealogie() + kwType = None + for e in genea: + if "GROUP_NO" in e: kwType = "GROUP_NO" + if "GROUP_MA" in e: kwType = "GROUP_MA" + + selection, commentaire = self.editor.parent.appliEficas.selectGroupFromSalome(kwType,editor=self.editor) + if commentaire !="" : + self.Commentaire.setText(QString(commentaire)) + monTexte="" + if selection == [] : return + for geomElt in selection: + monTexte=geomElt+"," + monTexte= monTexte[0:-1] + self.LEValeur.setText(QString(monTexte)) + + def BView2DPressed(self): + valeur=self.LEValeur.text() + if valeur == QString("") : return + valeur = str(valeur) + if valeur : + ok, msgError = self.editor.parent.appliEficas.displayShape(valeur) + if not ok: + self.editor.parent.appli.affiche_infos(msgError) + diff --git a/InterfaceQT4/monUniqueCompPanel.py b/InterfaceQT4/monUniqueCompPanel.py new file mode 100644 index 00000000..46a85338 --- /dev/null +++ b/InterfaceQT4/monUniqueCompPanel.py @@ -0,0 +1,163 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os,re + +# Modules Eficas +import prefs + +from qt import * + +from desUniqueComp import DUnComp +from qtCommun import QTPanel +from politiquesValidation import PolitiqueUnique + +# Import des panels + +#class MonUniqueCompPanel(DUnComp,QTPanel,SaisieValeur): +class MonUniqueCompPanel(DUnComp,QTPanel,PolitiqueUnique): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + QTPanel.__init__(self,node,parent) + DUnComp.__init__(self,parent,name,fl) + self.politique=PolitiqueUnique(node,parent) + self.InitLinesVal() + self.InitCommentaire() + + def InitLinesVal(self): + valeur=self.node.item.get_valeur() + if valeur == None or valeur == '' : return + if type(valeur) not in (types.ListType,types.TupleType) : + self.LEcomp.setText(str(valeur)) + else : + typ_cplx,x1,x2=valeur + self.LEReel.setText(str(x1)) + self.LEImag.setText(str(x2)) + if typ_cplx == "RI" : + self.buttonGroup1.setButton(1) + else : + self.buttonGroup1.setButton(0) + + + def LEcompRPressed(self) : + self.LEReel.clear() + self.LEImag.clear() + commentaire="expression valide" + valeur = str(self.LEcomp.text()) + d={} + try : + v=eval(valeur,d) + except : + commentaire="expression invalide" + self.editor.affiche_infos(commentaire) + return + try : + i=v.imag + except : + commentaire="expression n est pas de la forme a+bj" + self.editor.affiche_infos(commentaire) + + def LEReelRPressed(self): + self.LEcomp.clear() + commentaire="expression valide" + valeur = str(self.LEReel.text()) + try : + a=string.atof(valeur) + except : + commentaire="expression invalide" + self.editor.affiche_infos(commentaire) + + def LEImagRPressed(self): + self.LEcomp.clear() + commentaire="expression valide" + valeur = str(self.LEImag.text()) + try : + a=string.atof(valeur) + except : + commentaire="expression invalide" + self.editor.affiche_infos(commentaire) + + def BOkPressed(self): + if self.LEcomp.text()== "" : + valeur = self.getValeurAster() + else : + if self.LEReel.text() != "" or self.LEImag.text() != "" : + commentaire="entrer une seule valeur SVP" + self.editor.affiche_infos(commentaire) + return + valeur= self.getValeurComp() + self.politique.RecordValeur(valeur) + + def getValeurAster(self): + """ + Retourne le complexe saisi par l'utilisateur + """ + l=[] + if (self.buttonGroup1.selectedId() == 1 ) : + l.append("MP") + elif (self.buttonGroup1.selectedId() == 0) : + l.append("RI") + else : + commentaire="saisir le type de complexe" + self.editor.affiche_infos(commentaire) + return None + try : + l.append(string.atof(str(self.LEReel.text()))) + l.append(string.atof(str(self.LEImag.text()))) + except : + return None + return `tuple(l)` + + def getValeurComp(self): + commentaire="expression valide" + valeur = str(self.LEcomp.text()) + d={} + try : + v=eval(valeur,d) + except : + commentaire="expression invalide" + self.editor.affiche_infos(commentaire) + return None + try : + i=v.imag + except : + commentaire="expression n est pas de la forme a+bj" + self.editor.affiche_infos(commentaire) + return None + return v + + def InitCommentaire(self): + commentaire='Un complexe est attendu' + aideval=self.node.item.aide() + commentaire=commentaire +"\n"+ aideval + self.Commentaire.setText(QString(commentaire)) + + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def ViewDoc(self): + QTPanel.ViewDoc(self) + diff --git a/InterfaceQT4/monUniqueIntoPanel.py b/InterfaceQT4/monUniqueIntoPanel.py new file mode 100644 index 00000000..568410e2 --- /dev/null +++ b/InterfaceQT4/monUniqueIntoPanel.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os + +# Modules Eficas +import prefs + +from qt import * + +from desUniqueInto import DUnIn +from qtCommun import QTPanel +from qtSaisie import SaisieValeur +from politiquesValidation import PolitiqueUnique + +# Import des panels + +class MonUniqueIntoPanel(DUnIn,QTPanel,SaisieValeur): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + QTPanel.__init__(self,node,parent) + DUnIn.__init__(self,parent,name,fl) + SaisieValeur.RemplitPanel(self) + self.politique=PolitiqueUnique(node,parent) + QObject.connect(self.listBoxVal, SIGNAL("doubleClicked(QListBoxItem*)" ), self.ClicValeur ) + + def ClicValeur(self): + SaisieValeur.ClicValeur(self) + + def BOkPressed(self): + SaisieValeur.BOkPressed(self) + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def ViewDoc(self): + QTPanel.ViewDoc(self) + diff --git a/InterfaceQT4/monUniqueSDCOIntoPanel.py b/InterfaceQT4/monUniqueSDCOIntoPanel.py new file mode 100644 index 00000000..0a54315b --- /dev/null +++ b/InterfaceQT4/monUniqueSDCOIntoPanel.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os + +# Modules Eficas +import prefs + +from qt import * + +from desUniqueSDCOInto import DUnSDCOInto +from qtCommun import QTPanel +from qtSaisie import SaisieSDCO +from politiquesValidation import PolitiqueUnique + +# Import des panels + +class MonUniqueSDCOIntoPanel(DUnSDCOInto,QTPanel,SaisieSDCO): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + QTPanel.__init__(self,node,parent) + DUnSDCOInto.__init__(self,parent,name,fl) + self.initLBSDCO() + + def initLBSDCO(self): + listeNomsSDCO = self.node.item.get_sd_avant_du_bon_type() + for aSDCO in listeNomsSDCO: + self.LBSDCO.insertItem( aSDCO) + valeur = self.node.item.get_valeur() + if valeur != "" and valeur != None : + self.LESDCO.setText(QString(valeur.nom)) + + + def LBSDCOReturnPressed(self): + """ + Teste si la valeur fournie par l'utilisateur est une valeur permise : + - si oui, l'enregistre + - si non, restaure l'ancienne valeur + """ + nomConcept=str(self.LBSDCO.currentText()) + self.LESDCO.clear() + self.editor.init_modif() + anc_val = self.node.item.get_valeur() + test_CO=self.node.item.is_CO(anc_val) + + valeur,validite=self.node.item.eval_valeur(nomConcept) + test = self.node.item.set_valeur(valeur) + if not test : + commentaire = "impossible d'évaluer : %s " %`valeur` + elif validite: + commentaire = "Valeur du mot-clé enregistrée" + if test_CO: + # il faut egalement propager la destruction de l'ancien concept + self.node.item.delete_valeur_co(valeur=anc_val) + self.node.item.object.etape.get_type_produit(force=1) + self.node.item.object.etape.parent.reset_context() + else : + commentaire = self.node.item.get_cr() + self.reset_old_valeur(anc_val,mess=mess) + self.editor.affiche_infos(commentaire) + self.Commentaire.setText(commentaire) + + def LESDCOReturnPressed(self) : + self.LBSDCO.clearSelection() + SaisieSDCO.LESDCOReturnPressed(self) + + def BOkPressed(self): + self.LESDCOReturnPressed() + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def ViewDoc(self): + QTPanel.ViewDoc(self) + diff --git a/InterfaceQT4/monUniqueSDCOPanel.py b/InterfaceQT4/monUniqueSDCOPanel.py new file mode 100644 index 00000000..f2247ed1 --- /dev/null +++ b/InterfaceQT4/monUniqueSDCOPanel.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os + +# Modules Eficas +import prefs + +from qt import * + +from desUniqueSDCO import DUnSDCO +from qtCommun import QTPanel +from qtSaisie import SaisieSDCO + +# Import des panels + +class MonUniqueSDCOPanel(DUnSDCO,QTPanel,SaisieSDCO): + """ + Classe définissant le panel associé aux mots-clés qui demandent + à l'utilisateur de choisir une seule valeur parmi une liste de valeurs + discrètes + """ + def __init__(self,node, parent = None,name = None,fl = 0): + QTPanel.__init__(self,node,parent) + DUnSDCO.__init__(self,parent,name,fl) + valeur = self.node.item.get_valeur() + if valeur != "" and valeur != None : + self.LESDCO.setText(QString(valeur.nom)) + + def BOkPressed(self): + SaisieSDCO.LESDCOReturnPressed(self) + + def BSupPressed(self): + QTPanel.BSupPressed(self) + + def BOuiPressed(self): + self.Commentaire.setText("Aucun Objet de ce type n'est defini") + self.rbOui.setChecked(1) + + def LESDCOReturnPressed(self): + """ + Lit le nom donné par l'utilisateur au concept de type CO qui doit être + la valeur du MCS courant et stocke cette valeur + """ + SaisieSDCO.LESDCOReturnPressed(self) + + def ViewDoc(self): + QTPanel.ViewDoc(self) + diff --git a/InterfaceQT4/panelsQT.py b/InterfaceQT4/panelsQT.py new file mode 100644 index 00000000..cc2125fe --- /dev/null +++ b/InterfaceQT4/panelsQT.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +import string +import os + +import traceback + +from qt import * +from qtCommun import QTPanel +from desInactif import DInactif + + +SEPARATEUR = '-'*30 + + +class PanelInactif( QTPanel, DInactif ): + def __init__(self,node,parent=None ): + DInactif.__init__(self,parent) + QTPanel.__init__(self,node,parent) + + +class NoPanel( QWidget ): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + self.textLabel = QLabel(self) + self.textLabel.setText(QString("PANNEAU A IMPLEMENTER")) + self.textLabel.setGeometry(QRect(130,150,219,17)) + self.resize(QSize(600,480).expandedTo(self.minimumSizeHint())) + diff --git a/InterfaceQT4/politiquesValidation.py b/InterfaceQT4/politiquesValidation.py new file mode 100644 index 00000000..539f6113 --- /dev/null +++ b/InterfaceQT4/politiquesValidation.py @@ -0,0 +1,162 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import types + +from qt import * + + +#------------------ +class Validation : +#------------------ + def __init__(self,node,parent) : + self.node=node + self.parent=parent + + def TesteUneValeur(self,valeurentree): + valeur,validite=self.node.item.eval_valeur(valeurentree) + if not validite : + commentaire = "impossible d'évaluer : %s " %`valeurentree` + return valeur,validite,commentaire + + testtype,commentaire = self.node.item.object.verif_type(valeur) + if not testtype : + return valeur,0,commentaire + + valide=self.node.item.valide_item(valeur) + if type(valide) == types.TupleType: + validite,commentaire=valide + else : + validite=valide + commentaire=" " + + if not validite : + commentaire = "impossible d'évaluer : %s " %`valeurentree` + return valeur, validite, commentaire + +# ---------------------------------------------------------------------------------------- +# Méthodes utilisées pour la manipulation des items en notation scientifique +# a mettre au point +# ---------------------------------------------------------------------------------------- + def SetValeurTexte(self,texteValeur) : + try : + if "R" in self.node.item.object.definition.type: + if texteValeur[0] != "'": + clef=eval(texteValeur) + if str(clef) != str(texteValeur) : + self.node.item.object.init_modif() + clefobj=self.node.item.object.GetNomConcept() + if not self.parent.dict_reels.has_key(clefobj): + self.parent.dict_reels[clefobj] = {} + self.parent.dict_reels[clefobj][clef]=texteValeur + self.parent.dict_reels[clefobj] + self.node.item.object.fin_modif() + except: + pass + + def GetValeurTexte(self,valeur) : + valeurTexte=valeur + if "R" in self.node.item.object.definition.type: + clefobj=self.node.item.object.GetNomConcept() + if self.parent.dict_reels.has_key(clefobj): + if self.parent.dict_reels[clefobj].has_key(valeur): + valeurTexte=self.parent.dict_reels[clefobj][valeur] + return valeurTexte + +#------------------------------------ +class PolitiqueUnique(Validation) : +#------------------------------------ + """ + classe servant pour les entrees ne demandant qu un mot clef + """ + def __init__(self,node,parent): + Validation.__init__(self,node,parent) + + def RecordValeur(self,valeurentree): + if self.parent.modified == 'n' : self.parent.init_modif() + ancienne_val = self.node.item.get_valeur() + valeur,validite,commentaire =self.TesteUneValeur(valeurentree) + if validite : + validite=self.node.item.set_valeur(valeur) + if self.node.item.isvalid(): + commentaire = "Valeur du mot-clé enregistrée" + self.SetValeurTexte(str(valeurentree)) + else: + cr = self.node.item.get_cr() + commentaire = "Valeur du mot-clé non autorisée "+cr.get_mess_fatal() + self.node.item.set_valeur(ancienne_val) + return validite, commentaire + + +#------------------------ +class PolitiquePlusieurs: +#------------------------ + """ + classe servant pour les entrees ne demandant qu un mot clef + """ + def __init__(self,node,parent) : + self.node=node + self.parent=parent + + + def AjoutValeurs(self,listevaleur,index,listecourante): + listeRetour=[] + commentaire="Nouvelle valeur acceptée" + commentaire2="" + valide=1 + if listevaleur==None: return + if listevaleur=="": return + if not( type(listevaleur) in (types.ListType,types.TupleType)) : + listevaleur=tuple(listevaleur) + for valeur in listevaleur : + # On teste le type de la valeur + valide=self.node.item.valide_item(valeur) + if not valide : + #print self.__class__ + #if not testtype : + try : + valeur,valide=self.node.item.eval_valeur(valeur) + valide,commentaire = self.node.item.object.verif_type(valeur) + except : + #return testtype,commentaire,"",listeRetour + pass + if not valide: + commentaire="Valeur "+str(valeur)+ " incorrecte : ajout à la liste refusé" + commentaire2=self.node.item.info_erreur_item() + return valide,commentaire,commentaire2,listeRetour + + # On valide la liste obtenue + encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante) + if not encorevalide : + commentaire2=self.node.item.info_erreur_liste() + # On traite le cas ou la liste n est pas valide pour un pb de cardinalite + min,max = self.node.item.GetMinMax() + if len(listecourante) + 1 >= max : + commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé" + return valide,commentaire,commentaire2,listeRetour + if len(listecourante) + 1 > min : + return valide,commentaire,commentaire2,listeRetour + # On ajoute la valeur testee a la liste courante et a la liste acceptee + listecourante.insert(index,valeur) + index=index+1 + listeRetour.append(valeur) + + return valide,commentaire,commentaire2,listeRetour diff --git a/InterfaceQT4/prefsQT.py b/InterfaceQT4/prefsQT.py new file mode 100644 index 00000000..ef1aa899 --- /dev/null +++ b/InterfaceQT4/prefsQT.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- + +# ====================================================================== +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== + +lang='fr' + diff --git a/InterfaceQT4/qtCommun.py b/InterfaceQT4/qtCommun.py new file mode 100644 index 00000000..a2c62079 --- /dev/null +++ b/InterfaceQT4/qtCommun.py @@ -0,0 +1,347 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os +import traceback + +from qt import * +import prefsQT + +# Import des panels + +# ---------- # +class QTPanel: +# ---------- # + """ + Classe contenant les méthodes Qt communes a tous les panneaux droits + Tous les panneaux Mon...Panel héritent de cette classe + Gére plus précisement : + - l affichage de la doc + - le bouton Suppression (BSupPressed) + - la mutualisation de l affichage des regles + """ + def __init__(self,node, parent = None): + self.editor = parent + self.node = node + + def BSupPressed(self): + self.editor.init_modif() + self.node.delete() + + def ViewDoc(self) : + cle_doc = self.node.item.get_docu() + if cle_doc == None : + QMessageBox.information( self.editor, "Documentation Vide", \ + "Aucune documentation Aster n'est associée à ce noeud") + return + cle_doc = string.replace(cle_doc,'.','') + cle_doc = string.replace(cle_doc,'-','') + commande = self.editor.appliEficas.CONFIGURATION.exec_acrobat + try : + f=open(commande,"rb") + except : + texte="impossible de trouver la commande " + commande + QMessageBox.information( self.editor, "Lecteur PDF", texte) + return + nom_fichier = cle_doc+".pdf" + fichier = os.path.abspath(os.path.join(self.editor.CONFIGURATION.path_doc, + nom_fichier)) + try : + f=open(fichier,"rb") + except : + texte="impossible d'ouvrir " + fichier + QMessageBox.information( self.editor, "Documentation Vide", texte) + return + if os.name == 'nt': + os.spawnv(os.P_NOWAIT,commande,(commande,fichier,)) + elif os.name == 'posix': + script ="#!/usr/bin/sh \n%s %s&" %(commande,fichier) + pid = os.system(script) + + def BOkPressed(self): + """ Impossible d utiliser les vrais labels avec designer ?? """ + label=self.TWChoix.tabLabel(self.TWChoix.currentPage()) + if label==QString("Nouvelle Commande"): + self.DefCmd() + if label==QString("Nommer Concept"): + self.LENomConceptReturnPressed() + if label==QString("Ajouter Mot-Clef"): + self.DefMC() + if label==QString("Définition Formule"): + self.BOkPressedFormule() + if label==QString("Valeur Parametre"): + self.BOkParamPressed() + if label==QString("Fichier Include"): + self.BOkIncPressed() + + def BParametresPressed(self): + liste=self.node.item.get_liste_param_possible() + from monListeParamPanel import MonListeParamPanel + MonListeParamPanel(liste=liste,parent=self).show() + + def AppelleBuildLBRegles(self): + listeRegles = self.node.item.get_regles() + listeNomsEtapes = self.node.item.get_mc_presents() + self.BuildLBRegles(listeRegles,listeNomsEtapes) + + + def BuildLBRegles(self,listeRegles,listeNomsEtapes): + if len(listeRegles) > 0: + for regle in listeRegles : + texteRegle=regle.gettext() + texteMauvais,test = regle.verif(listeNomsEtapes) + for ligne in texteRegle.split("\n") : + if ligne == "" : + self.LBRegles.insertItem(ligne) + continue + if ligne[0]=="\t" : + ligne=" "+ligne[1:] + if test : + self.LBRegles.insertItem(ligne) + else : + self.LBRegles.insertItem(itemColore(ligne)) + + +# ----------------------- # +class QTPanelTBW1(QTPanel): +# ----------------------- # + """ + Classe contenant les méthodes nécessaires a l onglet "Ajouter Mot-Clef" + hérite de QTPanel # Attention n appelle pas le __init__ + Gére plus précisement : + """ + def __init__(self,node, parent = None): + self.editor = parent + self.node = node + self.BuildLBMCPermis() + self.AppelleBuildLBRegles() + + def BuildLBMCPermis(self): + self.LBMCPermis.clear() + try : + QObject.disconnect(self.LBMCPermis,SIGNAL("doubleClicked(QListBoxItem*)"),self.DefMC) + except : + # normal pour la première fois qu on passe + # peut-etre inutile selon le connect ?? + pass + QObject.connect(self.LBMCPermis,SIGNAL("doubleClicked(QListBoxItem*)"),self.DefMC) + + jdc = self.node.item.get_jdc() + genea =self.node.item.get_genealogie() + liste_mc=self.node.item.get_liste_mc_ordonnee(genea,jdc.cata_ordonne_dico) + for aMc in liste_mc: + self.LBMCPermis.insertItem( aMc) + + + def DefMC(self): + """ On ajoute un mot-clé à la commande : subnode """ + if self.LBMCPermis.selectedItem() == None : return + name=str(self.LBMCPermis.selectedItem().text()) + self.editor.init_modif() + self.node.append_child(name) + +# ---------------------------- # +class QTPanelTBW2(QTPanel): +# ---------------------------- # + """ + Classe contenant les méthodes nécessaires a l onglet "Nouvelle Commande" + hérite de QTPanel # Attention n appelle pas le __init__ + Gére plus précisement : + """ + + def __init__(self,node, parent = None, racine = 0): + self.editor = parent + self.node = node + self.BuildLBNouvCommande() + if racine == 1 : self.AppelleBuildLBRegles() + + + def BuildLBNouvCommande(self): + self.LBNouvCommande.clear() + try : + QObject.disconnect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.DefCmd) + except : + # normal pour la première fois qu on passe + # peut-etre inutile selon le connect ?? + pass + + jdc=self.node.item.object.get_jdc_root() + if self.RBalpha.isOn(): + listeCmd = jdc.get_liste_cmd() + for aCmd in listeCmd: + self.LBNouvCommande.insertItem( aCmd ) + else : + listeGroupes,dictGroupes=jdc.get_groups() + for grp in listeGroupes: + if grp == "CACHE":continue + listeCmd=dictGroupes[grp] + texte="GROUPE : "+grp + self.LBNouvCommande.insertItem( texte ) + self.LBNouvCommande.insertItem( " " ) + for aCmd in listeCmd: + self.LBNouvCommande.insertItem( aCmd) + self.LBNouvCommande.insertItem( " " ) + QObject.connect( self.LBNouvCommande, SIGNAL("doubleClicked(QListBoxItem*)"),self.DefCmd ) + QObject.connect( self.LBNouvCommande, SIGNAL("returnPressed(QListBoxItem*)"),self.DefCmd ) + + def DefCmd(self): + if (self.editor.focusWidget())!=self.LBNouvCommande : + return + if self.LBNouvCommande.selectedItem()== 0 : return + if self.LBNouvCommande.selectedItem()== None : return + name=str(self.LBNouvCommande.selectedItem().text()) + if name==QString(" "): + return + if name.find("GROUPE :")==0 : + return + self.editor.init_modif() + new_node = self.node.append_brother(name,'after') + + + def LEFiltreTextChanged(self): + MonItem=self.LBNouvCommande.findItem(self.LEFiltre.text().upper(),Qt.Contains) + if MonItem != None : + self.LBNouvCommande.setCurrentItem(MonItem) + self.LBNouvCommande.setSelected(MonItem,1) + try : + QObject.disconnect(self.LBNouvCommande,SIGNAL("returnPressed(QListBoxItem*)"),self.DefCmd) + except : + pass + + def LEfiltreReturnPressed(self): + self.DefCmd() + + def BNextPressed(self): + MonItem=self.LBNouvCommande.findItem(self.LEFiltre.text().upper(),Qt.Contains) + if MonItem != None : + self.LBNouvCommande.setCurrentItem(self.LBNouvCommande.currentItem()+1) + self.LEFiltreTextChanged() + + def LBNouvCommandeClicked(self): + name=str(self.LBNouvCommande.currentText()) + + +# ---------------------------- # +class QTPanelTBW3(QTPanel): +# ---------------------------- # + + """ + Classe contenant les méthodes nécessaires a l onglet "Nommer Concept" + si non réentrant + hérite de QTPanel # Attention n appelle pas le __init__ + Gére plus précisement : + """ + + def __init__(self,node, parent = None): + self.editor = parent + self.node = node + type_sd = self.node.item.get_type_sd_prod() + nomConcept = self.node.item.GetText() + self.typeConcept.setText(type_sd) + self.LENomConcept.setText("") + self.LENomConcept.setText(nomConcept) + + + + def LENomConceptReturnPressed(self): + """ + Nomme le concept SD retourne par l'etape + """ + nom = str(self.LENomConcept.text()) + nom = string.strip(nom) + + if nom == '' : return # si pas de nom, on ressort sans rien faire + + self.editor.init_modif() + test,mess = self.node.item.nomme_sd(nom) + self.editor.affiche_infos(mess) + +# ----------------------- # +class ViewText(QDialog): +# ----------------------- # + """ + Classe permettant la visualisation de texte + """ + def __init__(self,parent = None,name = None,modal = 0,fl = 0): + QDialog.__init__(self,parent,name,modal,fl) + + l1 = QVBoxLayout(self,11,6,) + self.view = QTextEdit(self) + self.view.setReadOnly(True) + + l2 = QHBoxLayout(None,0,6) + Horizontal_Spacing2 = QSpacerItem(220,20,QSizePolicy.Expanding,QSizePolicy.Minimum) + bclose= QPushButton(self) + bclose.setText(self.trUtf8( "Fermer")) + bsave= QPushButton(self) + bsave.setText(self.trUtf8( "Sauver")) + l2.addItem(Horizontal_Spacing2) + l2.addWidget(bsave) + l2.addWidget(bclose) + + l1.addWidget(self.view) + l1.addLayout(l2) + + self.resize( QSize(600,507).expandedTo(self.minimumSizeHint()) ) + self.connect( bclose,SIGNAL("clicked()"), self, SLOT("close()") ) + self.connect( bsave,SIGNAL("clicked()"), self.saveFile ) + + def setText(self, txt ): + self.view.setText(txt) + + def saveFile(self): + #recuperation du nom du fichier + fn = QFileDialog.getSaveFileName(None, + self.trUtf8("All Files (*)"), self, None, + self.trUtf8("Save File"), '', 0) + if not fn.isNull(): + if QFileInfo(fn).exists(): + abort = QMessageBox.warning(self, + self.trUtf8("Save File"), + self.trUtf8("The file %1 already exists.") + .arg(fn), + self.trUtf8("&Overwrite"), + self.trUtf8("&Abort"), None, 1) + if abort: + return + fn = unicode(QDir.convertSeparators(fn)) + else: + return + + #ecriture du fichier + try: + f = open(fn, 'wb') + f.write(str(self.view.text())) + f.close() + return 1 + except IOError, why: + QMessageBox.critical(self, self.trUtf8('Save File'), + self.trUtf8('The file %1 could not be saved.
Reason: %2') + .arg(unicode(fn)).arg(str(why))) + return + + +#------------------------------- +class itemColore(QListBoxText): +#------------------------------- + def paint(self,p): + p.setPen(Qt.red) + QListBoxText.paint(self,p); diff --git a/InterfaceQT4/qtEficas.py b/InterfaceQT4/qtEficas.py new file mode 100644 index 00000000..f27ad84e --- /dev/null +++ b/InterfaceQT4/qtEficas.py @@ -0,0 +1,291 @@ +# -*- coding: iso-8859-1 -*- + +import os, sys +REPINI=os.path.dirname(os.path.abspath(__file__)) +INSTALLDIR=os.path.join(REPINI,'..') +sys.path.append(INSTALLDIR) +sys.path.append(INSTALLDIR+"/Ui") +sys.path.append(INSTALLDIR+"/InterfaceQT") + +from qt import * +from myMain import Eficas +from viewManager import MyTabview + +from Editeur import configuration +from Editeur import session + +import utilIcons +utilIcons.initializeMimeSourceFactory() + + +class Appli(Eficas): + """ + Class implementing the main user interface. + """ + def __init__(self,code="ASTER",salome=0,parent=None): + """ + Constructor + + @param loc locale to be used by the UI (string) + @param splash reference to the splashscreen (UI.SplashScreen.SplashScreen) + """ + self.ihm="QT" + self.code=code + self.salome=salome + Eficas.__init__(self,parent,fl=Qt.WType_Dialog) + #Eficas.__init__(self,parent) + + if code == "ASTER" : + from Aster import prefs + import sys + sys.path.append(INSTALLDIR+"/Aster") + else : + import prefs + #try : + if 1 : + apply(Appli.__dict__[code],(self,)) + #except : + else: + pass + if hasattr(prefs,'encoding'): + import sys + reload(sys) + sys.setdefaultencoding(prefs.encoding) + del sys.setdefaultencoding + + self.top=self + self.CONFIGURATION = configuration.make_config(self,prefs.REPINI) + self.CONFIGStyle = configuration.make_config_style(self,prefs.REPINI) + + self.viewmanager = MyTabview(self, self) #MyTabview, MyWorkspace, Listspace + self.setCentralWidget(self.viewmanager) + + self.recentMenu = QPopupMenu(self.Fichier) + self.Fichier.insertItem(self.trUtf8('&Recents'), self.recentMenu) + self.connect(self.recentMenu,SIGNAL('aboutToShow()'),self.handleShowRecentMenu) + self.connect(self,PYSIGNAL('preferencesChanged'), + self.viewmanager.handlePreferencesChanged) + + self.connect(self.viewmanager,PYSIGNAL('lastEditorClosed'), + self.handleLastEditorClosed) + + self.connect(self.viewmanager,PYSIGNAL('editorOpened'), + self.handleEditorOpened) + + # Initialise the instance variables. + self.currentProg = None + self.isProg = 0 + self.utEditorOpen = 0 + self.utProjectOpen = 0 + + self.inDragDrop = 0 + self.setAcceptDrops(1) + self.ficPatrons={} + self.initPatrons() + self.monAssistant=QAssistantClient(QString(""), self.viewmanager) + + if self.salome : + from Editeur import session + self.ouvreFichiers() + + def OPENTURNS(self) : + self.MenuBar.removeItem(5) + self.MenuBar.removeItem(6) + self.MenuBar.removeItem(7) + + + def ouvreFichiers(self) : + # Ouverture des fichiers de commandes donnes sur la ligne de commande + cwd=os.getcwd() + self.dir=cwd + for study in session.d_env.studies: + os.chdir(cwd) + d=session.get_unit(study,self) + #print study["comm"] + self.viewmanager.handleOpen(fn=study["comm"],units=d) + + + def initPatrons(self) : + # Mise à jour du menu des fichiers recemment ouverts + from Editeur import listePatrons + self.listePatrons = listePatrons.listePatrons(self.code) + idx = 0 + for nomSsMenu in self.listePatrons.liste.keys(): + ssmenu = QPopupMenu(self.Patrons) + self.Patrons.insertItem(nomSsMenu, ssmenu) + for fichier in self.listePatrons.liste[nomSsMenu]: + id = ssmenu.insertItem(fichier, self.handleOpenPatrons) + self.ficPatrons[idx]=fichier + self.Patrons.setItemParameter(id,idx) + idx=idx+1 + + def traductionV7V8(self): + from gereTraduction import traduction + traduction(self.CONFIGURATION.rep_user,self.viewmanager,"V7V8") + + def version(self) : + from desVisu import DVisu + titre = "version " + monVisu=DVisu(parent=self.viewmanager,fl=Qt.WType_Dialog) + monVisu.setCaption(titre) + monVisu.TB.setText("Eficas V1.13") + monVisu.adjustSize() + monVisu.show() + + def aidePPal(self) : + maD=INSTALLDIR+"/AIDE/fichiers" + docsPath = QDir(maD).absPath() + self.monAssistant.showPage( QString("%1/index.html").arg(docsPath) ) + + def optionEditeur(self) : + from monOptionsEditeur import Options + monOption=Options(parent=self.viewmanager,fl=Qt.WType_Dialog,configuration=self.CONFIGURATION) + monOption.show() + + def optionPdf(self) : + from monOptionsPdf import OptionPdf + monOption=OptionPdf(parent=self.viewmanager,fl=Qt.WType_Dialog,configuration=self.CONFIGURATION) + monOption.show() + + def handleShowRecentMenu(self): + """ + Private method to set up recent files menu. + """ + idx = 0 + self.recentMenu.clear() + + for rp in self.viewmanager.recent: + id = self.recentMenu.insertItem('&%d. %s' % (idx+1, unicode(rp)), + self.handleOpenRecent) + self.recentMenu.setItemParameter(id,idx) + + idx = idx + 1 + + self.recentMenu.insertSeparator() + self.recentMenu.insertItem(self.trUtf8('&Clear'), self.handleClearRecent) + + def handleOpenPatrons(self, idx): + fichier=REPINI+"/../Editeur/Patrons/"+self.code+"/"+self.ficPatrons[idx] + self.viewmanager.handleOpen(fn=fichier, patron = 1) + + + def handleOpenRecent(self, idx): + """ + Private method to open a file from the list of rencently opened files. + + @param idx index of the selected entry (int) + """ + self.viewmanager.handleOpen(unicode(self.viewmanager.recent[idx])) + + def handleClearRecent(self): + """ + Private method to clear the recent files menu. + """ + self.viewmanager.recent = QStringList() + + + def handleLastEditorClosed(self): + """ + Public slot to handle the lastEditorClosed signal. + """ + pass # CS_pbruno todo griser les parties k'il faut + + def handleEditorOpened(self, fn): + """ + Public slot to handle the editorOpened signal. + + @param fn filename of the opened editor (string) + """ + pass # CS_pbruno todo degriser les parties k'il faut + + + def fileNew(self): + self.viewmanager.newEditor() + + def fileOpen(self, prog=None): + self.viewmanager.handleOpen(prog) + + def fileNewView(self): + self.viewmanager.handleNewView() + + def fileSave(self): + self.viewmanager.saveCurrentEditor() + + def fileSaveAs(self): + self.viewmanager.saveAsCurrentEditor() + + def fileClose(self): + self.viewmanager.handleClose() + + def fileCloseAll(self): + self.viewmanager.handleCloseAll() + + def fileExit(self): + # On peut sortir sur Abort + if self.viewmanager.handleCloseAll() ==0 : + return + if self.salome : + self.close() + else : + qApp.closeAllWindows() + + def editCopy(self): + self.viewmanager.handleEditCopy() + + def editCut(self): + self.viewmanager.handleEditCut() + + def editPaste(self): + self.viewmanager.handleEditPaste() + + def jdcFichierSource(self): + self.viewmanager.handleViewJdcFichierSource() + + def jdcRapport(self): + self.viewmanager.handleViewJdcRapport() + + def visuJdcPy(self): + self.viewmanager.handlevisuJdcPy() + + def get_source(self,file): + from editor import JDCEditor + monEditeur=JDCEditor() + texte=monEditeur.get_source(file) + return texte + + def helpAbout(self): + import AIDE + AIDE.go3(parent=self) + + def NewInclude(self): + self.viewmanager.newIncludeEditor() + +if __name__=='__main__': + + # Modules Eficas + sys.path.append(INSTALLDIR+"/Aster") + from Aster import prefs + if hasattr(prefs,'encoding'): + # Hack pour changer le codage par defaut des strings + import sys + reload(sys) + sys.setdefaultencoding(prefs.encoding) + del sys.setdefaultencoding + # Fin hack + + from Editeur import import_code + from Editeur import session + + # Analyse des arguments de la ligne de commande + options=session.parse(sys.argv) + code=options.code + + app = QApplication(sys.argv) + mw = Appli() + app.setMainWidget(mw) + app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) + mw.ouvreFichiers() + mw.show() + + res = app.exec_loop() + sys.exit(res) diff --git a/InterfaceQT4/qtSaisie.py b/InterfaceQT4/qtSaisie.py new file mode 100644 index 00000000..7c3c86e6 --- /dev/null +++ b/InterfaceQT4/qtSaisie.py @@ -0,0 +1,185 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +# Modules Python +import string,types,os +from qt import * + +# Import des panels + +class SaisieValeur: + """ + Classe contenant les méthodes communes aux panels + permettant de choisir des valeurs + """ + def __init__(self): + pass + + def InitListBoxASSD(self): + listeNomsSD = self.node.item.get_sd_avant_du_bon_type() + for aSD in listeNomsSD: + self.listBoxASSD.insertItem( aSD) + QObject.connect(self.listBoxASSD, SIGNAL("doubleClicked(QListBoxItem*)" ), self.ClicASSD ) + min,max = self.node.item.GetMinMax() + l= self.node.item.GetListeValeurs() + + if (min == 1 and min == max and len(listeNomsSD)==1 and (l==[] or l==None)): + if ('R' not in self.node.item.get_type()) : + self.listBoxASSD.setCurrentItem(0) + + + def BuildLBValeurs(self): + self.LBValeurs.clear() + listeValeurs=self.node.item.GetListeValeurs() + for valeur in listeValeurs: + self.LBValeurs.insertItem(str(valeur)) + if listeValeurs != None and listeValeurs != [] : + self.LBValeurs.setCurrentItem(len(listeValeurs) - 1) + + + def RemplitPanel(self,listeDejaLa=[]): + self.listBoxVal.clear() + lChoix=self.node.item.get_liste_possible(listeDejaLa) + for valeur in lChoix : + self.listBoxVal.insertItem( str(valeur) ) + if len(lChoix) == 1 : + self.listBoxVal.setSelected(0,1) + + def ClicASSD(self): + if self.listBoxASSD.selectedItem()== None : return + valeurQstring=self.listBoxASSD.selectedItem().text() + commentaire = QString("Valeur selectionnée : ") + commentaire.append(valeurQstring) + self.Commentaire.setText(commentaire) + valeur=valeurQstring.latin1() + validite,commentaire=self.politique.RecordValeur(valeur) + self.Commentaire.setText(QString(commentaire)) + self.editor.affiche_infos(commentaire) + + def ClicValeur(self): + if self.listBoxVal.selectedItem()== None : return + valeurQstring=self.listBoxVal.selectedItem().text() + valeur=valeurQstring.latin1() + validite,commentaire=self.politique.RecordValeur(valeur) + #self.Commentaire.setText(QString(commentaire)) + self.editor.affiche_infos(commentaire) + + def BOkPressed(self): + if self.listBoxVal.selectedItem()==None : + commentaire = "Pas de valeur selectionnée" + self.Commentaire.setText(QString(commentaire)) + else : + self.ClicValeur() + + def BOk2Pressed(self): + if str(self.lineEditVal.text())== "" : + commentaire = "Pas de valeur entrée " + self.Commentaire.setText(QString(commentaire)) + else : + self.LEValeurPressed() + + def LEValeurPressed(self,valeur=None): + if valeur == None : + nouvelleValeur=str(self.lineEditVal.text()) + else : + self.lineEditVal.setText(QString(valeur.nom)) + nouvelleValeur=valeur + validite,commentaire=self.politique.RecordValeur(nouvelleValeur) + if commentaire != "" : + #self.Commentaire.setText(QString(commentaire)) + self.editor.affiche_infos(commentaire) + + + def TraiteLEValeur(self,valeurTraitee=None) : + # lit la chaine entree dans le line edit + # et la tranforme en chaine de valeurs + # a traiter. renvoie eventuellement des complexes + listeValeurs=[] + if valeurTraitee == None : + valeurBrute=str(self.LEValeur.text()) + else : + valeurBrute=valeurTraitee + if valeurBrute == str("") : return 1, listeValeurs + try : + valeur=eval(valeurBrute,{}) + except : + valeur=valeurBrute + if type(valeur) in (types.ListType,types.TupleType) : + indice = 0 + while (indice < len(valeur)): + v=valeur[indice] + if self.node.item.wait_complex() : + if (v== 'RI' or v == 'MP'): + try : + t=tuple([v,valeur[indice+1],valeur[indice+2]]) + listeValeurs.append(t) + indice=indice+3 + except : + commentaire = "Veuillez entrer le complexe sous forme aster ou sous forme python" + self.editor.affiche_infos(commentaire) + return listeValeurs,0 + + + else : # ce n'est pas un tuple à la mode aster + + listeValeurs.append(v) + indice = indice + 1 + + else: # on n'attend pas un complexe + listeValeurs.append(v) + indice=indice+1 + elif type(valeur) == types.StringType: + listeValeurs=valeur.split(',') + else: + listeValeurs.append(valeur) + + return listeValeurs,1 + + +class SaisieSDCO : + def __init__(self): + pass + + def LESDCOReturnPressed(self): + """ + Lit le nom donné par l'utilisateur au concept de type CO qui doit être + la valeur du MCS courant et stocke cette valeur + """ + self.editor.init_modif() + anc_val = self.node.item.get_valeur() + if anc_val != None: + # il faut egalement propager la destruction de l'ancien concept + self.node.item.delete_valeur_co(valeur=anc_val) + # et on force le recalcul des concepts de sortie de l'etape + self.node.item.object.etape.get_type_produit(force=1) + # et le recalcul du contexte + self.node.item.object.etape.parent.reset_context() + nomConcept = str(self.LESDCO.text()) + if nomConcept == "" : return + + test,commentaire=self.node.item.set_valeur_co(nomConcept) + if test: + commentaire="Valeur du mot-clé enregistree" + self.node.update_node_valid() + else : + cr = self.node.item.get_cr() + commentaire = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal() + self.node.item.set_valeur_co(anc_val) + self.Commentaire.setText(QString(commentaire)) diff --git a/InterfaceQT4/readercata.py b/InterfaceQT4/readercata.py new file mode 100644 index 00000000..2f37094d --- /dev/null +++ b/InterfaceQT4/readercata.py @@ -0,0 +1,413 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== +""" + Ce module sert a lire un catalogue et a construire + un objet CataItem pour Eficas. + Il s'appuie sur la classe READERCATA +""" +# Modules Python +import time +import os,sys,py_compile +import traceback +import cPickle +import re + +# Modules Eficas +import prefs +from Noyau.N_CR import CR +from utils import init_rep_cata_dev + +from Editeur import analyse_catalogue +from Editeur import autre_analyse_cata +from Editeur import uiinfo +from monChoixCata import MonChoixCata + +from qt import * + +version="14" + +class READERCATA: + + def __init__(self,appli,parent): + self.appli=appli + self.parent=parent + self.code=self.appli.code + self.appli.format_fichier='python' + self.version_code=self.appli.version_code + self.version_cata=None + self.fic_cata=None + self.OpenCata() + self.cataitem=None + + def OpenCata(self): + """ + Ouvre le catalogue standard du code courant, cad le catalogue présent + dans le répertoire Cata + """ + message1 = "Compilation des fichiers Eficas \n\n Veuillez patienter ..." + self.configure_barre(4) + + liste_cata_possibles=[] + for catalogue in self.appli.CONFIGURATION.catalogues: + if catalogue[0] == self.code : + liste_cata_possibles.append(catalogue) + + if len(liste_cata_possibles)==0: + QMessageBox.critical( self.parent, "Import du catalogue","Pas de catalogue defini pour le code %s" % self.code) + self.appli.parent.ui.close() + sys.exit(1) + + if self.version_code is not None: + # La version a ete fixee + for cata in liste_cata_possibles: + if self.version_code == cata[1]: + self.fic_cata = cata[2] + self.appli.format_fichier=cata[3] + elif len(liste_cata_possibles)==1: + self.fic_cata = liste_cata_possibles[0][2] + self.version_code = liste_cata_possibles[0][1] + self.appli.format_fichier=liste_cata_possibles[0][3] + lab=QString("Eficas V1.") + lab+=QString(version) + lab+=QString(" pour ") + lab+=QString(self.code) + lab+=QString(" avec le catalogue ") + lab+=self.version_code + try : + # souci pour les includes + self.appli.parent.ui.setCaption(lab) + except : + pass + #qApp.mainWidget().setCaption(lab) + else: + # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur + # lequel il veut utiliser ... + self.ask_choix_catalogue() + + if self.fic_cata == None : + print "Pas de catalogue pour code %s, version %s" %(self.code,self.version_code) + sys.exit(0) + + self.determineMater() + + + # détermination de fic_cata_c et fic_cata_p + self.fic_cata_c = self.fic_cata + 'c' + self.fic_cata_p = os.path.splitext(self.fic_cata)[0]+'_pickled.py' + + # import du catalogue + self.cata = self.import_cata(self.fic_cata) + self.update_barre() + if not self.cata : + QMessageBox.critical( self.parent, "Import du catalogue","Impossible d'importer le catalogue %s" %self.fic_cata) + self.appli.parent.ui.close() + sys.exit(1) + # + # analyse du catalogue (ordre des mots-clés) + # + # Retrouve_Ordre_Cata_Standard fait une analyse textuelle du catalogue + # remplacé par Retrouve_Ordre_Cata_Standard_autre qui utilise une numerotation + # des mots clés a la création + self.Retrouve_Ordre_Cata_Standard_autre() + self.update_barre() + + # + # analyse des données liées a  l'IHM : UIinfo + # + uiinfo.traite_UIinfo(self.cata) + self.update_barre() + + # + # traitement des clefs documentaires + # + self.traite_clefs_documentaires() + + # chargement et analyse des catalogues développeur (le cas échéant) + # + if self.appli.CONFIGURATION.isdeveloppeur == 'OUI' : + init_rep_cata_dev(self.fic_cata,self.appli.CONFIGURATION.path_cata_dev) + fic_cata_dev = os.path.join(self.appli.CONFIGURATION.path_cata_dev,'cata_developpeur.py') + if os.path.isfile(fic_cata_dev): + # il y a bien un catalogue développeur : il faut récupérer le module_object associé ... + test = self.compile_cata(fic_cata_dev,fic_cata_dev+'c') + if not test : + showinfo("Compilation catalogue développeur", + "Erreur dans la compilation du catalogue développeur") + self.cata = (self.cata,) + else: + self.cata_dev =self.import_cata(fic_cata_dev) + #self.Retrouve_Ordre_Cata_Developpeur() + self.Retrouve_Ordre_Cata_Developpeur_autre() + self.cata = (self.cata,self.cata_dev) + else: + self.cata = (self.cata,) + else: + self.cata = (self.cata,) + titreSuite=" avec le catalogue " + os.path.basename(self.fic_cata) + titre=self.appli.titre+titreSuite + if self.appli.top: + self.appli.top.title(titre) + self.appli.titre=titre + + def determineMater(self) : + # Determinination du repertoire materiau + v_codeSansPoint=self.version_code + v_codeSansPoint=re.sub("\.","",v_codeSansPoint) + chaine="rep_mat_"+v_codeSansPoint + if hasattr(self.appli.CONFIGURATION,chaine): + a=getattr(self.appli.CONFIGURATION,chaine) + else : + try : + a=self.appli.CONFIGURATION.dRepMat[self.version_code] + except : + if self.code == "ASTER" : + print "Probleme avec le repertoire materiau" + a='.' + self.appli.CONFIGURATION.rep_mat=a + + def import_cata(self,cata): + """ + Réalise l'import du catalogue dont le chemin d'acca¨s est donné par cata + """ + nom_cata = os.path.splitext(os.path.basename(cata))[0] + rep_cata = os.path.dirname(cata) + sys.path[:0] = [rep_cata] + try : + o=__import__(nom_cata) + return o + except Exception,e: + traceback.print_exc() + return 0 + + def Retrouve_Ordre_Cata_Standard_autre(self): + """ + Construit une structure de données dans le catalogue qui permet + a  EFICAS de retrouver l'ordre des mots-clés dans le texte du catalogue. + Pour chaque entité du catlogue on crée une liste de nom ordre_mc qui + contient le nom des mots clés dans le bon ordre + """ + self.cata_ordonne_dico,self.appli.liste_simp_reel=autre_analyse_cata.analyse_catalogue(self.cata) + + def Retrouve_Ordre_Cata_Standard(self): + """ + Retrouve l'ordre des mots-clés dans le catalogue, cad : + - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer + l'ordre des mots-clés dans le catalogue + - s'il n'a pas été modifié, relie le fichier pickle + """ + time1 = os.path.getmtime(self.fic_cata) + try : + time2 = os.path.getmtime(self.fic_cata_p) + except: + time2 = 0 + if time2 > time1 : + # l'objet catalogue n'a pas été modifié depuis le dernier "pickle" + self.Get_Ordre_Cata() + else : + # le catalogue a été modifié depuis le dernier "pickle" : + # il faut retrouver l'ordre du catalogue et refaire pickle + self.Get_Ordre_Cata(mode='cata') + self.appli.affiche_infos("Catalogue standard chargé") + + def Retrouve_Ordre_Cata_Developpeur(self): + """ + Retrouve l'ordre des mots-clés dans le catalogue, cad : + - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer + l'ordre des mots-clés dans le catalogue + - s'il n'a pas été modifié, relie le fichier pickle + """ + if self.code != 'ASTER' : return + fic_cata = os.path.join(self.appli.CONFIGURATION.path_cata_dev,'cata_developpeur.py') + message="Chargement catalogue développeur présent dans :\n %s..." % self.appli.CONFIGURATION.path_cata_dev + cata_dev_ordonne = analyse_cata.analyse_catalogue(self,self.fic_cata) + self.cata_dev_ordonne_cr = cata_dev_ordonne.cr + cata_dev_ordonne_dico = cata_dev_ordonne.entites + self.cata_ordonne_dico.update(cata_dev_ordonne_dico) + self.appli.affiche_infos(" catalogue(s) développeur(s) chargé(s)" ) + + def Retrouve_Ordre_Cata_Developpeur_autre(self): + """ + Retrouve l'ordre des mots-clés dans le catalogue, cad : + - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer + l'ordre des mots-clés dans le catalogue + - s'il n'a pas été modifié, relie le fichier pickle + """ + if self.code != 'ASTER' : return + message="Chargement catalogue développeur présent dans :\n %s..." % self.appli.CONFIGURATION.path_cata_dev + cata_dev_ordonne_dico,self.appli.liste_simp_reel=autre_analyse_cata.analyse_catalogue(self.cata) + self.cata_ordonne_dico.update(cata_dev_ordonne_dico) + self.appli.affiche_infos(" catalogue(s) développeur(s) chargé(s)" ) + + def Get_Ordre_Cata(self,mode='pickle'): + """ + Retrouve l'ordre du catalogue : + - mode='pickle ': tente de relire le fichier pickle et sinon lance l'analyse du catalogue + - mode='cata' : force l'analyse du catalogue directement sans relire le pickle + """ + if mode == 'pickle' : + try: + f = open(self.fic_cata_p) + u = cPickle.Unpickler(f) + self.cata_ordonne_dico = u.load() + f.close() + except : + # on peut ne pas arriver a  relire le fichier pickle s'il a été altéré + # ou (le plus probable) s'il a été créé sous un autre OS + self.Get_Ordre_Cata(mode='cata') + elif mode == 'cata': + cata_ordonne = analyse_catalogue.analyse_catalogue(self,self.fic_cata) + self.cata_ordonne_cr = cata_ordonne.cr + self.cata_ordonne_dico = cata_ordonne.entites + f = open(self.fic_cata_p,'w+') + p = cPickle.Pickler(f) + p.dump(self.cata_ordonne_dico) + f.close() + else : + raise Exception("Appel a  un mode inconnu de Get_Ordre_Cata : %s" % mode) + return + + def ask_choix_catalogue(self): + """ + Ouvre une fenetre de sélection du catalogue dans le cas oa¹ plusieurs + ont été définis dans Accas/editeur.ini + """ + # construction du dictionnaire et de la liste des catalogues + self.dico_catalogues = {} + defaut = None + for catalogue in self.appli.CONFIGURATION.catalogues: + if catalogue[0] == self.code : + self.dico_catalogues[catalogue[1]] = catalogue + if len(catalogue) == 5 : + if catalogue[4]=='defaut' : defaut = catalogue[1] + liste_choix = self.dico_catalogues.keys() + liste_choix.sort() + + lab=QString("Eficas V1.") + lab+=QString(version) + lab+=QString(" pour ") + lab+=QString(self.code) + lab+=QString(" avec le catalogue ") + + # teste si plusieurs catalogues ou non + if len(liste_choix) == 0: + QMessageBox.critical( self.parent, "", "Aucun catalogue déclaré pour %s" %self.code) + self.appli.parent.ui.close() + sys.exit(1) + + # création d'une boite de dialogue modale + widgetChoix=MonChoixCata(liste_choix,self, self.parent, "", True ) + ret=widgetChoix.exec_loop() + + lab=QString("Eficas V1.") + lab+=QString(version) + lab+=QString(" pour ") + lab+=QString(self.code) + lab+=QString(" avec le catalogue ") + if ret == QDialog.Accepted: + self.version_cata=str(self.version_cata) + self.fic_cata = self.dico_catalogues[self.version_cata][2] + self.version_code = self.version_cata + self.appli.format_fichier = self.dico_catalogues[self.version_cata][3] + lab+=self.version_cata + self.appli.parent.ui.setCaption(lab) + #qApp.mainWidget().setCaption(lab) + else : + sys.exit(0) + + + def compile_cata(self,cata,catac): + """ + Teste si le catalogue a bien besoin d'etre recompilé et si oui, le compile et + affiche un message dans le splash . Retourne 1 si la compilation s'est bien déroulée, + 0 sinon. + """ + time1 = os.path.getmtime(cata) + try: + time2 = os.path.getmtime(catac) + except: + time2 = 0 + if time1 > time2: + try: + # le catalogue doit etre recompilé avant d'etre importé + if self.appli.test == 0 : + splash._splash.configure(text="Compilation du catalogue\nCela peut prendre plusieurs secondes ...") + py_compile.compile(cata) + except: + return 0 + return 1 + + +#-------------------------------------------------------------------------------- +# Méthodes concernant la barre de progression lors de l'analyse du catalogue +#-------------------------------------------------------------------------------- + + def configure_barre(self,nbcommandes): + """ Configure la barre de progression en lui passant comme parama¨tre le + nombre de commandes du catalogue qui lui sert a  déterminer la longueur de son incrément """ + try: + if self.appli.test == 0 : + splash._splash.configure(barre='oui',ratio = nbcommandes) + except: + pass + + def update_barre(self): + """ Update la position de la barre de progression : la fait progresser de son incrément """ + try: + if self.appli.test == 0 : + splash._splash.update_barre() + except: + pass + + def visuCRCATA(self): + """ + Méthode permettant l'affichage du rapport de validation + """ + cr = CR( debut = "Début rapport de validation du catalogue", + fin = "Fin rapport de validation du catalogue") + titre="rapport de validation du catalogue" + if hasattr(self,'cata_ordonne_cr') : + cr.add(self.cata_ordonne_cr) + if hasattr(self,'cata_dev_ordonne_cr') : + cr.add(self.cata_dev_ordonne_cr) + for cata in self.cata: + if hasattr(cata,'JdC'): + cr.add(cata.JdC.report()) + texte_cr = str(cr) + self.visu_texte_cr = Fenetre(self.appli,titre=titre,texte=texte_cr) + + + def traite_clefs_documentaires(self): + try: + self.fic_cata_clef=os.path.splitext(self.fic_cata_c)[0]+'_clefs_docu' + f=open(self.fic_cata_clef) + except: + #print "Pas de fichier associé contenant des clefs documentaires" + return + + dict_clef_docu={} + for l in f.readlines(): + clef=l.split(':')[0] + docu=l.split(':')[1] + docu=docu[0:-1] + dict_clef_docu[clef]=docu + for oper in self.cata.JdC.commandes: + if dict_clef_docu.has_key(oper.nom): + oper.docu=dict_clef_docu[oper.nom] diff --git a/InterfaceQT4/typeNode.py b/InterfaceQT4/typeNode.py new file mode 100644 index 00000000..53d3f54c --- /dev/null +++ b/InterfaceQT4/typeNode.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +from qt import * + +#---------------------------# +class PopUpMenuNodePartiel : +#---------------------------# + def createPopUpMenu(self): + #menu + self.menu = QPopupMenu(self.tree) + + #ss-menu Comment: + self.commentMenu = QPopupMenu( self.menu ) + self.menu.insertItem( qApp.translate('Browser','Commentaire'), self.commentMenu ) + self.commentMenu.insertItem( 'après', self.addCommentAfter ) + self.commentMenu.insertItem( 'avant', self.addCommentBefore ) + + #ss-menu Parameters: + self.parametersMenu = QPopupMenu( self.menu ) + self.parametersMenu.insertItem( 'après', self.addParametersAfter ) + self.parametersMenu.insertItem( 'avant', self.addParametersBefore ) + + #items du menu + self.menu.insertItem( qApp.translate('Browser','Supprimer'), self.delete ) + self.menu.insertItem( qApp.translate('Browser','Parametres'), self.parametersMenu ) + + + def addCommentAfter(self): + """ + """ + self.addComment() + + def addCommentBefore(self): + """ + """ + self.addComment(False) + + def addParametersAfter(self): + """ + """ + self.addParameters() + + def addParametersBefore(self): + """ + """ + self.addParameters(False) + + +#-----------------------------------------# +class PopUpMenuNode(PopUpMenuNodePartiel) : +#-----------------------------------------# + def createPopUpMenu(self): + PopUpMenuNodePartiel.createPopUpMenu(self) + self.commentMenu.insertItem( 'ce noeud', self.commentIt ) diff --git a/InterfaceQT4/utilIcons.py b/InterfaceQT4/utilIcons.py new file mode 100644 index 00000000..d52fbc50 --- /dev/null +++ b/InterfaceQT4/utilIcons.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- + +from qt import QPixmap +import os + +class PixmapCache: + """ + Class implementing a pixmap cache for icons. + """ + def __init__(self): + """ + Constructor + """ + self.pixmapCache = {} + + def getPixmap(self, key): + """ + Public method to retrieve a pixmap. + + @param key name of the wanted pixmap (string) + @return the requested pixmap (QPixmap) + """ + try: + return self.pixmapCache[key] + except KeyError: + self.pixmapCache[key] = QPixmap.fromMimeSource(key) + return self.pixmapCache[key] + +pixCache = PixmapCache() + +def getPixmap(key, cache = pixCache): + """ + Module function to retrieve a pixmap. + + @param key name of the wanted pixmap (string) + @return the requested pixmap (QPixmap) + """ + return cache.getPixmap(key) + + + +from qt import QMimeSourceFactory + +def initializeMimeSourceFactory(): + """ + Function to initialize the default mime source factory. + + """ + defaultFactory = QMimeSourceFactory.defaultFactory() + repini=os.path.dirname(os.path.abspath(__file__)) + defaultFactory.addFilePath(repini+"/../Editeur/icons") #CS_pbruno todo (config) + diff --git a/InterfaceQT4/viewManager.py b/InterfaceQT4/viewManager.py new file mode 100644 index 00000000..cf9f2d37 --- /dev/null +++ b/InterfaceQT4/viewManager.py @@ -0,0 +1,2550 @@ +# -*- coding: utf-8 -*- +# CONFIGURATION MANAGEMENT OF EDF VERSION +# ====================================================================== +# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY +# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 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 +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. +# +# +# ====================================================================== + +import os +from InterfaceQT import utilIcons +from qt import * + + +##fonctions utilitaires +def normabspath(path): + """ + Function returning a normalized, absolute path. + + @param path file path (string) + @return absolute, normalized path (string) + """ + return os.path.abspath(path) + + +def samepath(f1, f2): + """ + Function to compare two paths. + + @param f1 first path for the compare (string) + @param f2 second path for the compare (string) + @return flag indicating whether the two paths represent the + same path on disk. + """ + if f1 is None or f2 is None: + return 0 + + if normcasepath(f1) == normcasepath(f2): + return 1 + + return 0 + +def normcasepath(path): + """ + Function returning a path, that is normalized with respect to its case and references. + + @param path file path (string) + @return case normalized path (string) + """ + return os.path.normcase(os.path.normpath(path)) + + + + +class ViewManager: + """ + Base class inherited by all specific viewmanager classes. + + It defines the interface to be implemented by specific + viewmanager classes and all common methods. + + @signal lastEditorClosed emitted after the last editor window was closed + @signal editorOpened(string) emitted after an editor window was opened + @signal editorSaved(string) emitted after an editor window was saved + @signal checkActions(editor) emitted when some actions should be checked + for their status + @signal cursorChanged(editor) emitted after the cursor position of the active + window has changed + @signal breakpointToggled(editor) emitted when a breakpoint is toggled. + @signal bookmarkToggled(editor) emitted when a bookmark is toggled. + """ + def __init__(self, ui ): + """ + Constructor + + @param ui reference to the main user interface + @param dbs reference to the debug server object + """ + # initialize the instance variables + self.ui = ui + self.appliEficas = ui + self.editors = [] + self.doubles = {} + self.currentEditor = None + self.untitledCount = 0 + self.srHistory = {"search" : QStringList(), "replace" : QStringList()} + self.editorsCheckFocusIn = 1 + self.recent = QStringList() + + + # initialize the central store for api information (used by + # autocompletion and calltips) + self.apis = {} + self.initFileFilters() + + + def initFileFilters(self): + """ + Private method to initialize the lists of supported filename filters. + """ + self.fileFiltersString = self.trUtf8(\ + 'Python Files (*.py);;' + 'Aster Files (*.com*);;' + 'Pyrex Files (*.pyx);;' + 'Quixote Template Files (*.ptl);;' + 'IDL Files (*.idl);;' + 'C Files (*.h *.c);;' + 'C++ Files (*.h *.hpp *.hh *.cxx *.cpp *.cc);;' + 'C# Files (*.cs);;' + 'HTML Files (*.html *.htm *.asp *.shtml *.css);;' + 'PHP Files (*.php *.php3 *.php4 *.php5 *.phtml);;' + 'XML Files (*.xml *.xsl *.xslt *.dtd);;' + 'Java Files (*.java);;' + 'JavaScript Files (*.js);;' + 'SQL Files (*.sql);;' + 'Docbook Files (*.docbook);;' + 'Perl Files (*.pl *.pm *.ph);;' + 'Shell Files (*.sh);;' + 'Aster Files (*.com*);;' + 'All Files (*)') + + fileFilters = QStringList.split(';;', self.fileFiltersString) + + self.ext2Filter = {} + for fileFilter in fileFilters: + extensions = QStringList.split('*', fileFilter) + for extension in extensions[1:]: + extension = unicode(extension).strip().replace(')', '') + if extension: + self.ext2Filter[extension] = unicode(fileFilter) + + + + ##################################################################### + ## methods above need to be implemented by a subclass + ##################################################################### + + def canSplit(self): + """ + public method to signal if splitting of the view is available. + + @return flag indicating splitting of the view is available. + """ + return 0 + + def addSplit(self): + """ + Public method used to split the current view. + """ + pass + + def removeSplit(self): + """ + Public method used to remove the current split view. + + @return Flag indicating successful deletion + """ + return 0 + + def setSplitOrientation(self, orientation): + """ + Public method used to set the orientation of the split view. + + @param orientation orientation of the split + (QSplitter.Horizontal or QSplitter.Vertical) + """ + pass + + def eventFilter(self, object, event): + """ + Private method called to filter an event. + + @param object object, that generated the event (QObject) + @param event the event, that was generated by object (QEvent) + @return flag indicating if event was filtered out + """ + return 0 + + def focusInEvent(self, event): + """ + Public method called when the viewmanager receives focus. + + @param event the event object (QFocusEvent) + """ + self.editorActGrp.setEnabled(1) + + def focusOutEvent(self, event): + """ + Public method called when the viewmanager loses focus. + + @param event the event object (QFocusEvent) + """ + self.editorActGrp.setEnabled(0) + + + def initEditMenu(self): + """ + Public method to create the Edit menu + + @return the generated menu + """ + menu = QPopupMenu(self.ui) + menu.insertTearOffHandle() + self.undoAct.addTo(menu) + self.redoAct.addTo(menu) + self.revertAct.addTo(menu) + menu.insertSeparator() + self.cutAct.addTo(menu) + self.copyAct.addTo(menu) + self.pasteAct.addTo(menu) + self.deleteAct.addTo(menu) + menu.insertSeparator() + self.indentAct.addTo(menu) + self.unindentAct.addTo(menu) + menu.insertSeparator() + self.commentAct.addTo(menu) + self.uncommentAct.addTo(menu) + self.streamCommentAct.addTo(menu) + self.boxCommentAct.addTo(menu) + menu.insertSeparator() + self.autoCompleteAct.addTo(menu) + self.autoCompleteFromDocAct.addTo(menu) + self.autoCompleteFromAPIsAct.addTo(menu) + menu.insertSeparator() + self.searchAct.addTo(menu) + self.searchAgainAct.addTo(menu) + self.replaceAct.addTo(menu) + menu.insertSeparator() + self.searchFilesAct.addTo(menu) + menu.insertSeparator() + self.gotoAct.addTo(menu) + self.gotoBraceAct.addTo(menu) + menu.insertSeparator() + self.selectBraceAct.addTo(menu) + self.selectAllAct.addTo(menu) + self.deselectAllAct.addTo(menu) + menu.insertSeparator() + self.shortenEmptyAct.addTo(menu) + self.convertEOLAct.addTo(menu) + + return menu + + def initEditToolbar(self): + """ + Public method to create the Edit toolbar + + @return the generated toolbar + """ + tb = QToolBar(self.ui) + self.undoAct.addTo(tb) + self.redoAct.addTo(tb) + tb.addSeparator() + self.cutAct.addTo(tb) + self.copyAct.addTo(tb) + self.pasteAct.addTo(tb) + self.deleteAct.addTo(tb) + tb.addSeparator() + self.indentAct.addTo(tb) + self.unindentAct.addTo(tb) + tb.addSeparator() + self.commentAct.addTo(tb) + self.uncommentAct.addTo(tb) + + return tb + + ################################################################## + ## Initialize the search related actions, search menu and toolbar + ################################################################## + + def initSearchActions(self): + """ + Private method defining the user interface actions for the search commands. + """ + self.searchActGrp = QActionGroup(self) + + self.searchAct = QAction(self.trUtf8('Search'), + QIconSet(utilIcons.getPixmap("find.png")), + self.trUtf8('&Search...'), + QKeySequence(self.trUtf8("CTRL+F","Search|Search")), + self.searchActGrp) + self.searchAct.setStatusTip(self.trUtf8('Search for a text')) + self.searchAct.setWhatsThis(self.trUtf8( + """Search""" + """

Search for some text in the current editor. A""" + """ dialog is shown to enter the searchtext and options""" + """ for the search.

""" + )) + self.connect(self.searchAct,SIGNAL('activated()'),self.handleSearch) + self.searchActions.append(self.searchAct) + + self.searchAgainAct = QAction(self.trUtf8('Search again'), + QIconSet(utilIcons.getPixmap("findNext.png")), + self.trUtf8('Search &again'), + Qt.Key_F3,self.searchActGrp) + self.searchAgainAct.setStatusTip(self.trUtf8('Search again for text')) + self.searchAgainAct.setWhatsThis(self.trUtf8( + """Search again""" + """

Search again for some text in the current editor.""" + """ The previously entered searchtext and options are reused.

""" + )) + self.connect(self.searchAgainAct,SIGNAL('activated()'),self.searchDlg.handleFindNext) + self.searchActions.append(self.searchAgainAct) + + self.replaceAct = QAction(self.trUtf8('Replace'), + self.trUtf8('&Replace...'), + QKeySequence(self.trUtf8("CTRL+R","Search|Replace")), + self.searchActGrp) + self.replaceAct.setStatusTip(self.trUtf8('Replace some text')) + self.replaceAct.setWhatsThis(self.trUtf8( + """Replace""" + """

Search for some text in the current editor and replace it. A""" + """ dialog is shown to enter the searchtext, the replacement text""" + """ and options for the search and replace.

""" + )) + self.connect(self.replaceAct,SIGNAL('activated()'),self.handleReplace) + self.searchActions.append(self.replaceAct) + + self.gotoAct = QAction(self.trUtf8('Goto Line'), + QIconSet(utilIcons.getPixmap("goto.png")), + self.trUtf8('&Goto Line...'), + QKeySequence(self.trUtf8("CTRL+G","Search|Goto Line")), + self.searchActGrp) + self.gotoAct.setStatusTip(self.trUtf8('Goto Line')) + self.gotoAct.setWhatsThis(self.trUtf8( + """Goto Line""" + """

Go to a specific line of text in the current editor.""" + """ A dialog is shown to enter the linenumber.

""" + )) + self.connect(self.gotoAct,SIGNAL('activated()'),self.handleGoto) + self.searchActions.append(self.gotoAct) + + self.gotoBraceAct = QAction(self.trUtf8('Goto Brace'), + QIconSet(utilIcons.getPixmap("gotoBrace.png")), + self.trUtf8('Goto &Brace'), + QKeySequence(self.trUtf8("CTRL+L","Search|Goto Brace")), + self.searchActGrp) + self.gotoBraceAct.setStatusTip(self.trUtf8('Goto Brace')) + self.gotoBraceAct.setWhatsThis(self.trUtf8( + """Goto Brace""" + """

Go to the matching brace in the current editor.

""" + )) + self.connect(self.gotoBraceAct,SIGNAL('activated()'),self.handleGotoBrace) + self.searchActions.append(self.gotoBraceAct) + + self.searchActGrp.setEnabled(0) + + self.searchFilesAct = QAction(self.trUtf8('Search in Files'), + QIconSet(utilIcons.getPixmap("projectFind.png")), + self.trUtf8('Search in &Files...'), + QKeySequence(self.trUtf8("SHIFT+CTRL+F","Search|Search Files")), + self) + self.searchFilesAct.setStatusTip(self.trUtf8('Search for a text in files')) + self.searchFilesAct.setWhatsThis(self.trUtf8( + """Search in Files""" + """

Search for some text in the files of a directory tree""" + """ or the project. A dialog is shown to enter the searchtext""" + """ and options for the search and to display the result.

""" + )) + self.connect(self.searchFilesAct,SIGNAL('activated()'),self.handleSearchFiles) + self.searchActions.append(self.searchFilesAct) + + + ################################################################## + ## Initialize the view related actions, view menu and toolbar + ################################################################## + + def initViewActions(self): + """ + Protected method defining the user interface actions for the view commands. + """ + self.viewActGrp = QActionGroup(self) + self.viewFoldActGrp = QActionGroup(self) + + self.zoomInAct = QAction(self.trUtf8('Zoom in'), + QIconSet(utilIcons.getPixmap("zoomIn.png")), + self.trUtf8('Zoom &in'), + Qt.CTRL+Qt.Key_Plus, self.viewActGrp) + self.zoomInAct.setStatusTip(self.trUtf8('Zoom in on the text')) + self.zoomInAct.setWhatsThis(self.trUtf8( + """Zoom in""" + """

Zoom in on the text. This makes the text bigger.

""" + )) + self.connect(self.zoomInAct,SIGNAL('activated()'),self.handleZoomIn) + self.viewActions.append(self.zoomInAct) + + self.zoomOutAct = QAction(self.trUtf8('Zoom out'), + QIconSet(utilIcons.getPixmap("zoomOut.png")), + self.trUtf8('Zoom &out'), + Qt.CTRL+Qt.Key_Minus, self.viewActGrp) + self.zoomOutAct.setStatusTip(self.trUtf8('Zoom out on the text')) + self.zoomOutAct.setWhatsThis(self.trUtf8( + """Zoom out""" + """

Zoom out on the text. This makes the text smaller.

""" + )) + self.connect(self.zoomOutAct,SIGNAL('activated()'),self.handleZoomOut) + self.viewActions.append(self.zoomOutAct) + + self.zoomToAct = QAction(self.trUtf8('Zoom'), + QIconSet(utilIcons.getPixmap("zoomTo.png")), + self.trUtf8('&Zoom'), + 0, self.viewActGrp) + self.zoomToAct.setStatusTip(self.trUtf8('Zoom the text')) + self.zoomToAct.setWhatsThis(self.trUtf8( + """Zoom""" + """

Zoom the text. This opens a dialog where the""" + """ desired size can be entered.

""" + )) + self.connect(self.zoomToAct,SIGNAL('activated()'),self.handleZoom) + self.viewActions.append(self.zoomToAct) + + self.toggleAllAct = QAction(self.trUtf8('Toggle all folds'), + self.trUtf8('Toggle &all folds'), + 0, self.viewFoldActGrp) + self.toggleAllAct.setStatusTip(self.trUtf8('Toggle all folds')) + self.toggleAllAct.setWhatsThis(self.trUtf8( + """Toggle all folds""" + """

Toggle all folds of the current editor.

""" + )) + self.connect(self.toggleAllAct,SIGNAL('activated()'),self.handleToggleAll) + self.viewActions.append(self.toggleAllAct) + + self.toggleCurrentAct = QAction(self.trUtf8('Toggle current fold'), + self.trUtf8('Toggle ¤t fold'), + 0, self.viewFoldActGrp) + self.toggleCurrentAct.setStatusTip(self.trUtf8('Toggle current fold')) + self.toggleCurrentAct.setWhatsThis(self.trUtf8( + """Toggle current fold""" + """

Toggle the folds of the current line of the current editor.

""" + )) + self.connect(self.toggleCurrentAct,SIGNAL('activated()'),self.handleToggleCurrent) + self.viewActions.append(self.toggleCurrentAct) + + self.unhighlightAct = QAction(self.trUtf8('Remove all highlights'), + QIconSet(utilIcons.getPixmap("unhighlight.png")), + self.trUtf8('Remove all highlights'), + 0, self) + self.unhighlightAct.setStatusTip(self.trUtf8('Remove all highlights')) + self.unhighlightAct.setWhatsThis(self.trUtf8( + """Remove all highlights""" + """

Remove the highlights of all editors.

""" + )) + self.connect(self.unhighlightAct,SIGNAL('activated()'),self.unhighlight) + self.viewActions.append(self.unhighlightAct) + + self.splitViewAct = QAction(self.trUtf8('Split view'), + QIconSet(utilIcons.getPixmap("splitVertical.png")), + self.trUtf8('&Split view'), + 0, self) + self.splitViewAct.setStatusTip(self.trUtf8('Add a split to the view')) + self.splitViewAct.setWhatsThis(self.trUtf8( + """Split view""" + """

Add a split to the view.

""" + )) + self.connect(self.splitViewAct,SIGNAL('activated()'),self.handleSplitView) + self.viewActions.append(self.splitViewAct) + + self.splitOrientationAct = QAction(self.trUtf8('Arrange horizontally'), + self.trUtf8('Arrange &horizontally'), + 0, self, None, 1) + self.splitOrientationAct.setStatusTip(self.trUtf8('Arrange the splitted views horizontally')) + self.splitOrientationAct.setWhatsThis(self.trUtf8( + """Arrange horizontally""" + """

Arrange the splitted views horizontally.

""" + )) + self.splitOrientationAct.setOn(0) + self.connect(self.splitOrientationAct,SIGNAL('activated()'),self.handleSplitOrientation) + self.viewActions.append(self.splitOrientationAct) + + self.splitRemoveAct = QAction(self.trUtf8('Remove split'), + QIconSet(utilIcons.getPixmap("remsplitVertical.png")), + self.trUtf8('&Remove split'), + 0, self) + self.splitRemoveAct.setStatusTip(self.trUtf8('Remove the current split')) + self.splitRemoveAct.setWhatsThis(self.trUtf8( + """Remove split""" + """

Remove the current split.

""" + )) + self.connect(self.splitRemoveAct,SIGNAL('activated()'),self.removeSplit) + self.viewActions.append(self.splitRemoveAct) + + self.viewActGrp.setEnabled(0) + self.viewFoldActGrp.setEnabled(0) + self.unhighlightAct.setEnabled(0) + self.splitViewAct.setEnabled(0) + self.splitOrientationAct.setEnabled(0) + self.splitRemoveAct.setEnabled(0) + + def initViewMenu(self): + """ + Public method to create the View menu + + @return the generated menu + """ + menu = QPopupMenu(self.ui) + menu.insertTearOffHandle() + self.viewActGrp.addTo(menu) + menu.insertSeparator() + self.viewFoldActGrp.addTo(menu) + menu.insertSeparator() + self.unhighlightAct.addTo(menu) + if self.canSplit(): + menu.insertSeparator() + self.splitViewAct.addTo(menu) + self.splitOrientationAct.addTo(menu) + self.splitRemoveAct.addTo(menu) + return menu + + def initViewToolbar(self): + """ + Public method to create the View toolbar + + @return the generated toolbar + """ + tb = QToolBar(self.ui) + self.viewActGrp.addTo(tb) + tb.addSeparator() + self.unhighlightAct.addTo(tb) + if self.canSplit(): + tb.addSeparator() + self.splitViewAct.addTo(tb) + self.splitRemoveAct.addTo(tb) + + return tb + + ################################################################## + ## Initialize the macro related actions and macro menu + ################################################################## + + def initMacroActions(self): + """ + Private method defining the user interface actions for the macro commands. + """ + self.macroActGrp = QActionGroup(self) + + self.macroStartRecAct = QAction(self.trUtf8('Start Macro Recording'), + self.trUtf8('S&tart Macro Recording'), + 0, self.macroActGrp) + self.macroStartRecAct.setStatusTip(self.trUtf8('Start Macro Recording')) + self.macroStartRecAct.setWhatsThis(self.trUtf8( + """Start Macro Recording""" + """

Start recording editor commands into a new macro.

""" + )) + self.connect(self.macroStartRecAct,SIGNAL('activated()'),self.handleMacroStartRecording) + self.macroActions.append(self.macroStartRecAct) + + self.macroStopRecAct = QAction(self.trUtf8('Stop Macro Recording'), + self.trUtf8('Sto&p Macro Recording'), + 0, self.macroActGrp) + self.macroStopRecAct.setStatusTip(self.trUtf8('Stop Macro Recording')) + self.macroStopRecAct.setWhatsThis(self.trUtf8( + """Stop Macro Recording""" + """

Stop recording editor commands into a new macro.

""" + )) + self.connect(self.macroStopRecAct,SIGNAL('activated()'),self.handleMacroStopRecording) + self.macroActions.append(self.macroStopRecAct) + + self.macroRunAct = QAction(self.trUtf8('Run Macro'), + self.trUtf8('&Run Macro'), + 0, self.macroActGrp) + self.macroRunAct.setStatusTip(self.trUtf8('Run Macro')) + self.macroRunAct.setWhatsThis(self.trUtf8( + """Run Macro""" + """

Run a previously recorded editor macro.

""" + )) + self.connect(self.macroRunAct,SIGNAL('activated()'),self.handleMacroRun) + self.macroActions.append(self.macroRunAct) + + self.macroDeleteAct = QAction(self.trUtf8('Delete Macro'), + self.trUtf8('&Delete Macro'), + 0, self.macroActGrp) + self.macroDeleteAct.setStatusTip(self.trUtf8('Delete Macro')) + self.macroDeleteAct.setWhatsThis(self.trUtf8( + """Delete Macro""" + """

Delete a previously recorded editor macro.

""" + )) + self.connect(self.macroDeleteAct,SIGNAL('activated()'),self.handleMacroDelete) + self.macroActions.append(self.macroDeleteAct) + + self.macroLoadAct = QAction(self.trUtf8('Load Macro'), + self.trUtf8('&Load Macro'), + 0, self.macroActGrp) + self.macroLoadAct.setStatusTip(self.trUtf8('Load Macro')) + self.macroLoadAct.setWhatsThis(self.trUtf8( + """Load Macro""" + """

Load an editor macro from a file.

""" + )) + self.connect(self.macroLoadAct,SIGNAL('activated()'),self.handleMacroLoad) + self.macroActions.append(self.macroLoadAct) + + self.macroSaveAct = QAction(self.trUtf8('Save Macro'), + self.trUtf8('&Save Macro'), + 0, self.macroActGrp) + self.macroSaveAct.setStatusTip(self.trUtf8('Save Macro')) + self.macroSaveAct.setWhatsThis(self.trUtf8( + """Save Macro""" + """

Save a previously recorded editor macro to a file.

""" + )) + self.connect(self.macroSaveAct,SIGNAL('activated()'),self.handleMacroSave) + self.macroActions.append(self.macroSaveAct) + + self.macroActGrp.setEnabled(0) + + def initMacroMenu(self): + """ + Public method to create the Macro menu + + @return the generated menu + """ + menu = QPopupMenu(self.ui) + menu.insertTearOffHandle() + self.macroActGrp.addTo(menu) + return menu + + + def checkDirty(self, editor): + """ + Private method to check dirty status and open a message window. + + @param editor editor window to check + @return flag indicating successful reset of the dirty flag (boolean) + """ + + if (editor.modified) and (editor in self.doubles.keys()) : + res = QMessageBox.warning( + None, + self.trUtf8("Fichier Duplique"), + self.trUtf8("Le fichier ne sera pas sauvegarde."), + self.trUtf8("&Quitter"), + self.trUtf8("&Abandonner")) + if res == 0 : return 1 + return 0 + if editor.modified: + fn = editor.getFileName() + if fn is None: + fn = self.trUtf8('Noname') + res = QMessageBox.warning(self.parent(), + self.trUtf8("Fichier Modifie"), + self.trUtf8("Le fichier %1 n a pas ete sauvegarde.") + .arg(fn), + self.trUtf8("&Sauvegarder"), self.trUtf8("&Quitter "), + self.trUtf8("&Annuler"), 0, 2) + if res == 0: + (ok, newName) = editor.saveFile() + if ok: + self.setEditorName(editor, newName) + return ok + elif res == 2: + return 0 + return 1 + + def checkAllDirty(self): + """ + Public method to check the dirty status of all editors. + + @return flag indicating successful reset of all dirty flags (boolean) + """ + for editor in self.editors: + if not self.checkDirty(editor): + return 0 + + return 1 + + def closeEditor(self, editor): + """ + Private method to close an editor window. + + @param editor editor window to be closed + @return flag indicating success (boolean) + """ + # save file if necessary + if not self.checkDirty(editor): + return 0 + + # remove the window + self.removeView(editor) + self.editors.remove(editor) + if not len(self.editors): + self.handleLastEditorClosed() + self.emit(PYSIGNAL('lastEditorClosed'), ()) #CS_pbruno connecter signal avec l'appli + return 1 + + def handleClose(self): + """ + Public method to close the current window. + + @return flag indicating success (boolean) + """ + aw = self.activeWindow() + if aw is None: + return 0 + + res = self.closeEditor(aw) + if res and aw == self.currentEditor: + self.currentEditor = None + + return res + + def handleNewView(self): + """ + Public method to close the current window. + + @return flag indicating success (boolean) + """ + aw = self.activeWindow() + if aw is None: + return 0 + + aw.handleNewView() + + + def handleCloseAll(self): + """ + Private method to close all editor windows via file menu. + """ + savedEditors = self.editors[:] + retour=1 + for editor in savedEditors: + retour=retour*self.closeEditor(editor) + return retour + + def handleCloseWindow(self, fn): + """ + Public method to close an arbitrary source editor. + + @param fn filename of editor to be closed + @return flag indicating success (boolean) + """ + for editor in self.editors: + if samepath(fn, editor.getFileName()): + break + else: + return 1 + + res = self.closeEditor(editor) + if res and editor == self.currentEditor: + self.currentEditor = None + + return res + + def handleExit(self): + """ + Public method to handle the debugged program terminating. + """ + if self.currentEditor is not None: + self.currentEditor.highlight() + self.currentEditor = None + + self.setSbFile() + + def handlePythonFile(self,pyfn,lineno=None): + """ + Public method to handle the user selecting a file for display. + + @param pyfn name of file to be opened + @param lineno line number to place the cursor at + """ + try: + self.displayPythonFile(pyfn,lineno) + except IOError: + pass + + + def displayJDC(self,jdc,fn=None): + """ + Public slot to display a file in an editor. + + @param fn name of file to be opened + @param lineno line number to place the cursor at + """ + titre=None + if fn != None : titre=fn.split("/")[-1] + newWin, editor = self.getEditor(None, jdc, title = titre ) + + if newWin: + editor.fileName=fn + self.handleModificationStatusChanged(editor.modified, editor) + self.checkActions(editor) + + # insert filename into list of recently opened files + self.addToRecentList(editor.getFileName()) + + + + def newEditorView(self, fn, caller): + """ + Public method to create a new editor displaying the given document. + + @param fn filename of this view + @param caller reference to the editor calling this method + """ + from editor import JDCEditor + editor = JDCEditor(fn, None, self, editor=caller) + self.editors.append(editor) + self.connect(editor, PYSIGNAL('modificationStatusChanged'), + self.handleModificationStatusChanged) + self.connect(editor, PYSIGNAL('cursorChanged'), self.handleCursorChanged) + self.connect(editor, PYSIGNAL('editorSaved'), self.handleEditorSaved) + self.connect(editor, PYSIGNAL('breakpointToggled'), self.handleBreakpointToggled) + self.connect(editor, PYSIGNAL('bookmarkToggled'), self.handleBookmarkToggled) + self.connect(editor, PYSIGNAL('syntaxerrorToggled'), self.handleSyntaxErrorToggled) + self.connect(editor, PYSIGNAL('autoCompletionAPIsAvailable'), + self.handleEditoracAPIsAvailable) + self.handleEditorOpened() + self.emit(PYSIGNAL('editorOpened'), (fn,)) + + self.connect(caller, PYSIGNAL('editorRenamed'), editor.handleRenamed) + self.connect(editor, PYSIGNAL('editorRenamed'), caller.handleRenamed) + + self.addView(editor, fn) + self.handleModificationStatusChanged(editor.modified, editor) + self.checkActions(editor) + + def addToRecentList(self, fn): + """ + Public slot to add a filename to the list of recently opened files. + + @param fn name of the file to be added + """ + self.recent.remove(fn) + self.recent.prepend(fn) + if len(self.recent) > 9: + self.recent = self.recent[:9] + + def toggleWindow(self,w): + """ + Private method to toggle a workspace window. + + @param w editor window to be toggled + """ + if w.isHidden(): + w.show() + else: + w.hide() + + def setFileLine(self,fn,line,error=0,syntaxError=0): + """ + Public method to update the user interface when the current program or line changes. + + @param fn filename of editor to update (string) + @param line line number to highlight (int) + @param error flag indicating an error highlight (boolean) + @param syntaxError flag indicating a syntax error + """ + self.setSbFile(fn,line) + + try: + newWin, self.currentEditor = self.getEditor(fn) + except IOError: + return + + # Change the highlighted line. + self.currentEditor.highlight(line,error,syntaxError) + + self.currentEditor.highlightVisible() + self.checkActions(self.currentEditor, 0) + + def setSbFile(self,fn=None,line=None,pos=None): + """ + Private method to set the file info in the status bar. + + @param fn filename to display (string) + @param line line number to display (int) + @param pos character position to display (int) + """ + if fn is None: + fn = '' + writ = ' ' + else: + if QFileInfo(fn).isWritable(): + writ = ' rw' + else: + writ = ' ro' + + self.sbWritable.setText(writ) + self.sbFile.setText(self.trUtf8('File: %1').arg(fn,-50)) + + if line is None: + line = '' + + self.sbLine.setText(self.trUtf8('Line: %1').arg(line,5)) + + if pos is None: + pos = '' + + self.sbPos.setText(self.trUtf8('Pos: %1').arg(pos, 5)) + + def unhighlight(self, current=0): + """ + Public method to switch off all highlights. + + @param current flag indicating only the current editor should be unhighlighted + (boolean) + """ + if current: + if self.currentEditor is not None: + self.currentEditor.highlight() + else: + for editor in self.editors: + editor.highlight() + + def getOpenFilenames(self): + """ + Public method returning a list of the filenames of all editors. + + @return list of all opened filenames (list of strings) + """ + filenames = [] + for editor in self.editors: + fn = editor.getFileName() + if fn is not None: + filenames.append(fn) + + return filenames + + def getEditor(self, fn, jdc = None, title = None, units = None): + """ + Private method to return the editor displaying the given file. + + If there is no editor with the given file, a new editor window is + created. + + @param fn filename to look for + @param isPythonFile flag indicating that this is a Python file + even if it doesn't have the .py extension (boolean) + @return tuple of two values giving a flag indicating a new window creation and + a reference to the editor displaying this file + """ + newWin = 0 + double=None + for editor in self.editors: + if samepath(fn, editor.getFileName()): + abort = QMessageBox.warning(self, + self.trUtf8("Fichier"), + self.trUtf8("Le fichier %1 est deja ouvert.Voulez-vous l ouvrir tel qu'il etait lors du dernier enregistrement") .arg(fn), + self.trUtf8("&Duplication"), + self.trUtf8("&Annuler"), None, 1) + if abort: + break + double=editor + else: + from editor import JDCEditor + editor = JDCEditor(fn, jdc, self,units=units) + if double != None : + self.doubles[editor]=double + #self.doubles[double]=editor + if editor.jdc: # le fichier est bien un jdc + self.editors.append(editor) + self.connect(editor, PYSIGNAL('modificationStatusChanged'), + self.handleModificationStatusChanged) + self.connect(editor, PYSIGNAL('cursorChanged'), self.handleCursorChanged) + self.connect(editor, PYSIGNAL('editorSaved'), self.handleEditorSaved) + self.connect(editor, PYSIGNAL('breakpointToggled'), self.handleBreakpointToggled) + self.connect(editor, PYSIGNAL('bookmarkToggled'), self.handleBookmarkToggled) + self.connect(editor, PYSIGNAL('syntaxerrorToggled'), self.handleSyntaxErrorToggled) + self.connect(editor, PYSIGNAL('autoCompletionAPIsAvailable'), + self.handleEditoracAPIsAvailable) + self.handleEditorOpened() + self.emit(PYSIGNAL('editorOpened'), (fn,)) + newWin = 1 + else: + editor.closeIt() + + if newWin: + self.addView(editor, fn , title) + elif editor.jdc: + self.showView(editor, fn) + + return (newWin, editor) + + + def getOpenEditor(self, fn): + """ + Public method to return the editor displaying the given file. + + @param fn filename to look for + @return a reference to the editor displaying this file or None, if + no editor was found + """ + for editor in self.editors: + if samepath(fn, editor.getFileName()): + return editor + + return None + + def getActiveName(self): + """ + Public method to retrieve the filename of the active window. + + @return filename of active window (string) + """ + aw = self.activeWindow() + if aw: + return aw.getFileName() + else: + return None + + def saveEditor(self, fn): + """ + Public method to save a named editor file. + + @param fn filename of editor to be saved (string) + @return flag indicating success (boolean) + """ + for editor in self.editors: + if samepath(fn, editor.getFileName()): + break + else: + return 1 + + if not editor.modified: + return 1 + else: + ok, dummy = editor.saveFile() + return ok + + def saveCurrentEditor(self): + """ + Public slot to save the contents of the current editor. + """ + aw = self.activeWindow() + if aw in self.doubles.keys() : + QMessageBox.warning( + None, + self.trUtf8("Fichier Duplique"), + self.trUtf8("Le fichier ne sera pas sauvegarde."), + self.trUtf8("&Abandonner")) + return + if aw: + ok, newName = aw.saveFile() + if ok: + self.setEditorName(aw, newName) + else: + return + + def saveAsCurrentEditor(self): + """ + Public slot to save the contents of the current editor to a new file. + """ + aw = self.activeWindow() + if aw: + ok, newName = aw.saveFileAs() + if ok: + self.setEditorName(aw, newName) + else: + return + + def saveAllEditors(self): + """ + Public slot to save the contents of all editors. + """ + for editor in self.editors: + ok, newName = editor.saveFile() + if ok: + self.setEditorName(editor, newName) + + # restart autosave timer + if self.autosaveInterval > 0: + self.autosaveTimer.start(self.autosaveInterval * 60000, 1) + + def saveCurrentEditorToProject(self): + """ + Public slot to save the contents of the current editor to the current project. + """ + pro = self.ui.getProject() + path = pro.ppath + aw = self.activeWindow() + if aw: + ok, newName = aw.saveFileAs(path) + if ok: + self.setEditorName(aw, newName) + pro.appendFile(newName) + else: + return + + def newIncludeEditor(self) : + self.newEditor(include=1) + + def newEditor(self,include=0): + """ + Public slot to generate a new empty editor. + """ + from editor import JDCEditor + editor = JDCEditor(None,None,self,include=include) + + self.editors.append(editor) + self.connect(editor, PYSIGNAL('modificationStatusChanged'), + self.handleModificationStatusChanged) + self.connect(editor, PYSIGNAL('cursorChanged'), self.handleCursorChanged) + self.connect(editor, PYSIGNAL('editorSaved'), self.handleEditorSaved) + self.connect(editor, PYSIGNAL('breakpointToggled'), self.handleBreakpointToggled) + self.connect(editor, PYSIGNAL('bookmarkToggled'), self.handleBookmarkToggled) + self.connect(editor, PYSIGNAL('syntaxerrorToggled'), self.handleSyntaxErrorToggled) + self.connect(editor, PYSIGNAL('autoCompletionAPIsAvailable'), + self.handleEditoracAPIsAvailable) + self.addView(editor, None) + self.handleEditorOpened() + self.checkActions(editor) + self.emit(PYSIGNAL('editorOpened'), (None,)) + + def printCurrentEditor(self): + """ + Public slot to print the contents of the current editor. + """ + aw = self.activeWindow() + if aw: + aw.printFile() + else: + return + + def printCurrentEditorSel(self): + """ + Public slot to print the selection of the current editor. + """ + aw = self.activeWindow() + if aw: + aw.printSelection() + else: + return + + def handlevisuJdcPy(self): + if self.activeWindow()== None : return + self.activeWindow().viewJdcPy() + + def handleViewJdcFichierSource(self): + if self.activeWindow()== None : return + self.activeWindow().viewJdcSource() + + def handleViewJdcRapport(self): + if self.activeWindow()== None : return + self.activeWindow().viewJdcRapport() + + def handleNewProject(self): + """ + Public slot to handle the NewProject signal. + """ + self.saveToProjectAct.setEnabled(1) + + def handleProjectOpened(self): + """ + Public slot to handle the projectOpened signal. + """ + self.saveToProjectAct.setEnabled(1) + + def handleProjectClosed(self): + """ + Public slot to handle the projectClosed signal. + """ + self.saveToProjectAct.setEnabled(0) + + def handleProjectFileRenamed(self, oldfn, newfn): + """ + Public slot to handle the projectFileRenamed signal. + + @param oldfn old filename of the file (string) + @param newfn new filename of the file (string) + """ + editor = self.getOpenEditor(oldfn) + if editor: + editor.fileRenamed(newfn) + + def enableEditorsCheckFocusIn(self, enabled): + """ + Public method to set a flag enabling the editors to perform focus in checks. + + @param enabled flag indicating focus in checks should be performed (boolean) + """ + self.editorsCheckFocusIn = enabled + + def editorsCheckFocusInEnabled(self): + """ + Public method returning the flag indicating editors should perform focus in checks. + + @return flag indicating focus in checks should be performed (boolean) + """ + return self.editorsCheckFocusIn + + def handleFindFileName(self): + """ + Private method to handle the search for file action. + """ + self.ui.findFileNameDialog.show() + self.ui.findFileNameDialog.raiseW() + self.ui.findFileNameDialog.setActiveWindow() + + ################################################################## + ## Below are the action methods for the edit menu + ################################################################## + + def handleEditUndo(self): + """ + Private method to handle the undo action. + """ + self.activeWindow().undo() + + def handleEditRedo(self): + """ + Private method to handle the redo action. + """ + self.activeWindow().redo() + + def handleEditRevert(self): + """ + Private method to handle the revert action. + """ + self.activeWindow().revertToUnmodified() + + def handleEditCut(self): + """ + Private method to handle the cut action. + """ + self.activeWindow().cut() + + def handleEditCopy(self): + """ + Private method to handle the copy action. + """ + self.activeWindow().copy() + + def handleEditPaste(self): + """ + Private method to handle the paste action. + """ + self.activeWindow().paste() + + def handleEditDelete(self): + """ + Private method to handle the delete action. + """ + self.activeWindow().clear() + + def handleEditIndent(self): + """ + Private method to handle the indent action. + """ + self.activeWindow().indentLineOrSelection() + + def handleEditUnindent(self): + """ + Private method to handle the unindent action. + """ + self.activeWindow().unindentLineOrSelection() + + def handleEditComment(self): + """ + Private method to handle the comment action. + """ + self.activeWindow().commentLineOrSelection() + + def handleEditUncomment(self): + """ + Private method to handle the uncomment action. + """ + self.activeWindow().uncommentLineOrSelection() + + def handleEditStreamComment(self): + """ + Private method to handle the stream comment action. + """ + self.activeWindow().streamCommentLineOrSelection() + + def handleEditBoxComment(self): + """ + Private method to handle the box comment action. + """ + self.activeWindow().boxCommentLineOrSelection() + + def handleEditSelectBrace(self): + """ + Private method to handle the select to brace action. + """ + self.activeWindow().selectToMatchingBrace() + + def handleEditSelectAll(self): + """ + Private method to handle the select all action. + """ + self.activeWindow().selectAll(1) + + def handleEditDeselectAll(self): + """ + Private method to handle the select all action. + """ + self.activeWindow().selectAll(0) + + def handleConvertEOL(self): + """ + Private method to handle the convert line end characters action. + """ + aw = self.activeWindow() + aw.convertEols(aw.eolMode()) + + def handleShortenEmptyLines(self): + """ + Private method to handle the shorten empty lines action. + """ + self.activeWindow().handleShortenEmptyLines() + + def handleEditAutoComplete(self): + """ + Private method to handle the autocomplete action. + """ + aw = self.activeWindow() + aw.autoComplete() + + def handleEditAutoCompleteFromDoc(self): + """ + Private method to handle the autocomplete from document action. + """ + aw = self.activeWindow() + aw.autoCompleteFromDocument() + + def handleEditAutoCompleteFromAPIs(self): + """ + Private method to handle the autocomplete from APIs action. + """ + aw = self.activeWindow() + aw.autoCompleteFromAPIs() + + def handleEditoracAPIsAvailable(self, available): + """ + Private method to handle the availability of API autocompletion signal. + """ + self.autoCompleteFromAPIsAct.setEnabled(available) + + ################################################################## + ## Below are the action and utility methods for the search menu + ################################################################## + + def getWord(self, text, index): + """ + Private method to get the word at a position. + + @param text text to look at (string or QString) + @param index position to look at (int) + @return the word at that position + """ + re = QRegExp('[^\w_]') + start = text.findRev(re, index) + 1 + end = text.find(re, index) + if end > start: + word = text.mid(start, end-start) + else: + word = QString('') + return word + + def textForFind(self): + """ + Private method to determine the selection or the current word for the next find operation. + + @return selection or current word (QString) + """ + aw = self.activeWindow() + if aw is None: + return '' + + if aw.hasSelectedText(): + text = aw.selectedText() + if text.contains('\r') or text.contains('\n'): + # the selection contains at least a newline, it is + # unlikely to be the expression to search for + return '' + + return text + + # no selected text, determine the word at the current position + line, index = aw.getCursorPosition() + return self.getWord(aw.text(line), index) + + def getSRHistory(self, key): + """ + Private method to get the search or replace history list. + + @param key list to return (must be 'search' or 'replace') + @return the requested history list (QStringList) + """ + return self.srHistory[key] + + def handleSearch(self): + """ + Private method to handle the search action. + """ + self.searchDlg.showFind(self.textForFind()) + + def handleReplace(self): + """ + Private method to handle the replace action. + """ + self.replaceDlg.showReplace(self.textForFind()) + + def handleGoto(self): + """ + Private method to handle the goto action. + """ + aw = self.activeWindow() + dlg = GotoDialog(self.ui, None, 1) + dlg.selectAll() + if dlg.exec_loop() == QDialog.Accepted: + aw.gotoLine(min(dlg.getLinenumber(), aw.lines())) + + def handleGotoBrace(self): + """ + Private method to handle the goto brace action. + """ + self.activeWindow().moveToMatchingBrace() + + def handleSearchFiles(self): + """ + Private method to handle the search in files action. + """ + self.ui.findFilesDialog.show(self.textForFind()) + self.ui.findFilesDialog.raiseW() + self.ui.findFilesDialog.setActiveWindow() + + ################################################################## + ## Below are the action methods for the view menu + ################################################################## + + def handleZoomIn(self): + """ + Private method to handle the zoom in action. + """ + self.activeWindow().zoomIn() + + def handleZoomOut(self): + """ + Private method to handle the zoom out action. + """ + self.activeWindow().zoomOut() + + def handleZoom(self): + """ + Private method to handle the zoom action. + """ + aw = self.activeWindow() + dlg = ZoomDialog(aw.getZoom(), self.ui, None, 1) + if dlg.exec_loop() == QDialog.Accepted: + aw.zoomTo(dlg.getZoomSize()) + + def handleToggleAll(self): + """ + Private method to handle the toggle all folds action. + """ + self.activeWindow().foldAll() + + def handleToggleCurrent(self): + """ + Private method to handle the toggle current fold action. + """ + aw = self.activeWindow() + line, index = aw.getCursorPosition() + aw.foldLine(line) + + def handleSplitView(self): + """ + Private method to handle the split view action. + """ + self.addSplit() + + def handleSplitOrientation(self): + """ + Private method to handle the split orientation action. + """ + if self.splitOrientationAct.isOn(): + self.setSplitOrientation(QSplitter.Horizontal) + self.splitViewAct.setIconSet(\ + QIconSet(utilIcons.getPixmap("splitHorizontal.png"))) + self.splitRemoveAct.setIconSet(\ + QIconSet(utilIcons.getPixmap("remsplitHorizontal.png"))) + else: + self.setSplitOrientation(QSplitter.Vertical) + self.splitViewAct.setIconSet(\ + QIconSet(utilIcons.getPixmap("splitVertical.png"))) + self.splitRemoveAct.setIconSet(\ + QIconSet(utilIcons.getPixmap("remsplitVertical.png"))) + + ################################################################## + ## Below are the action methods for the macro menu + ################################################################## + + def handleMacroStartRecording(self): + """ + Private method to handle the start macro recording action. + """ + self.activeWindow().handleStartMacroRecording() + + def handleMacroStopRecording(self): + """ + Private method to handle the stop macro recording action. + """ + self.activeWindow().handleStopMacroRecording() + + def handleMacroRun(self): + """ + Private method to handle the run macro action. + """ + self.activeWindow().handleRunMacro() + + def handleMacroDelete(self): + """ + Private method to handle the delete macro action. + """ + self.activeWindow().handleDeleteMacro() + + def handleMacroLoad(self): + """ + Private method to handle the load macro action. + """ + self.activeWindow().handleLoadMacro() + + def handleMacroSave(self): + """ + Private method to handle the save macro action. + """ + self.activeWindow().handleSaveMacro() + + ################################################################## + ## Below are the action methods for the bookmarks menu + ################################################################## + + def handleToggleBookmark(self): + """ + Private method to handle the toggle bookmark action. + """ + self.activeWindow().handleToggleBookmark() + + def handleNextBookmark(self): + """ + Private method to handle the next bookmark action. + """ + self.activeWindow().handleNextBookmark() + + def handlePreviousBookmark(self): + """ + Private method to handle the previous bookmark action. + """ + self.activeWindow().handlePreviousBookmark() + + def handleClearAllBookmarks(self): + """ + Private method to handle the clear all bookmarks action. + """ + for editor in self.editors: + editor.handleClearBookmarks() + + self.bookmarkNextAct.setEnabled(0) + self.bookmarkPreviousAct.setEnabled(0) + self.bookmarkClearAct.setEnabled(0) + + def handleShowBookmarksMenu(self): + """ + Private method to handle the show bookmarks menu signal. + """ + self.bookmarks = {} + self.bookmarksMenu.clear() + + filenames = self.getOpenFilenames() + filenames.sort() + for filename in filenames: + editor = self.getOpenEditor(filename) + for bookmark in editor.getBookmarks(): + if len(filename) > 50: + dots = "..." + else: + dots = "" + id = self.bookmarksMenu.insertItem(\ + "%s%s : %d" % (dots, filename[-50:], bookmark)) + self.bookmarks[id] = (filename, bookmark) + + def handleBookmarkSelected(self, id): + """ + Private method to handle the bookmark selected signal. + + @param id index of the selected menu entry + This acts as an index into the list of bookmarks + that was created, when the bookmarks menu was built. + """ + self.displayPythonFile(self.bookmarks[id][0], self.bookmarks[id][1]) + + def handleBookmarkToggled(self, editor): + """ + Private slot to handle the bookmarkToggled signal. + + It checks some bookmark actions and reemits the signal. + + @param editor editor that sent the signal + """ + if editor.hasBookmarks(): + self.bookmarkNextAct.setEnabled(1) + self.bookmarkPreviousAct.setEnabled(1) + self.bookmarkClearAct.setEnabled(1) + else: + self.bookmarkNextAct.setEnabled(0) + self.bookmarkPreviousAct.setEnabled(0) + self.bookmarkClearAct.setEnabled(0) + self.emit(PYSIGNAL('bookmarkToggled'), (editor,)) + + def handleGotoSyntaxError(self): + """ + Private method to handle the goto syntax error action. + """ + self.activeWindow().handleGotoSyntaxError() + + def handleClearAllSyntaxErrors(self): + """ + Private method to handle the clear all syntax errors action. + """ + for editor in self.editors: + editor.handleClearSyntaxError() + + def handleSyntaxErrorToggled(self, editor): + """ + Private slot to handle the syntaxerrorToggled signal. + + It checks some syntax error actions and reemits the signal. + + @param editor editor that sent the signal + """ + if editor.hasSyntaxErrors(): + self.syntaxErrorGotoAct.setEnabled(1) + self.syntaxErrorClearAct.setEnabled(1) + else: + self.syntaxErrorGotoAct.setEnabled(0) + self.syntaxErrorClearAct.setEnabled(0) + self.emit(PYSIGNAL('syntaxerrorToggled'), (editor,)) + + ################################################################## + ## Below are general utility methods + ################################################################## + + def handleResetUI(self): + """ + Public slot to handle the resetUI signal. + """ + editor = self.activeWindow() + if editor is None: + self.setSbFile() + else: + line, pos = editor.getCursorPosition() + self.setSbFile(editor.getFileName(), line+1, pos) + + def closeViewManager(self): + """ + Public method to shutdown the viewmanager. + + If it cannot close all editor windows, it aborts the shutdown process. + + @return flag indicating success (boolean) + """ + self.handleCloseAll() + if len(self.editors): + return 0 + else: + return 1 + + def handleLastEditorClosed(self): + """ + Private slot to handle the lastEditorClosed signal. + """ + self.SauveRecents() + + + def handleEditorOpened(self): + """ + Private slot to handle the editorOpened signal. + """ + self.closeActGrp.setEnabled(1) + self.saveActGrp.setEnabled(1) + self.printAct.setEnabled(1) + self.printSelAct.setEnabled(1) + self.editActGrp.setEnabled(1) + self.searchActGrp.setEnabled(1) + self.viewActGrp.setEnabled(1) + self.viewFoldActGrp.setEnabled(1) + self.unhighlightAct.setEnabled(1) + self.splitViewAct.setEnabled(1) + self.splitOrientationAct.setEnabled(1) + self.macroActGrp.setEnabled(1) + self.bookmarkActGrp.setEnabled(1) + + # activate the autosave timer + if not self.autosaveTimer.isActive() and \ + self.autosaveInterval > 0: + self.autosaveTimer.start(self.autosaveInterval * 60000, 1) + + + def checkActions(self, editor, setSb=1): + """ + Private slot to check some actions for their enable/disable status and set the statusbar info. + + @param editor editor window + @param setSb flag indicating an update of the status bar is wanted (boolean) + """ + if editor is not None: + self.saveAct.setEnabled(editor.modified) + self.revertAct.setEnabled(editor.modified) + + lex = editor.getLexer() + if lex is not None: + self.commentAct.setEnabled(lex.canBlockComment()) + self.uncommentAct.setEnabled(lex.canBlockComment()) + self.streamCommentAct.setEnabled(lex.canStreamComment()) + self.boxCommentAct.setEnabled(lex.canBoxComment()) + else: + self.commentAct.setEnabled(0) + self.uncommentAct.setEnabled(0) + self.streamCommentAct.setEnabled(0) + self.boxCommentAct.setEnabled(0) + + if editor.hasBookmarks(): + self.bookmarkNextAct.setEnabled(1) + self.bookmarkPreviousAct.setEnabled(1) + self.bookmarkClearAct.setEnabled(1) + else: + self.bookmarkNextAct.setEnabled(0) + self.bookmarkPreviousAct.setEnabled(0) + self.bookmarkClearAct.setEnabled(0) + + if editor.hasSyntaxErrors(): + self.syntaxErrorGotoAct.setEnabled(1) + self.syntaxErrorClearAct.setEnabled(1) + else: + self.syntaxErrorGotoAct.setEnabled(0) + self.syntaxErrorClearAct.setEnabled(0) + + if editor.canAutoCompleteFromAPIs(): + self.autoCompleteFromAPIsAct.setEnabled(1) + else: + self.autoCompleteFromAPIsAct.setEnabled(0) + + if setSb: + line, pos = editor.getCursorPosition() + self.setSbFile(editor.getFileName(), line+1, pos) + + self.emit(PYSIGNAL('checkActions'), (editor,)) + + def handlePreferencesChanged(self): + """ + Public slot to handle the preferencesChanged signal. + + This method performs the following actions + + """ + # reload api information + for language, api in self.apis.items(): + if api is not None: + apifiles = Preferences.getEditorAPI(language) + if len(apifiles): + api.clear() + for apifile in apifiles: + api.load(apifile) + else: + self.apis[language] = None + + # reload editor settings + for editor in self.editors: + editor.readSettings() + + # reload the autosave timer setting + self.autosaveInterval = Preferences.getEditor("AutosaveInterval") + if len(self.editors): + if self.autosaveTimer.isActive() and \ + self.autosaveInterval == 0: + self.autosaveTimer.stop() + elif not self.autosaveTimer.isActive() and \ + self.autosaveInterval > 0: + self.autosaveTimer.start(self.autosaveInterval * 60000, 1) + + def handleEditorSaved(self, fn): + """ + Public slot to handle the editorSaved signal. + + It simply reemits the signal. + + @param fn filename of the saved editor + """ + self.emit(PYSIGNAL('editorSaved'), (fn,)) + + def handleCursorChanged(self, fn, line, pos): + """ + Private slot to handle the cursorChanged signal. + + It emits the signal cursorChanged with parameter editor. + + @param fn filename (string) + @param line line number of the cursor (int) + @param pos position in line of the cursor (int) + """ + self.setSbFile(fn, line, pos) + self.emit(PYSIGNAL('cursorChanged'), (self.getOpenEditor(fn),)) + + def handleBreakpointToggled(self, editor): + """ + Private slot to handle the breakpointToggled signal. + + It simply reemits the signal. + + @param editor editor that sent the signal + """ + self.emit(PYSIGNAL('breakpointToggled'), (editor,)) + + + def getProject(self): + """ + Public method to get a reference to the Project object. + + @return Reference to the Project object (Project.Project) + """ + return self.ui.getProject() + + def getActions(self, type): + """ + Public method to get a list of all actions. + + @param type string denoting the action set to get. + It must be one of "edit", "file", "search", + "view" or "window" + @return list of all actions (list of QAction) + """ + try: + exec 'actionList = self.%sActions[:]' % type + except: + actionList = [] + + return actionList + + def editorCommand(self, cmd): + """ + Private method to send an editor command to the active window. + + @param cmd the scintilla command to be sent + """ + aw = self.activeWindow() + if aw: + aw.SendScintilla(cmd) + + ################################################################## + ## Below are protected utility methods + ################################################################## + + def _getOpenStartDir(self): + """ + Protected method to return the starting directory for a file open dialog. + + The appropriate starting directory is calculated + using the following search order, until a match is found:
+ 1: Directory of currently active editor
+ 2: Directory of currently active Project
+ 3: CWD + + @return String name of directory to start or None + """ + # if we have an active source, return its path + if self.activeWindow() is not None and \ + self.activeWindow().getFileName(): + return os.path.dirname(self.activeWindow().getFileName()) + + # ok, try if there is an active project and return its path + elif self.getProject().isOpen(): + return self.getProject().ppath + + else: + try : + userDir=os.path.expanduser("~/Eficas_install/") + return userDir + except : + return "" + + + def _getOpenFileFilter(self): + """ + Protected method to return the active filename filter for a file open dialog. + + The appropriate filename filter is determined by file extension of + the currently active editor. + + @return name of the filename filter (QString) or None + """ + if self.activeWindow() is not None and \ + self.activeWindow().getFileName(): + ext = os.path.splitext(self.activeWindow().getFileName())[1] + try: + return QString(self.ext2Filter[ext]) + except KeyError: + return None + + else: + return None + + + + +""" +Module implementing a tabbed viewmanager class. +""" + + + +class TabWidget(QTabWidget): + """ + Class implementing a custimized TabWidget. + """ + def __init__(self, parent): + """ + Constructor + + @param parent parent widget (QWidget) + """ + QTabWidget.__init__(self, parent) + + self.editors = [] + self.curIndex = 0 + + self.connect(self, SIGNAL("currentChanged(QWidget *)"), self.handleCurrentChanged) + + def handleCurrentChanged(self): + """ + Private slot called by the currentChanged signal. + """ + self.curIndex = self.currentPageIndex() + + def addTab(self, editor, title): + """ + Overwritten method to add a new tab. + + @param editor the editor object to be added (QScintilla.Editor.Editor) + @param title title for the new tab (string, QString or QTab) + """ + QTabWidget.addTab(self, editor, title) + + if not editor in self.editors: + self.editors.append(editor) + self.connect(editor, PYSIGNAL('captionChanged'), + self.handleCaptionChange) + + def showPage(self, editor): + """ + Overridden method to show a tab. + + @param editor the editor object to be shown (QScintilla.Editor.Editor) + """ + QTabWidget.showPage(self, editor) + self.curIndex = self.indexOf(editor) + + def nextTab(self): + """ + Public slot used to show the next tab. + """ + if self.count(): + self.curIndex += 1 + if self.curIndex == self.count(): + self.curIndex = 0 + + QTabWidget.showPage(self, self.page(self.curIndex)) + + def prevTab(self): + """ + Public slot used to show the previous tab. + """ + if self.count(): + self.curIndex -= 1 + if self.curIndex == -1: + self.curIndex = self.count() - 1 + + QTabWidget.showPage(self, self.page(self.curIndex)) + + def handleCaptionChange(self, cap, editor): + """ + Private method to handle Caption change signals from the editor. + + Updates the listview text to reflect the new caption information. + + @param cap Caption for the editor + @param editor Editor to update the caption for + """ + fn = editor.getFileName() + if fn: + txt = os.path.basename(fn) + if editor.isReadOnly(): + txt = '%s (ro)' % txt + self.changeTab(editor, txt) + + def removePage(self, object): + """ + Overwritten method to remove a page. + + @param object object to be removed (QObject) + """ + QTabWidget.removePage(self, object) + + self.disconnect( object, PYSIGNAL('captionChanged'), + self.handleCaptionChange ) + self.editors.remove(object) + + def hasEditor(self, editor): + """ + Public method to check for an editor. + + @param editor editor object to check for + @return flag indicating, whether the editor to be checked belongs + to the list of editors managed by this tab widget. + """ + return editor in self.editors + + def hasEditors(self): + """ + Public method to test, if any editor is managed. + + @return flag indicating editors are managed + """ + return len(self.editors) and 1 or 0 + +class Tabview(QSplitter, ViewManager): + """ + Class implementing a tabbed viewmanager class embedded in a splitter. + + @signal lastEditorClosed emitted after the last editor window was closed + @signal editorOpened emitted after an editor window was opened + @signal editorSaved emitted after an editor window was saved + """ + def __init__(self,parent, ui): + """ + Constructor + + @param parent parent widget (QWidget) + @param ui reference to the main user interface + @param dbs reference to the debug server object + """ + self.tabWidgets = [] + + QSplitter.__init__(self,parent) + ViewManager.__init__(self, ui) + tw = TabWidget(self) + self.tabWidgets.append(tw) + self.currentTabWidget = tw + self.connect(tw, SIGNAL('currentChanged(QWidget*)'), + self.handleCurrentChanged) + tw.installEventFilter(self) + tw.tabBar().installEventFilter(self) + self.setOrientation(QSplitter.Vertical) + + def initViewActions(self): + """ + Protected method defining the user interface actions for the view commands. + """ + ViewManager.initViewActions(self) + + self.nextTabAct = QAction(self.trUtf8('Show next tab'), + self.trUtf8('Show next tab'), + QKeySequence(self.trUtf8('Ctrl+Alt+Tab')), self) + self.connect(self.nextTabAct, SIGNAL('activated()'), self.nextTab) + self.viewActions.append(self.nextTabAct) + + self.prevTabAct = QAction(self.trUtf8('Show previous tab'), + self.trUtf8('Show previous tab'), + QKeySequence(self.trUtf8('Shift+Ctrl+Alt+Tab')), self) + self.connect(self.prevTabAct, SIGNAL('activated()'), self.prevTab) + self.viewActions.append(self.prevTabAct) + + def nextTab(self): + """ + Private slot used to show the next tab of the current tabwidget. + """ + self.currentTabWidget.nextTab() + + def prevTab(self): + """ + Private slot used to show the previous tab of the current tabwidget. + """ + self.currentTabWidget.prevTab() + + def canCascade(self): + """ + Public method to signal if cascading of managed windows is available. + + @return flag indicating cascading of windows is available + """ + return 0 + + def canTile(self): + """ + Public method to signal if tiling of managed windows is available. + + @return flag indicating tiling of windows is available + """ + return 0 + + def canSplit(self): + """ + public method to signal if splitting of the view is available. + + @return flag indicating splitting of the view is available. + """ + return 1 + + def tile(self): + """ + Public method to tile the managed windows. + """ + pass + + def cascade(self): + """ + Public method to cascade the managed windows. + """ + pass + + def removeAllViews(self): + """ + Private method to remove all views (i.e. windows) + """ + for win in self.editors: + self.removeView(win) + + def removeView(self, win): + """ + Private method to remove a view (i.e. window) + + @param win editor window to be removed + """ + for tw in self.tabWidgets: + if tw.hasEditor(win): + tw.removePage(win) + break + win.closeIt() + + # if this was the last editor in this view, switch to the next, that + # still has open editors + for i in range(self.tabWidgets.index(tw), -1, -1) + \ + range(self.tabWidgets.index(tw) + 1, len(self.tabWidgets)): + if self.tabWidgets[i].hasEditors(): + self.currentTabWidget = self.tabWidgets[i] + self.activeWindow().setFocus() + break + + def addView(self, win, fn=None, title=None): + """ + Private method to add a view (i.e. window) + + @param win editor window to be added + @param fn filename of this editor + """ + win.show() + if fn is None: + if title== None : + self.untitledCount += 1 + self.currentTabWidget.addTab(win, self.trUtf8("Untitled %1").arg(self.untitledCount)) + else : + self.currentTabWidget.addTab(win, title) + else: + txt = os.path.basename(fn) + if not QFileInfo(fn).isWritable(): + txt = '%s (ro)' % txt + self.currentTabWidget.addTab(win, txt) + self.currentTabWidget.setTabToolTip(win, os.path.dirname(fn)) + self.currentTabWidget.showPage(win) + win.setFocus() + + def showView(self, win, fn=None): + """ + Private method to show a view (i.e. window) + + @param win editor window to be shown + @param fn filename of this editor + """ + win.show() + for tw in self.tabWidgets: + if tw.hasEditor(win): + tw.showPage(win) + self.currentTabWidget = tw + break + win.setFocus() + + def activeWindow(self): + """ + Private method to return the active (i.e. current) window. + + @return reference to the active editor + """ + return self.currentTabWidget.currentPage() + + def handleShowWindowMenu(self, windowMenu): + """ + Private method to set up the viewmanager part of the Window menu. + + @param windowMenu reference to the window menu + """ + pass + + def initWindowActions(self): + """ + Define the user interface actions for window handling. + """ + pass + + def setEditorName(self, editor, newName): + """ + Change the displayed name of the editor. + + @param editor editor window to be changed + @param newName new name to be shown (string or QString) + """ + self.currentTabWidget.changeTab(editor, + os.path.basename(unicode(newName))) + self.currentTabWidget.setTabToolTip(editor, + os.path.dirname(unicode(newName))) + + def handleModificationStatusChanged(self, m, editor): + """ + Private slot to handle the modificationStatusChanged signal. + + @param m flag indicating the modification status (boolean) + @param editor editor window changed + """ + for tw in self.tabWidgets: + if tw.hasEditor(editor): + break + if m: + tw.setTabIconSet(editor, + QIconSet(utilIcons.getPixmap("fileModified.png"))) + elif editor.hasSyntaxErrors(): + tw.setTabIconSet(editor, + QIconSet(utilIcons.getPixmap("syntaxError.png"))) + else: + tw.setTabIconSet(editor, + QIconSet(utilIcons.getPixmap("empty.png"))) + self.checkActions(editor) + + def handleSyntaxErrorToggled(self, editor): + """ + Private slot to handle the syntaxerrorToggled signal. + + @param editor editor that sent the signal + """ + for tw in self.tabWidgets: + if tw.hasEditor(editor): + break + if editor.hasSyntaxErrors(): + tw.setTabIconSet(editor, + QIconSet(utilIcons.getPixmap("syntaxError.png"))) + else: + tw.setTabIconSet(editor, + QIconSet(utilIcons.getPixmap("empty.png"))) + + ViewManager.handleSyntaxErrorToggled(self, editor) + + def addSplit(self): + """ + Public method used to split the current view. + """ + tw = TabWidget(self) + tw.show() + self.tabWidgets.append(tw) + self.currentTabWidget = self.tabWidgets[-1] + self.connect(tw, SIGNAL('currentChanged(QWidget*)'), + self.handleCurrentChanged) + tw.installEventFilter(self) + tw.tabBar().installEventFilter(self) + self.setSizes([int(100/len(self.tabWidgets))] * len(self.tabWidgets)) + self.splitRemoveAct.setEnabled(1) + + def removeSplit(self): + """ + Public method used to remove the current split view. + + @return flag indicating successfull removal + """ + if len(self.tabWidgets) > 1: + tw = self.currentTabWidget + res = 1 + savedEditors = tw.editors[:] + for editor in savedEditors: + res &= self.closeEditor(editor) + if res: + i = self.tabWidgets.index(tw) + if i == len(self.tabWidgets)-1: + i -= 1 + self.tabWidgets.remove(tw) + tw.close(1) + self.currentTabWidget = self.tabWidgets[i] + if len(self.tabWidgets) == 1: + self.splitRemoveAct.setEnabled(0) + return 1 + + return 0 + + def setSplitOrientation(self, orientation): + """ + Public method used to set the orientation of the split view. + + @param orientation orientation of the split + (QSplitter.Horizontal or QSplitter.Vertical) + """ + self.setOrientation(orientation) + + def handleCurrentChanged(self, editor): + """ + Private slot to handle the currentChanged signal. + + @param editor selected editor window + """ + self.checkActions(editor) + editor.setFocus() + + def eventFilter(self, watched, event): + """ + Method called to filter the event queue. + + @param watched the QObject being watched + @param event the event that occurred + @return always 0 + """ + if event.type() == QEvent.MouseButtonPress and \ + not event.button() == Qt.RightButton: + if isinstance(watched, QTabWidget): + self.currentTabWidget = watched + elif isinstance(watched, QTabBar): + self.currentTabWidget = watched.parent() + elif isinstance(watched, QScintilla.Editor.Editor): + for tw in self.tabWidgets: + if tw.hasEditor(watched): + self.currentTabWidget = tw + break + + aw = self.activeWindow() + if aw is not None: + self.checkActions(aw) + aw.setFocus() + + return 0 + + +class MyTabview(Tabview): + """ + Base class inherited by all specific viewmanager classes. + + It defines the interface to be implemented by specific + viewmanager classes and all common methods. + + @signal lastEditorClosed emitted after the last editor window was closed + @signal editorOpened(string) emitted after an editor window was opened + @signal editorSaved(string) emitted after an editor window was saved + @signal checkActions(editor) emitted when some actions should be checked + for their status + @signal cursorChanged(editor) emitted after the cursor position of the active + window has changed + @signal breakpointToggled(editor) emitted when a breakpoint is toggled. + @signal bookmarkToggled(editor) emitted when a bookmark is toggled. + """ + def __init__(self, parent, ui): + Tabview.__init__(self, parent, ui) + self.appli=parent + self.code =self.appli.code + self.salome=self.appli.salome + self.initRecent() + + def initRecent(self) : + rep=self.appli.CONFIGURATION.rep_user + monFichier=rep+"/listefichiers_"+self.code + index=0 + try : + f=open(monFichier) + while ( index < 9) : + ligne=f.readline() + if ligne != "" : + l=(ligne.split("\n"))[0] + self.recent.append(l) + index=index+1 + except : pass + + try : f.close() + except : pass + + def SauveRecents(self) : + rep=self.appli.CONFIGURATION.rep_user + monFichier=rep+"/listefichiers_"+self.code + try : + f=open(monFichier,'w') + if len(self.recent) == 0 : return + index=0 + while ( index < len(self.recent)): + ligne=str(self.recent[index])+"\n" + f.write(ligne) + index=index+1 + except : + pass + try : + f.close() + except : + pass + + + def checkActions(self, editor, setSb=1): + """ + Private slot to check some actions for their enable/disable status and set the statusbar info. + + @param editor editor window + @param setSb flag indicating an update of the status bar is wanted (boolean) + """ + self.emit(PYSIGNAL('checkActions'), (editor,)) + + + def addToRecentList(self, fn): + """ + Public slot to add a filename to the list of recently opened files. + + @param fn name of the file to be added + """ + self.recent.remove(fn) + self.recent.prepend(fn) + if len(self.recent) > 9: + self.recent = self.recent[:9] + + def handleOpen(self,fn=None,patron=0,units=None): + """ + Public slot to open a Python JDC file. + + @param prog name of file to be opened (string or QString) + patron booleen pour indiquer si le fichier doit etre + ajoute a la liste des fichiers ouverts recemment + """ + # Get the file name if one wasn't specified. + if fn is None: + + fn = QFileDialog.getOpenFileName(self._getOpenStartDir(), + self.trUtf8('JDC Files (*.comm);;''All Files (*)'), self.ui) + + if fn.isNull(): + return + + fn = normabspath(unicode(fn)) + + newWin, editor = self.getEditor(fn,units=units) + + if newWin: + self.handleModificationStatusChanged(editor.modified, editor) + self.checkActions(editor) + + # insert filename into list of recently opened files + if patron == 0 : self.addToRecentList(fn) + + + ################################################################## + ## Below are protected utility methods + ################################################################# + + def _getOpenStartDir(self): + """ + Protected method to return the starting directory for a file open dialog. + + The appropriate starting directory is calculated + using the following search order, until a match is found:
+ 1: Directory of currently active editor
+ 2: Directory of currently active Project
+ 3: CWD + + @return String name of directory to start or None + """ + # if we have an active source, return its path + if self.activeWindow() is not None and \ + self.activeWindow().getFileName(): + return os.path.dirname(self.activeWindow().getFileName()) + + + else: + # None will cause open dialog to start with cwd + try : + userDir=os.path.expanduser("~/Eficas_install/") + return userDir + except : + return "" + + + def handleEditorOpened(self): + """ + Private slot to handle the editorOpened signal. + """ + pass + + def handleModificationStatusChanged(self, m, editor): + """ + Private slot to handle the modificationStatusChanged signal. + + @param m flag indicating the modification status (boolean) + @param editor editor window changed + """ + for tw in self.tabWidgets: + if tw.hasEditor(editor): + break + if m: + #tw.setTabIconSet(editor, + # QIconSet(utilIcons.getPixmap("fileModified.png"))) + pass + elif editor.hasSyntaxErrors(): + tw.setTabIconSet(editor, + QIconSet(utilIcons.getPixmap("syntaxError.png"))) + else: + tw.setTabIconSet(editor, + QIconSet(utilIcons.getPixmap("empty.png"))) + self.checkActions(editor) + + + + +if __name__=='__main__': + import sys + import prefs + if hasattr(prefs,'encoding'): + # Hack pour changer le codage par defaut des strings + import sys + reload(sys) + sys.setdefaultencoding(prefs.encoding) + del sys.setdefaultencoding + # Fin hack + + #CS_pbruno note: fait implicitement des trucs ces imports (grr) + #import styles + from Editeur import import_code + from Editeur import session + + # Analyse des arguments de la ligne de commande + options=session.parse(sys.argv) + code=options.code + app = QApplication(sys.argv) + + mw = MyTabview(None,None) + app.setMainWidget(mw) + app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) + mw.show() + mw.getEditor('azAster.comm') + mw.getEditor('azAster2.comm') + res = app.exec_loop() + sys.exit(res) diff --git a/UiQT4/OptionsEditeur.py b/UiQT4/OptionsEditeur.py new file mode 100644 index 00000000..8bd23b62 --- /dev/null +++ b/UiQT4/OptionsEditeur.py @@ -0,0 +1,137 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'OptionsEditeur.ui' +# +# Created: Mon Jun 2 16:08:31 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.16 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class desOptions(QDialog): + def __init__(self,parent = None,name = None,modal = 0,fl = 0): + QDialog.__init__(self,parent,name,modal,fl) + + if not name: + self.setName("desOptions") + + + + self.groupBox1 = QGroupBox(self,"groupBox1") + self.groupBox1.setGeometry(QRect(11,11,548,191)) + + self.textLabel1_3 = QLabel(self.groupBox1,"textLabel1_3") + self.textLabel1_3.setGeometry(QRect(30,60,280,20)) + + self.textLabel1_2_2 = QLabel(self.groupBox1,"textLabel1_2_2") + self.textLabel1_2_2.setGeometry(QRect(30,120,280,20)) + + self.CBVersions = QComboBox(0,self.groupBox1,"CBVersions") + self.CBVersions.setGeometry(QRect(30,20,90,30)) + + self.LERepMat = QLineEdit(self.groupBox1,"LERepMat") + self.LERepMat.setGeometry(QRect(30,140,501,31)) + + self.LERepCata = QLineEdit(self.groupBox1,"LERepCata") + self.LERepCata.setGeometry(QRect(30,80,501,31)) + + self.Bok = QPushButton(self.groupBox1,"Bok") + self.Bok.setGeometry(QRect(440,20,90,31)) + self.Bok.setAutoDefault(0) + + self.groupBox2 = QGroupBox(self,"groupBox2") + self.groupBox2.setGeometry(QRect(11,208,548,90)) + + self.LEVersionAjout = QLineEdit(self.groupBox2,"LEVersionAjout") + self.LEVersionAjout.setGeometry(QRect(120,31,101,30)) + + self.LEVersionSup = QLineEdit(self.groupBox2,"LEVersionSup") + self.LEVersionSup.setGeometry(QRect(410,30,101,30)) + + self.PBSup = QPushButton(self.groupBox2,"PBSup") + self.PBSup.setGeometry(QRect(300,20,101,41)) + + self.PBajout = QPushButton(self.groupBox2,"PBajout") + self.PBajout.setGeometry(QRect(10,20,101,41)) + + self.PBQuit = QPushButton(self,"PBQuit") + self.PBQuit.setGeometry(QRect(400,420,151,31)) + self.PBQuit.setMinimumSize(QSize(0,30)) + + self.groupBox3 = QGroupBox(self,"groupBox3") + self.groupBox3.setGeometry(QRect(10,310,548,90)) + + self.LERepDoc = QLineEdit(self.groupBox3,"LERepDoc") + self.LERepDoc.setGeometry(QRect(20,50,520,31)) + + self.textLabel1 = QLabel(self.groupBox3,"textLabel1") + self.textLabel1.setGeometry(QRect(20,20,280,30)) + + self.Bdefaut = QCheckBox(self,"Bdefaut") + self.Bdefaut.setGeometry(QRect(10,430,340,20)) + Bdefaut_font = QFont(self.Bdefaut.font()) + Bdefaut_font.setPointSize(12) + self.Bdefaut.setFont(Bdefaut_font) + + self.languageChange() + + self.resize(QSize(570,474).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.CBVersions,SIGNAL("activated(int)"),self.VersionChoisie) + self.connect(self.Bdefaut,SIGNAL("clicked()"),self.BdefautChecked) + self.connect(self.LEVersionAjout,SIGNAL("returnPressed()"),self.AjoutVersion) + self.connect(self.LERepDoc,SIGNAL("returnPressed()"),self.ChangePathDoc) + self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked) + self.connect(self.LEVersionSup,SIGNAL("returnPressed()"),self.SupVersion) + self.connect(self.PBajout,SIGNAL("clicked()"),self.AjoutVersion) + self.connect(self.PBSup,SIGNAL("clicked()"),self.SupVersion) + self.connect(self.PBQuit,SIGNAL("clicked()"),self.close) + + + def languageChange(self): + self.setCaption(self.__tr("Options Aster")) + self.groupBox1.setTitle(self.__tr("Configurer une Version")) + self.textLabel1_3.setText(self.__trUtf8("\x52\xc3\xa9\x70\x65\x72\x74\x6f\x69\x72\x65\x20\x64\x27\x61\x63\x63\xc3\xa8\x73\x20\x61\x75\x20\x63\x61\x74\x61\x6c\x6f\x67\x75\x65\x20\x3a")) + self.textLabel1_2_2.setText(self.__trUtf8("\x52\xc3\xa9\x70\x65\x72\x74\x6f\x69\x72\x65\x20\x64\x27\x61\x63\x63\xc3\xa8\x73\x20\x61\x75\x78\x20\x6d\x61\x74\xc3\xa9\x72\x69\x61\x75\x78\x20\x3a")) + self.LERepMat.setText(QString.null) + self.LERepCata.setText(QString.null) + self.Bok.setText(self.__tr("Valider")) + self.groupBox2.setTitle(self.__trUtf8("\x47\xc3\xa9\x72\x65\x72\x20\x6c\x65\x73\x20\x76\x65\x72\x73\x69\x6f\x6e\x73")) + self.PBSup.setText(self.__tr("Supprimer\n" +"Version :")) + self.PBajout.setText(self.__tr("Ajouter\n" +"Version :")) + self.PBQuit.setText(self.__tr("Quitter")) + self.groupBox3.setTitle(self.__tr("Doc")) + self.LERepDoc.setText(QString.null) + self.textLabel1.setText(self.__trUtf8("\x52\x65\x70\x65\x72\x74\x6f\x69\x72\x65\x20\x64\x27\x61\x63\x63\x65\x73\x20\xc3\xa0\x20\x6c\x61\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x3a")) + self.Bdefaut.setText(self.__tr("Reinitialiser avec les valeurs par defaut")) + + + def VersionChoisie(self): + print "desOptions.VersionChoisie(): Not implemented yet" + + def BdefautChecked(self): + print "desOptions.BdefautChecked(): Not implemented yet" + + def AjoutVersion(self): + print "desOptions.AjoutVersion(): Not implemented yet" + + def SupVersion(self): + print "desOptions.SupVersion(): Not implemented yet" + + def ChangePathDoc(self): + print "desOptions.ChangePathDoc(): Not implemented yet" + + def BokClicked(self): + print "desOptions.BokClicked(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("desOptions",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("desOptions",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/OptionsEditeur.ui b/UiQT4/OptionsEditeur.ui new file mode 100644 index 00000000..7cebf8a3 --- /dev/null +++ b/UiQT4/OptionsEditeur.ui @@ -0,0 +1,363 @@ + +desOptions + + + desOptions + + + + 0 + 0 + 570 + 474 + + + + Options Aster + + + + groupBox1 + + + + 11 + 11 + 548 + 191 + + + + Configurer une Version + + + + textLabel1_3 + + + + 30 + 60 + 280 + 20 + + + + Répertoire d'accès au catalogue : + + + + + textLabel1_2_2 + + + + 30 + 120 + 280 + 20 + + + + Répertoire d'accès aux matériaux : + + + + + CBVersions + + + + 30 + 20 + 90 + 30 + + + + + + LERepMat + + + + 30 + 140 + 501 + 31 + + + + + + + + + LERepCata + + + + 30 + 80 + 501 + 31 + + + + + + + + + Bok + + + + 440 + 20 + 90 + 31 + + + + Valider + + + false + + + + + + groupBox2 + + + + 11 + 208 + 548 + 90 + + + + Gérer les versions + + + + LEVersionAjout + + + + 120 + 31 + 101 + 30 + + + + + + LEVersionSup + + + + 410 + 30 + 101 + 30 + + + + + + PBSup + + + + 300 + 20 + 101 + 41 + + + + Supprimer +Version : + + + + + PBajout + + + + 10 + 20 + 101 + 41 + + + + Ajouter +Version : + + + + + + PBQuit + + + + 400 + 420 + 151 + 31 + + + + + 0 + 30 + + + + Quitter + + + + + groupBox3 + + + + 10 + 310 + 548 + 90 + + + + Doc + + + + LERepDoc + + + + 20 + 50 + 520 + 31 + + + + + + + + + textLabel1 + + + + 20 + 20 + 280 + 30 + + + + Repertoire d'acces à la documentation : + + + + + + Bdefaut + + + + 10 + 430 + 340 + 20 + + + + + 12 + + + + Reinitialiser avec les valeurs par defaut + + + + + + CBVersions + activated(int) + desOptions + VersionChoisie() + + + Bdefaut + clicked() + desOptions + BdefautChecked() + + + LEVersionAjout + returnPressed() + desOptions + AjoutVersion() + + + LERepDoc + returnPressed() + desOptions + ChangePathDoc() + + + Bok + clicked() + desOptions + BokClicked() + + + LEVersionSup + returnPressed() + desOptions + SupVersion() + + + PBajout + clicked() + desOptions + AjoutVersion() + + + PBSup + clicked() + desOptions + SupVersion() + + + PBQuit + clicked() + desOptions + close() + + + + VersionChoisie() + BdefautChecked() + AjoutVersion() + SupVersion() + ChangePathDoc() + BokClicked() + + + diff --git a/UiQT4/OptionsEditeur.ui~ b/UiQT4/OptionsEditeur.ui~ new file mode 100644 index 00000000..ced2a9bc --- /dev/null +++ b/UiQT4/OptionsEditeur.ui~ @@ -0,0 +1,363 @@ + +desOptions + + + desOptions + + + + 0 + 0 + 570 + 474 + + + + Options Aster + + + + groupBox1 + + + + 11 + 11 + 548 + 191 + + + + Configurer une Version + + + + textLabel1_3 + + + + 30 + 60 + 280 + 20 + + + + Répertoire d'accès au catalogue : + + + + + textLabel1_2_2 + + + + 30 + 120 + 280 + 20 + + + + Répertoire d'accès aux matériaux : + + + + + CBVersions + + + + 30 + 20 + 90 + 30 + + + + + + LERepMat + + + + 30 + 140 + 501 + 31 + + + + + + + + + LERepCata + + + + 30 + 80 + 501 + 31 + + + + + + + + + Bok + + + + 440 + 20 + 90 + 31 + + + + Valider + + + false + + + + + + groupBox2 + + + + 11 + 208 + 548 + 90 + + + + Gérer les versions + + + + LEVersionAjout + + + + 120 + 31 + 101 + 30 + + + + + + LEVersionSup + + + + 410 + 30 + 101 + 30 + + + + + + PBSup + + + + 300 + 20 + 101 + 41 + + + + Supprimer +Version : + + + + + PBajout + + + + 10 + 20 + 101 + 41 + + + + Ajouter +Version : + + + + + + groupBox3 + + + + 10 + 310 + 548 + 90 + + + + Doc + + + + textLabel1 + + + + 20 + 10 + 280 + 40 + + + + Repertoire d'acces à la documentation : + + + + + LERepDoc + + + + 20 + 50 + 520 + 31 + + + + + + + + + + Bdefaut + + + + 10 + 430 + 280 + 20 + + + + + 12 + + + + Reinitialiser avec les valeurs par defaut + + + + + PBQuit + + + + 400 + 420 + 151 + 31 + + + + + 0 + 30 + + + + Quitter + + + + + + CBVersions + activated(int) + desOptions + VersionChoisie() + + + Bdefaut + clicked() + desOptions + BdefautChecked() + + + LEVersionAjout + returnPressed() + desOptions + AjoutVersion() + + + LERepDoc + returnPressed() + desOptions + ChangePathDoc() + + + Bok + clicked() + desOptions + BokClicked() + + + LEVersionSup + returnPressed() + desOptions + SupVersion() + + + PBajout + clicked() + desOptions + AjoutVersion() + + + PBSup + clicked() + desOptions + SupVersion() + + + PBQuit + clicked() + desOptions + close() + + + + VersionChoisie() + BdefautChecked() + AjoutVersion() + SupVersion() + ChangePathDoc() + BokClicked() + + + diff --git a/UiQT4/OptionsPdf.py b/UiQT4/OptionsPdf.py new file mode 100644 index 00000000..c5c3c891 --- /dev/null +++ b/UiQT4/OptionsPdf.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'OptionsPdf.ui' +# +# Created: lun avr 7 09:36:07 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class desPdf(QDialog): + def __init__(self,parent = None,name = None,modal = 0,fl = 0): + QDialog.__init__(self,parent,name,modal,fl) + + if not name: + self.setName("desPdf") + + + + self.textLabel1_2 = QLabel(self,"textLabel1_2") + self.textLabel1_2.setGeometry(QRect(20,10,280,20)) + + self.BCancel = QPushButton(self,"BCancel") + self.BCancel.setGeometry(QRect(450,90,70,31)) + + self.LERepPdf = QLineEdit(self,"LERepPdf") + self.LERepPdf.setGeometry(QRect(20,40,501,31)) + + self.Bok = QPushButton(self,"Bok") + self.Bok.setGeometry(QRect(350,90,70,31)) + + self.languageChange() + + self.resize(QSize(538,142).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.BCancel,SIGNAL("clicked()"),self.reject) + self.connect(self.LERepPdf,SIGNAL("returnPressed()"),self.LeRepPdfPressed) + self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked) + + self.setTabOrder(self.LERepPdf,self.Bok) + self.setTabOrder(self.Bok,self.BCancel) + + + def languageChange(self): + self.setCaption(self.__tr("desPdf")) + self.textLabel1_2.setText(self.__tr("Lecteur Pdf")) + self.BCancel.setText(self.__tr("Cancel")) + self.LERepPdf.setText(self.__tr("acroread")) + self.Bok.setText(self.__tr("Ok")) + + + def LeRepPdfPressed(self): + print "desPdf.LeRepPdfPressed(): Not implemented yet" + + def BokClicked(self): + print "desPdf.BokClicked(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("desPdf",s,c) diff --git a/UiQT4/OptionsPdf.ui b/UiQT4/OptionsPdf.ui new file mode 100644 index 00000000..5d7a8a5a --- /dev/null +++ b/UiQT4/OptionsPdf.ui @@ -0,0 +1,116 @@ + +desPdf + + + desPdf + + + + 0 + 0 + 538 + 142 + + + + desPdf + + + + textLabel1_2 + + + + 20 + 10 + 280 + 20 + + + + Lecteur Pdf + + + + + BCancel + + + + 450 + 90 + 70 + 31 + + + + Cancel + + + + + LERepPdf + + + + 20 + 40 + 501 + 31 + + + + acroread + + + + + Bok + + + + 350 + 90 + 70 + 31 + + + + Ok + + + + + + BCancel + clicked() + desPdf + reject() + + + LERepPdf + returnPressed() + desPdf + LeRepPdfPressed() + + + Bok + clicked() + desPdf + BokClicked() + + + + LERepPdf + Bok + BCancel + + + OptionsPdf.ui.h + + + LeRepPdfPressed() + BokClicked() + + + diff --git a/UiQT4/aideQT.py b/UiQT4/aideQT.py new file mode 100644 index 00000000..a60c7609 --- /dev/null +++ b/UiQT4/aideQT.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'aideQT.ui' +# +# Created: mar mar 25 10:05:07 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class Aide(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("Aide") + + + AideLayout = QGridLayout(self,1,1,11,6,"AideLayout") + + layout2 = QHBoxLayout(None,0,6,"layout2") + + self.PBIndex = QPushButton(self,"PBIndex") + self.PBIndex.setMinimumSize(QSize(0,30)) + layout2.addWidget(self.PBIndex) + + self.PBBack = QPushButton(self,"PBBack") + self.PBBack.setEnabled(1) + self.PBBack.setMinimumSize(QSize(0,30)) + layout2.addWidget(self.PBBack) + + self.PBForward = QPushButton(self,"PBForward") + self.PBForward.setEnabled(1) + self.PBForward.setMinimumSize(QSize(0,30)) + layout2.addWidget(self.PBForward) + + AideLayout.addLayout(layout2,1,0) + + self.TB1 = QTextBrowser(self,"TB1") + + AideLayout.addMultiCellWidget(self.TB1,0,0,0,1) + spacer1 = QSpacerItem(311,20,QSizePolicy.Expanding,QSizePolicy.Minimum) + AideLayout.addItem(spacer1,1,1) + + self.languageChange() + + self.resize(QSize(602,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.PBBack,SIGNAL("clicked()"),self.TB1.backward) + self.connect(self.PBForward,SIGNAL("clicked()"),self.TB1.forward) + self.connect(self.PBIndex,SIGNAL("clicked()"),self.TB1.home) + + + def languageChange(self): + self.setCaption(self.__tr("Aide")) + self.PBIndex.setText(self.__tr("Index")) + self.PBBack.setText(self.__tr("Back")) + self.PBForward.setText(self.__tr("Forward")) + + + def PBIndexPushed(self): + print "Aide.PBIndexPushed(): Not implemented yet" + + def PBBackPushed(self): + print "Aide.PBBackPushed(): Not implemented yet" + + def PBForwardPushed(self): + print "Aide.PBForwardPushed(): Not implemented yet" + + def SlotSourceChanged(self): + print "Aide.SlotSourceChanged(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("Aide",s,c) diff --git a/UiQT4/aideQT.ui b/UiQT4/aideQT.ui new file mode 100644 index 00000000..40a8d593 --- /dev/null +++ b/UiQT4/aideQT.ui @@ -0,0 +1,131 @@ + +Aide + + + Aide + + + + 0 + 0 + 602 + 480 + + + + Aide + + + + unnamed + + + + layout2 + + + + unnamed + + + + PBIndex + + + + 0 + 30 + + + + Index + + + + + PBBack + + + true + + + + 0 + 30 + + + + Back + + + + + PBForward + + + true + + + + 0 + 30 + + + + Forward + + + + + + + TB1 + + + + + spacer1 + + + Horizontal + + + Expanding + + + + 311 + 20 + + + + + + + + PBBack + clicked() + TB1 + backward() + + + PBForward + clicked() + TB1 + forward() + + + PBIndex + clicked() + TB1 + home() + + + + PBIndexPushed() + PBBackPushed() + PBForwardPushed() + SlotSourceChanged() + + + diff --git a/UiQT4/desChoixCata.py b/UiQT4/desChoixCata.py new file mode 100644 index 00000000..22e37b83 --- /dev/null +++ b/UiQT4/desChoixCata.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desChoixCata.ui' +# +# Created: mar mar 25 10:05:07 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DChoixCata(QDialog): + def __init__(self,parent = None,name = None,modal = 0,fl = 0): + QDialog.__init__(self,parent,name,modal,fl) + + if not name: + self.setName("DChoixCata") + + self.setSizeGripEnabled(1) + + DChoixCataLayout = QGridLayout(self,1,1,11,6,"DChoixCataLayout") + + self.frame3 = QFrame(self,"frame3") + self.frame3.setFrameShape(QFrame.StyledPanel) + self.frame3.setFrameShadow(QFrame.Raised) + + self.buttonCancel = QPushButton(self.frame3,"buttonCancel") + self.buttonCancel.setGeometry(QRect(380,6,90,30)) + self.buttonCancel.setAutoDefault(1) + + self.buttonOk = QPushButton(self.frame3,"buttonOk") + self.buttonOk.setGeometry(QRect(40,6,90,30)) + self.buttonOk.setAutoDefault(1) + self.buttonOk.setDefault(1) + + DChoixCataLayout.addMultiCellWidget(self.frame3,2,2,0,1) + + self.TLNb = QLabel(self,"TLNb") + self.TLNb.setMinimumSize(QSize(30,0)) + + DChoixCataLayout.addWidget(self.TLNb,0,0) + + self.CBChoixCata = QComboBox(0,self,"CBChoixCata") + self.CBChoixCata.setEnabled(1) + + DChoixCataLayout.addWidget(self.CBChoixCata,1,1) + + self.textLabel1_2 = QLabel(self,"textLabel1_2") + self.textLabel1_2.setMinimumSize(QSize(380,60)) + + DChoixCataLayout.addWidget(self.textLabel1_2,1,0) + + self.languageChange() + + self.resize(QSize(547,172).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.buttonOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.buttonCancel,SIGNAL("clicked()"),self.BCancelPressed) + self.connect(self.CBChoixCata,SIGNAL("activated(const QString&)"),self.CataChoisi) + + + def languageChange(self): + self.setCaption(self.__tr("Choix d'une version du code Aster")) + self.buttonCancel.setText(self.__tr("&Cancel")) + self.buttonCancel.setAccel(QString.null) + self.buttonOk.setText(self.__tr("&OK")) + self.buttonOk.setAccel(QString.null) + self.TLNb.setText(self.__tr("2")) + self.textLabel1_2.setText(self.__tr("Veuillez choisir celle avec laquelle vous souhaitez travailler")) + + + def CataChoisi(self): + print "DChoixCata.CataChoisi(): Not implemented yet" + + def BOkPressed(self): + print "DChoixCata.BOkPressed(): Not implemented yet" + + def BCancelPressed(self): + print "DChoixCata.BCancelPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DChoixCata",s,c) diff --git a/UiQT4/desChoixCata.ui b/UiQT4/desChoixCata.ui new file mode 100644 index 00000000..8f6eff55 --- /dev/null +++ b/UiQT4/desChoixCata.ui @@ -0,0 +1,147 @@ + +DChoixCata + + + DChoixCata + + + + 0 + 0 + 547 + 172 + + + + Choix d'une version du code Aster + + + true + + + + unnamed + + + + frame3 + + + StyledPanel + + + Raised + + + + buttonCancel + + + + 380 + 6 + 90 + 30 + + + + &Cancel + + + + + + true + + + + + buttonOk + + + + 40 + 6 + 90 + 30 + + + + &OK + + + + + + true + + + true + + + + + + TLNb + + + + 30 + 0 + + + + 2 + + + + + CBChoixCata + + + true + + + + + textLabel1_2 + + + + 380 + 60 + + + + <font size="+1">Veuillez choisir celle avec laquelle vous souhaitez travailler</font> + + + + + + + buttonOk + clicked() + DChoixCata + BOkPressed() + + + buttonCancel + clicked() + DChoixCata + BCancelPressed() + + + CBChoixCata + activated(const QString&) + DChoixCata + CataChoisi() + + + + CataChoisi() + BOkPressed() + BCancelPressed() + + + diff --git a/UiQT4/desCommande.py b/UiQT4/desCommande.py new file mode 100644 index 00000000..2a4cc274 --- /dev/null +++ b/UiQT4/desCommande.py @@ -0,0 +1,228 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desCommande.ui' +# +# Created: ven mai 16 13:30:38 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DComm(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DComm") + + self.setMinimumSize(QSize(505,0)) + + DCommLayout = QGridLayout(self,1,1,11,6,"DCommLayout") + + self.Commentaire = QLabel(self,"Commentaire") + self.Commentaire.setFrameShape(QLabel.NoFrame) + self.Commentaire.setFrameShadow(QLabel.Plain) + + DCommLayout.addMultiCellWidget(self.Commentaire,1,1,0,2) + + self.bOk = QPushButton(self,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + DCommLayout.addWidget(self.bOk,2,1) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + + DCommLayout.addWidget(self.bSup,2,0) + + self.bHelp = QPushButton(self,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + + DCommLayout.addWidget(self.bHelp,2,2) + + self.TWChoix = QTabWidget(self,"TWChoix") + + self.MotClef = QWidget(self.TWChoix,"MotClef") + + self.textLabel1 = QLabel(self.MotClef,"textLabel1") + self.textLabel1.setGeometry(QRect(11,11,226,18)) + self.textLabel1.setMinimumSize(QSize(0,0)) + + self.LBMCPermis = QListBox(self.MotClef,"LBMCPermis") + self.LBMCPermis.setGeometry(QRect(11,35,226,342)) + self.LBMCPermis.setMinimumSize(QSize(0,0)) + + self.textLabel1_2 = QLabel(self.MotClef,"textLabel1_2") + self.textLabel1_2.setGeometry(QRect(243,11,225,18)) + + self.LBRegles = QListBox(self.MotClef,"LBRegles") + self.LBRegles.setGeometry(QRect(243,35,225,342)) + self.TWChoix.insertTab(self.MotClef,QString("")) + + self.Concept = QWidget(self.TWChoix,"Concept") + ConceptLayout = QGridLayout(self.Concept,1,1,11,6,"ConceptLayout") + + self.groupBox1 = QGroupBox(self.Concept,"groupBox1") + + self.textLabel1_3 = QLabel(self.groupBox1,"textLabel1_3") + self.textLabel1_3.setGeometry(QRect(80,50,130,31)) + + self.textLabel1_3_2 = QLabel(self.groupBox1,"textLabel1_3_2") + self.textLabel1_3_2.setGeometry(QRect(80,170,150,31)) + + self.LENomConcept = QLineEdit(self.groupBox1,"LENomConcept") + self.LENomConcept.setGeometry(QRect(80,110,310,30)) + + self.textLabel3 = QLabel(self.groupBox1,"textLabel3") + self.textLabel3.setGeometry(QRect(10,200,290,31)) + + self.typeConcept = QLabel(self.groupBox1,"typeConcept") + self.typeConcept.setGeometry(QRect(310,200,130,31)) + + ConceptLayout.addWidget(self.groupBox1,0,0) + self.TWChoix.insertTab(self.Concept,QString("")) + + self.Commande = QWidget(self.TWChoix,"Commande") + CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout") + + self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1") + + self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha") + self.RBalpha.setGeometry(QRect(20,20,120,20)) + self.RBalpha.setChecked(1) + + self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe") + self.RBGroupe.setGeometry(QRect(20,40,110,20)) + + CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3) + + self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande") + + CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3) + + self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4") + self.textLabel1_4.setMaximumSize(QSize(32767,20)) + + CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,2) + + self.textLabel4 = QLabel(self.Commande,"textLabel4") + + CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3) + + self.textLabel6 = QLabel(self.Commande,"textLabel6") + self.textLabel6.setMinimumSize(QSize(40,40)) + + CommandeLayout.addWidget(self.textLabel6,1,0) + + self.LEFiltre = QLineEdit(self.Commande,"LEFiltre") + self.LEFiltre.setMinimumSize(QSize(0,40)) + + CommandeLayout.addWidget(self.LEFiltre,1,1) + + self.BNext = QToolButton(self.Commande,"BNext") + self.BNext.setMinimumSize(QSize(70,40)) + self.BNext.setIconSet(QIconSet()) + + CommandeLayout.addWidget(self.BNext,1,2) + self.TWChoix.insertTab(self.Commande,QString("")) + + DCommLayout.addMultiCellWidget(self.TWChoix,0,0,0,2) + + self.languageChange() + + self.resize(QSize(505,483).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked) + self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) + self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) + self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.LENomConcept,SIGNAL("returnPressed()"),self.LENomConceptReturnPressed) + self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed) + + self.setTabOrder(self.LEFiltre,self.LBRegles) + self.setTabOrder(self.LBRegles,self.LENomConcept) + self.setTabOrder(self.LENomConcept,self.TWChoix) + self.setTabOrder(self.TWChoix,self.LBMCPermis) + self.setTabOrder(self.LBMCPermis,self.RBalpha) + self.setTabOrder(self.RBalpha,self.LBNouvCommande) + self.setTabOrder(self.LBNouvCommande,self.bOk) + self.setTabOrder(self.bOk,self.bSup) + self.setTabOrder(self.bSup,self.bHelp) + + + def languageChange(self): + self.setCaption(self.__tr("DComm")) + self.Commentaire.setText(QString.null) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.textLabel1.setText(self.__tr("

Mots Clefs Permis

")) + self.textLabel1_2.setText(self.__trUtf8("\x3c\x68\x33\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x75\x3e\x3c\x62\x3e\x52\xc3\xa8\x67\x6c\x65\x73\x3c\x2f\x62\x3e\x3c\x2f\x75\x3e\x3c\x2f\x70\x3e\x3c\x2f\x68\x33\x3e")) + self.TWChoix.changeTab(self.MotClef,self.__tr("Ajouter Mot-Clef")) + self.groupBox1.setTitle(self.__tr("Concept")) + self.textLabel1_3.setText(self.__tr("Nom du concept :")) + self.textLabel1_3_2.setText(self.__tr("Type du concept :")) + self.textLabel3.setText(self.__trUtf8("\x4c\x27\x6f\x70\xc3\xa9\x72\x61\x74\x65\x75\x72\x20\x72\x65\x74\x6f\x75\x72\x6e\x65\x20\x75\x6e\x20\x63\x6f\x6e\x63\x65\x70\x74\x20\x64\x65\x20\x74\x79\x70\x65\x20\x3a")) + self.typeConcept.setText(self.__tr("TypeDuConcept")) + self.TWChoix.changeTab(self.Concept,self.__tr("Nommer Concept")) + self.buttonGroup1.setTitle(self.__tr("Affichage")) + self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65")) + self.RBGroupe.setText(self.__tr("par groupe")) + self.textLabel1_4.setText(self.__tr("Commandes :")) + self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65")) + self.textLabel6.setText(self.__tr("Filtre")) + self.BNext.setText(self.__tr("Suivant")) + QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence")) + self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande")) + + + def LBNouvCommandeClicked(self): + print "DComm.LBNouvCommandeClicked(): Not implemented yet" + + def LEFiltreTextChanged(self): + print "DComm.LEFiltreTextChanged(): Not implemented yet" + + def LEfiltreReturnPressed(self): + print "DComm.LEfiltreReturnPressed(): Not implemented yet" + + def BSupPressed(self): + print "DComm.BSupPressed(): Not implemented yet" + + def LENomConceptReturnPressed(self): + print "DComm.LENomConceptReturnPressed(): Not implemented yet" + + def BOkPressed(self): + print "DComm.BOkPressed(): Not implemented yet" + + def BuildTabCommand(self): + print "DComm.BuildTabCommand(): Not implemented yet" + + def ViewDoc(self): + print "DComm.ViewDoc(): Not implemented yet" + + def BNextPressed(self): + print "DComm.BNextPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DComm",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DComm",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desCommande.ui b/UiQT4/desCommande.ui new file mode 100644 index 00000000..8bff53b5 --- /dev/null +++ b/UiQT4/desCommande.ui @@ -0,0 +1,511 @@ + +DComm + + + DComm + + + + 0 + 0 + 505 + 483 + + + + + 505 + 0 + + + + DComm + + + + unnamed + + + + Commentaire + + + NoFrame + + + Plain + + + + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + TWChoix + + + + MotClef + + + Ajouter Mot-Clef + + + + textLabel1 + + + + 11 + 11 + 226 + 18 + + + + + 0 + 0 + + + + <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> + + + + + LBMCPermis + + + + 11 + 35 + 226 + 342 + + + + + 0 + 0 + + + + + + textLabel1_2 + + + + 243 + 11 + 225 + 18 + + + + <h3><p align="center"><u><b>Règles</b></u></p></h3> + + + + + LBRegles + + + + 243 + 35 + 225 + 342 + + + + + + + Concept + + + Nommer Concept + + + + unnamed + + + + groupBox1 + + + Concept + + + + textLabel1_3 + + + + 80 + 50 + 130 + 31 + + + + <u>Nom du concept :</u> + + + + + textLabel1_3_2 + + + + 80 + 170 + 150 + 31 + + + + <u>Type du concept :</u> + + + + + LENomConcept + + + + 80 + 110 + 310 + 30 + + + + + + textLabel3 + + + + 10 + 200 + 290 + 31 + + + + L'opérateur retourne un concept de type : + + + + + typeConcept + + + + 310 + 200 + 130 + 31 + + + + TypeDuConcept + + + + + + + + Commande + + + Nouvelle Commande + + + + unnamed + + + + buttonGroup1 + + + Affichage + + + + RBalpha + + + + 20 + 20 + 120 + 20 + + + + alphabétique + + + true + + + + + RBGroupe + + + + 20 + 40 + 110 + 20 + + + + par groupe + + + + + + LBNouvCommande + + + + + textLabel1_4 + + + + 32767 + 20 + + + + <b><u>Commandes :</u></b> + + + + + textLabel4 + + + La commande choisie sera ajoutée APRES la commande courante + + + + + textLabel6 + + + + 40 + 40 + + + + Filtre + + + + + LEFiltre + + + + 0 + 40 + + + + + + BNext + + + + 70 + 40 + + + + Suivant + + + + + + affiche la prochaine occurence + + + + + + + + + + LBNouvCommande + doubleClicked(QListBoxItem*) + DComm + LBNouvCommandeClicked() + + + LEFiltre + textChanged(const QString&) + DComm + LEFiltreTextChanged() + + + LEFiltre + returnPressed() + DComm + LEfiltreReturnPressed() + + + bSup + pressed() + DComm + BSupPressed() + + + bOk + clicked() + DComm + BOkPressed() + + + LENomConcept + returnPressed() + DComm + LENomConceptReturnPressed() + + + RBGroupe + clicked() + DComm + BuildTabCommand() + + + RBalpha + clicked() + DComm + BuildTabCommand() + + + bHelp + clicked() + DComm + ViewDoc() + + + BNext + pressed() + DComm + BNextPressed() + + + + LEFiltre + LBRegles + LENomConcept + TWChoix + LBMCPermis + RBalpha + LBNouvCommande + bOk + bSup + bHelp + + + LBNouvCommandeClicked() + LEFiltreTextChanged() + LEfiltreReturnPressed() + BSupPressed() + LENomConceptReturnPressed() + BOkPressed() + BuildTabCommand() + ViewDoc() + BNextPressed() + + + diff --git a/UiQT4/desCommentaire.py b/UiQT4/desCommentaire.py new file mode 100644 index 00000000..7210da28 --- /dev/null +++ b/UiQT4/desCommentaire.py @@ -0,0 +1,182 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desCommentaire.ui' +# +# Created: ven mai 16 13:30:38 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DComment(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DComment") + + self.setMinimumSize(QSize(505,0)) + + DCommentLayout = QGridLayout(self,1,1,11,6,"DCommentLayout") + + self.TWChoix = QTabWidget(self,"TWChoix") + + self.Valeur_Parametre = QWidget(self.TWChoix,"Valeur_Parametre") + + self.textCommentaire = QTextEdit(self.Valeur_Parametre,"textCommentaire") + self.textCommentaire.setGeometry(QRect(0,0,480,390)) + self.TWChoix.insertTab(self.Valeur_Parametre,QString("")) + + self.Commande = QWidget(self.TWChoix,"Commande") + CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout") + + self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande") + + CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3) + + self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1") + + self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe") + self.RBGroupe.setGeometry(QRect(20,40,101,20)) + + self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha") + self.RBalpha.setGeometry(QRect(20,20,120,20)) + self.RBalpha.setChecked(1) + + CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3) + + self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4") + + CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,2) + + self.textLabel4 = QLabel(self.Commande,"textLabel4") + + CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3) + + self.LEFiltre = QLineEdit(self.Commande,"LEFiltre") + self.LEFiltre.setMinimumSize(QSize(160,30)) + + CommandeLayout.addWidget(self.LEFiltre,1,1) + + self.BNext = QToolButton(self.Commande,"BNext") + self.BNext.setMinimumSize(QSize(60,30)) + self.BNext.setIconSet(QIconSet()) + + CommandeLayout.addWidget(self.BNext,1,2) + + self.textLabel6 = QLabel(self.Commande,"textLabel6") + self.textLabel6.setMinimumSize(QSize(50,30)) + + CommandeLayout.addWidget(self.textLabel6,1,0) + self.TWChoix.insertTab(self.Commande,QString("")) + + DCommentLayout.addMultiCellWidget(self.TWChoix,0,0,0,2) + + self.bOk = QPushButton(self,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + DCommentLayout.addWidget(self.bOk,2,1) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + + DCommentLayout.addWidget(self.bSup,2,0) + + self.bHelp = QPushButton(self,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + + DCommentLayout.addWidget(self.bHelp,2,2) + + self.Commentaire = QLabel(self,"Commentaire") + self.Commentaire.setFrameShape(QLabel.NoFrame) + self.Commentaire.setFrameShadow(QLabel.Plain) + + DCommentLayout.addMultiCellWidget(self.Commentaire,1,1,0,2) + + self.languageChange() + + self.resize(QSize(505,483).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked) + self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) + self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) + self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed) + + self.setTabOrder(self.LEFiltre,self.TWChoix) + self.setTabOrder(self.TWChoix,self.textCommentaire) + self.setTabOrder(self.textCommentaire,self.LBNouvCommande) + self.setTabOrder(self.LBNouvCommande,self.RBalpha) + self.setTabOrder(self.RBalpha,self.bOk) + self.setTabOrder(self.bOk,self.bSup) + self.setTabOrder(self.bSup,self.bHelp) + + + def languageChange(self): + self.setCaption(self.__tr("DComm")) + self.TWChoix.changeTab(self.Valeur_Parametre,self.__tr("Commentaire")) + self.buttonGroup1.setTitle(self.__tr("Affichage")) + self.RBGroupe.setText(self.__tr("par groupe")) + self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65")) + self.textLabel1_4.setText(self.__tr("Commandes :")) + self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65")) + self.BNext.setText(self.__tr("Suivant")) + QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence")) + self.textLabel6.setText(self.__tr("Filtre")) + self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.Commentaire.setText(QString.null) + + + def LBNouvCommandeClicked(self): + print "DComment.LBNouvCommandeClicked(): Not implemented yet" + + def LEFiltreTextChanged(self): + print "DComment.LEFiltreTextChanged(): Not implemented yet" + + def LEfiltreReturnPressed(self): + print "DComment.LEfiltreReturnPressed(): Not implemented yet" + + def BSupPressed(self): + print "DComment.BSupPressed(): Not implemented yet" + + def LENomConceptReturnPressed(self): + print "DComment.LENomConceptReturnPressed(): Not implemented yet" + + def BOkPressed(self): + print "DComment.BOkPressed(): Not implemented yet" + + def BuildTabCommand(self): + print "DComment.BuildTabCommand(): Not implemented yet" + + def ViewDoc(self): + print "DComment.ViewDoc(): Not implemented yet" + + def BNextPressed(self): + print "DComment.BNextPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DComment",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DComment",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desCommentaire.ui b/UiQT4/desCommentaire.ui new file mode 100644 index 00000000..e9cfa820 --- /dev/null +++ b/UiQT4/desCommentaire.ui @@ -0,0 +1,342 @@ + +DComment + + + DComment + + + + 0 + 0 + 505 + 483 + + + + + 505 + 0 + + + + DComm + + + + unnamed + + + + TWChoix + + + + Valeur_Parametre + + + Commentaire + + + + textCommentaire + + + + 0 + 0 + 480 + 390 + + + + + + + Commande + + + Nouvelle Commande + + + + unnamed + + + + LBNouvCommande + + + + + buttonGroup1 + + + Affichage + + + + RBGroupe + + + + 20 + 40 + 101 + 20 + + + + par groupe + + + + + RBalpha + + + + 20 + 20 + 120 + 20 + + + + alphabétique + + + true + + + + + + textLabel1_4 + + + <b><u>Commandes :</u></b> + + + + + textLabel4 + + + La commande choisie sera ajoutée APRES la commande courante + + + + + LEFiltre + + + + 160 + 30 + + + + + + BNext + + + + 60 + 30 + + + + Suivant + + + + + + affiche la prochaine occurence + + + + + textLabel6 + + + + 50 + 30 + + + + Filtre + + + + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + Commentaire + + + NoFrame + + + Plain + + + + + + + + + + LBNouvCommande + doubleClicked(QListBoxItem*) + DComment + LBNouvCommandeClicked() + + + LEFiltre + textChanged(const QString&) + DComment + LEFiltreTextChanged() + + + LEFiltre + returnPressed() + DComment + LEfiltreReturnPressed() + + + bSup + pressed() + DComment + BSupPressed() + + + bOk + clicked() + DComment + BOkPressed() + + + RBGroupe + clicked() + DComment + BuildTabCommand() + + + RBalpha + clicked() + DComment + BuildTabCommand() + + + bHelp + clicked() + DComment + ViewDoc() + + + BNext + pressed() + DComment + BNextPressed() + + + + LEFiltre + TWChoix + textCommentaire + LBNouvCommande + RBalpha + bOk + bSup + bHelp + + + LBNouvCommandeClicked() + LEFiltreTextChanged() + LEfiltreReturnPressed() + BSupPressed() + LENomConceptReturnPressed() + BOkPressed() + BuildTabCommand() + ViewDoc() + BNextPressed() + + + diff --git a/UiQT4/desError.py b/UiQT4/desError.py new file mode 100644 index 00000000..b9c59795 --- /dev/null +++ b/UiQT4/desError.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desError.ui' +# +# Created: mar mar 25 10:05:08 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DError(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DError") + + self.setMinimumSize(QSize(350,0)) + + DErrorLayout = QGridLayout(self,1,1,11,6,"DErrorLayout") + + self.textLabel1_3 = QLabel(self,"textLabel1_3") + + DErrorLayout.addWidget(self.textLabel1_3,0,0) + + layout1 = QHBoxLayout(None,0,6,"layout1") + spacer1_2 = QSpacerItem(171,20,QSizePolicy.Expanding,QSizePolicy.Minimum) + layout1.addItem(spacer1_2) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setAutoDefault(1) + layout1.addWidget(self.bSup) + spacer1 = QSpacerItem(171,20,QSizePolicy.Expanding,QSizePolicy.Minimum) + layout1.addItem(spacer1) + + DErrorLayout.addLayout(layout1,1,0) + + self.languageChange() + + self.resize(QSize(482,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + + + def languageChange(self): + self.setCaption(self.__tr("DInactif")) + self.textLabel1_3.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x34\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x4c\x65\x20\x6e\x6f\x65\x75\x64\x20\x73\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\xc3\xa9\x20\x6e\x65\x20\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\x20\x70\x61\x73\x20\xc3\xa0\x20\x75\x6e\x20\x6f\x62\x6a\x65\x74\x20\x61\x63\x74\x69\x66\x2e\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + + + def BSupPressed(self): + print "DError.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DError.ViewDoc(): Not implemented yet" + + def BOkPressed(self): + print "DError.BOkPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DError",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DError",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desError.ui b/UiQT4/desError.ui new file mode 100644 index 00000000..9dd94bbd --- /dev/null +++ b/UiQT4/desError.ui @@ -0,0 +1,113 @@ + +DError + + + DError + + + + 0 + 0 + 482 + 480 + + + + + 350 + 0 + + + + DInactif + + + + unnamed + + + + textLabel1_3 + + + <font size="+4"><p align="center">Le noeud sélectionné ne correspond pas à un objet actif.</p></font> + + + + + layout1 + + + + unnamed + + + + spacer1_2 + + + Horizontal + + + Expanding + + + + 171 + 20 + + + + + + bSup + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + spacer1 + + + Horizontal + + + Expanding + + + + 171 + 20 + + + + + + + + + + bSup + clicked() + DError + BSupPressed() + + + + BSupPressed() + ViewDoc() + BOkPressed() + + + diff --git a/UiQT4/desFormule.py b/UiQT4/desFormule.py new file mode 100644 index 00000000..6d7b72c2 --- /dev/null +++ b/UiQT4/desFormule.py @@ -0,0 +1,260 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desFormule.ui' +# +# Created: ven mai 16 13:30:38 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DFormule(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DFormule") + + self.setMinimumSize(QSize(505,0)) + + DFormuleLayout = QGridLayout(self,1,1,11,6,"DFormuleLayout") + + layout4 = QHBoxLayout(None,0,6,"layout4") + + self.bSup = QPushButton(self,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + layout4.addWidget(self.bSup) + + self.bOk = QPushButton(self,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + layout4.addWidget(self.bOk) + + self.bHelp = QPushButton(self,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + layout4.addWidget(self.bHelp) + + DFormuleLayout.addLayout(layout4,2,0) + + self.Commentaire = QLabel(self,"Commentaire") + + DFormuleLayout.addWidget(self.Commentaire,1,0) + + self.TWChoix = QTabWidget(self,"TWChoix") + + self.Formule = QWidget(self.TWChoix,"Formule") + FormuleLayout = QGridLayout(self.Formule,1,1,11,6,"FormuleLayout") + + self.textLabel1 = QLabel(self.Formule,"textLabel1") + self.textLabel1.setMinimumSize(QSize(0,0)) + + FormuleLayout.addWidget(self.textLabel1,0,0) + + self.textLabel1_3 = QLabel(self.Formule,"textLabel1_3") + + FormuleLayout.addMultiCellWidget(self.textLabel1_3,6,6,0,1) + + layout6 = QHBoxLayout(None,0,6,"layout6") + + self.LENomFormule = QLineEdit(self.Formule,"LENomFormule") + self.LENomFormule.setMinimumSize(QSize(0,40)) + layout6.addWidget(self.LENomFormule) + + layout4_2 = QHBoxLayout(None,0,6,"layout4_2") + + self.textLabel1_6 = QLabel(self.Formule,"textLabel1_6") + layout4_2.addWidget(self.textLabel1_6) + + self.LENomsArgs = QLineEdit(self.Formule,"LENomsArgs") + self.LENomsArgs.setMinimumSize(QSize(230,40)) + layout4_2.addWidget(self.LENomsArgs) + + self.textLabel1_6_2 = QLabel(self.Formule,"textLabel1_6_2") + layout4_2.addWidget(self.textLabel1_6_2) + layout6.addLayout(layout4_2) + + FormuleLayout.addMultiCellLayout(layout6,2,2,0,1) + + self.textLabel2 = QLabel(self.Formule,"textLabel2") + + FormuleLayout.addWidget(self.textLabel2,1,1) + + self.textLabel1_3_2 = QLabel(self.Formule,"textLabel1_3_2") + + FormuleLayout.addMultiCellWidget(self.textLabel1_3_2,7,7,0,1) + + self.textLabel2_2 = QLabel(self.Formule,"textLabel2_2") + + FormuleLayout.addMultiCellWidget(self.textLabel2_2,3,3,0,1) + + self.textLabel1_5 = QLabel(self.Formule,"textLabel1_5") + self.textLabel1_5.setMinimumSize(QSize(0,0)) + + FormuleLayout.addMultiCellWidget(self.textLabel1_5,4,4,0,1) + + self.LECorpsFormule = QLineEdit(self.Formule,"LECorpsFormule") + self.LECorpsFormule.setMinimumSize(QSize(0,30)) + + FormuleLayout.addMultiCellWidget(self.LECorpsFormule,5,5,0,1) + + self.textLabel1_2 = QLabel(self.Formule,"textLabel1_2") + + FormuleLayout.addWidget(self.textLabel1_2,0,1) + self.TWChoix.insertTab(self.Formule,QString("")) + + self.Commande = QWidget(self.TWChoix,"Commande") + CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout") + + self.textLabel4 = QLabel(self.Commande,"textLabel4") + + CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3) + + self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1") + + LayoutWidget = QWidget(self.buttonGroup1,"layout1") + LayoutWidget.setGeometry(QRect(20,20,113,48)) + layout1 = QVBoxLayout(LayoutWidget,11,6,"layout1") + + self.RBalpha = QRadioButton(LayoutWidget,"RBalpha") + self.RBalpha.setChecked(1) + layout1.addWidget(self.RBalpha) + + self.RBGroupe = QRadioButton(LayoutWidget,"RBGroupe") + layout1.addWidget(self.RBGroupe) + + CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3) + + self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande") + + CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3) + + self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4") + + CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,2) + + self.textLabel6 = QLabel(self.Commande,"textLabel6") + self.textLabel6.setMinimumSize(QSize(40,0)) + + CommandeLayout.addWidget(self.textLabel6,1,0) + + self.LEFiltre = QLineEdit(self.Commande,"LEFiltre") + self.LEFiltre.setMinimumSize(QSize(160,40)) + + CommandeLayout.addWidget(self.LEFiltre,1,1) + + self.BNext = QToolButton(self.Commande,"BNext") + self.BNext.setMinimumSize(QSize(60,40)) + self.BNext.setIconSet(QIconSet()) + + CommandeLayout.addWidget(self.BNext,1,2) + self.TWChoix.insertTab(self.Commande,QString("")) + + DFormuleLayout.addWidget(self.TWChoix,0,0) + + self.languageChange() + + self.resize(QSize(529,493).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked) + self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) + self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) + self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed) + self.connect(self.LENomFormule,SIGNAL("returnPressed()"),self.NomFormuleSaisi) + self.connect(self.LENomsArgs,SIGNAL("returnPressed()"),self.argsSaisis) + self.connect(self.LECorpsFormule,SIGNAL("returnPressed()"),self.FormuleSaisie) + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + + self.setTabOrder(self.LEFiltre,self.LENomFormule) + self.setTabOrder(self.LENomFormule,self.LENomsArgs) + self.setTabOrder(self.LENomsArgs,self.LECorpsFormule) + self.setTabOrder(self.LECorpsFormule,self.bSup) + self.setTabOrder(self.bSup,self.bOk) + self.setTabOrder(self.bOk,self.bHelp) + self.setTabOrder(self.bHelp,self.TWChoix) + self.setTabOrder(self.TWChoix,self.RBalpha) + self.setTabOrder(self.RBalpha,self.RBGroupe) + self.setTabOrder(self.RBGroupe,self.LBNouvCommande) + + + def languageChange(self): + self.setCaption(self.__tr("DMacro")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.Commentaire.setText(QString.null) + self.textLabel1.setText(self.__tr("

Nom de la formule

")) + self.textLabel1_3.setText(self.__trUtf8("\x52\x65\x74\x6f\x75\x72\x2d\x43\x68\x61\x72\x69\x6f\x74\x20\x70\x65\x72\x6d\x65\x74\x20\x64\x65\x20\x76\xc3\xa9\x72\x69\x66\x69\x65\x72\x20\x71\x75\x65\x20\x6c\x27\x65\x78\x70\x72\x65\x73\x73\x69\x6f\x6e\x20\x65\x73\x74\x20\x76\x61\x6c\x69\x64\x65\x2e")) + self.textLabel1_6.setText(self.__tr("

(

")) + self.textLabel1_6_2.setText(self.__tr("

)

")) + self.textLabel2.setText(self.__trUtf8("\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x20\x73\xc3\xa9\x70\x61\x72\xc3\xa9\x65\x73\x20\x70\x61\x72\x20\x64\x65\x73\x20\x22\x2c\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x20\x65\x78\x2e\x20\x3a\x20\x78\x2c\x79\x2c\x7a")) + self.textLabel1_3_2.setText(self.__trUtf8("\x43\x65\x20\x6e\x27\x65\x73\x74\x20\x71\x75\x27\x61\x70\x72\xc3\xa8\x73\x20\x61\x76\x6f\x69\x72\x20\x61\x70\x70\x75\x79\xc3\xa9\x20\x73\x75\x72\x20\x6c\x65\x20\x62\x6f\x75\x74\x6f\x6e\x20\x56\x61\x6c\x69\x64\x65\x72\x20\x71\x75\x65\x20\x6c\x65\x73\x20\x6e\x6f\x75\x76\x65\x6c\x6c\x65\x73\x0a\x76\x61\x6c\x65\x75\x72\x73\x20\x73\x65\x72\x6f\x6e\x74\x20\x65\x66\x66\x65\x63\x74\x69\x76\x65\x6d\x65\x6e\x74\x20\x70\x72\x69\x73\x65\x73\x20\x65\x6e\x20\x63\x6f\x6d\x70\x74\x65")) + self.textLabel2_2.setText(self.__tr("=")) + self.textLabel1_5.setText(self.__tr("

Expression

")) + self.textLabel1_2.setText(self.__tr("

Arguments

")) + self.TWChoix.changeTab(self.Formule,self.__trUtf8("\x44\xc3\xa9\x66\x69\x6e\x69\x74\x69\x6f\x6e\x20\x46\x6f\x72\x6d\x75\x6c\x65")) + self.textLabel4.setText(self.__trUtf8("\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x6c\x65\x66\x74\x22\x3e\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65\x3c\x2f\x70\x3e")) + self.buttonGroup1.setTitle(self.__tr("Affichage")) + self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65")) + self.RBGroupe.setText(self.__tr("par groupe")) + self.textLabel1_4.setText(self.__tr("Commandes :")) + self.textLabel6.setText(self.__tr("Filtre")) + self.BNext.setText(self.__tr("Suivant")) + QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence")) + self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande")) + + + def LBNouvCommandeClicked(self): + print "DFormule.LBNouvCommandeClicked(): Not implemented yet" + + def LEFiltreTextChanged(self): + print "DFormule.LEFiltreTextChanged(): Not implemented yet" + + def LEfiltreReturnPressed(self): + print "DFormule.LEfiltreReturnPressed(): Not implemented yet" + + def BSupPressed(self): + print "DFormule.BSupPressed(): Not implemented yet" + + def BOkPressed(self): + print "DFormule.BOkPressed(): Not implemented yet" + + def BuildTabCommand(self): + print "DFormule.BuildTabCommand(): Not implemented yet" + + def BNextPressed(self): + print "DFormule.BNextPressed(): Not implemented yet" + + def NomFormuleSaisi(self): + print "DFormule.NomFormuleSaisi(): Not implemented yet" + + def argsSaisis(self): + print "DFormule.argsSaisis(): Not implemented yet" + + def FormuleSaisie(self): + print "DFormule.FormuleSaisie(): Not implemented yet" + + def ViewDoc(self): + print "DFormule.ViewDoc(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DFormule",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DFormule",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desFormule.ui b/UiQT4/desFormule.ui new file mode 100644 index 00000000..37d5e0a2 --- /dev/null +++ b/UiQT4/desFormule.ui @@ -0,0 +1,502 @@ + +DFormule + + + DFormule + + + + 0 + 0 + 529 + 493 + + + + + 505 + 0 + + + + DMacro + + + + unnamed + + + + layout4 + + + + unnamed + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + + + Commentaire + + + + + + + + TWChoix + + + + Formule + + + Définition Formule + + + + unnamed + + + + textLabel1 + + + + 0 + 0 + + + + <h3><p align="center"><u><b>Nom de la formule</b></u></p></h3> + + + + + textLabel1_3 + + + Retour-Chariot permet de vérifier que l'expression est valide. + + + + + layout6 + + + + unnamed + + + + LENomFormule + + + + 0 + 40 + + + + + + layout4 + + + + unnamed + + + + textLabel1_6 + + + <h1><b>(</b></h1> + + + + + LENomsArgs + + + + 230 + 40 + + + + + + textLabel1_6_2 + + + <h1><b>)</b></h1> + + + + + + + + + textLabel2 + + + variables séparées par des "," + par ex. : x,y,z + + + + + textLabel1_3_2 + + + Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles +valeurs seront effectivement prises en compte + + + + + textLabel2_2 + + + <font size="+4" face="Helvetica"><b>=</b></font> + + + + + textLabel1_5 + + + + 0 + 0 + + + + <h3><p align="center"><u><b>Expression</b></u></p></h3> + + + + + LECorpsFormule + + + + 0 + 30 + + + + + + textLabel1_2 + + + <h3><p align="center"><u><b>Arguments</b></u></p></h3> + + + + + + + Commande + + + Nouvelle Commande + + + + unnamed + + + + textLabel4 + + + <p align="left">La commande choisie sera ajoutée APRES la commande courante</p> + + + + + buttonGroup1 + + + Affichage + + + + layout1 + + + + 20 + 20 + 113 + 48 + + + + + unnamed + + + + RBalpha + + + alphabétique + + + true + + + + + RBGroupe + + + par groupe + + + + + + + + LBNouvCommande + + + + + textLabel1_4 + + + <b><u>Commandes :</u></b> + + + + + textLabel6 + + + + 40 + 0 + + + + Filtre + + + + + LEFiltre + + + + 160 + 40 + + + + + + BNext + + + + 60 + 40 + + + + Suivant + + + + + + affiche la prochaine occurence + + + + + + + + + + LBNouvCommande + doubleClicked(QListBoxItem*) + DFormule + LBNouvCommandeClicked() + + + LEFiltre + textChanged(const QString&) + DFormule + LEFiltreTextChanged() + + + LEFiltre + returnPressed() + DFormule + LEfiltreReturnPressed() + + + bSup + pressed() + DFormule + BSupPressed() + + + bOk + clicked() + DFormule + BOkPressed() + + + RBalpha + clicked() + DFormule + BuildTabCommand() + + + RBGroupe + clicked() + DFormule + BuildTabCommand() + + + BNext + clicked() + DFormule + BNextPressed() + + + LENomFormule + returnPressed() + DFormule + NomFormuleSaisi() + + + LENomsArgs + returnPressed() + DFormule + argsSaisis() + + + LECorpsFormule + returnPressed() + DFormule + FormuleSaisie() + + + bHelp + clicked() + DFormule + ViewDoc() + + + + LEFiltre + LENomFormule + LENomsArgs + LECorpsFormule + bSup + bOk + bHelp + TWChoix + RBalpha + RBGroupe + LBNouvCommande + + + LBNouvCommandeClicked() + LEFiltreTextChanged() + LEfiltreReturnPressed() + BSupPressed() + BOkPressed() + BuildTabCommand() + BNextPressed() + NomFormuleSaisi() + argsSaisis() + FormuleSaisie() + ViewDoc() + + + diff --git a/UiQT4/desInactif.py b/UiQT4/desInactif.py new file mode 100644 index 00000000..39e7cce7 --- /dev/null +++ b/UiQT4/desInactif.py @@ -0,0 +1,75 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desInactif.ui' +# +# Created: mar mar 25 10:05:08 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DInactif(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DInactif") + + self.setMinimumSize(QSize(350,0)) + + DInactifLayout = QGridLayout(self,1,1,11,6,"DInactifLayout") + + self.textLabel1_3 = QLabel(self,"textLabel1_3") + + DInactifLayout.addWidget(self.textLabel1_3,0,0) + + self.textLabel1 = QLabel(self,"textLabel1") + + DInactifLayout.addWidget(self.textLabel1,1,0) + + layout1 = QHBoxLayout(None,0,6,"layout1") + spacer2 = QSpacerItem(171,20,QSizePolicy.Expanding,QSizePolicy.Minimum) + layout1.addItem(spacer2) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setAutoDefault(1) + layout1.addWidget(self.bSup) + spacer1 = QSpacerItem(171,20,QSizePolicy.Expanding,QSizePolicy.Minimum) + layout1.addItem(spacer1) + + DInactifLayout.addLayout(layout1,2,0) + + self.languageChange() + + self.resize(QSize(482,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + + + def languageChange(self): + self.setCaption(self.__tr("DInactif")) + self.textLabel1_3.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x32\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x4c\x65\x20\x6e\x6f\x65\x75\x64\x20\x73\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\xc3\xa9\x20\x6e\x65\x20\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\x20\x70\x61\x73\x20\xc3\xa0\x20\x75\x6e\x20\x6f\x62\x6a\x65\x74\x20\x61\x63\x74\x69\x66\x2e\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e")) + self.textLabel1.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x32\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x0a\x53\x65\x75\x6c\x65\x73\x20\x6c\x65\x73\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x73\x20\x70\x6c\x61\x63\xc3\xa9\x65\x73\x20\x65\x6e\x74\x72\x65\x20\x3a\x0a\x0a\x44\x45\x42\x55\x54\x20\x2f\x20\x46\x49\x4e\x0a\x0a\x73\x6f\x6e\x74\x20\x61\x63\x74\x69\x76\x65\x73\x0a\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + + + def BSupPressed(self): + print "DInactif.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DInactif.ViewDoc(): Not implemented yet" + + def BOkPressed(self): + print "DInactif.BOkPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DInactif",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DInactif",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desInactif.ui b/UiQT4/desInactif.ui new file mode 100644 index 00000000..1b8f7f32 --- /dev/null +++ b/UiQT4/desInactif.ui @@ -0,0 +1,127 @@ + +DInactif + + + DInactif + + + + 0 + 0 + 482 + 480 + + + + + 350 + 0 + + + + DInactif + + + + unnamed + + + + textLabel1_3 + + + <font size="+2"><p align="center">Le noeud sélectionné ne correspond pas à un objet actif.</p></font> + + + + + textLabel1 + + + <font size="+2"><p align="center"> +Seules les commandes placées entre : + +DEBUT / FIN + +sont actives +</p></font> + + + + + layout1 + + + + unnamed + + + + spacer2 + + + Horizontal + + + Expanding + + + + 171 + 20 + + + + + + bSup + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + spacer1 + + + Horizontal + + + Expanding + + + + 171 + 20 + + + + + + + + + + bSup + clicked() + DInactif + BSupPressed() + + + + BSupPressed() + ViewDoc() + BOkPressed() + + + diff --git a/UiQT4/desInclude.py b/UiQT4/desInclude.py new file mode 100644 index 00000000..dfe0d625 --- /dev/null +++ b/UiQT4/desInclude.py @@ -0,0 +1,240 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desInclude.ui' +# +# Created: ven mai 16 13:30:38 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DInc1(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DInc1") + + self.setMinimumSize(QSize(505,0)) + + DInc1Layout = QGridLayout(self,1,1,11,6,"DInc1Layout") + + self.bOk = QPushButton(self,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + DInc1Layout.addWidget(self.bOk,2,1) + + self.bHelp = QPushButton(self,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + + DInc1Layout.addWidget(self.bHelp,2,2) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + + DInc1Layout.addWidget(self.bSup,2,0) + + self.Commentaire = QLabel(self,"Commentaire") + + DInc1Layout.addMultiCellWidget(self.Commentaire,1,1,0,2) + + self.TWChoix = QTabWidget(self,"TWChoix") + + self.MotClef = QWidget(self.TWChoix,"MotClef") + MotClefLayout = QGridLayout(self.MotClef,1,1,11,6,"MotClefLayout") + + self.LBMCPermis = QListBox(self.MotClef,"LBMCPermis") + self.LBMCPermis.setMinimumSize(QSize(0,0)) + + MotClefLayout.addWidget(self.LBMCPermis,1,0) + + self.textLabel1 = QLabel(self.MotClef,"textLabel1") + self.textLabel1.setMinimumSize(QSize(0,0)) + + MotClefLayout.addWidget(self.textLabel1,0,0) + + self.LBRegles = QListBox(self.MotClef,"LBRegles") + + MotClefLayout.addWidget(self.LBRegles,1,1) + + self.textLabel1_2 = QLabel(self.MotClef,"textLabel1_2") + + MotClefLayout.addWidget(self.textLabel1_2,0,1) + self.TWChoix.insertTab(self.MotClef,QString("")) + + self.Commande = QWidget(self.TWChoix,"Commande") + CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout") + + self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande") + + CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3) + + self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1") + + self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe") + self.RBGroupe.setGeometry(QRect(20,40,101,20)) + + self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha") + self.RBalpha.setGeometry(QRect(20,20,120,20)) + self.RBalpha.setChecked(1) + + CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3) + + self.textLabel4 = QLabel(self.Commande,"textLabel4") + + CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3) + + self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4") + + CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,2) + + self.textLabel6 = QLabel(self.Commande,"textLabel6") + self.textLabel6.setMinimumSize(QSize(40,0)) + + CommandeLayout.addWidget(self.textLabel6,1,0) + + self.LEFiltre = QLineEdit(self.Commande,"LEFiltre") + self.LEFiltre.setMinimumSize(QSize(160,40)) + + CommandeLayout.addWidget(self.LEFiltre,1,1) + + self.BNext = QToolButton(self.Commande,"BNext") + self.BNext.setMinimumSize(QSize(60,0)) + self.BNext.setIconSet(QIconSet()) + + CommandeLayout.addWidget(self.BNext,1,2) + self.TWChoix.insertTab(self.Commande,QString("")) + + self.TabPage = QWidget(self.TWChoix,"TabPage") + + self.textLabel1_3 = QLabel(self.TabPage,"textLabel1_3") + self.textLabel1_3.setGeometry(QRect(30,40,440,41)) + + self.LENomFichier = QLineEdit(self.TabPage,"LENomFichier") + self.LENomFichier.setGeometry(QRect(18,117,450,40)) + self.LENomFichier.setSizePolicy(QSizePolicy(0,0,0,0,self.LENomFichier.sizePolicy().hasHeightForWidth())) + self.LENomFichier.setMinimumSize(QSize(450,40)) + + self.BBrowse = QPushButton(self.TabPage,"BBrowse") + self.BBrowse.setGeometry(QRect(288,306,161,41)) + self.BBrowse.setSizePolicy(QSizePolicy(0,0,0,0,self.BBrowse.sizePolicy().hasHeightForWidth())) + + self.BChangeFile = QPushButton(self.TabPage,"BChangeFile") + self.BChangeFile.setGeometry(QRect(290,350,161,41)) + self.BChangeFile.setSizePolicy(QSizePolicy(0,0,0,0,self.BChangeFile.sizePolicy().hasHeightForWidth())) + self.TWChoix.insertTab(self.TabPage,QString("")) + + self.TabPage_2 = QWidget(self.TWChoix,"TabPage_2") + TabPageLayout = QGridLayout(self.TabPage_2,1,1,11,6,"TabPageLayout") + + self.textLabel1_5 = QLabel(self.TabPage_2,"textLabel1_5") + + TabPageLayout.addWidget(self.textLabel1_5,0,0) + self.TWChoix.insertTab(self.TabPage_2,QString("")) + + DInc1Layout.addMultiCellWidget(self.TWChoix,0,0,0,2) + + self.languageChange() + + self.resize(QSize(521,511).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked) + self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) + self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) + self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed) + self.connect(self.BBrowse,SIGNAL("clicked()"),self.BBrowsePressed) + self.connect(self.LENomFichier,SIGNAL("returnPressed()"),self.LENomFichReturnPressed) + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + + self.setTabOrder(self.LEFiltre,self.LENomFichier) + self.setTabOrder(self.LENomFichier,self.bHelp) + self.setTabOrder(self.bHelp,self.bSup) + self.setTabOrder(self.bSup,self.bOk) + self.setTabOrder(self.bOk,self.TWChoix) + self.setTabOrder(self.TWChoix,self.LBMCPermis) + self.setTabOrder(self.LBMCPermis,self.LBRegles) + self.setTabOrder(self.LBRegles,self.LBNouvCommande) + self.setTabOrder(self.LBNouvCommande,self.RBalpha) + self.setTabOrder(self.RBalpha,self.BBrowse) + self.setTabOrder(self.BBrowse,self.BChangeFile) + + + def languageChange(self): + self.setCaption(self.__tr("DMacro")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.Commentaire.setText(QString.null) + self.textLabel1.setText(self.__tr("

Mots Clefs Permis

")) + self.textLabel1_2.setText(self.__trUtf8("\x3c\x68\x33\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x75\x3e\x3c\x62\x3e\x52\xc3\xa9\x67\x6c\x65\x73\x3c\x2f\x62\x3e\x3c\x2f\x75\x3e\x3c\x2f\x70\x3e\x3c\x2f\x68\x33\x3e")) + self.TWChoix.changeTab(self.MotClef,self.__tr("Ajouter Mot-Clef")) + self.buttonGroup1.setTitle(self.__tr("Affichage")) + self.RBGroupe.setText(self.__tr("par groupe")) + self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65")) + self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65")) + self.textLabel1_4.setText(self.__tr("Commandes :")) + self.textLabel6.setText(self.__tr("Filtre")) + self.BNext.setText(self.__tr("Suivant")) + QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence")) + self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande")) + self.textLabel1_3.setText(self.__tr("La commande INCLUDE requiert un nom de Fichier :")) + self.BBrowse.setText(self.__tr("Edit")) + self.BChangeFile.setText(self.__tr("Autre Fichier")) + self.TWChoix.changeTab(self.TabPage,self.__tr("Fichier Include")) + self.textLabel1_5.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x31\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x49\x4e\x43\x4c\x55\x44\x45\x20\x6e\x27\x61\x20\x70\x61\x73\x20\x64\x65\x20\x66\x69\x63\x68\x69\x65\x72\x20\x61\x73\x73\x6f\x63\x69\xc3\xa9\x2e\x0a\x49\x6c\x20\x66\x61\x75\x74\x20\x64\x27\x61\x62\x6f\x72\x64\x20\x63\x68\x6f\x69\x73\x69\x72\x20\x75\x6e\x20\x6e\x75\x6d\xc3\xa9\x72\x6f\x20\x64\x27\x75\x6e\x69\x74\xc3\xa9\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e")) + self.TWChoix.changeTab(self.TabPage_2,self.__tr("Fichier Inc")) + + + def LBNouvCommandeClicked(self): + print "DInc1.LBNouvCommandeClicked(): Not implemented yet" + + def LEFiltreTextChanged(self): + print "DInc1.LEFiltreTextChanged(): Not implemented yet" + + def LEfiltreReturnPressed(self): + print "DInc1.LEfiltreReturnPressed(): Not implemented yet" + + def BSupPressed(self): + print "DInc1.BSupPressed(): Not implemented yet" + + def BOkPressed(self): + print "DInc1.BOkPressed(): Not implemented yet" + + def BuildTabCommand(self): + print "DInc1.BuildTabCommand(): Not implemented yet" + + def BNextPressed(self): + print "DInc1.BNextPressed(): Not implemented yet" + + def BBrowsePressed(self): + print "DInc1.BBrowsePressed(): Not implemented yet" + + def LENomFichReturnPressed(self): + print "DInc1.LENomFichReturnPressed(): Not implemented yet" + + def ViewDoc(self): + print "DInc1.ViewDoc(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DInc1",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DInc1",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desInclude.ui b/UiQT4/desInclude.ui new file mode 100644 index 00000000..9edfc3e7 --- /dev/null +++ b/UiQT4/desInclude.ui @@ -0,0 +1,504 @@ + +DInc1 + + + DInc1 + + + + 0 + 0 + 521 + 511 + + + + + 505 + 0 + + + + DMacro + + + + unnamed + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + Commentaire + + + + + + + + TWChoix + + + + MotClef + + + Ajouter Mot-Clef + + + + unnamed + + + + LBMCPermis + + + + 0 + 0 + + + + + + textLabel1 + + + + 0 + 0 + + + + <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> + + + + + LBRegles + + + + + textLabel1_2 + + + <h3><p align="center"><u><b>Régles</b></u></p></h3> + + + + + + + Commande + + + Nouvelle Commande + + + + unnamed + + + + LBNouvCommande + + + + + buttonGroup1 + + + Affichage + + + + RBGroupe + + + + 20 + 40 + 101 + 20 + + + + par groupe + + + + + RBalpha + + + + 20 + 20 + 120 + 20 + + + + alphabétique + + + true + + + + + + textLabel4 + + + La commande choisie sera ajoutée APRES la commande courante + + + + + textLabel1_4 + + + <b><u>Commandes :</u></b> + + + + + textLabel6 + + + + 40 + 0 + + + + Filtre + + + + + LEFiltre + + + + 160 + 40 + + + + + + BNext + + + + 60 + 0 + + + + Suivant + + + + + + affiche la prochaine occurence + + + + + + + TabPage + + + Fichier Include + + + + textLabel1_3 + + + + 30 + 40 + 440 + 41 + + + + <font size="+1">La commande INCLUDE requiert un nom de Fichier :</font> + + + + + LENomFichier + + + + 18 + 117 + 450 + 40 + + + + + 0 + 0 + 0 + 0 + + + + + 450 + 40 + + + + + + BBrowse + + + + 288 + 306 + 161 + 41 + + + + + 0 + 0 + 0 + 0 + + + + Edit + + + + + BChangeFile + + + + 290 + 350 + 161 + 41 + + + + + 0 + 0 + 0 + 0 + + + + Autre Fichier + + + + + + TabPage + + + Fichier Inc + + + + unnamed + + + + textLabel1_5 + + + <font size="+1"><p align="center">La commande INCLUDE n'a pas de fichier associé. +Il faut d'abord choisir un numéro d'unité</p></font> + + + + + + + + + + LBNouvCommande + doubleClicked(QListBoxItem*) + DInc1 + LBNouvCommandeClicked() + + + LEFiltre + textChanged(const QString&) + DInc1 + LEFiltreTextChanged() + + + LEFiltre + returnPressed() + DInc1 + LEfiltreReturnPressed() + + + bSup + pressed() + DInc1 + BSupPressed() + + + bOk + clicked() + DInc1 + BOkPressed() + + + RBalpha + clicked() + DInc1 + BuildTabCommand() + + + RBGroupe + clicked() + DInc1 + BuildTabCommand() + + + BNext + clicked() + DInc1 + BNextPressed() + + + BBrowse + clicked() + DInc1 + BBrowsePressed() + + + LENomFichier + returnPressed() + DInc1 + LENomFichReturnPressed() + + + bHelp + clicked() + DInc1 + ViewDoc() + + + + LEFiltre + LENomFichier + bHelp + bSup + bOk + TWChoix + LBMCPermis + LBRegles + LBNouvCommande + RBalpha + BBrowse + BChangeFile + + + LBNouvCommandeClicked() + LEFiltreTextChanged() + LEfiltreReturnPressed() + BSupPressed() + BOkPressed() + BuildTabCommand() + BNextPressed() + BBrowsePressed() + LENomFichReturnPressed() + ViewDoc() + + + diff --git a/UiQT4/desListeParam.py b/UiQT4/desListeParam.py new file mode 100644 index 00000000..d8326749 --- /dev/null +++ b/UiQT4/desListeParam.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desListeParam.ui' +# +# Created: mar mar 25 10:05:08 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DLisParam(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DLisParam") + + + DLisParamLayout = QGridLayout(self,1,1,11,6,"DLisParamLayout") + + self.LBParam = QListBox(self,"LBParam") + + DLisParamLayout.addWidget(self.LBParam,0,0) + + self.languageChange() + + self.resize(QSize(413,394).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.LBParam,SIGNAL("clicked(QListBoxItem*)"),self.LBParamItemPressed) + + + def languageChange(self): + self.setCaption(self.__trUtf8("\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x20\x64\x65\x20\x70\x61\x72\x61\x6d\xc3\xa9\x74\x72\x65\x73")) + + + def LBParamItemPressed(self): + print "DLisParam.LBParamItemPressed(): Not implemented yet" + + def __trUtf8(self,s,c = None): + return qApp.translate("DLisParam",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desListeParam.ui b/UiQT4/desListeParam.ui new file mode 100644 index 00000000..25f30d85 --- /dev/null +++ b/UiQT4/desListeParam.ui @@ -0,0 +1,41 @@ + +DLisParam + + + DLisParam + + + + 0 + 0 + 413 + 394 + + + + Sélection de paramétres + + + + unnamed + + + + LBParam + + + + + + + LBParam + clicked(QListBoxItem*) + DLisParam + LBParamItemPressed() + + + + LBParamItemPressed() + + + diff --git a/UiQT4/desMCFact.py b/UiQT4/desMCFact.py new file mode 100644 index 00000000..50c7de55 --- /dev/null +++ b/UiQT4/desMCFact.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desMCFact.ui' +# +# Created: mar mar 25 10:05:08 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DMCFact(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DMCFact") + + self.setMinimumSize(QSize(505,0)) + + DMCFactLayout = QGridLayout(self,1,1,11,6,"DMCFactLayout") + + self.TWChoix = QTabWidget(self,"TWChoix") + + self.MotClef = QWidget(self.TWChoix,"MotClef") + MotClefLayout = QGridLayout(self.MotClef,1,1,11,6,"MotClefLayout") + + self.textLabel1 = QLabel(self.MotClef,"textLabel1") + self.textLabel1.setMinimumSize(QSize(0,0)) + + MotClefLayout.addWidget(self.textLabel1,0,0) + + self.LBMCPermis = QListBox(self.MotClef,"LBMCPermis") + self.LBMCPermis.setMinimumSize(QSize(0,0)) + + MotClefLayout.addWidget(self.LBMCPermis,1,0) + + self.LBRegles = QListBox(self.MotClef,"LBRegles") + + MotClefLayout.addWidget(self.LBRegles,1,1) + + self.textLabel1_2 = QLabel(self.MotClef,"textLabel1_2") + + MotClefLayout.addWidget(self.textLabel1_2,0,1) + self.TWChoix.insertTab(self.MotClef,QString("")) + + DMCFactLayout.addMultiCellWidget(self.TWChoix,0,0,0,2) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setAutoDefault(1) + + DMCFactLayout.addWidget(self.bSup,2,0) + + self.Commentaire = QLabel(self,"Commentaire") + + DMCFactLayout.addMultiCellWidget(self.Commentaire,1,1,0,2) + + self.bHelp = QPushButton(self,"bHelp") + self.bHelp.setAutoDefault(1) + + DMCFactLayout.addWidget(self.bHelp,2,2) + + self.bOk = QPushButton(self,"bOk") + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + DMCFactLayout.addWidget(self.bOk,2,1) + + self.languageChange() + + self.resize(QSize(511,499).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + + + def languageChange(self): + self.setCaption(self.__tr("DMacro")) + self.textLabel1.setText(self.__tr("

Mots Clefs Permis

")) + self.textLabel1_2.setText(self.__trUtf8("\x3c\x68\x33\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x75\x3e\x3c\x62\x3e\x52\xc3\xa9\x67\x6c\x65\x73\x3c\x2f\x62\x3e\x3c\x2f\x75\x3e\x3c\x2f\x70\x3e\x3c\x2f\x68\x33\x3e")) + self.TWChoix.changeTab(self.MotClef,self.__tr("Ajouter Mot-Clef")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.Commentaire.setText(QString.null) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + + + def ViewDoc(self): + print "DMCFact.ViewDoc(): Not implemented yet" + + def BSupPressed(self): + print "DMCFact.BSupPressed(): Not implemented yet" + + def BOkPressed(self): + print "DMCFact.BOkPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DMCFact",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DMCFact",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desMCFact.ui b/UiQT4/desMCFact.ui new file mode 100644 index 00000000..433df5f9 --- /dev/null +++ b/UiQT4/desMCFact.ui @@ -0,0 +1,174 @@ + +DMCFact + + + DMCFact + + + + 0 + 0 + 511 + 499 + + + + + 505 + 0 + + + + DMacro + + + + unnamed + + + + TWChoix + + + + MotClef + + + Ajouter Mot-Clef + + + + unnamed + + + + textLabel1 + + + + 0 + 0 + + + + <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> + + + + + LBMCPermis + + + + 0 + 0 + + + + + + LBRegles + + + + + textLabel1_2 + + + <h3><p align="center"><u><b>Régles</b></u></p></h3> + + + + + + + + bSup + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + Commentaire + + + + + + + + bHelp + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + bOk + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + + + bSup + pressed() + DMCFact + BSupPressed() + + + bOk + clicked() + DMCFact + BOkPressed() + + + bHelp + clicked() + DMCFact + ViewDoc() + + + + ViewDoc() + BSupPressed() + BOkPressed() + + + diff --git a/UiQT4/desMCListAjout.py b/UiQT4/desMCListAjout.py new file mode 100644 index 00000000..bb0d5986 --- /dev/null +++ b/UiQT4/desMCListAjout.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desMCListAjout.ui' +# +# Created: mar mar 25 10:05:08 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DMCListAjout(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DMCListAjout") + + self.setMinimumSize(QSize(350,0)) + + DMCListAjoutLayout = QGridLayout(self,1,1,11,6,"DMCListAjoutLayout") + + self.textLabel1 = QLabel(self,"textLabel1") + + DMCListAjoutLayout.addMultiCellWidget(self.textLabel1,1,1,0,2) + + self.textLabel1_2 = QLabel(self,"textLabel1_2") + + DMCListAjoutLayout.addMultiCellWidget(self.textLabel1_2,2,2,0,2) + + layout9 = QHBoxLayout(None,0,6,"layout9") + spacer4 = QSpacerItem(60,21,QSizePolicy.Expanding,QSizePolicy.Minimum) + layout9.addItem(spacer4) + + self.bAjout = QPushButton(self,"bAjout") + self.bAjout.setAutoDefault(1) + self.bAjout.setDefault(1) + layout9.addWidget(self.bAjout) + spacer2 = QSpacerItem(80,21,QSizePolicy.Expanding,QSizePolicy.Minimum) + layout9.addItem(spacer2) + + DMCListAjoutLayout.addMultiCellLayout(layout9,8,8,0,2) + spacer1 = QSpacerItem(21,40,QSizePolicy.Minimum,QSizePolicy.Expanding) + DMCListAjoutLayout.addItem(spacer1,9,1) + + self.textLabel1_2_2 = QLabel(self,"textLabel1_2_2") + + DMCListAjoutLayout.addMultiCellWidget(self.textLabel1_2_2,6,6,0,2) + spacer5 = QSpacerItem(20,20,QSizePolicy.Minimum,QSizePolicy.Expanding) + DMCListAjoutLayout.addItem(spacer5,7,1) + + self.MCFacteur = QLabel(self,"MCFacteur") + + DMCListAjoutLayout.addMultiCellWidget(self.MCFacteur,4,4,0,2) + spacer6 = QSpacerItem(21,31,QSizePolicy.Minimum,QSizePolicy.Expanding) + DMCListAjoutLayout.addItem(spacer6,5,1) + spacer7 = QSpacerItem(21,51,QSizePolicy.Minimum,QSizePolicy.Expanding) + DMCListAjoutLayout.addItem(spacer7,3,1) + spacer8 = QSpacerItem(41,51,QSizePolicy.Minimum,QSizePolicy.Expanding) + DMCListAjoutLayout.addItem(spacer8,0,1) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setAutoDefault(1) + + DMCListAjoutLayout.addWidget(self.bSup,10,0) + + self.bOk = QPushButton(self,"bOk") + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + DMCListAjoutLayout.addWidget(self.bOk,10,1) + + self.bHelp = QPushButton(self,"bHelp") + self.bHelp.setAutoDefault(1) + + DMCListAjoutLayout.addWidget(self.bHelp,10,2) + + self.languageChange() + + self.resize(QSize(459,472).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bOk,SIGNAL("clicked()"),self.BAjoutClicked) + self.connect(self.bAjout,SIGNAL("clicked()"),self.BAjoutClicked) + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + + + def languageChange(self): + self.setCaption(self.__tr("Form1")) + self.textLabel1.setText(self.__tr("

Pour ajouter une autre occurrence

")) + self.textLabel1_2.setText(self.__tr("

du mot clef-facteur

")) + self.bAjout.setText(self.__tr("&Ajouter")) + self.bAjout.setAccel(self.__tr("Alt+A")) + QToolTip.add(self.bAjout,self.__tr("validation de la saisie")) + self.textLabel1_2_2.setText(self.__tr("

cliquez ci-dessous

")) + self.MCFacteur.setText(self.__tr("

AFFE

")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + + + def BAjoutClicked(self): + print "DMCListAjout.BAjoutClicked(): Not implemented yet" + + def BSupPressed(self): + print "DMCListAjout.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DMCListAjout.ViewDoc(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DMCListAjout",s,c) diff --git a/UiQT4/desMCListAjout.ui b/UiQT4/desMCListAjout.ui new file mode 100644 index 00000000..ff58dbcd --- /dev/null +++ b/UiQT4/desMCListAjout.ui @@ -0,0 +1,297 @@ + +DMCListAjout + + + DMCListAjout + + + + 0 + 0 + 459 + 472 + + + + + 350 + 0 + + + + Form1 + + + + unnamed + + + + textLabel1 + + + <p align="center"><font size="+1">Pour ajouter une autre occurrence</font></p> + + + + + textLabel1_2 + + + <p align="center"><font size="+1">du mot clef-facteur</font> </p> + + + + + layout9 + + + + unnamed + + + + spacer4 + + + Horizontal + + + Expanding + + + + 60 + 21 + + + + + + bAjout + + + &Ajouter + + + Alt+A + + + true + + + true + + + validation de la saisie + + + + + spacer2 + + + Horizontal + + + Expanding + + + + 80 + 21 + + + + + + + + spacer1 + + + Vertical + + + Expanding + + + + 21 + 40 + + + + + + textLabel1_2_2 + + + <p align="center"><font size="+1">cliquez ci-dessous</font> </p> + + + + + spacer5 + + + Vertical + + + Expanding + + + + 20 + 20 + + + + + + MCFacteur + + + <p align="center">AFFE</p> + + + + + spacer6 + + + Vertical + + + Expanding + + + + 21 + 31 + + + + + + spacer7 + + + Vertical + + + Expanding + + + + 21 + 51 + + + + + + spacer8 + + + Vertical + + + Expanding + + + + 41 + 51 + + + + + + bSup + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + + + bOk + clicked() + DMCListAjout + BAjoutClicked() + + + bAjout + clicked() + DMCListAjout + BAjoutClicked() + + + bSup + clicked() + DMCListAjout + BSupPressed() + + + bHelp + clicked() + DMCListAjout + ViewDoc() + + + + BAjoutClicked() + BSupPressed() + ViewDoc() + + + diff --git a/UiQT4/desMacro.py b/UiQT4/desMacro.py new file mode 100644 index 00000000..4850e072 --- /dev/null +++ b/UiQT4/desMacro.py @@ -0,0 +1,228 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desMacro.ui' +# +# Created: Mon Jun 2 15:35:12 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.16 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DMacro(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DMacro") + + self.setMinimumSize(QSize(505,0)) + + DMacroLayout = QGridLayout(self,1,1,11,6,"DMacroLayout") + + self.Commentaire = QLabel(self,"Commentaire") + + DMacroLayout.addMultiCellWidget(self.Commentaire,1,1,0,2) + + self.TWChoix = QTabWidget(self,"TWChoix") + + self.MotClef = QWidget(self.TWChoix,"MotClef") + MotClefLayout = QGridLayout(self.MotClef,1,1,11,6,"MotClefLayout") + + self.LBMCPermis = QListBox(self.MotClef,"LBMCPermis") + self.LBMCPermis.setMinimumSize(QSize(0,0)) + + MotClefLayout.addWidget(self.LBMCPermis,1,0) + + self.LBRegles = QListBox(self.MotClef,"LBRegles") + + MotClefLayout.addWidget(self.LBRegles,1,1) + + self.textLabel1_2 = QLabel(self.MotClef,"textLabel1_2") + + MotClefLayout.addWidget(self.textLabel1_2,0,1) + + self.textLabel1 = QLabel(self.MotClef,"textLabel1") + self.textLabel1.setMinimumSize(QSize(0,0)) + + MotClefLayout.addWidget(self.textLabel1,0,0) + self.TWChoix.insertTab(self.MotClef,QString.fromLatin1("")) + + self.Commande = QWidget(self.TWChoix,"Commande") + CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout") + + self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande") + + CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3) + + self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1") + + self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha") + self.RBalpha.setGeometry(QRect(20,20,120,20)) + self.RBalpha.setChecked(1) + + self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe") + self.RBGroupe.setGeometry(QRect(20,40,120,20)) + + CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3) + + self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4") + + CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,1) + + self.BNext = QToolButton(self.Commande,"BNext") + self.BNext.setMinimumSize(QSize(60,0)) + self.BNext.setIconSet(QIconSet()) + + CommandeLayout.addWidget(self.BNext,1,2) + + self.textLabel6 = QLabel(self.Commande,"textLabel6") + self.textLabel6.setMinimumSize(QSize(40,0)) + + CommandeLayout.addWidget(self.textLabel6,1,0) + + self.textLabel4 = QLabel(self.Commande,"textLabel4") + + CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3) + + self.LEFiltre = QLineEdit(self.Commande,"LEFiltre") + self.LEFiltre.setMinimumSize(QSize(160,30)) + + CommandeLayout.addWidget(self.LEFiltre,1,1) + self.TWChoix.insertTab(self.Commande,QString.fromLatin1("")) + + self.TabPage = QWidget(self.TWChoix,"TabPage") + + self.groupBox1_2 = QGroupBox(self.TabPage,"groupBox1_2") + self.groupBox1_2.setGeometry(QRect(0,0,520,380)) + + self.textLabel3_2 = QLabel(self.groupBox1_2,"textLabel3_2") + self.textLabel3_2.setGeometry(QRect(10,230,320,31)) + + self.typeConcept = QLabel(self.groupBox1_2,"typeConcept") + self.typeConcept.setGeometry(QRect(360,230,130,31)) + + self.textLabel1_3_2_3 = QLabel(self.groupBox1_2,"textLabel1_3_2_3") + self.textLabel1_3_2_3.setGeometry(QRect(20,200,160,31)) + + self.textLabel1_3_3 = QLabel(self.groupBox1_2,"textLabel1_3_3") + self.textLabel1_3_3.setGeometry(QRect(20,50,150,31)) + + self.LENomConcept = QLineEdit(self.groupBox1_2,"LENomConcept") + self.LENomConcept.setGeometry(QRect(20,80,440,30)) + self.TWChoix.insertTab(self.TabPage,QString.fromLatin1("")) + + DMacroLayout.addMultiCellWidget(self.TWChoix,0,0,0,2) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + + DMacroLayout.addWidget(self.bSup,2,0) + + self.bHelp = QPushButton(self,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + + DMacroLayout.addWidget(self.bHelp,2,2) + + self.bOk = QPushButton(self,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + DMacroLayout.addWidget(self.bOk,2,1) + + self.languageChange() + + self.resize(QSize(521,499).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked) + self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) + self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) + self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed) + self.connect(self.LENomConcept,SIGNAL("returnPressed()"),self.LENomConceptReturnPressed) + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + + self.setTabOrder(self.LEFiltre,self.LENomConcept) + self.setTabOrder(self.LENomConcept,self.TWChoix) + self.setTabOrder(self.TWChoix,self.LBMCPermis) + self.setTabOrder(self.LBMCPermis,self.LBRegles) + self.setTabOrder(self.LBRegles,self.LBNouvCommande) + self.setTabOrder(self.LBNouvCommande,self.RBalpha) + self.setTabOrder(self.RBalpha,self.bSup) + self.setTabOrder(self.bSup,self.bHelp) + self.setTabOrder(self.bHelp,self.bOk) + + + def languageChange(self): + self.setCaption(self.__tr("DMacro")) + self.Commentaire.setText(QString.null) + self.textLabel1_2.setText(self.__trUtf8("\x3c\x68\x33\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x75\x3e\x3c\x62\x3e\x52\xc3\xa9\x67\x6c\x65\x73\x3c\x2f\x62\x3e\x3c\x2f\x75\x3e\x3c\x2f\x70\x3e\x3c\x2f\x68\x33\x3e")) + self.textLabel1.setText(self.__tr("

Mots Clefs Permis

")) + self.TWChoix.changeTab(self.MotClef,self.__tr("Ajouter Mot-Clef")) + self.buttonGroup1.setTitle(self.__tr("Affichage")) + self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65")) + self.RBGroupe.setText(self.__tr("par groupe")) + self.textLabel1_4.setText(self.__tr("Commandes :")) + self.BNext.setText(self.__tr("Suivant")) + QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence")) + self.textLabel6.setText(self.__tr("Filtre")) + self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65")) + self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande")) + self.groupBox1_2.setTitle(self.__tr("Concept")) + self.textLabel3_2.setText(self.__trUtf8("\x4c\x27\x6f\x70\xc3\xa9\x72\x61\x74\x65\x75\x72\x20\x63\x6f\x75\x72\x61\x6e\x74\x20\x72\x65\x74\x6f\x75\x72\x6e\x65\x20\x75\x6e\x20\x63\x6f\x6e\x63\x65\x70\x74\x20\x64\x65\x20\x74\x79\x70\x65\x20\x3a")) + self.typeConcept.setText(self.__tr("TypeDuConcept")) + self.textLabel1_3_2_3.setText(self.__tr("Type du concept :")) + self.textLabel1_3_3.setText(self.__tr("Nom du concept :")) + self.TWChoix.changeTab(self.TabPage,self.__tr("Nommer Concept")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(QKeySequence(self.__tr("Alt+S"))) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(QKeySequence(self.__tr("Alt+D"))) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(QKeySequence(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + + + def LBNouvCommandeClicked(self): + print "DMacro.LBNouvCommandeClicked(): Not implemented yet" + + def LEFiltreTextChanged(self): + print "DMacro.LEFiltreTextChanged(): Not implemented yet" + + def LEfiltreReturnPressed(self): + print "DMacro.LEfiltreReturnPressed(): Not implemented yet" + + def BSupPressed(self): + print "DMacro.BSupPressed(): Not implemented yet" + + def BOkPressed(self): + print "DMacro.BOkPressed(): Not implemented yet" + + def BuildTabCommand(self): + print "DMacro.BuildTabCommand(): Not implemented yet" + + def BNextPressed(self): + print "DMacro.BNextPressed(): Not implemented yet" + + def LENomConceptReturnPressed(self): + print "DMacro.LENomConceptReturnPressed(): Not implemented yet" + + def ViewDoc(self): + print "DMacro.ViewDoc(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DMacro",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DMacro",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desMacro.ui b/UiQT4/desMacro.ui new file mode 100644 index 00000000..d451544b --- /dev/null +++ b/UiQT4/desMacro.ui @@ -0,0 +1,475 @@ + +DMacro + + + DMacro + + + + 0 + 0 + 521 + 499 + + + + + 505 + 0 + + + + DMacro + + + + unnamed + + + + Commentaire + + + + + + + + TWChoix + + + + MotClef + + + Ajouter Mot-Clef + + + + unnamed + + + + LBMCPermis + + + + 0 + 0 + + + + + + LBRegles + + + + + textLabel1_2 + + + <h3><p align="center"><u><b>Régles</b></u></p></h3> + + + + + textLabel1 + + + + 0 + 0 + + + + <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> + + + + + + + Commande + + + Nouvelle Commande + + + + unnamed + + + + LBNouvCommande + + + + + buttonGroup1 + + + Affichage + + + + RBalpha + + + + 20 + 20 + 120 + 20 + + + + alphabétique + + + true + + + + + RBGroupe + + + + 20 + 40 + 120 + 20 + + + + par groupe + + + + + + textLabel1_4 + + + <b><u>Commandes :</u></b> + + + + + BNext + + + + 60 + 0 + + + + Suivant + + + + + + affiche la prochaine occurence + + + + + textLabel6 + + + + 40 + 0 + + + + Filtre + + + + + textLabel4 + + + La commande choisie sera ajoutée APRES la commande courante + + + + + LEFiltre + + + + 160 + 30 + + + + + + + + TabPage + + + Nommer Concept + + + + groupBox1_2 + + + + 0 + 0 + 520 + 380 + + + + Concept + + + + textLabel3_2 + + + + 10 + 230 + 320 + 31 + + + + L'opérateur courant retourne un concept de type : + + + + + typeConcept + + + + 360 + 230 + 130 + 31 + + + + TypeDuConcept + + + + + textLabel1_3_2_3 + + + + 20 + 200 + 160 + 31 + + + + <u>Type du concept :</u> + + + + + textLabel1_3_3 + + + + 20 + 50 + 150 + 31 + + + + <u>Nom du concept :</u> + + + + + LENomConcept + + + + 20 + 80 + 440 + 30 + + + + + + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + + + LBNouvCommande + doubleClicked(QListBoxItem*) + DMacro + LBNouvCommandeClicked() + + + LEFiltre + textChanged(const QString&) + DMacro + LEFiltreTextChanged() + + + LEFiltre + returnPressed() + DMacro + LEfiltreReturnPressed() + + + bSup + pressed() + DMacro + BSupPressed() + + + bOk + clicked() + DMacro + BOkPressed() + + + RBalpha + clicked() + DMacro + BuildTabCommand() + + + RBGroupe + clicked() + DMacro + BuildTabCommand() + + + BNext + clicked() + DMacro + BNextPressed() + + + LENomConcept + returnPressed() + DMacro + LENomConceptReturnPressed() + + + bHelp + clicked() + DMacro + ViewDoc() + + + + LEFiltre + LENomConcept + TWChoix + LBMCPermis + LBRegles + LBNouvCommande + RBalpha + bSup + bHelp + bOk + + + LBNouvCommandeClicked() + LEFiltreTextChanged() + LEfiltreReturnPressed() + BSupPressed() + BOkPressed() + BuildTabCommand() + BNextPressed() + LENomConceptReturnPressed() + ViewDoc() + + + diff --git a/UiQT4/desParam.py b/UiQT4/desParam.py new file mode 100644 index 00000000..bd886581 --- /dev/null +++ b/UiQT4/desParam.py @@ -0,0 +1,209 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desParam.ui' +# +# Created: ven mai 16 13:30:38 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DParam(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DParam") + + self.setMinimumSize(QSize(505,0)) + + DParamLayout = QGridLayout(self,1,1,11,6,"DParamLayout") + + self.Commentaire = QLabel(self,"Commentaire") + self.Commentaire.setFrameShape(QLabel.NoFrame) + self.Commentaire.setFrameShadow(QLabel.Plain) + + DParamLayout.addMultiCellWidget(self.Commentaire,1,1,0,2) + + self.TWChoix = QTabWidget(self,"TWChoix") + + self.Valeur_Parametre = QWidget(self.TWChoix,"Valeur_Parametre") + + self.textLabel2_2_2 = QLabel(self.Valeur_Parametre,"textLabel2_2_2") + self.textLabel2_2_2.setGeometry(QRect(80,11,231,89)) + + self.Commentaire_2 = QLabel(self.Valeur_Parametre,"Commentaire_2") + self.Commentaire_2.setGeometry(QRect(11,275,459,89)) + + self.lineEditNom = QLineEdit(self.Valeur_Parametre,"lineEditNom") + self.lineEditNom.setGeometry(QRect(80,106,231,31)) + self.lineEditNom.setMinimumSize(QSize(231,31)) + + self.textLabel2_2 = QLabel(self.Valeur_Parametre,"textLabel2_2") + self.textLabel2_2.setGeometry(QRect(11,106,63,31)) + + self.textLabel2 = QLabel(self.Valeur_Parametre,"textLabel2") + self.textLabel2.setGeometry(QRect(11,143,63,31)) + + self.Commentaire2 = QLabel(self.Valeur_Parametre,"Commentaire2") + self.Commentaire2.setGeometry(QRect(11,180,459,89)) + + self.lineEditVal = QLineEdit(self.Valeur_Parametre,"lineEditVal") + self.lineEditVal.setGeometry(QRect(80,143,231,31)) + self.lineEditVal.setMinimumSize(QSize(231,31)) + self.TWChoix.insertTab(self.Valeur_Parametre,QString("")) + + self.Commande = QWidget(self.TWChoix,"Commande") + CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout") + + self.textLabel6 = QLabel(self.Commande,"textLabel6") + self.textLabel6.setMinimumSize(QSize(40,0)) + + CommandeLayout.addWidget(self.textLabel6,1,0) + + self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande") + + CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3) + + self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1") + + self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe") + self.RBGroupe.setGeometry(QRect(20,40,101,20)) + + self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha") + self.RBalpha.setGeometry(QRect(20,20,120,20)) + self.RBalpha.setChecked(1) + + CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3) + + self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4") + + CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,1) + + self.textLabel4 = QLabel(self.Commande,"textLabel4") + + CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3) + + self.BNext = QToolButton(self.Commande,"BNext") + self.BNext.setMinimumSize(QSize(60,0)) + self.BNext.setIconSet(QIconSet()) + + CommandeLayout.addWidget(self.BNext,1,2) + + self.LEFiltre = QLineEdit(self.Commande,"LEFiltre") + self.LEFiltre.setMinimumSize(QSize(160,30)) + + CommandeLayout.addWidget(self.LEFiltre,1,1) + self.TWChoix.insertTab(self.Commande,QString("")) + + DParamLayout.addMultiCellWidget(self.TWChoix,0,0,0,2) + + self.bOk = QPushButton(self,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + DParamLayout.addWidget(self.bOk,2,1) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + + DParamLayout.addWidget(self.bSup,2,0) + + self.bHelp = QPushButton(self,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + + DParamLayout.addWidget(self.bHelp,2,2) + + self.languageChange() + + self.resize(QSize(505,483).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked) + self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) + self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) + self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed) + self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.BOkPressed) + + self.setTabOrder(self.LEFiltre,self.TWChoix) + self.setTabOrder(self.TWChoix,self.lineEditNom) + self.setTabOrder(self.lineEditNom,self.lineEditVal) + self.setTabOrder(self.lineEditVal,self.LBNouvCommande) + self.setTabOrder(self.LBNouvCommande,self.RBalpha) + self.setTabOrder(self.RBalpha,self.bOk) + self.setTabOrder(self.bOk,self.bSup) + self.setTabOrder(self.bSup,self.bHelp) + + + def languageChange(self): + self.setCaption(self.__tr("DComm")) + self.Commentaire.setText(QString.null) + self.textLabel2_2_2.setText(self.__tr("

Parametre

")) + self.Commentaire_2.setText(QString.null) + self.textLabel2_2.setText(self.__tr(" Nom: ")) + self.textLabel2.setText(self.__tr(" Valeur: ")) + self.Commentaire2.setText(self.__trUtf8("\x52\x65\x74\x6f\x75\x72\x20\x43\x68\x61\x72\x69\x6f\x74\x20\x64\x61\x6e\x73\x20\x75\x6e\x65\x20\x73\x6f\x6e\x65\x20\x64\x65\x20\x73\x61\x69\x73\x69\x65\x20\x70\x65\x72\x6d\x65\x74\x20\x64\x65\x20\x76\xc3\xa9\x72\x69\x66\x69\x65\x72\x20\x6c\x61\x20\x0a\x76\x61\x6c\x69\x64\x69\x74\xc3\xa9\x20\x64\x65\x20\x6c\x61\x20\x76\x61\x6c\x65\x75\x72\x20\x73\x61\x69\x73\x69\x65\x2e\x0a\x0a\x4c\x65\x73\x20\x6e\x6f\x75\x76\x65\x6c\x6c\x65\x73\x20\x76\x61\x6c\x65\x75\x72\x73\x20\x6e\x65\x20\x73\x65\x72\x6f\x6e\x74\x20\x70\x72\x69\x73\x65\x73\x20\x20\x65\x6e\x20\x63\x6f\x6d\x70\x74\x65\x20\x71\x75\x27\x61\x70\x72\xc3\xa8\x73\x20\x61\x76\x6f\x69\x72\x20\x0a\x61\x70\x70\x75\x79\xc3\xa9\x20\x73\x75\x72\x20\x20\x6c\x65\x20\x62\x6f\x75\x74\x6f\x6e\x20\x56\x61\x6c\x69\x64\x65\x72\x2e")) + self.TWChoix.changeTab(self.Valeur_Parametre,self.__tr("Valeur Parametre")) + self.textLabel6.setText(self.__tr("Filtre")) + self.buttonGroup1.setTitle(self.__tr("Affichage")) + self.RBGroupe.setText(self.__tr("par groupe")) + self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65")) + self.textLabel1_4.setText(self.__tr("Commandes :")) + self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65")) + self.BNext.setText(self.__tr("Suivant")) + QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence")) + self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + + + def LBNouvCommandeClicked(self): + print "DParam.LBNouvCommandeClicked(): Not implemented yet" + + def LEFiltreTextChanged(self): + print "DParam.LEFiltreTextChanged(): Not implemented yet" + + def LEfiltreReturnPressed(self): + print "DParam.LEfiltreReturnPressed(): Not implemented yet" + + def BSupPressed(self): + print "DParam.BSupPressed(): Not implemented yet" + + def LENomConceptReturnPressed(self): + print "DParam.LENomConceptReturnPressed(): Not implemented yet" + + def BOkPressed(self): + print "DParam.BOkPressed(): Not implemented yet" + + def BuildTabCommand(self): + print "DParam.BuildTabCommand(): Not implemented yet" + + def ViewDoc(self): + print "DParam.ViewDoc(): Not implemented yet" + + def BNextPressed(self): + print "DParam.BNextPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DParam",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DParam",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desParam.ui b/UiQT4/desParam.ui new file mode 100644 index 00000000..7aa81f89 --- /dev/null +++ b/UiQT4/desParam.ui @@ -0,0 +1,508 @@ + +DParam + + + DParam + + + + 0 + 0 + 505 + 483 + + + + + 505 + 0 + + + + DComm + + + + unnamed + + + + Commentaire + + + NoFrame + + + Plain + + + + + + + + TWChoix + + + + Valeur_Parametre + + + Valeur Parametre + + + + textLabel2_2_2 + + + + 80 + 11 + 231 + 89 + + + + <u><b><p align="center">Parametre</p></b></u> + + + + + Commentaire_2 + + + + 11 + 275 + 459 + 89 + + + + + + + + + lineEditNom + + + + 80 + 106 + 231 + 31 + + + + + 231 + 31 + + + + + + spacer1 + + + Horizontal + + + Expanding + + + + 153 + 20 + + + + + 317 + 111 + 153 + 20 + + + + + + spacer2 + + + Horizontal + + + Expanding + + + + 153 + 20 + + + + + 317 + 148 + 153 + 20 + + + + + + textLabel2_2 + + + + 11 + 106 + 63 + 31 + + + + <b> Nom: </b> + + + + + textLabel2 + + + + 11 + 143 + 63 + 31 + + + + <b> Valeur: </b> + + + + + Commentaire2 + + + + 11 + 180 + 459 + 89 + + + + Retour Chariot dans une sone de saisie permet de vérifier la +validité de la valeur saisie. + +Les nouvelles valeurs ne seront prises en compte qu'après avoir +appuyé sur le bouton Valider. + + + + + lineEditVal + + + + 80 + 143 + 231 + 31 + + + + + 231 + 31 + + + + + + + Commande + + + Nouvelle Commande + + + + unnamed + + + + textLabel6 + + + + 40 + 0 + + + + Filtre + + + + + LBNouvCommande + + + + + buttonGroup1 + + + Affichage + + + + RBGroupe + + + + 20 + 40 + 101 + 20 + + + + par groupe + + + + + RBalpha + + + + 20 + 20 + 120 + 20 + + + + alphabétique + + + true + + + + + + textLabel1_4 + + + <b><u>Commandes :</u></b> + + + + + textLabel4 + + + La commande choisie sera ajoutée APRES la commande courante + + + + + BNext + + + + 60 + 0 + + + + Suivant + + + + + + affiche la prochaine occurence + + + + + LEFiltre + + + + 160 + 30 + + + + + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + + + LBNouvCommande + doubleClicked(QListBoxItem*) + DParam + LBNouvCommandeClicked() + + + LEFiltre + textChanged(const QString&) + DParam + LEFiltreTextChanged() + + + LEFiltre + returnPressed() + DParam + LEfiltreReturnPressed() + + + bSup + pressed() + DParam + BSupPressed() + + + bOk + clicked() + DParam + BOkPressed() + + + RBGroupe + clicked() + DParam + BuildTabCommand() + + + RBalpha + clicked() + DParam + BuildTabCommand() + + + bHelp + clicked() + DParam + ViewDoc() + + + BNext + pressed() + DParam + BNextPressed() + + + lineEditVal + returnPressed() + DParam + BOkPressed() + + + + LEFiltre + TWChoix + lineEditNom + lineEditVal + LBNouvCommande + RBalpha + bOk + bSup + bHelp + + + LBNouvCommandeClicked() + LEFiltreTextChanged() + LEfiltreReturnPressed() + BSupPressed() + LENomConceptReturnPressed() + BOkPressed() + BuildTabCommand() + ViewDoc() + BNextPressed() + + + diff --git a/UiQT4/desPlusieursBase.py b/UiQT4/desPlusieursBase.py new file mode 100644 index 00000000..dc7ca0f1 --- /dev/null +++ b/UiQT4/desPlusieursBase.py @@ -0,0 +1,293 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desPlusieursBase.ui' +# +# Created: lun mai 5 17:43:44 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + +image0_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x14\x00\x00\x00\x14" \ + "\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\x00\x00\x00" \ + "\x8d\x49\x44\x41\x54\x38\x8d\xb5\xd3\xdb\x0d\x80" \ + "\x20\x0c\x05\xd0\x5b\xe3\x3a\x8e\xe2\x4c\x86\x99" \ + "\x18\x85\x81\xea\x87\xc6\xc4\xd2\x56\x28\xd8\x84" \ + "\x0f\x5e\x27\x17\x50\x02\x63\x6a\x2d\x73\xb9\x1f" \ + "\xc0\xb5\x69\x15\x39\x17\xc3\xa0\x7e\xf0\xae\x9c" \ + "\xca\xab\xbf\x1f\x5b\xb5\xa6\xed\xc8\x0c\x02\x83" \ + "\x34\x20\x06\x02\x00\x81\x65\xc2\x38\x28\x30\x2f" \ + "\xa9\x77\xdd\x36\xc6\xa0\x67\xa7\x78\x14\x3f\xa1" \ + "\x85\xf9\x5b\xe6\x61\x76\xc2\x20\xa6\x83\x03\x58" \ + "\x0d\x0e\x62\x7a\xc2\x01\xcc\x04\xa3\xd8\x55\x2c" \ + "\x1a\xc0\x39\x95\xab\x27\xe7\x5a\x9a\x3e\x18\x47" \ + "\xdd\xef\x30\x72\xec\xef\x5f\xaf\xb3\x4e\xcb\x01" \ + "\x65\xf7\x82\x6b\x45\x7b\x00\x00\x00\x00\x49\x45" \ + "\x4e\x44\xae\x42\x60\x82" +image1_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x21\x00\x00\x00\x0e" \ + "\x08\x06\x00\x00\x00\xa1\x1e\x75\x8c\x00\x00\x00" \ + "\xc7\x49\x44\x41\x54\x38\x8d\xcd\x94\x59\x0e\xc3" \ + "\x20\x0c\x44\x71\xd5\x7b\xc7\x3d\xf9\xf4\x07\xd3" \ + "\x31\xb1\x59\xa2\x28\xaa\x25\x44\x48\xbc\x3c\xc6" \ + "\x81\x52\xfe\xc0\xe4\x42\x0c\xee\xce\xb9\x12\xe0" \ + "\x8a\x02\x39\x83\x88\x48\xf5\xdf\x02\xc9\x9c\x11" \ + "\xf8\x60\x04\x30\x01\x19\x05\x4a\xe8\x68\xc5\x6a" \ + "\xc2\x06\xc0\x6b\x4b\x10\x91\x11\xc8\x02\x87\x4f" \ + "\x3a\x52\xa5\x87\x75\x71\x23\x89\x7e\x40\x39\xc4" \ + "\x6b\x50\xd8\x86\x5b\x07\xf5\x40\x0a\x45\x00\x53" \ + "\x33\x08\x93\xcf\x86\x74\xa3\x00\x28\xd4\x92\xde" \ + "\xef\x04\x62\x6b\x55\x9d\xfe\x48\xac\x84\x2b\x1a" \ + "\x6d\xaa\xe6\x85\x01\x55\x03\x3b\x99\xc5\x00\x9f" \ + "\x70\xce\xda\x11\x1a\xab\x41\x3b\x6f\x6a\x70\xd1" \ + "\x18\xe0\x08\xe6\xfd\x8b\xc5\x1d\x5d\x00\xa0\xf6" \ + "\x14\x55\x6d\x1f\xf9\xb9\xbe\x49\x52\xaa\xbc\x37" \ + "\x21\xf8\xf8\xb6\xf6\x24\xc5\x57\xef\x89\x47\xaf" \ + "\xed\xf4\x8c\x5e\x60\xb8\xdf\xbe\xb8\x1d\x6d\xab" \ + "\x9a\xff\x99\x27\x00\x00\x00\x00\x49\x45\x4e\x44" \ + "\xae\x42\x60\x82" +image2_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x21\x00\x00\x00\x0e" \ + "\x08\x06\x00\x00\x00\xa1\x1e\x75\x8c\x00\x00\x00" \ + "\xcf\x49\x44\x41\x54\x38\x8d\xd5\x94\xdb\x0e\xc3" \ + "\x20\x0c\x43\xed\xfd\xf8\xd8\x97\xbb\x0f\x34\x5b" \ + "\x48\x08\x45\xd5\x1e\xb6\x48\x88\xf4\x12\xe7\x60" \ + "\x01\xc0\x0f\x04\x6f\xd6\xe9\x9b\xba\x77\x20\x04" \ + "\x80\x92\x4a\x10\x32\xc9\x2e\xfb\xd8\xc7\xd5\xca" \ + "\xbc\xc0\x25\x40\x00\x99\xe9\x57\x84\x95\x68\xfe" \ + "\x7f\x06\xc0\xde\xd1\xde\xb3\x2b\x4a\x1e\xc4\xea" \ + "\x82\x4b\x9e\x74\x09\x71\x65\xbd\x01\xf8\x55\x27" \ + "\xf7\x8a\x72\x01\xe0\xa3\x12\x9f\x34\x5a\x01\x7c" \ + "\x54\x3b\xaf\xdc\x98\x3d\x0f\x71\x09\xd1\x5a\x33" \ + "\x1b\x47\x1f\x47\x07\x2c\x17\x49\x4a\x82\x33\x8f" \ + "\x61\x78\x20\x3a\x88\x17\xe6\x73\x06\xb1\xf0\x8b" \ + "\x07\xba\x03\xe6\x02\xc9\xb8\x31\x07\x7e\x37\xe0" \ + "\x20\x9e\x67\xe3\x38\x67\x10\x97\x7b\x17\xde\x80" \ + "\xc1\x85\xad\x38\x69\x5a\x51\xd5\x22\xc8\x2c\xe7" \ + "\x79\x12\xe2\xfe\xd8\xbe\x83\x76\x20\x92\xf5\x2b" \ + "\x18\x20\xdd\x11\xbb\x10\xe5\x65\xb5\x3a\x5a\x3b" \ + "\xba\xff\x13\x07\x13\xd6\x6f\xa6\x98\x18\x57\x06" \ + "\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82" + +class DPlusBase(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + self.image0 = QPixmap() + self.image0.loadFromData(image0_data,"PNG") + self.image1 = QPixmap() + self.image1.loadFromData(image1_data,"PNG") + self.image2 = QPixmap() + self.image2.loadFromData(image2_data,"PNG") + if not name: + self.setName("DPlusBase") + + self.setMinimumSize(QSize(350,0)) + self.setIcon(self.image0) + + DPlusBaseLayout = QGridLayout(self,1,1,11,6,"DPlusBaseLayout") + + self.tabuniqueinto = QTabWidget(self,"tabuniqueinto") + + self.Widget8 = QWidget(self.tabuniqueinto,"Widget8") + Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout") + + self.textLabel1 = QLabel(self.Widget8,"textLabel1") + + Widget8Layout.addWidget(self.textLabel1,0,0) + + self.LBValeurs = QListBox(self.Widget8,"LBValeurs") + self.LBValeurs.setMinimumSize(QSize(200,0)) + + Widget8Layout.addMultiCellWidget(self.LBValeurs,1,9,0,0) + spacer4 = QSpacerItem(21,231,QSizePolicy.Minimum,QSizePolicy.Expanding) + Widget8Layout.addMultiCell(spacer4,5,9,1,2) + spacer3_3 = QSpacerItem(31,30,QSizePolicy.Minimum,QSizePolicy.Expanding) + Widget8Layout.addMultiCell(spacer3_3,0,0,1,2) + + self.BAjout1Val = QToolButton(self.Widget8,"BAjout1Val") + self.BAjout1Val.setSizePolicy(QSizePolicy(0,0,0,0,self.BAjout1Val.sizePolicy().hasHeightForWidth())) + self.BAjout1Val.setMinimumSize(QSize(40,30)) + self.BAjout1Val.setIconSet(QIconSet(self.image1)) + + Widget8Layout.addMultiCellWidget(self.BAjout1Val,2,2,1,2) + spacer5 = QSpacerItem(150,20,QSizePolicy.Expanding,QSizePolicy.Minimum) + Widget8Layout.addMultiCell(spacer5,8,8,2,4) + + layout7 = QVBoxLayout(None,0,6,"layout7") + + self.bParam = QPushButton(self.Widget8,"bParam") + self.bParam.setMinimumSize(QSize(0,30)) + self.bParam.setAutoDefault(1) + layout7.addWidget(self.bParam) + + self.bImport = QPushButton(self.Widget8,"bImport") + self.bImport.setMinimumSize(QSize(0,30)) + self.bImport.setAutoDefault(1) + layout7.addWidget(self.bImport) + + Widget8Layout.addMultiCellLayout(layout7,7,8,5,5) + spacer3 = QSpacerItem(31,50,QSizePolicy.Minimum,QSizePolicy.Expanding) + Widget8Layout.addItem(spacer3,6,5) + spacer3_2 = QSpacerItem(31,50,QSizePolicy.Minimum,QSizePolicy.Expanding) + Widget8Layout.addItem(spacer3_2,9,5) + + self.BSalome = QToolButton(self.Widget8,"BSalome") + self.BSalome.setSizePolicy(QSizePolicy(0,0,0,0,self.BSalome.sizePolicy().hasHeightForWidth())) + self.BSalome.setMinimumSize(QSize(40,30)) + self.BSalome.setIconSet(QIconSet(self.image0)) + + Widget8Layout.addWidget(self.BSalome,4,3) + + self.BView2D = QPushButton(self.Widget8,"BView2D") + self.BView2D.setMinimumSize(QSize(120,30)) + + Widget8Layout.addMultiCellWidget(self.BView2D,4,4,4,5) + + layout12 = QHBoxLayout(None,0,6,"layout12") + + self.textLabel1_2 = QLabel(self.Widget8,"textLabel1_2") + layout12.addWidget(self.textLabel1_2) + spacer6 = QSpacerItem(111,20,QSizePolicy.Expanding,QSizePolicy.Minimum) + layout12.addItem(spacer6) + + Widget8Layout.addMultiCellLayout(layout12,0,1,3,5) + + self.LEValeur = QLineEdit(self.Widget8,"LEValeur") + self.LEValeur.setSizePolicy(QSizePolicy(1,1,0,0,self.LEValeur.sizePolicy().hasHeightForWidth())) + self.LEValeur.setMinimumSize(QSize(220,30)) + + Widget8Layout.addMultiCellWidget(self.LEValeur,2,3,3,5) + + self.BSup1Val = QToolButton(self.Widget8,"BSup1Val") + self.BSup1Val.setSizePolicy(QSizePolicy(0,0,0,0,self.BSup1Val.sizePolicy().hasHeightForWidth())) + self.BSup1Val.setMinimumSize(QSize(40,30)) + self.BSup1Val.setIconSet(QIconSet(self.image2)) + + Widget8Layout.addMultiCellWidget(self.BSup1Val,3,4,1,2) + + self.Commentaire = QLabel(self.Widget8,"Commentaire") + self.Commentaire.setMinimumSize(QSize(0,60)) + + Widget8Layout.addMultiCellWidget(self.Commentaire,5,5,3,5) + + layout6 = QHBoxLayout(None,0,6,"layout6") + + self.bSup = QPushButton(self.Widget8,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + layout6.addWidget(self.bSup) + + self.bOk = QPushButton(self.Widget8,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + layout6.addWidget(self.bOk) + + self.bHelp = QPushButton(self.Widget8,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + layout6.addWidget(self.bHelp) + + Widget8Layout.addMultiCellLayout(layout6,10,10,0,5) + self.tabuniqueinto.insertTab(self.Widget8,QString("")) + + DPlusBaseLayout.addWidget(self.tabuniqueinto,0,0) + + self.languageChange() + + self.resize(QSize(552,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPourListePressed) + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + self.connect(self.bParam,SIGNAL("clicked()"),self.BParametresPressed) + self.connect(self.bImport,SIGNAL("clicked()"),self.BImportPressed) + self.connect(self.BAjout1Val,SIGNAL("clicked()"),self.Ajout1Valeur) + self.connect(self.BSup1Val,SIGNAL("clicked()"),self.Sup1Valeur) + self.connect(self.LEValeur,SIGNAL("returnPressed()"),self.LEValeurPressed) + self.connect(self.BSalome,SIGNAL("clicked()"),self.BSalomePressed) + self.connect(self.BView2D,SIGNAL("clicked()"),self.BView2DPressed) + + self.setTabOrder(self.LEValeur,self.tabuniqueinto) + self.setTabOrder(self.tabuniqueinto,self.bSup) + self.setTabOrder(self.bSup,self.bOk) + self.setTabOrder(self.bOk,self.bHelp) + self.setTabOrder(self.bHelp,self.bParam) + self.setTabOrder(self.bParam,self.bImport) + self.setTabOrder(self.bImport,self.LBValeurs) + self.setTabOrder(self.LBValeurs,self.BView2D) + + + def languageChange(self): + self.setCaption(self.__tr("DUnIn")) + self.textLabel1.setText(self.__tr("Valeur(s) actuelle(s)")) + self.BAjout1Val.setText(QString.null) + QToolTip.add(self.BAjout1Val,self.__trUtf8("\x61\x6a\x6f\x75\x74\x65\x20\x6c\x61\x20\x76\x61\x6c\x65\x75\x72\x20\x73\x61\x69\x73\x69\x65\x20\x73\x6f\x75\x73\x20\x6c\x20\x6f\x63\x63\x75\x72\x65\x6e\x63\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x6e\xc3\xa9\x65\x20\x28\x65\x6e\x20\x66\x69\x6e\x20\x64\x65\x20\x6c\x69\x73\x74\x65\x20\x73\x69\x20\x69\x6c\x20\x6e\x20\x79\x20\x61\x20\x70\x61\x73\x20\x64\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x29")) + self.bParam.setText(self.__tr("&Parametres")) + self.bParam.setAccel(self.__tr("Alt+P")) + QToolTip.add(self.bParam,self.__tr("suppression du mot clef")) + self.bImport.setText(self.__tr("&Importer")) + self.bImport.setAccel(self.__tr("Alt+I")) + QToolTip.add(self.bImport,self.__tr("suppression du mot clef")) + self.BSalome.setText(QString.null) + QToolTip.add(self.BSalome,self.__trUtf8("\x61\x6a\x6f\x75\x74\x65\x20\x6c\x61\x20\x76\x61\x6c\x65\x75\x72\x20\x73\x61\x69\x73\x69\x65\x20\x73\x6f\x75\x73\x20\x6c\x20\x6f\x63\x63\x75\x72\x65\x6e\x63\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x6e\xc3\xa9\x65\x20\x28\x65\x6e\x20\x66\x69\x6e\x20\x64\x65\x20\x6c\x69\x73\x74\x65\x20\x73\x69\x20\x69\x6c\x20\x6e\x20\x79\x20\x61\x20\x70\x61\x73\x20\x64\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x29")) + self.BView2D.setText(self.__tr("Visualiser")) + self.textLabel1_2.setText(self.__tr("Valeur")) + self.BSup1Val.setText(QString.null) + QToolTip.add(self.BSup1Val,self.__tr("enleve l occurence selectionnee")) + self.Commentaire.setText(QString.null) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur")) + + + def BSupPressed(self): + print "DPlusBase.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DPlusBase.ViewDoc(): Not implemented yet" + + def BOkPourListePressed(self): + print "DPlusBase.BOkPourListePressed(): Not implemented yet" + + def BParametresPressed(self): + print "DPlusBase.BParametresPressed(): Not implemented yet" + + def LEValeurPressed(self): + print "DPlusBase.LEValeurPressed(): Not implemented yet" + + def Ajout1Valeur(self): + print "DPlusBase.Ajout1Valeur(): Not implemented yet" + + def Sup1Valeur(self): + print "DPlusBase.Sup1Valeur(): Not implemented yet" + + def BImportPressed(self): + print "DPlusBase.BImportPressed(): Not implemented yet" + + def BSalomePressed(self): + print "DPlusBase.BSalomePressed(): Not implemented yet" + + def BView2DPressed(self): + print "DPlusBase.BView2DPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DPlusBase",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DPlusBase",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desPlusieursBase.ui b/UiQT4/desPlusieursBase.ui new file mode 100644 index 00000000..a6a4eb0c --- /dev/null +++ b/UiQT4/desPlusieursBase.ui @@ -0,0 +1,556 @@ + +DPlusBase + + + DPlusBase + + + + 0 + 0 + 552 + 480 + + + + + 350 + 0 + + + + DUnIn + + + image0 + + + + unnamed + + + + tabuniqueinto + + + + Widget8 + + + Saisir Valeur + + + + unnamed + + + + textLabel1 + + + <u><font size="+1">Valeur(s) actuelle(s)</font></u> + + + + + LBValeurs + + + + 200 + 0 + + + + + + spacer4 + + + Vertical + + + Expanding + + + + 21 + 231 + + + + + + spacer3_3 + + + Vertical + + + Expanding + + + + 31 + 30 + + + + + + BAjout1Val + + + + 0 + 0 + 0 + 0 + + + + + 40 + 30 + + + + + + + image1 + + + ajoute la valeur saisie sous l occurence selectionnée (en fin de liste si il n y a pas de selection) + + + + + spacer5 + + + Horizontal + + + Expanding + + + + 150 + 20 + + + + + + layout7 + + + + unnamed + + + + bParam + + + + 0 + 30 + + + + &Parametres + + + Alt+P + + + true + + + suppression du mot clef + + + + + bImport + + + + 0 + 30 + + + + &Importer + + + Alt+I + + + true + + + suppression du mot clef + + + + + + + spacer3 + + + Vertical + + + Expanding + + + + 31 + 50 + + + + + + spacer3_2 + + + Vertical + + + Expanding + + + + 31 + 50 + + + + + + BSalome + + + + 0 + 0 + 0 + 0 + + + + + 40 + 30 + + + + + + + image0 + + + ajoute la valeur saisie sous l occurence selectionnée (en fin de liste si il n y a pas de selection) + + + + + BView2D + + + + 120 + 30 + + + + Visualiser + + + + + layout12 + + + + unnamed + + + + textLabel1_2 + + + <font size="+1">Valeur</font> + + + + + spacer6 + + + Horizontal + + + Expanding + + + + 111 + 20 + + + + + + + + LEValeur + + + + 1 + 1 + 0 + 0 + + + + + 220 + 30 + + + + + + BSup1Val + + + + 0 + 0 + 0 + 0 + + + + + 40 + 30 + + + + + + + image2 + + + enleve l occurence selectionnee + + + + + Commentaire + + + + 0 + 60 + + + + + + + + + layout6 + + + + unnamed + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + + + + + + + + 89504e470d0a1a0a0000000d49484452000000140000001408060000008d891d0d0000008d49444154388db5d3db0d80200c05d05be33a8ee24c8699188581ea87c6c4d25628d8840f5e27175002636a2d73b91fc0b569153917c3a07ef0ae9ccaabbf1f5bb5a6edc80c028334200602008165c23828302fa977dd36c6a067a778143fa185f95be66176c220a68303580d0e627ac201cc04a3d8552c1ac03995ab27e75a9a3e1847ddef3072ecef5fafb34ecb0165f7826b457b0000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d49484452000000210000000e0806000000a11e758c000000c749444154388dcd94590ec3200c4471d57bc73df9f407d331b159a228aa254448bc3cc68152fec0e4420ceeceb912e08a0239838848f5df02c99c11f86004300119054ae868c56ac206c06b4b109111c802874f3a52a587757123897e4039c46b50d8865b07f5400a450053330893cf8674a30028d492deef04626b559dfe48ac842b1a6daae6850155033b99c5009f70ceda111aab413b6f6a70d118e008e6fd8bc51d5d00a0f614556d1ff9b9be4952aabc3721f8f8b6f624c557ef8947afedf48c5e60b8dfbeb81d6dab9aff99270000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d49484452000000210000000e0806000000a11e758c000000cf49444154388dd594db0ec3200c43edfdf8d897bb0f345b480845d51eb64888f412e76001c00f046fd6e99bba77200480924a1032c92efbd8c7d5cabcc025400099e957849568fe7f06c0ded1deb32b4a1ec4ea824b9e74097165bd01f85527f78a7201e0a3129f345a017c543bafdc983d0f7109d15a331b471f47072c17494a82338f6178203a8817e67306b1f08b07ba03e602c9b831077e37e0209e67e3386710977b17de80c185ad38695a51d522c82ce77912e2fed8be83762092f52b1820dd11bb10e565b53a5a3bbaff130713d66fa6981857060000000049454e44ae426082 + + + + + bHelp + clicked() + DPlusBase + ViewDoc() + + + bOk + clicked() + DPlusBase + BOkPourListePressed() + + + bSup + clicked() + DPlusBase + BSupPressed() + + + bParam + clicked() + DPlusBase + BParametresPressed() + + + bImport + clicked() + DPlusBase + BImportPressed() + + + BAjout1Val + clicked() + DPlusBase + Ajout1Valeur() + + + BSup1Val + clicked() + DPlusBase + Sup1Valeur() + + + LEValeur + returnPressed() + DPlusBase + LEValeurPressed() + + + BSalome + clicked() + DPlusBase + BSalomePressed() + + + BView2D + clicked() + DPlusBase + BView2DPressed() + + + + LEValeur + tabuniqueinto + bSup + bOk + bHelp + bParam + bImport + LBValeurs + BView2D + + + BSupPressed() + ViewDoc() + BOkPourListePressed() + BParametresPressed() + LEValeurPressed() + Ajout1Valeur() + Sup1Valeur() + BImportPressed() + BSalomePressed() + BView2DPressed() + + + diff --git a/UiQT4/desPlusieursInto.py b/UiQT4/desPlusieursInto.py new file mode 100644 index 00000000..224aa87c --- /dev/null +++ b/UiQT4/desPlusieursInto.py @@ -0,0 +1,207 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desPlusieursInto.ui' +# +# Created: ven avr 4 11:27:09 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + +image0_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x21\x00\x00\x00\x0e" \ + "\x08\x06\x00\x00\x00\xa1\x1e\x75\x8c\x00\x00\x00" \ + "\xcf\x49\x44\x41\x54\x38\x8d\xd5\x94\xdb\x0e\xc3" \ + "\x20\x0c\x43\xed\xfd\xf8\xd8\x97\xbb\x0f\x34\x5b" \ + "\x48\x08\x45\xd5\x1e\xb6\x48\x88\xf4\x12\xe7\x60" \ + "\x01\xc0\x0f\x04\x6f\xd6\xe9\x9b\xba\x77\x20\x04" \ + "\x80\x92\x4a\x10\x32\xc9\x2e\xfb\xd8\xc7\xd5\xca" \ + "\xbc\xc0\x25\x40\x00\x99\xe9\x57\x84\x95\x68\xfe" \ + "\x7f\x06\xc0\xde\xd1\xde\xb3\x2b\x4a\x1e\xc4\xea" \ + "\x82\x4b\x9e\x74\x09\x71\x65\xbd\x01\xf8\x55\x27" \ + "\xf7\x8a\x72\x01\xe0\xa3\x12\x9f\x34\x5a\x01\x7c" \ + "\x54\x3b\xaf\xdc\x98\x3d\x0f\x71\x09\xd1\x5a\x33" \ + "\x1b\x47\x1f\x47\x07\x2c\x17\x49\x4a\x82\x33\x8f" \ + "\x61\x78\x20\x3a\x88\x17\xe6\x73\x06\xb1\xf0\x8b" \ + "\x07\xba\x03\xe6\x02\xc9\xb8\x31\x07\x7e\x37\xe0" \ + "\x20\x9e\x67\xe3\x38\x67\x10\x97\x7b\x17\xde\x80" \ + "\xc1\x85\xad\x38\x69\x5a\x51\xd5\x22\xc8\x2c\xe7" \ + "\x79\x12\xe2\xfe\xd8\xbe\x83\x76\x20\x92\xf5\x2b" \ + "\x18\x20\xdd\x11\xbb\x10\xe5\x65\xb5\x3a\x5a\x3b" \ + "\xba\xff\x13\x07\x13\xd6\x6f\xa6\x98\x18\x57\x06" \ + "\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82" +image1_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x21\x00\x00\x00\x0e" \ + "\x08\x06\x00\x00\x00\xa1\x1e\x75\x8c\x00\x00\x00" \ + "\xc7\x49\x44\x41\x54\x38\x8d\xcd\x94\x59\x0e\xc3" \ + "\x20\x0c\x44\x71\xd5\x7b\xc7\x3d\xf9\xf4\x07\xd3" \ + "\x31\xb1\x59\xa2\x28\xaa\x25\x44\x48\xbc\x3c\xc6" \ + "\x81\x52\xfe\xc0\xe4\x42\x0c\xee\xce\xb9\x12\xe0" \ + "\x8a\x02\x39\x83\x88\x48\xf5\xdf\x02\xc9\x9c\x11" \ + "\xf8\x60\x04\x30\x01\x19\x05\x4a\xe8\x68\xc5\x6a" \ + "\xc2\x06\xc0\x6b\x4b\x10\x91\x11\xc8\x02\x87\x4f" \ + "\x3a\x52\xa5\x87\x75\x71\x23\x89\x7e\x40\x39\xc4" \ + "\x6b\x50\xd8\x86\x5b\x07\xf5\x40\x0a\x45\x00\x53" \ + "\x33\x08\x93\xcf\x86\x74\xa3\x00\x28\xd4\x92\xde" \ + "\xef\x04\x62\x6b\x55\x9d\xfe\x48\xac\x84\x2b\x1a" \ + "\x6d\xaa\xe6\x85\x01\x55\x03\x3b\x99\xc5\x00\x9f" \ + "\x70\xce\xda\x11\x1a\xab\x41\x3b\x6f\x6a\x70\xd1" \ + "\x18\xe0\x08\xe6\xfd\x8b\xc5\x1d\x5d\x00\xa0\xf6" \ + "\x14\x55\x6d\x1f\xf9\xb9\xbe\x49\x52\xaa\xbc\x37" \ + "\x21\xf8\xf8\xb6\xf6\x24\xc5\x57\xef\x89\x47\xaf" \ + "\xed\xf4\x8c\x5e\x60\xb8\xdf\xbe\xb8\x1d\x6d\xab" \ + "\x9a\xff\x99\x27\x00\x00\x00\x00\x49\x45\x4e\x44" \ + "\xae\x42\x60\x82" + +class DPlusInto(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + self.image0 = QPixmap() + self.image0.loadFromData(image0_data,"PNG") + self.image1 = QPixmap() + self.image1.loadFromData(image1_data,"PNG") + if not name: + self.setName("DPlusInto") + + self.setMinimumSize(QSize(350,0)) + + DPlusIntoLayout = QGridLayout(self,1,1,11,6,"DPlusIntoLayout") + + self.tabuniqueinto = QTabWidget(self,"tabuniqueinto") + + self.Widget8 = QWidget(self.tabuniqueinto,"Widget8") + Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout") + + self.textLabel1 = QLabel(self.Widget8,"textLabel1") + + Widget8Layout.addMultiCellWidget(self.textLabel1,0,0,0,1) + + self.bSup = QPushButton(self.Widget8,"bSup") + self.bSup.setMinimumSize(QSize(130,30)) + self.bSup.setAutoDefault(1) + + Widget8Layout.addWidget(self.bSup,3,0) + + self.bOk = QPushButton(self.Widget8,"bOk") + self.bOk.setMinimumSize(QSize(130,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + Widget8Layout.addMultiCellWidget(self.bOk,3,3,1,2) + + self.bHelp = QPushButton(self.Widget8,"bHelp") + self.bHelp.setSizePolicy(QSizePolicy(1,0,150,0,self.bHelp.sizePolicy().hasHeightForWidth())) + self.bHelp.setMinimumSize(QSize(130,30)) + self.bHelp.setAutoDefault(1) + + Widget8Layout.addWidget(self.bHelp,3,3) + + self.Commentaire = QLabel(self.Widget8,"Commentaire") + self.Commentaire.setMinimumSize(QSize(0,40)) + + Widget8Layout.addMultiCellWidget(self.Commentaire,2,2,0,3) + + layout8 = QHBoxLayout(None,0,6,"layout8") + + self.LBValeurs = QListBox(self.Widget8,"LBValeurs") + layout8.addWidget(self.LBValeurs) + + layout5 = QVBoxLayout(None,0,6,"layout5") + spacer2 = QSpacerItem(21,44,QSizePolicy.Minimum,QSizePolicy.Expanding) + layout5.addItem(spacer2) + + layout2 = QVBoxLayout(None,0,6,"layout2") + + self.BSup1Val = QToolButton(self.Widget8,"BSup1Val") + self.BSup1Val.setMinimumSize(QSize(40,31)) + self.BSup1Val.setMaximumSize(QSize(40,31)) + self.BSup1Val.setIconSet(QIconSet(self.image0)) + layout2.addWidget(self.BSup1Val) + + self.BAjout1Val = QToolButton(self.Widget8,"BAjout1Val") + self.BAjout1Val.setMinimumSize(QSize(40,31)) + self.BAjout1Val.setMaximumSize(QSize(40,31)) + self.BAjout1Val.setIconSet(QIconSet(self.image1)) + layout2.addWidget(self.BAjout1Val) + spacer3 = QSpacerItem(21,176,QSizePolicy.Minimum,QSizePolicy.Expanding) + layout2.addItem(spacer3) + layout5.addLayout(layout2) + layout8.addLayout(layout5) + + self.listBoxVal = QListBox(self.Widget8,"listBoxVal") + layout8.addWidget(self.listBoxVal) + + Widget8Layout.addMultiCellLayout(layout8,1,1,0,3) + + self.textLabel1_2 = QLabel(self.Widget8,"textLabel1_2") + + Widget8Layout.addMultiCellWidget(self.textLabel1_2,0,0,2,3) + self.tabuniqueinto.insertTab(self.Widget8,QString("")) + + DPlusIntoLayout.addWidget(self.tabuniqueinto,0,0) + + self.languageChange() + + self.resize(QSize(482,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPourListePressed) + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + self.connect(self.LBValeurs,SIGNAL("doubleClicked(QListBoxItem*)"),self.Sup1Valeur) + self.connect(self.BAjout1Val,SIGNAL("clicked()"),self.Ajout1Valeur) + self.connect(self.BSup1Val,SIGNAL("clicked()"),self.Sup1Valeur) + + self.setTabOrder(self.listBoxVal,self.tabuniqueinto) + self.setTabOrder(self.tabuniqueinto,self.bSup) + self.setTabOrder(self.bSup,self.bOk) + self.setTabOrder(self.bOk,self.bHelp) + self.setTabOrder(self.bHelp,self.LBValeurs) + + + def languageChange(self): + self.setCaption(self.__tr("DUnIn")) + self.textLabel1.setText(self.__tr("Valeur(s) actuelle(s)")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.Commentaire.setText(QString.null) + self.BSup1Val.setText(QString.null) + QToolTip.add(self.BSup1Val,self.__tr("enleve l occurence selectionnee")) + self.BAjout1Val.setText(QString.null) + QToolTip.add(self.BAjout1Val,self.__trUtf8("\x61\x6a\x6f\x75\x74\x65\x20\x6c\x61\x20\x76\x61\x6c\x65\x75\x72\x20\x73\x61\x69\x73\x69\x65\x20\x73\x6f\x75\x73\x20\x6c\x20\x6f\x63\x63\x75\x72\x65\x6e\x63\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x6e\xc3\xa9\x65\x20\x28\x65\x6e\x20\x66\x69\x6e\x20\x64\x65\x20\x6c\x69\x73\x74\x65\x20\x73\x69\x20\x69\x6c\x20\x6e\x20\x79\x20\x61\x20\x70\x61\x73\x20\x64\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x29")) + self.textLabel1_2.setText(self.__tr("Valeur(s) possibles(s)")) + self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur")) + + + def BSupPressed(self): + print "DPlusInto.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DPlusInto.ViewDoc(): Not implemented yet" + + def BOkPourListePressed(self): + print "DPlusInto.BOkPourListePressed(): Not implemented yet" + + def Ajout1Valeur(self): + print "DPlusInto.Ajout1Valeur(): Not implemented yet" + + def Sup1Valeur(self): + print "DPlusInto.Sup1Valeur(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DPlusInto",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DPlusInto",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desPlusieursInto.ui b/UiQT4/desPlusieursInto.ui new file mode 100644 index 00000000..f53e25e1 --- /dev/null +++ b/UiQT4/desPlusieursInto.ui @@ -0,0 +1,346 @@ + +DPlusInto + + + DPlusInto + + + + 0 + 0 + 482 + 480 + + + + + 350 + 0 + + + + DUnIn + + + + unnamed + + + + tabuniqueinto + + + + Widget8 + + + Saisir Valeur + + + + unnamed + + + + textLabel1 + + + <u><font size="+1">Valeur(s) actuelle(s)</font></u> + + + + + bSup + + + + 130 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 130 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 1 + 0 + 150 + 0 + + + + + 130 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + Commentaire + + + + 0 + 40 + + + + + + + + + layout8 + + + + unnamed + + + + LBValeurs + + + + + layout5 + + + + unnamed + + + + spacer2 + + + Vertical + + + Expanding + + + + 21 + 44 + + + + + + layout2 + + + + unnamed + + + + BSup1Val + + + + 40 + 31 + + + + + 40 + 31 + + + + + + + image0 + + + enleve l occurence selectionnee + + + + + BAjout1Val + + + + 40 + 31 + + + + + 40 + 31 + + + + + + + image1 + + + ajoute la valeur saisie sous l occurence selectionnée (en fin de liste si il n y a pas de selection) + + + + + spacer3 + + + Vertical + + + Expanding + + + + 21 + 176 + + + + + + + + + + listBoxVal + + + + + + + textLabel1_2 + + + <u><font size="+1">Valeur(s) possibles(s)</font></u> + + + + + + + + + + 89504e470d0a1a0a0000000d49484452000000210000000e0806000000a11e758c000000cf49444154388dd594db0ec3200c43edfdf8d897bb0f345b480845d51eb64888f412e76001c00f046fd6e99bba77200480924a1032c92efbd8c7d5cabcc025400099e957849568fe7f06c0ded1deb32b4a1ec4ea824b9e74097165bd01f85527f78a7201e0a3129f345a017c543bafdc983d0f7109d15a331b471f47072c17494a82338f6178203a8817e67306b1f08b07ba03e602c9b831077e37e0209e67e3386710977b17de80c185ad38695a51d522c82ce77912e2fed8be83762092f52b1820dd11bb10e565b53a5a3bbaff130713d66fa6981857060000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d49484452000000210000000e0806000000a11e758c000000c749444154388dcd94590ec3200c4471d57bc73df9f407d331b159a228aa254448bc3cc68152fec0e4420ceeceb912e08a0239838848f5df02c99c11f86004300119054ae868c56ac206c06b4b109111c802874f3a52a587757123897e4039c46b50d8865b07f5400a450053330893cf8674a30028d492deef04626b559dfe48ac842b1a6daae6850155033b99c5009f70ceda111aab413b6f6a70d118e008e6fd8bc51d5d00a0f614556d1ff9b9be4952aabc3721f8f8b6f624c557ef8947afedf48c5e60b8dfbeb81d6dab9aff99270000000049454e44ae426082 + + + + + bHelp + clicked() + DPlusInto + ViewDoc() + + + bOk + clicked() + DPlusInto + BOkPourListePressed() + + + bSup + clicked() + DPlusInto + BSupPressed() + + + LBValeurs + doubleClicked(QListBoxItem*) + DPlusInto + Sup1Valeur() + + + BAjout1Val + clicked() + DPlusInto + Ajout1Valeur() + + + BSup1Val + clicked() + DPlusInto + Sup1Valeur() + + + + listBoxVal + tabuniqueinto + bSup + bOk + bHelp + LBValeurs + + + BSupPressed() + ViewDoc() + BOkPourListePressed() + Ajout1Valeur() + Sup1Valeur() + + + diff --git a/UiQT4/desPoursuite.py b/UiQT4/desPoursuite.py new file mode 100644 index 00000000..2db030cc --- /dev/null +++ b/UiQT4/desPoursuite.py @@ -0,0 +1,236 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desPoursuite.ui' +# +# Created: ven mai 16 13:30:38 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DPour(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DPour") + + self.setMinimumSize(QSize(505,0)) + + DPourLayout = QGridLayout(self,1,1,11,6,"DPourLayout") + + self.Commentaire = QLabel(self,"Commentaire") + + DPourLayout.addMultiCellWidget(self.Commentaire,1,1,0,2) + + self.TWChoix = QTabWidget(self,"TWChoix") + + self.MotClef = QWidget(self.TWChoix,"MotClef") + MotClefLayout = QGridLayout(self.MotClef,1,1,11,6,"MotClefLayout") + + self.textLabel1_2 = QLabel(self.MotClef,"textLabel1_2") + + MotClefLayout.addWidget(self.textLabel1_2,0,1) + + self.LBMCPermis = QListBox(self.MotClef,"LBMCPermis") + self.LBMCPermis.setMinimumSize(QSize(0,0)) + + MotClefLayout.addWidget(self.LBMCPermis,1,0) + + self.LBRegles = QListBox(self.MotClef,"LBRegles") + + MotClefLayout.addWidget(self.LBRegles,1,1) + + self.textLabel1 = QLabel(self.MotClef,"textLabel1") + self.textLabel1.setMinimumSize(QSize(0,0)) + + MotClefLayout.addWidget(self.textLabel1,0,0) + self.TWChoix.insertTab(self.MotClef,QString("")) + + self.Commande = QWidget(self.TWChoix,"Commande") + CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout") + + self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande") + + CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3) + + self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4") + + CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,1) + + self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1") + + self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe") + self.RBGroupe.setGeometry(QRect(20,40,101,20)) + + self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha") + self.RBalpha.setGeometry(QRect(20,20,120,20)) + self.RBalpha.setChecked(1) + + CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3) + + self.textLabel4 = QLabel(self.Commande,"textLabel4") + + CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3) + + self.BNext = QToolButton(self.Commande,"BNext") + self.BNext.setMinimumSize(QSize(60,0)) + self.BNext.setIconSet(QIconSet()) + + CommandeLayout.addWidget(self.BNext,1,2) + + self.textLabel6 = QLabel(self.Commande,"textLabel6") + self.textLabel6.setMinimumSize(QSize(40,0)) + + CommandeLayout.addWidget(self.textLabel6,1,0) + + self.LEFiltre = QLineEdit(self.Commande,"LEFiltre") + self.LEFiltre.setMinimumSize(QSize(160,30)) + + CommandeLayout.addWidget(self.LEFiltre,1,1) + self.TWChoix.insertTab(self.Commande,QString("")) + + self.TabPage = QWidget(self.TWChoix,"TabPage") + + LayoutWidget = QWidget(self.TabPage,"layout4") + LayoutWidget.setGeometry(QRect(10,31,472,90)) + layout4 = QVBoxLayout(LayoutWidget,11,6,"layout4") + + self.textLabel1_3 = QLabel(LayoutWidget,"textLabel1_3") + layout4.addWidget(self.textLabel1_3) + + self.LENomFichier = QLineEdit(LayoutWidget,"LENomFichier") + self.LENomFichier.setMinimumSize(QSize(470,40)) + layout4.addWidget(self.LENomFichier) + + LayoutWidget_2 = QWidget(self.TabPage,"layout5") + LayoutWidget_2.setGeometry(QRect(8,131,481,250)) + layout5 = QGridLayout(LayoutWidget_2,1,1,11,6,"layout5") + + layout3 = QHBoxLayout(None,0,6,"layout3") + spacer3 = QSpacerItem(331,20,QSizePolicy.Expanding,QSizePolicy.Minimum) + layout3.addItem(spacer3) + + self.BBrowse = QPushButton(LayoutWidget_2,"BBrowse") + self.BBrowse.setSizePolicy(QSizePolicy(0,0,0,0,self.BBrowse.sizePolicy().hasHeightForWidth())) + self.BBrowse.setMinimumSize(QSize(140,50)) + layout3.addWidget(self.BBrowse) + + layout5.addLayout(layout3,1,0) + spacer1 = QSpacerItem(21,190,QSizePolicy.Minimum,QSizePolicy.Expanding) + layout5.addItem(spacer1,0,0) + self.TWChoix.insertTab(self.TabPage,QString("")) + + DPourLayout.addMultiCellWidget(self.TWChoix,0,0,0,2) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + + DPourLayout.addWidget(self.bSup,2,0) + + self.bOk = QPushButton(self,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + DPourLayout.addWidget(self.bOk,2,1) + + self.bHelp = QPushButton(self,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + + DPourLayout.addWidget(self.bHelp,2,2) + + self.languageChange() + + self.resize(QSize(521,499).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked) + self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) + self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) + self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed) + self.connect(self.BBrowse,SIGNAL("clicked()"),self.BBrowsePressed) + self.connect(self.LENomFichier,SIGNAL("returnPressed()"),self.LENomFichReturnPressed) + + self.setTabOrder(self.LEFiltre,self.LENomFichier) + self.setTabOrder(self.LENomFichier,self.TWChoix) + self.setTabOrder(self.TWChoix,self.LBMCPermis) + self.setTabOrder(self.LBMCPermis,self.LBRegles) + self.setTabOrder(self.LBRegles,self.LBNouvCommande) + self.setTabOrder(self.LBNouvCommande,self.RBalpha) + self.setTabOrder(self.RBalpha,self.BBrowse) + self.setTabOrder(self.BBrowse,self.bSup) + self.setTabOrder(self.bSup,self.bOk) + self.setTabOrder(self.bOk,self.bHelp) + + + def languageChange(self): + self.setCaption(self.__tr("DMacro")) + self.Commentaire.setText(QString.null) + self.textLabel1_2.setText(self.__trUtf8("\x3c\x68\x33\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x75\x3e\x3c\x62\x3e\x52\xc3\xa9\x67\x6c\x65\x73\x3c\x2f\x62\x3e\x3c\x2f\x75\x3e\x3c\x2f\x70\x3e\x3c\x2f\x68\x33\x3e")) + self.textLabel1.setText(self.__tr("

Mots Clefs Permis

")) + self.TWChoix.changeTab(self.MotClef,self.__tr("Ajouter Mot-Clef")) + self.textLabel1_4.setText(self.__tr("Commandes :")) + self.buttonGroup1.setTitle(self.__tr("Affichage")) + self.RBGroupe.setText(self.__tr("par groupe")) + self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65")) + self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65")) + self.BNext.setText(self.__tr("Suivant")) + QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence")) + self.textLabel6.setText(self.__tr("Filtre")) + self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande")) + self.textLabel1_3.setText(self.__tr("La commande POURSUITE requiert un nom de Fichier :")) + self.BBrowse.setText(self.__tr("Edit")) + self.TWChoix.changeTab(self.TabPage,self.__tr("Fichier Poursuite")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + + + def LBNouvCommandeClicked(self): + print "DPour.LBNouvCommandeClicked(): Not implemented yet" + + def LEFiltreTextChanged(self): + print "DPour.LEFiltreTextChanged(): Not implemented yet" + + def LEfiltreReturnPressed(self): + print "DPour.LEfiltreReturnPressed(): Not implemented yet" + + def BSupPressed(self): + print "DPour.BSupPressed(): Not implemented yet" + + def BOkPressed(self): + print "DPour.BOkPressed(): Not implemented yet" + + def BuildTabCommand(self): + print "DPour.BuildTabCommand(): Not implemented yet" + + def BNextPressed(self): + print "DPour.BNextPressed(): Not implemented yet" + + def BBrowsePressed(self): + print "DPour.BBrowsePressed(): Not implemented yet" + + def LENomFichReturnPressed(self): + print "DPour.LENomFichReturnPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DPour",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DPour",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desPoursuite.ui b/UiQT4/desPoursuite.ui new file mode 100644 index 00000000..17f7d6da --- /dev/null +++ b/UiQT4/desPoursuite.ui @@ -0,0 +1,504 @@ + +DPour + + + DPour + + + + 0 + 0 + 521 + 499 + + + + + 505 + 0 + + + + DMacro + + + + unnamed + + + + Commentaire + + + + + + + + TWChoix + + + + MotClef + + + Ajouter Mot-Clef + + + + unnamed + + + + textLabel1_2 + + + <h3><p align="center"><u><b>Régles</b></u></p></h3> + + + + + LBMCPermis + + + + 0 + 0 + + + + + + LBRegles + + + + + textLabel1 + + + + 0 + 0 + + + + <h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3> + + + + + + + Commande + + + Nouvelle Commande + + + + unnamed + + + + LBNouvCommande + + + + + textLabel1_4 + + + <b><u>Commandes :</u></b> + + + + + buttonGroup1 + + + Affichage + + + + RBGroupe + + + + 20 + 40 + 101 + 20 + + + + par groupe + + + + + RBalpha + + + + 20 + 20 + 120 + 20 + + + + alphabétique + + + true + + + + + + textLabel4 + + + La commande choisie sera ajoutée APRES la commande courante + + + + + BNext + + + + 60 + 0 + + + + Suivant + + + + + + affiche la prochaine occurence + + + + + textLabel6 + + + + 40 + 0 + + + + Filtre + + + + + LEFiltre + + + + 160 + 30 + + + + + + + + TabPage + + + Fichier Poursuite + + + + layout4 + + + + 10 + 31 + 472 + 90 + + + + + unnamed + + + + textLabel1_3 + + + <font size="+1">La commande POURSUITE requiert un nom de Fichier :</font> + + + + + LENomFichier + + + + 470 + 40 + + + + + + + + layout5 + + + + 8 + 131 + 481 + 250 + + + + + unnamed + + + + layout3 + + + + unnamed + + + + spacer3 + + + Horizontal + + + Expanding + + + + 331 + 20 + + + + + + BBrowse + + + + 0 + 0 + 0 + 0 + + + + + 140 + 50 + + + + Edit + + + + + + + spacer1 + + + Vertical + + + Expanding + + + + 21 + 190 + + + + + + + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + + + LBNouvCommande + doubleClicked(QListBoxItem*) + DPour + LBNouvCommandeClicked() + + + LEFiltre + textChanged(const QString&) + DPour + LEFiltreTextChanged() + + + LEFiltre + returnPressed() + DPour + LEfiltreReturnPressed() + + + bSup + pressed() + DPour + BSupPressed() + + + bOk + clicked() + DPour + BOkPressed() + + + RBalpha + clicked() + DPour + BuildTabCommand() + + + RBGroupe + clicked() + DPour + BuildTabCommand() + + + BNext + clicked() + DPour + BNextPressed() + + + BBrowse + clicked() + DPour + BBrowsePressed() + + + LENomFichier + returnPressed() + DPour + LENomFichReturnPressed() + + + + LEFiltre + LENomFichier + TWChoix + LBMCPermis + LBRegles + LBNouvCommande + RBalpha + BBrowse + bSup + bOk + bHelp + + + LBNouvCommandeClicked() + LEFiltreTextChanged() + LEfiltreReturnPressed() + BSupPressed() + BOkPressed() + BuildTabCommand() + BNextPressed() + BBrowsePressed() + LENomFichReturnPressed() + + + diff --git a/UiQT4/desRacine.py b/UiQT4/desRacine.py new file mode 100644 index 00000000..39382eb2 --- /dev/null +++ b/UiQT4/desRacine.py @@ -0,0 +1,166 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desRacine.ui' +# +# Created: Mon Jun 2 16:02:17 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.16 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DRac(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DRac") + + self.setMinimumSize(QSize(505,0)) + + DRacLayout = QGridLayout(self,1,1,11,6,"DRacLayout") + + self.textLabel1_4 = QLabel(self,"textLabel1_4") + self.textLabel1_4.setMinimumSize(QSize(291,21)) + + DRacLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,1) + + self.textLabel1_4_2 = QLabel(self,"textLabel1_4_2") + + DRacLayout.addMultiCellWidget(self.textLabel1_4_2,0,1,2,3) + + self.buttonGroup1 = QButtonGroup(self,"buttonGroup1") + self.buttonGroup1.setMinimumSize(QSize(0,60)) + + self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe") + self.RBGroupe.setGeometry(QRect(10,20,90,20)) + + self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha") + self.RBalpha.setGeometry(QRect(110,20,120,20)) + self.RBalpha.setChecked(1) + + DRacLayout.addMultiCellWidget(self.buttonGroup1,1,1,0,1) + + self.bHelp = QPushButton(self,"bHelp") + self.bHelp.setMinimumSize(QSize(160,30)) + self.bHelp.setAutoDefault(1) + + DRacLayout.addWidget(self.bHelp,3,3) + + self.bSup = QPushButton(self,"bSup") + self.bSup.setMinimumSize(QSize(160,30)) + self.bSup.setAutoDefault(1) + + DRacLayout.addWidget(self.bSup,3,0) + + self.bOk = QPushButton(self,"bOk") + self.bOk.setMinimumSize(QSize(160,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + DRacLayout.addMultiCellWidget(self.bOk,3,3,1,2) + + layout2 = QGridLayout(None,1,1,0,6,"layout2") + + self.BNext = QToolButton(self,"BNext") + self.BNext.setMinimumSize(QSize(60,30)) + self.BNext.setIconSet(QIconSet()) + + layout2.addWidget(self.BNext,0,2) + + self.LEFiltre = QLineEdit(self,"LEFiltre") + self.LEFiltre.setMinimumSize(QSize(0,30)) + + layout2.addWidget(self.LEFiltre,0,1) + + self.LBRegles = QListBox(self,"LBRegles") + self.LBRegles.setMinimumSize(QSize(240,350)) + + layout2.addMultiCellWidget(self.LBRegles,0,1,3,3) + + self.textLabel6 = QLabel(self,"textLabel6") + self.textLabel6.setMinimumSize(QSize(40,0)) + + layout2.addWidget(self.textLabel6,0,0) + + self.LBNouvCommande = QListBox(self,"LBNouvCommande") + + layout2.addMultiCellWidget(self.LBNouvCommande,1,1,0,2) + + DRacLayout.addMultiCellLayout(layout2,2,2,0,3) + + self.languageChange() + + self.resize(QSize(509,513).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked) + self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged) + self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed) + self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand) + self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed) + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + + self.setTabOrder(self.LEFiltre,self.LBNouvCommande) + self.setTabOrder(self.LBNouvCommande,self.RBalpha) + self.setTabOrder(self.RBalpha,self.bSup) + self.setTabOrder(self.bSup,self.bOk) + self.setTabOrder(self.bOk,self.bHelp) + self.setTabOrder(self.bHelp,self.LBRegles) + + + def languageChange(self): + self.setCaption(self.__tr("DMacro")) + self.textLabel1_4.setText(self.__tr("Commandes :")) + self.textLabel1_4_2.setText(self.__trUtf8("\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x62\x3e\x3c\x75\x3e\x52\xc3\xa9\x67\x6c\x65\x73\x20\x3a\x3c\x2f\x75\x3e\x3c\x2f\x62\x3e\x3c\x2f\x70\x3e")) + self.buttonGroup1.setTitle(self.__tr("Affichage")) + self.RBGroupe.setText(self.__tr("par groupe")) + self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(QKeySequence(self.__tr("Alt+D"))) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(QKeySequence(self.__tr("Alt+S"))) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(QKeySequence(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.BNext.setText(self.__tr("Suivant")) + QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence")) + self.textLabel6.setText(self.__tr("Filtre")) + + + def LBNouvCommandeClicked(self): + print "DRac.LBNouvCommandeClicked(): Not implemented yet" + + def LEFiltreTextChanged(self): + print "DRac.LEFiltreTextChanged(): Not implemented yet" + + def LEfiltreReturnPressed(self): + print "DRac.LEfiltreReturnPressed(): Not implemented yet" + + def BSupPressed(self): + print "DRac.BSupPressed(): Not implemented yet" + + def BOkPressed(self): + print "DRac.BOkPressed(): Not implemented yet" + + def BuildTabCommand(self): + print "DRac.BuildTabCommand(): Not implemented yet" + + def BNextPressed(self): + print "DRac.BNextPressed(): Not implemented yet" + + def ViewDoc(self): + print "DRac.ViewDoc(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DRac",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DRac",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desRacine.ui b/UiQT4/desRacine.ui new file mode 100644 index 00000000..b4ee15d2 --- /dev/null +++ b/UiQT4/desRacine.ui @@ -0,0 +1,320 @@ + +DRac + + + DRac + + + + 0 + 0 + 509 + 513 + + + + + 505 + 0 + + + + DMacro + + + + unnamed + + + + textLabel1_4 + + + + 291 + 21 + + + + <b><u>Commandes :</u></b> + + + + + textLabel1_4_2 + + + <p align="center"><b><u>Régles :</u></b></p> + + + + + buttonGroup1 + + + + 0 + 60 + + + + Affichage + + + + RBGroupe + + + + 10 + 20 + 90 + 20 + + + + par groupe + + + + + RBalpha + + + + 110 + 20 + 120 + 20 + + + + alphabétique + + + true + + + + + + bHelp + + + + 160 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + bSup + + + + 160 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 160 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + layout2 + + + + unnamed + + + + BNext + + + + 60 + 30 + + + + Suivant + + + + + + affiche la prochaine occurence + + + + + LEFiltre + + + + 0 + 30 + + + + + + LBRegles + + + + 240 + 350 + + + + + + textLabel6 + + + + 40 + 0 + + + + Filtre + + + + + LBNouvCommande + + + + + + + + + LBNouvCommande + doubleClicked(QListBoxItem*) + DRac + LBNouvCommandeClicked() + + + LEFiltre + textChanged(const QString&) + DRac + LEFiltreTextChanged() + + + LEFiltre + returnPressed() + DRac + LEfiltreReturnPressed() + + + bSup + pressed() + DRac + BSupPressed() + + + bOk + clicked() + DRac + BOkPressed() + + + RBalpha + clicked() + DRac + BuildTabCommand() + + + RBGroupe + clicked() + DRac + BuildTabCommand() + + + BNext + clicked() + DRac + BNextPressed() + + + bHelp + clicked() + DRac + ViewDoc() + + + + LEFiltre + LBNouvCommande + RBalpha + bSup + bOk + bHelp + LBRegles + + + LBNouvCommandeClicked() + LEFiltreTextChanged() + LEfiltreReturnPressed() + BSupPressed() + BOkPressed() + BuildTabCommand() + BNextPressed() + ViewDoc() + + + diff --git a/UiQT4/desRacine.ui~ b/UiQT4/desRacine.ui~ new file mode 100644 index 00000000..9dbe4b96 --- /dev/null +++ b/UiQT4/desRacine.ui~ @@ -0,0 +1,304 @@ + +DRac + + + DRac + + + + 0 + 0 + 509 + 513 + + + + + 505 + 0 + + + + DMacro + + + + unnamed + + + + textLabel1_4 + + + <b><u>Commandes :</u></b> + + + + + textLabel1_4_2 + + + <p align="center"><b><u>Régles :</u></b></p> + + + + + buttonGroup1 + + + + 0 + 60 + + + + Affichage + + + + RBGroupe + + + + 10 + 20 + 90 + 20 + + + + par groupe + + + + + RBalpha + + + + 110 + 20 + 120 + 20 + + + + alphabétique + + + true + + + + + + LBRegles + + + + 200 + 350 + + + + + + LBNouvCommande + + + + + BNext + + + + 60 + 30 + + + + Suivant + + + + + + affiche la prochaine occurence + + + + + LEFiltre + + + + 0 + 30 + + + + + + textLabel6 + + + + 40 + 0 + + + + Filtre + + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + + + LBNouvCommande + doubleClicked(QListBoxItem*) + DRac + LBNouvCommandeClicked() + + + LEFiltre + textChanged(const QString&) + DRac + LEFiltreTextChanged() + + + LEFiltre + returnPressed() + DRac + LEfiltreReturnPressed() + + + bSup + pressed() + DRac + BSupPressed() + + + bOk + clicked() + DRac + BOkPressed() + + + RBalpha + clicked() + DRac + BuildTabCommand() + + + RBGroupe + clicked() + DRac + BuildTabCommand() + + + BNext + clicked() + DRac + BNextPressed() + + + bHelp + clicked() + DRac + ViewDoc() + + + + LEFiltre + LBNouvCommande + RBalpha + bSup + bOk + bHelp + LBRegles + + + LBNouvCommandeClicked() + LEFiltreTextChanged() + LEfiltreReturnPressed() + BSupPressed() + BOkPressed() + BuildTabCommand() + BNextPressed() + ViewDoc() + + + diff --git a/UiQT4/desSelectVal.py b/UiQT4/desSelectVal.py new file mode 100644 index 00000000..f43b5d2c --- /dev/null +++ b/UiQT4/desSelectVal.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desSelectVal.ui' +# +# Created: mar mar 25 10:05:09 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DSelVal(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DSelVal") + + + DSelValLayout = QGridLayout(self,1,1,11,6,"DSelValLayout") + + self.TBtext = QTextBrowser(self,"TBtext") + + DSelValLayout.addMultiCellWidget(self.TBtext,0,0,0,1) + + self.BGSeparateur = QButtonGroup(self,"BGSeparateur") + self.BGSeparateur.setMinimumSize(QSize(180,100)) + + LayoutWidget = QWidget(self.BGSeparateur,"layout1") + LayoutWidget.setGeometry(QRect(17,20,150,74)) + layout1 = QGridLayout(LayoutWidget,1,1,11,6,"layout1") + + self.BpointVirgule = QRadioButton(LayoutWidget,"BpointVirgule") + + layout1.addWidget(self.BpointVirgule,2,0) + + self.Bespace = QRadioButton(LayoutWidget,"Bespace") + self.Bespace.setChecked(1) + + layout1.addWidget(self.Bespace,0,0) + + self.Bvirgule = QRadioButton(LayoutWidget,"Bvirgule") + + layout1.addWidget(self.Bvirgule,1,0) + + DSelValLayout.addMultiCellWidget(self.BGSeparateur,1,2,0,0) + + self.BImportTout = QPushButton(self,"BImportTout") + + DSelValLayout.addWidget(self.BImportTout,2,1) + + self.BImportSel = QPushButton(self,"BImportSel") + + DSelValLayout.addWidget(self.BImportSel,1,1) + + self.languageChange() + + self.resize(QSize(413,497).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.BGSeparateur,SIGNAL("clicked(int)"),self.SeparateurSelect) + self.connect(self.BImportSel,SIGNAL("clicked()"),self.BImportSelPressed) + self.connect(self.BImportTout,SIGNAL("clicked()"),self.BImportToutPressed) + + + def languageChange(self): + self.setCaption(self.__trUtf8("\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x20\x64\x65\x20\x76\x61\x6c\x65\x75\x72\x73")) + self.BGSeparateur.setTitle(self.__trUtf8("\x53\xc3\xa9\x70\x61\x72\x61\x74\x65\x75\x72")) + self.BpointVirgule.setText(self.__tr("point-virgule")) + self.Bespace.setText(self.__tr("espace")) + self.Bvirgule.setText(self.__tr("virgule")) + self.BImportTout.setText(self.__tr("Importer Tout")) + self.BImportSel.setText(self.__tr("Ajouter Selection")) + + + def SeparateurSelect(self): + print "DSelVal.SeparateurSelect(): Not implemented yet" + + def BImportSelPressed(self): + print "DSelVal.BImportSelPressed(): Not implemented yet" + + def BImportToutPressed(self): + print "DSelVal.BImportToutPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DSelVal",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DSelVal",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desSelectVal.ui b/UiQT4/desSelectVal.ui new file mode 100644 index 00000000..ae092f56 --- /dev/null +++ b/UiQT4/desSelectVal.ui @@ -0,0 +1,130 @@ + +DSelVal + + + DSelVal + + + + 0 + 0 + 413 + 497 + + + + Sélection de valeurs + + + + unnamed + + + + TBtext + + + + + BGSeparateur + + + + 180 + 100 + + + + Séparateur + + + + layout1 + + + + 17 + 20 + 150 + 74 + + + + + unnamed + + + + BpointVirgule + + + point-virgule + + + + + Bespace + + + espace + + + true + + + + + Bvirgule + + + virgule + + + + + + + + BImportTout + + + Importer Tout + + + + + BImportSel + + + Ajouter Selection + + + + + + + BGSeparateur + clicked(int) + DSelVal + SeparateurSelect() + + + BImportSel + clicked() + DSelVal + BImportSelPressed() + + + BImportTout + clicked() + DSelVal + BImportToutPressed() + + + + SeparateurSelect() + BImportSelPressed() + BImportToutPressed() + + + diff --git a/UiQT4/desUniqueASSD.py b/UiQT4/desUniqueASSD.py new file mode 100644 index 00000000..12a79933 --- /dev/null +++ b/UiQT4/desUniqueASSD.py @@ -0,0 +1,106 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desUniqueASSD.ui' +# +# Created: mar mar 25 10:05:09 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DUnASSD(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DUnASSD") + + self.setMinimumSize(QSize(350,0)) + + DUnASSDLayout = QGridLayout(self,1,1,11,6,"DUnASSDLayout") + + self.tabuniqueinto = QTabWidget(self,"tabuniqueinto") + + self.Widget8 = QWidget(self.tabuniqueinto,"Widget8") + Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout") + + self.textLabel2 = QLabel(self.Widget8,"textLabel2") + self.textLabel2.setMinimumSize(QSize(436,50)) + + Widget8Layout.addWidget(self.textLabel2,0,0) + + self.listBoxASSD = QListBox(self.Widget8,"listBoxASSD") + + Widget8Layout.addWidget(self.listBoxASSD,1,0) + + self.Commentaire = QLabel(self.Widget8,"Commentaire") + self.Commentaire.setMinimumSize(QSize(380,30)) + + Widget8Layout.addWidget(self.Commentaire,2,0) + + layout2 = QHBoxLayout(None,0,6,"layout2") + + self.bSup = QPushButton(self.Widget8,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + layout2.addWidget(self.bSup) + + self.bOk = QPushButton(self.Widget8,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + layout2.addWidget(self.bOk) + + self.bHelp = QPushButton(self.Widget8,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + layout2.addWidget(self.bHelp) + + Widget8Layout.addLayout(layout2,3,0) + self.tabuniqueinto.insertTab(self.Widget8,QString("")) + + DUnASSDLayout.addWidget(self.tabuniqueinto,0,0) + + self.languageChange() + + self.resize(QSize(482,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + + + def languageChange(self): + self.setCaption(self.__tr("DUnIn")) + self.textLabel2.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x31\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x53\x74\x72\x75\x63\x74\x75\x72\x65\x73\x20\x64\x65\x20\x64\x6f\x6e\x6e\xc3\xa9\x65\x73\x20\x64\x75\x20\x74\x79\x70\x65\x0a\x72\x65\x71\x75\x69\x73\x20\x70\x61\x72\x20\x6c\x27\x6f\x62\x6a\x65\x74\x20\x63\x6f\x75\x72\x61\x6e\x74\x20\x3a\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e")) + self.Commentaire.setText(QString.null) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur")) + + + def BSupPressed(self): + print "DUnASSD.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DUnASSD.ViewDoc(): Not implemented yet" + + def BOkPressed(self): + print "DUnASSD.BOkPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DUnASSD",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DUnASSD",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desUniqueASSD.ui b/UiQT4/desUniqueASSD.ui new file mode 100644 index 00000000..819c9294 --- /dev/null +++ b/UiQT4/desUniqueASSD.ui @@ -0,0 +1,190 @@ + +DUnASSD + + + DUnASSD + + + + 0 + 0 + 482 + 480 + + + + + 350 + 0 + + + + DUnIn + + + + unnamed + + + + tabuniqueinto + + + + Widget8 + + + Saisir Valeur + + + + unnamed + + + + textLabel2 + + + + 436 + 50 + + + + <font size="+1"><p align="center">Structures de données du type +requis par l'objet courant :</p></font> + + + + + listBoxASSD + + + + + Commentaire + + + + 380 + 30 + + + + + + + + + layout2 + + + + unnamed + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + + + + + + + + bHelp + clicked() + DUnASSD + ViewDoc() + + + bOk + clicked() + DUnASSD + BOkPressed() + + + bSup + clicked() + DUnASSD + BSupPressed() + + + + BSupPressed() + ViewDoc() + BOkPressed() + + + diff --git a/UiQT4/desUniqueBase.py b/UiQT4/desUniqueBase.py new file mode 100644 index 00000000..ec1c5161 --- /dev/null +++ b/UiQT4/desUniqueBase.py @@ -0,0 +1,174 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desUniqueBase.ui' +# +# Created: ven avr 4 11:27:09 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + +image0_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x14\x00\x00\x00\x14" \ + "\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\x00\x00\x00" \ + "\x8d\x49\x44\x41\x54\x38\x8d\xb5\xd3\xdb\x0d\x80" \ + "\x20\x0c\x05\xd0\x5b\xe3\x3a\x8e\xe2\x4c\x86\x99" \ + "\x18\x85\x81\xea\x87\xc6\xc4\xd2\x56\x28\xd8\x84" \ + "\x0f\x5e\x27\x17\x50\x02\x63\x6a\x2d\x73\xb9\x1f" \ + "\xc0\xb5\x69\x15\x39\x17\xc3\xa0\x7e\xf0\xae\x9c" \ + "\xca\xab\xbf\x1f\x5b\xb5\xa6\xed\xc8\x0c\x02\x83" \ + "\x34\x20\x06\x02\x00\x81\x65\xc2\x38\x28\x30\x2f" \ + "\xa9\x77\xdd\x36\xc6\xa0\x67\xa7\x78\x14\x3f\xa1" \ + "\x85\xf9\x5b\xe6\x61\x76\xc2\x20\xa6\x83\x03\x58" \ + "\x0d\x0e\x62\x7a\xc2\x01\xcc\x04\xa3\xd8\x55\x2c" \ + "\x1a\xc0\x39\x95\xab\x27\xe7\x5a\x9a\x3e\x18\x47" \ + "\xdd\xef\x30\x72\xec\xef\x5f\xaf\xb3\x4e\xcb\x01" \ + "\x65\xf7\x82\x6b\x45\x7b\x00\x00\x00\x00\x49\x45" \ + "\x4e\x44\xae\x42\x60\x82" + +class DUnBase(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + self.image0 = QPixmap() + self.image0.loadFromData(image0_data,"PNG") + if not name: + self.setName("DUnBase") + + self.setMinimumSize(QSize(350,0)) + + DUnBaseLayout = QGridLayout(self,1,1,11,6,"DUnBaseLayout") + + self.tabuniqueinto = QTabWidget(self,"tabuniqueinto") + + self.Widget8 = QWidget(self.tabuniqueinto,"Widget8") + Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout") + + layout2 = QHBoxLayout(None,0,6,"layout2") + + self.textLabel2 = QLabel(self.Widget8,"textLabel2") + layout2.addWidget(self.textLabel2) + + self.lineEditVal = QLineEdit(self.Widget8,"lineEditVal") + self.lineEditVal.setMinimumSize(QSize(290,50)) + layout2.addWidget(self.lineEditVal) + + Widget8Layout.addMultiCellLayout(layout2,1,1,0,2) + spacer1 = QSpacerItem(288,21,QSizePolicy.Expanding,QSizePolicy.Minimum) + Widget8Layout.addMultiCell(spacer1,0,0,0,1) + + self.bParametres = QPushButton(self.Widget8,"bParametres") + self.bParametres.setSizePolicy(QSizePolicy(0,0,0,0,self.bParametres.sizePolicy().hasHeightForWidth())) + self.bParametres.setMinimumSize(QSize(140,30)) + + Widget8Layout.addWidget(self.bParametres,0,2) + + self.bSup = QPushButton(self.Widget8,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + + Widget8Layout.addWidget(self.bSup,5,0) + + self.bOk = QPushButton(self.Widget8,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + Widget8Layout.addWidget(self.bOk,5,1) + + self.bHelp = QPushButton(self.Widget8,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + + Widget8Layout.addWidget(self.bHelp,5,2) + spacer4 = QSpacerItem(41,112,QSizePolicy.Minimum,QSizePolicy.Expanding) + Widget8Layout.addItem(spacer4,2,1) + spacer3 = QSpacerItem(21,112,QSizePolicy.Minimum,QSizePolicy.Expanding) + Widget8Layout.addItem(spacer3,4,1) + + self.Commentaire = QLabel(self.Widget8,"Commentaire") + self.Commentaire.setMinimumSize(QSize(430,40)) + + Widget8Layout.addMultiCellWidget(self.Commentaire,3,3,0,2) + + self.BView2D = QPushButton(self.Widget8,"BView2D") + self.BView2D.setMinimumSize(QSize(110,40)) + + Widget8Layout.addWidget(self.BView2D,2,2) + + self.BSalome = QPushButton(self.Widget8,"BSalome") + self.BSalome.setMinimumSize(QSize(50,40)) + self.BSalome.setIconSet(QIconSet(self.image0)) + + Widget8Layout.addWidget(self.BSalome,2,0) + self.tabuniqueinto.insertTab(self.Widget8,QString("")) + + DUnBaseLayout.addWidget(self.tabuniqueinto,0,0) + + self.languageChange() + + self.resize(QSize(482,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOk2Pressed) + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.LEValeurPressed) + self.connect(self.bParametres,SIGNAL("pressed()"),self.BParametresPressed) + self.connect(self.BSalome,SIGNAL("pressed()"),self.BSalomePressed) + self.connect(self.BView2D,SIGNAL("clicked()"),self.BView2DPressed) + + self.setTabOrder(self.lineEditVal,self.tabuniqueinto) + self.setTabOrder(self.tabuniqueinto,self.bParametres) + self.setTabOrder(self.bParametres,self.bSup) + self.setTabOrder(self.bSup,self.bOk) + self.setTabOrder(self.bOk,self.bHelp) + self.setTabOrder(self.bHelp,self.BView2D) + self.setTabOrder(self.BView2D,self.BSalome) + + + def languageChange(self): + self.setCaption(self.__tr("DUnIn")) + self.textLabel2.setText(self.__tr("

Valeur:

")) + self.bParametres.setText(self.__tr("Parametres")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.Commentaire.setText(QString.null) + self.BView2D.setText(self.__tr("Visualiser")) + self.BSalome.setText(QString.null) + self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur")) + + + def BSupPressed(self): + print "DUnBase.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DUnBase.ViewDoc(): Not implemented yet" + + def BOk2Pressed(self): + print "DUnBase.BOk2Pressed(): Not implemented yet" + + def BParametresPressed(self): + print "DUnBase.BParametresPressed(): Not implemented yet" + + def LEValeurPressed(self): + print "DUnBase.LEValeurPressed(): Not implemented yet" + + def BSalomePressed(self): + print "DUnBase.BSalomePressed(): Not implemented yet" + + def BView2DPressed(self): + print "DUnBase.BView2DPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DUnBase",s,c) diff --git a/UiQT4/desUniqueBase.ui b/UiQT4/desUniqueBase.ui new file mode 100644 index 00000000..30eeab83 --- /dev/null +++ b/UiQT4/desUniqueBase.ui @@ -0,0 +1,336 @@ + +DUnBase + + + DUnBase + + + + 0 + 0 + 482 + 480 + + + + + 350 + 0 + + + + DUnIn + + + + unnamed + + + + tabuniqueinto + + + + Widget8 + + + Saisir Valeur + + + + unnamed + + + + layout2 + + + + unnamed + + + + textLabel2 + + + <b><u><p align="center">Valeur: </p></u></b> + + + + + lineEditVal + + + + 290 + 50 + + + + + + + + spacer1 + + + Horizontal + + + Expanding + + + + 288 + 21 + + + + + + bParametres + + + + 0 + 0 + 0 + 0 + + + + + 140 + 30 + + + + Parametres + + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + spacer4 + + + Vertical + + + Expanding + + + + 41 + 112 + + + + + + spacer3 + + + Vertical + + + Expanding + + + + 21 + 112 + + + + + + Commentaire + + + + 430 + 40 + + + + + + + + + BView2D + + + + 110 + 40 + + + + Visualiser + + + + + BSalome + + + + 50 + 40 + + + + + + + image0 + + + + + + + + + + 89504e470d0a1a0a0000000d49484452000000140000001408060000008d891d0d0000008d49444154388db5d3db0d80200c05d05be33a8ee24c8699188581ea87c6c4d25628d8840f5e27175002636a2d73b91fc0b569153917c3a07ef0ae9ccaabbf1f5bb5a6edc80c028334200602008165c23828302fa977dd36c6a067a778143fa185f95be66176c220a68303580d0e627ac201cc04a3d8552c1ac03995ab27e75a9a3e1847ddef3072ecef5fafb34ecb0165f7826b457b0000000049454e44ae426082 + + + + + bHelp + clicked() + DUnBase + ViewDoc() + + + bOk + clicked() + DUnBase + BOk2Pressed() + + + bSup + clicked() + DUnBase + BSupPressed() + + + lineEditVal + returnPressed() + DUnBase + LEValeurPressed() + + + bParametres + pressed() + DUnBase + BParametresPressed() + + + BSalome + pressed() + DUnBase + BSalomePressed() + + + BView2D + clicked() + DUnBase + BView2DPressed() + + + + lineEditVal + tabuniqueinto + bParametres + bSup + bOk + bHelp + BView2D + BSalome + + + BSupPressed() + ViewDoc() + BOk2Pressed() + BParametresPressed() + LEValeurPressed() + BSalomePressed() + BView2DPressed() + + + diff --git a/UiQT4/desUniqueComp.py b/UiQT4/desUniqueComp.py new file mode 100644 index 00000000..7b9af9dd --- /dev/null +++ b/UiQT4/desUniqueComp.py @@ -0,0 +1,152 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desUniqueComp.ui' +# +# Created: ven avr 4 11:27:09 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DUnComp(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DUnComp") + + self.setMinimumSize(QSize(350,0)) + + DUnCompLayout = QGridLayout(self,1,1,11,6,"DUnCompLayout") + + self.tabuniqueinto = QTabWidget(self,"tabuniqueinto") + + self.Widget8 = QWidget(self.tabuniqueinto,"Widget8") + Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout") + + layout3 = QVBoxLayout(None,0,6,"layout3") + + self.textLabel1 = QLabel(self.Widget8,"textLabel1") + layout3.addWidget(self.textLabel1) + + self.LEcomp = QLineEdit(self.Widget8,"LEcomp") + self.LEcomp.setMinimumSize(QSize(390,40)) + layout3.addWidget(self.LEcomp) + + Widget8Layout.addMultiCellLayout(layout3,0,0,0,1) + + self.Commentaire = QLabel(self.Widget8,"Commentaire") + + Widget8Layout.addMultiCellWidget(self.Commentaire,5,5,0,1) + + self.LEReel = QLineEdit(self.Widget8,"LEReel") + self.LEReel.setMinimumSize(QSize(190,40)) + + Widget8Layout.addWidget(self.LEReel,3,0) + + self.LEImag = QLineEdit(self.Widget8,"LEImag") + self.LEImag.setMinimumSize(QSize(190,40)) + + Widget8Layout.addWidget(self.LEImag,3,1) + + self.buttonGroup1 = QButtonGroup(self.Widget8,"buttonGroup1") + + self.RBRI = QRadioButton(self.buttonGroup1,"RBRI") + self.RBRI.setGeometry(QRect(20,40,335,20)) + + self.RBMP = QRadioButton(self.buttonGroup1,"RBMP") + self.RBMP.setGeometry(QRect(20,20,335,20)) + + Widget8Layout.addMultiCellWidget(self.buttonGroup1,2,2,0,1) + spacer3 = QSpacerItem(20,41,QSizePolicy.Minimum,QSizePolicy.Expanding) + Widget8Layout.addItem(spacer3,1,0) + spacer4 = QSpacerItem(20,41,QSizePolicy.Minimum,QSizePolicy.Expanding) + Widget8Layout.addItem(spacer4,4,0) + + layout2 = QHBoxLayout(None,0,6,"layout2") + + self.bSup = QPushButton(self.Widget8,"bSup") + self.bSup.setAutoDefault(1) + layout2.addWidget(self.bSup) + + self.bOk = QPushButton(self.Widget8,"bOk") + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + layout2.addWidget(self.bOk) + + self.bHelp = QPushButton(self.Widget8,"bHelp") + self.bHelp.setAutoDefault(1) + layout2.addWidget(self.bHelp) + + Widget8Layout.addMultiCellLayout(layout2,6,6,0,1) + self.tabuniqueinto.insertTab(self.Widget8,QString("")) + + DUnCompLayout.addWidget(self.tabuniqueinto,0,0) + + self.languageChange() + + self.resize(QSize(484,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + self.connect(self.LEImag,SIGNAL("returnPressed()"),self.LEImagRPressed) + self.connect(self.LEReel,SIGNAL("returnPressed()"),self.LEReelRPressed) + self.connect(self.LEcomp,SIGNAL("returnPressed()"),self.LEcompRPressed) + + self.setTabOrder(self.LEcomp,self.LEReel) + self.setTabOrder(self.LEReel,self.LEImag) + self.setTabOrder(self.LEImag,self.tabuniqueinto) + self.setTabOrder(self.tabuniqueinto,self.RBRI) + self.setTabOrder(self.RBRI,self.RBMP) + self.setTabOrder(self.RBMP,self.bSup) + self.setTabOrder(self.bSup,self.bOk) + self.setTabOrder(self.bOk,self.bHelp) + + + def languageChange(self): + self.setCaption(self.__tr("DUnComp")) + self.textLabel1.setText(self.__tr("Complexe de la forme : a+bj")) + self.Commentaire.setText(self.__tr("Un complexe est attendu")) + self.buttonGroup1.setTitle(self.__tr("OU")) + self.RBRI.setText(self.__trUtf8("\x52\x49\x20\x20\x20\x3a\x20\x52\xc3\xa9\x65\x6c\x09\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x6d\x61\x67\x69\x6e\x61\x69\x72\x65")) + self.RBMP.setText(self.__tr("MP : Module Phase")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur")) + + + def BSupPressed(self): + print "DUnComp.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DUnComp.ViewDoc(): Not implemented yet" + + def BOkPressed(self): + print "DUnComp.BOkPressed(): Not implemented yet" + + def LEImagRPressed(self): + print "DUnComp.LEImagRPressed(): Not implemented yet" + + def LEReelRPressed(self): + print "DUnComp.LEReelRPressed(): Not implemented yet" + + def LEcompRPressed(self): + print "DUnComp.LEcompRPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DUnComp",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DUnComp",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desUniqueComp.ui b/UiQT4/desUniqueComp.ui new file mode 100644 index 00000000..ae0361d6 --- /dev/null +++ b/UiQT4/desUniqueComp.ui @@ -0,0 +1,303 @@ + +DUnComp + + + DUnComp + + + + 0 + 0 + 484 + 480 + + + + + 350 + 0 + + + + DUnComp + + + + unnamed + + + + tabuniqueinto + + + + Widget8 + + + Saisir Valeur + + + + unnamed + + + + layout3 + + + + unnamed + + + + textLabel1 + + + <font size="+2">Complexe de la forme : a+bj</font> + + + + + LEcomp + + + + 390 + 40 + + + + + + + + Commentaire + + + <font size="+2">Un complexe est attendu</font> + + + + + LEReel + + + + 190 + 40 + + + + + + LEImag + + + + 190 + 40 + + + + + + buttonGroup1 + + + OU + + + + RBRI + + + + 20 + 40 + 335 + 20 + + + + RI : Réel Imaginaire + + + + + RBMP + + + + 20 + 20 + 335 + 20 + + + + MP : Module Phase + + + + + + spacer3 + + + Vertical + + + Expanding + + + + 20 + 41 + + + + + + spacer4 + + + Vertical + + + Expanding + + + + 20 + 41 + + + + + + layout2 + + + + unnamed + + + + bSup + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + + + + + + + + bHelp + clicked() + DUnComp + ViewDoc() + + + bOk + clicked() + DUnComp + BOkPressed() + + + bSup + clicked() + DUnComp + BSupPressed() + + + LEImag + returnPressed() + DUnComp + LEImagRPressed() + + + LEReel + returnPressed() + DUnComp + LEReelRPressed() + + + LEcomp + returnPressed() + DUnComp + LEcompRPressed() + + + + LEcomp + LEReel + LEImag + tabuniqueinto + RBRI + RBMP + bSup + bOk + bHelp + + + BSupPressed() + ViewDoc() + BOkPressed() + LEImagRPressed() + LEReelRPressed() + LEcompRPressed() + + + diff --git a/UiQT4/desUniqueInto.py b/UiQT4/desUniqueInto.py new file mode 100644 index 00000000..914a3d2e --- /dev/null +++ b/UiQT4/desUniqueInto.py @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desUniqueInto.ui' +# +# Created: mar mar 25 10:05:09 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DUnIn(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DUnIn") + + self.setMinimumSize(QSize(350,0)) + + DUnInLayout = QGridLayout(self,1,1,11,6,"DUnInLayout") + + self.tabuniqueinto = QTabWidget(self,"tabuniqueinto") + + self.Widget8 = QWidget(self.tabuniqueinto,"Widget8") + Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout") + + self.Commentaire = QLabel(self.Widget8,"Commentaire") + self.Commentaire.setMinimumSize(QSize(420,30)) + + Widget8Layout.addWidget(self.Commentaire,2,0) + + layout2 = QHBoxLayout(None,0,6,"layout2") + + self.bSup = QPushButton(self.Widget8,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + layout2.addWidget(self.bSup) + + self.bOk = QPushButton(self.Widget8,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + layout2.addWidget(self.bOk) + + self.bHelp = QPushButton(self.Widget8,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + layout2.addWidget(self.bHelp) + + Widget8Layout.addLayout(layout2,3,0) + + self.listBoxVal = QListBox(self.Widget8,"listBoxVal") + + Widget8Layout.addWidget(self.listBoxVal,1,0) + + self.textLabel2 = QLabel(self.Widget8,"textLabel2") + + Widget8Layout.addWidget(self.textLabel2,0,0) + self.tabuniqueinto.insertTab(self.Widget8,QString("")) + + DUnInLayout.addWidget(self.tabuniqueinto,0,0) + + self.languageChange() + + self.resize(QSize(482,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + + + def languageChange(self): + self.setCaption(self.__tr("DUnIn")) + self.Commentaire.setText(QString.null) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.textLabel2.setText(self.__tr("

Valeurs possibles

")) + self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur")) + + + def BSupPressed(self): + print "DUnIn.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DUnIn.ViewDoc(): Not implemented yet" + + def BOkPressed(self): + print "DUnIn.BOkPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DUnIn",s,c) diff --git a/UiQT4/desUniqueInto.ui b/UiQT4/desUniqueInto.ui new file mode 100644 index 00000000..67f99a98 --- /dev/null +++ b/UiQT4/desUniqueInto.ui @@ -0,0 +1,183 @@ + +DUnIn + + + DUnIn + + + + 0 + 0 + 482 + 480 + + + + + 350 + 0 + + + + DUnIn + + + + unnamed + + + + tabuniqueinto + + + + Widget8 + + + Saisir Valeur + + + + unnamed + + + + Commentaire + + + + 420 + 30 + + + + + + + + + layout2 + + + + unnamed + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + + + listBoxVal + + + + + textLabel2 + + + <b><u><p align="center">Valeurs possibles</p></u></b> + + + + + + + + + + bHelp + clicked() + DUnIn + ViewDoc() + + + bOk + clicked() + DUnIn + BOkPressed() + + + bSup + clicked() + DUnIn + BSupPressed() + + + + BSupPressed() + ViewDoc() + BOkPressed() + + + diff --git a/UiQT4/desUniqueSDCO.py b/UiQT4/desUniqueSDCO.py new file mode 100644 index 00000000..bd94a1db --- /dev/null +++ b/UiQT4/desUniqueSDCO.py @@ -0,0 +1,122 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desUniqueSDCO.ui' +# +# Created: ven avr 4 11:27:09 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DUnSDCO(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DUnSDCO") + + self.setMinimumSize(QSize(350,0)) + + DUnSDCOLayout = QGridLayout(self,1,1,11,6,"DUnSDCOLayout") + + self.tabuniqueinto = QTabWidget(self,"tabuniqueinto") + + self.Widget8 = QWidget(self.tabuniqueinto,"Widget8") + Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout") + + self.bSup = QPushButton(self.Widget8,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + + Widget8Layout.addWidget(self.bSup,4,0) + + self.bOk = QPushButton(self.Widget8,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + Widget8Layout.addWidget(self.bOk,4,1) + + self.bHelp = QPushButton(self.Widget8,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + + Widget8Layout.addWidget(self.bHelp,4,2) + + self.Commentaire = QLabel(self.Widget8,"Commentaire") + self.Commentaire.setMinimumSize(QSize(311,30)) + + Widget8Layout.addMultiCellWidget(self.Commentaire,3,3,0,2) + + self.textLabel2_2 = QLabel(self.Widget8,"textLabel2_2") + + Widget8Layout.addMultiCellWidget(self.textLabel2_2,0,0,0,2) + + self.LESDCO = QLineEdit(self.Widget8,"LESDCO") + self.LESDCO.setMinimumSize(QSize(300,40)) + + Widget8Layout.addMultiCellWidget(self.LESDCO,1,1,0,2) + + self.textLabel2 = QLabel(self.Widget8,"textLabel2") + + Widget8Layout.addMultiCellWidget(self.textLabel2,2,2,0,2) + self.tabuniqueinto.insertTab(self.Widget8,QString("")) + + DUnSDCOLayout.addWidget(self.tabuniqueinto,0,0) + + self.languageChange() + + self.resize(QSize(461,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + self.connect(self.LESDCO,SIGNAL("returnPressed()"),self.LESDCOReturnPressed) + + self.setTabOrder(self.LESDCO,self.tabuniqueinto) + self.setTabOrder(self.tabuniqueinto,self.bSup) + self.setTabOrder(self.bSup,self.bOk) + self.setTabOrder(self.bOk,self.bHelp) + + + def languageChange(self): + self.setCaption(self.__tr("DUnIn")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.Commentaire.setText(QString.null) + self.textLabel2_2.setText(self.__tr("

Nom du nouveau concept :

")) + self.textLabel2.setText(self.__tr("Un objet de type CO est attendu")) + self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur")) + + + def BSupPressed(self): + print "DUnSDCO.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DUnSDCO.ViewDoc(): Not implemented yet" + + def BOkPressed(self): + print "DUnSDCO.BOkPressed(): Not implemented yet" + + def LESDCOReturnPressed(self): + print "DUnSDCO.LESDCOReturnPressed(): Not implemented yet" + + def BOuiPressed(self): + print "DUnSDCO.BOuiPressed(): Not implemented yet" + + def BNonPressed(self): + print "DUnSDCO.BNonPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DUnSDCO",s,c) diff --git a/UiQT4/desUniqueSDCO.ui b/UiQT4/desUniqueSDCO.ui new file mode 100644 index 00000000..f847c8b5 --- /dev/null +++ b/UiQT4/desUniqueSDCO.ui @@ -0,0 +1,203 @@ + +DUnSDCO + + + DUnSDCO + + + + 0 + 0 + 461 + 480 + + + + + 350 + 0 + + + + DUnIn + + + + unnamed + + + + tabuniqueinto + + + + Widget8 + + + Saisir Valeur + + + + unnamed + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + Commentaire + + + + 311 + 30 + + + + + + + + + textLabel2_2 + + + <h1><font size="+2">Nom du nouveau concept : </font></h1> + + + + + LESDCO + + + + 300 + 40 + + + + + + textLabel2 + + + <font size="+1">Un objet de type CO est attendu</font> + + + + + + + + + + bHelp + clicked() + DUnSDCO + ViewDoc() + + + bOk + clicked() + DUnSDCO + BOkPressed() + + + bSup + clicked() + DUnSDCO + BSupPressed() + + + LESDCO + returnPressed() + DUnSDCO + LESDCOReturnPressed() + + + + LESDCO + tabuniqueinto + bSup + bOk + bHelp + + + BSupPressed() + ViewDoc() + BOkPressed() + LESDCOReturnPressed() + BOuiPressed() + BNonPressed() + + + diff --git a/UiQT4/desUniqueSDCOInto.py b/UiQT4/desUniqueSDCOInto.py new file mode 100644 index 00000000..4a7a9d24 --- /dev/null +++ b/UiQT4/desUniqueSDCOInto.py @@ -0,0 +1,151 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desUniqueSDCOInto.ui' +# +# Created: ven avr 4 11:27:09 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DUnSDCOInto(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DUnSDCOInto") + + self.setMinimumSize(QSize(350,0)) + + DUnSDCOIntoLayout = QGridLayout(self,1,1,11,6,"DUnSDCOIntoLayout") + + self.tabuniqueinto = QTabWidget(self,"tabuniqueinto") + + self.Widget8 = QWidget(self.tabuniqueinto,"Widget8") + Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout") + + self.textLabel2 = QLabel(self.Widget8,"textLabel2") + + Widget8Layout.addMultiCellWidget(self.textLabel2,0,0,0,2) + + self.LBSDCO = QListBox(self.Widget8,"LBSDCO") + + Widget8Layout.addMultiCellWidget(self.LBSDCO,1,1,0,2) + + self.textLabel2_3 = QLabel(self.Widget8,"textLabel2_3") + + Widget8Layout.addMultiCellWidget(self.textLabel2_3,5,5,0,2) + + self.Commentaire = QLabel(self.Widget8,"Commentaire") + self.Commentaire.setMinimumSize(QSize(420,30)) + + Widget8Layout.addMultiCellWidget(self.Commentaire,4,4,0,2) + + layout3 = QGridLayout(None,1,1,0,6,"layout3") + + Widget8Layout.addMultiCellLayout(layout3,2,2,0,2) + + layout6 = QHBoxLayout(None,0,6,"layout6") + + self.frame3 = QFrame(self.Widget8,"frame3") + self.frame3.setMinimumSize(QSize(190,50)) + self.frame3.setFrameShape(QFrame.StyledPanel) + self.frame3.setFrameShadow(QFrame.Raised) + + self.textLabel2_2 = QLabel(self.frame3,"textLabel2_2") + self.textLabel2_2.setGeometry(QRect(20,10,150,30)) + layout6.addWidget(self.frame3) + + self.LESDCO = QLineEdit(self.Widget8,"LESDCO") + self.LESDCO.setMinimumSize(QSize(220,40)) + layout6.addWidget(self.LESDCO) + + Widget8Layout.addMultiCellLayout(layout6,3,3,0,2) + + self.bSup = QPushButton(self.Widget8,"bSup") + self.bSup.setMinimumSize(QSize(0,30)) + self.bSup.setAutoDefault(1) + + Widget8Layout.addWidget(self.bSup,6,0) + + self.bOk = QPushButton(self.Widget8,"bOk") + self.bOk.setMinimumSize(QSize(0,30)) + self.bOk.setAutoDefault(1) + self.bOk.setDefault(1) + + Widget8Layout.addWidget(self.bOk,6,1) + + self.bHelp = QPushButton(self.Widget8,"bHelp") + self.bHelp.setMinimumSize(QSize(0,30)) + self.bHelp.setAutoDefault(1) + + Widget8Layout.addWidget(self.bHelp,6,2) + self.tabuniqueinto.insertTab(self.Widget8,QString("")) + + DUnSDCOIntoLayout.addWidget(self.tabuniqueinto,0,0) + + self.languageChange() + + self.resize(QSize(482,480).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc) + self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed) + self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed) + self.connect(self.LBSDCO,SIGNAL("clicked(QListBoxItem*)"),self.LBSDCOReturnPressed) + self.connect(self.LESDCO,SIGNAL("returnPressed()"),self.LESDCOReturnPressed) + + self.setTabOrder(self.LESDCO,self.LBSDCO) + self.setTabOrder(self.LBSDCO,self.tabuniqueinto) + self.setTabOrder(self.tabuniqueinto,self.bSup) + self.setTabOrder(self.bSup,self.bOk) + self.setTabOrder(self.bOk,self.bHelp) + + + def languageChange(self): + self.setCaption(self.__tr("DUnIn")) + self.textLabel2.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x31\x22\x3e\x3c\x75\x3e\x53\x74\x72\x75\x63\x74\x75\x72\x65\x73\x20\x64\x65\x20\x64\x6f\x6e\x6e\xc3\xa9\x65\x73\x20\x64\x75\x20\x74\x79\x70\x65\x20\x72\x65\x71\x75\x69\x73\x20\x70\x61\x72\x20\x6c\x27\x6f\x62\x6a\x65\x74\x20\x63\x6f\x75\x72\x61\x6e\x74\x20\x3c\x2f\x75\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e")) + self.textLabel2_3.setText(self.__tr("Un objet de type CO est attendu")) + self.Commentaire.setText(QString.null) + self.textLabel2_2.setText(self.__tr(" Nom concept : ")) + self.bSup.setText(self.__tr("&Supprimer")) + self.bSup.setAccel(self.__tr("Alt+S")) + QToolTip.add(self.bSup,self.__tr("suppression du mot clef")) + self.bOk.setText(self.__tr("&Valider")) + self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")) + QToolTip.add(self.bOk,self.__tr("validation de la saisie")) + self.bHelp.setText(self.__tr("&Documentation")) + self.bHelp.setAccel(self.__tr("Alt+D")) + QToolTip.add(self.bHelp,self.__tr("affichage documentation aster")) + self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur")) + + + def BSupPressed(self): + print "DUnSDCOInto.BSupPressed(): Not implemented yet" + + def ViewDoc(self): + print "DUnSDCOInto.ViewDoc(): Not implemented yet" + + def BOkPressed(self): + print "DUnSDCOInto.BOkPressed(): Not implemented yet" + + def LESDCOReturnPressed(self): + print "DUnSDCOInto.LESDCOReturnPressed(): Not implemented yet" + + def BOuiPressed(self): + print "DUnSDCOInto.BOuiPressed(): Not implemented yet" + + def BNonPressed(self): + print "DUnSDCOInto.BNonPressed(): Not implemented yet" + + def LBSDCOReturnPressed(self): + print "DUnSDCOInto.LBSDCOReturnPressed(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("DUnSDCOInto",s,c) + + def __trUtf8(self,s,c = None): + return qApp.translate("DUnSDCOInto",s,c,QApplication.UnicodeUTF8) diff --git a/UiQT4/desUniqueSDCOInto.ui b/UiQT4/desUniqueSDCOInto.ui new file mode 100644 index 00000000..3849072f --- /dev/null +++ b/UiQT4/desUniqueSDCOInto.ui @@ -0,0 +1,269 @@ + +DUnSDCOInto + + + DUnSDCOInto + + + + 0 + 0 + 482 + 480 + + + + + 350 + 0 + + + + DUnIn + + + + unnamed + + + + tabuniqueinto + + + + Widget8 + + + Saisir Valeur + + + + unnamed + + + + textLabel2 + + + <font size="+1"><u>Structures de données du type requis par l'objet courant </u></font> + + + + + LBSDCO + + + + + textLabel2_3 + + + <font size="+1">Un objet de type CO est attendu</font> + + + + + Commentaire + + + + 420 + 30 + + + + + + + + + layout3 + + + + unnamed + + + + + + layout6 + + + + unnamed + + + + frame3 + + + + 190 + 50 + + + + StyledPanel + + + Raised + + + + textLabel2_2 + + + + 20 + 10 + 150 + 30 + + + + <font size="+1"> Nom concept : </font> + + + + + + LESDCO + + + + 220 + 40 + + + + + + + + bSup + + + + 0 + 30 + + + + &Supprimer + + + Alt+S + + + true + + + suppression du mot clef + + + + + bOk + + + + 0 + 30 + + + + &Valider + + + Shift+A, Alt+A, Alt+A, Alt+A + + + true + + + true + + + validation de la saisie + + + + + bHelp + + + + 0 + 30 + + + + &Documentation + + + Alt+D + + + true + + + affichage documentation aster + + + + + + + + + + bHelp + clicked() + DUnSDCOInto + ViewDoc() + + + bOk + clicked() + DUnSDCOInto + BOkPressed() + + + bSup + clicked() + DUnSDCOInto + BSupPressed() + + + LBSDCO + clicked(QListBoxItem*) + DUnSDCOInto + LBSDCOReturnPressed() + + + LESDCO + returnPressed() + DUnSDCOInto + LESDCOReturnPressed() + + + + LESDCO + LBSDCO + tabuniqueinto + bSup + bOk + bHelp + + + BSupPressed() + ViewDoc() + BOkPressed() + LESDCOReturnPressed() + BOuiPressed() + BNonPressed() + LBSDCOReturnPressed() + + + diff --git a/UiQT4/desVisu.py b/UiQT4/desVisu.py new file mode 100644 index 00000000..09571531 --- /dev/null +++ b/UiQT4/desVisu.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'desVisu.ui' +# +# Created: mar mar 25 10:05:09 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.13 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + + +class DVisu(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("DVisu") + + + DVisuLayout = QGridLayout(self,1,1,11,6,"DVisuLayout") + + self.TB = QTextBrowser(self,"TB") + + DVisuLayout.addWidget(self.TB,0,0) + + self.languageChange() + + self.resize(QSize(501,394).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + + def languageChange(self): + self.setCaption(self.__tr("Visualisation Include Materiau")) + + + def __tr(self,s,c = None): + return qApp.translate("DVisu",s,c) diff --git a/UiQT4/desVisu.ui b/UiQT4/desVisu.ui new file mode 100644 index 00000000..3f61d74a --- /dev/null +++ b/UiQT4/desVisu.ui @@ -0,0 +1,30 @@ + +DVisu + + + DVisu + + + + 0 + 0 + 501 + 394 + + + + Visualisation Include Materiau + + + + unnamed + + + + TB + + + + + + diff --git a/UiQT4/image120.gif b/UiQT4/image120.gif new file mode 100644 index 00000000..1834870b Binary files /dev/null and b/UiQT4/image120.gif differ diff --git a/UiQT4/image120.png b/UiQT4/image120.png new file mode 100644 index 00000000..264a9700 Binary files /dev/null and b/UiQT4/image120.png differ diff --git a/UiQT4/image240.gif b/UiQT4/image240.gif new file mode 100644 index 00000000..2ed58745 Binary files /dev/null and b/UiQT4/image240.gif differ diff --git a/UiQT4/makefile b/UiQT4/makefile new file mode 100644 index 00000000..430af331 --- /dev/null +++ b/UiQT4/makefile @@ -0,0 +1,15 @@ +PYUIC = pyuic +.PHONY : all +.SUFFIXES : .ui .py + + +PY_FILES = desChoixCata.py desCommande.py desCommentaire.py desError.py desFormule.py desInactif.py \ + desInclude.py desListeParam.py desMacro.py desMCFact.py desMCListAjout.py desParam.py \ + desPlusieursBase.py desPlusieursInto.py desPoursuite.py desRacine.py desSelectVal.py \ + desUniqueASSD.py desUniqueBase.py desUniqueComp.py desUniqueInto.py desUniqueSDCOInto.py \ + desUniqueSDCO.py desVisu.py myMain.py aideQT.py OptionsEditeur.py OptionsPdf.py + +%.py:%.ui + ${PYUIC} -o $@ $< + +all : $(PY_FILES) diff --git a/UiQT4/myMain.py b/UiQT4/myMain.py new file mode 100644 index 00000000..1de67dd7 --- /dev/null +++ b/UiQT4/myMain.py @@ -0,0 +1,553 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'myMain.ui' +# +# Created: Mon Jun 2 15:38:21 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.16 +# +# WARNING! All changes made in this file will be lost! + + +from qt import * + +image0_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \ + "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \ + "\x74\x49\x44\x41\x54\x38\x8d\xed\xd5\xc1\x09\xc0" \ + "\x20\x0c\x05\xd0\x6f\xe9\x36\x81\x2c\x10\xb2\xff" \ + "\xdd\x85\xd2\x53\x85\xb6\xa9\x91\x48\x0f\x05\x3f" \ + "\x08\x1a\xf0\x29\x12\x10\xf8\x28\xc5\xa9\xd9\xc4" \ + "\xde\x96\xcd\x2b\x9a\xd9\xeb\x00\x00\x66\x0e\x2f" \ + "\xe0\xc2\x51\x98\x39\xc4\xf7\x0c\x4c\x44\x6d\x5e" \ + "\x6b\x35\x38\xcf\x92\x82\x45\xe4\xb2\xf6\xf0\x14" \ + "\xac\xaa\x8f\xda\x1d\x4f\xc1\xa5\x74\x1b\x22\x07" \ + "\x9f\x9d\x11\x1d\x96\xea\x8a\x91\x2c\x78\xc1\x0b" \ + "\xee\x64\xe6\x07\x19\xf5\x7e\x92\x03\xad\x45\x2a" \ + "\x04\xcc\x4e\x50\x20\x00\x00\x00\x00\x49\x45\x4e" \ + "\x44\xae\x42\x60\x82" +image1_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \ + "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \ + "\x99\x49\x44\x41\x54\x38\x8d\xed\x94\x41\x0e\x85" \ + "\x20\x0c\x44\x5f\x89\xc7\x36\x7f\x61\xbc\x77\x5d" \ + "\x28\x48\xa4\x28\x60\xff\xce\xd9\x54\x8b\xbe\x8e" \ + "\x13\x04\x3e\x1d\x92\x81\x77\xf4\x81\xa1\x23\xdc" \ + "\x2b\x34\xf6\xf4\x7a\x3d\xe2\xb8\x65\xa8\x84\x3f" \ + "\x40\x01\x98\x2a\x0b\x3d\x5f\x62\xc5\x83\x00\xaa" \ + "\x1a\xd7\x05\x50\x44\x9a\xb9\xd5\x07\xa7\x73\xa8" \ + "\xa4\xba\x4f\x92\xa2\xdf\x33\x3c\x64\xc6\x3b\xeb" \ + "\xbd\x82\xe5\xb8\xad\xde\xcb\xcc\x78\x20\xeb\x42" \ + "\x66\xc6\x39\x74\x5d\xfa\x80\xf3\x6f\xaf\x66\xc6" \ + "\x6f\xa1\x9c\x3f\x88\x2f\xb4\x70\xec\x05\xcd\xc0" \ + "\xbe\xd0\x78\x93\xf6\x8e\x17\x14\x92\x63\x5f\x68" \ + "\x6c\x3e\xef\xf6\xba\x3c\x8f\xdd\x36\x6d\xc4\xc0" \ + "\x45\x2c\x87\x81\xf8\x08\x00\x00\x00\x00\x49\x45" \ + "\x4e\x44\xae\x42\x60\x82" +image2_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \ + "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \ + "\xa0\x49\x44\x41\x54\x38\x8d\xd5\x95\x4d\x0a\x80" \ + "\x20\x10\x85\x9f\xd1\x46\x68\xe1\x8d\xe6\x62\xd2" \ + "\x22\xbc\x98\x37\x6a\x21\xb4\xac\x45\x19\x92\xc6" \ + "\x64\x69\xe0\xb7\xf1\x87\xf1\xf1\x1c\x47\x05\x2a" \ + "\x21\x8e\x76\x2d\xad\xdb\xfb\x9e\x99\xf6\x56\x8f" \ + "\x80\xb5\x36\x4b\x85\x88\xce\x35\x44\x04\x00\xe8" \ + "\x0a\x39\x8c\xe8\xf9\x90\x34\xd2\x29\x2c\xc3\x7c" \ + "\x8e\xbd\x53\x0f\xeb\x58\x3a\x05\xe9\x54\x34\x1f" \ + "\x8a\x02\x7b\x2a\x7d\x3a\x1f\x09\xbf\x85\x4d\xc5" \ + "\xd5\xd9\x53\xaa\x39\x6e\x4f\x38\xca\xb1\x99\xe2" \ + "\xd2\xe1\x08\xab\xe1\x56\xf8\x2e\x30\x97\x7f\xcb" \ + "\x4d\x8f\xf9\x42\xd7\x5d\xbe\xbe\xd2\xe1\x43\x95" \ + "\x3a\x93\xf6\xca\xad\x3d\x61\x11\xf4\x4b\x7d\x4f" \ + "\x82\x0f\xf9\xc0\x06\x9b\xb5\x1e\xcd\xed\x31\x8c" \ + "\x5c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60" \ + "\x82" +image3_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \ + "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \ + "\x73\x49\x44\x41\x54\x38\x8d\xed\x92\xc1\x0e\x80" \ + "\x20\x08\x40\xb1\xef\x66\x1d\x1c\xff\x4d\x87\x6a" \ + "\xa8\x88\xa1\x76\x69\xf9\x36\x0f\x28\x3e\xd8\x00" \ + "\x60\xf1\x59\x42\x5f\x3a\x71\xf5\x36\x02\xe0\x8e" \ + "\x99\x2b\x09\x88\x01\xd0\x28\x54\x17\x6a\xe4\x7f" \ + "\x21\xce\x1f\xb5\xb0\x5d\x38\xed\xdc\x90\x60\xd0" \ + "\xf1\x13\x79\x63\x5b\x3b\xc9\x2b\xd5\x18\xe2\x39" \ + "\xa9\x43\xec\x1d\x5a\xb7\x78\x5c\xee\x10\x7b\xe4" \ + "\xb2\x15\xaf\x40\x91\xf8\x94\xde\x47\x18\x1e\xce" \ + "\xa5\x9e\xde\x9e\xc5\x9f\x38\x00\x62\xac\x28\xb1" \ + "\xe3\xd7\x01\xd9\x00\x00\x00\x00\x49\x45\x4e\x44" \ + "\xae\x42\x60\x82" +image4_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \ + "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \ + "\x74\x49\x44\x41\x54\x38\x8d\xed\x92\xc1\x0a\xc0" \ + "\x20\x08\x40\x6d\xdf\x2d\x3b\x84\xff\xed\x0e\xa3" \ + "\x58\x6a\x26\xd1\x65\xe0\x83\x0e\xa5\x3e\x85\x04" \ + "\x48\x7e\x4b\x91\x0f\x54\x89\xf1\x9e\xa5\xa3\xca" \ + "\x0f\x8a\x89\x63\x65\xb3\x06\xc4\x2d\xd6\x13\xc6" \ + "\x49\xbd\xc2\x59\x83\x16\x13\x62\x19\xf0\xf9\x36" \ + "\xc0\xa2\xef\x00\xd7\x5a\x62\x61\x4d\x3a\xb2\x29" \ + "\x96\xf2\xa3\x62\xff\xa3\x37\xc5\xeb\xed\xe9\x62" \ + "\xaa\xd1\xa2\xe8\x4a\xaa\xa2\xf7\x50\xdd\x12\x74" \ + "\x8c\x0f\xd0\xab\x93\x24\x67\x78\x00\x59\x6e\x28" \ + "\xb1\x74\x3f\x46\x86\x00\x00\x00\x00\x49\x45\x4e" \ + "\x44\xae\x42\x60\x82" +image5_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \ + "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \ + "\x82\x49\x44\x41\x54\x38\x8d\xcd\xd3\x41\x12\x80" \ + "\x20\x08\x05\x50\xe8\xe0\x2e\xbc\x38\xad\x32\x73" \ + "\x50\x3e\x48\x53\x7f\xe3\xe4\x8c\x4f\x24\x25\xfa" \ + "\x28\xe2\x9c\x6f\x39\x92\x0b\xf9\x27\x6c\xb6\x01" \ + "\x85\x35\x88\x77\x61\x13\x88\xc2\x57\x64\x18\xcd" \ + "\xa0\x15\xf5\x20\xb4\xe6\xb5\x5b\xe1\x09\xdc\x06" \ + "\x22\xb8\xe2\x2a\xcf\x31\x05\x6e\x18\xdf\xdf\xf8" \ + "\x06\x06\xaa\x55\x1c\xc6\x35\x64\xc4\xdc\xf8\x0c" \ + "\xd0\x20\x1d\x57\x7a\x5c\x85\xa8\x84\x5f\xdc\x02" \ + "\x5e\xa5\x30\x7a\xfc\xcd\x07\xe2\x3a\x1d\xf2\x83" \ + "\xec\x2b\x37\xd9\xad\x5f\xb4\xdf\xef\xd4\x9c\xfb" \ + "\xf7\x2f\xac\x98\xc8\xcc\x89\x00\x00\x00\x00\x49" \ + "\x45\x4e\x44\xae\x42\x60\x82" +image6_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \ + "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \ + "\xbf\x49\x44\x41\x54\x38\x8d\xd5\x93\x41\x0a\x83" \ + "\x30\x10\x45\xdf\x48\x8e\xe5\x1d\xbc\x8c\x3b\xa9" \ + "\x8b\xf4\x6a\x9e\xab\xd3\x85\x35\x0d\x26\x63\x62" \ + "\x44\x4a\x3f\x0c\x42\x66\xfc\xf3\xf8\x24\xf0\x6f" \ + "\x12\x40\x2b\x66\xda\x8c\x55\xf3\xde\x22\x12\xcf" \ + "\x9d\x92\xcb\x98\xc0\xba\x2d\x7c\x45\x44\xcf\x9a" \ + "\x07\x63\x8b\xba\xd5\x3c\x44\x91\x23\x5e\xcf\x7c" \ + "\xc1\x62\x36\x97\xa9\x25\x40\xc1\x1f\xf4\xfd\xa7" \ + "\x52\x75\x01\x5d\x24\xa9\x38\x9e\x7d\x6f\x53\xdf" \ + "\x4f\xe4\xcc\xab\x32\x3e\xea\x0f\x03\xc0\xc4\xb2" \ + "\xa0\x71\x2c\xe6\xad\xd8\x9b\x59\xb7\x66\x1c\x3b" \ + "\xe0\x95\x98\x5f\x26\x16\x79\xee\x4e\xbc\xc2\x2c" \ + "\x97\x88\x55\x1f\xe6\xa2\xcb\xc4\x96\x9a\x89\x4b" \ + "\xcb\x6f\x23\xee\x36\x1a\xab\x62\xe2\x52\xc5\x72" \ + "\x94\xdf\xbf\xb6\x10\xbb\xf2\xc8\x97\xb8\xa4\x6c" \ + "\xc6\x67\x7e\xaa\x51\x95\x71\xfa\x08\x7e\xa8\x37" \ + "\x62\xda\x9a\xba\xcb\x20\x23\x5f\x00\x00\x00\x00" \ + "\x49\x45\x4e\x44\xae\x42\x60\x82" +image7_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \ + "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \ + "\xd5\x49\x44\x41\x54\x38\x8d\xc5\x95\x5d\x0a\x84" \ + "\x30\x0c\x84\x27\xe2\xa9\x0a\x9e\x6c\x8b\x0f\x4b" \ + "\x3d\xd9\x82\xd7\xca\x3e\x58\xd7\xfe\x4c\xd0\xba" \ + "\x5d\x76\x40\x02\x4d\xf2\x65\xda\x0a\x05\x7e\x24" \ + "\x39\xc9\xeb\x8d\x9e\xaa\x88\x41\xa0\xc9\xaa\xd8" \ + "\xc8\x2a\xb3\x2f\x9c\x42\x5b\xe1\xe3\x0e\x0d\xcf" \ + "\x00\xc0\x03\x08\xf0\xb3\xa7\xa0\x74\x10\xa9\xd7" \ + "\x14\x2e\x00\xb4\x2c\x5a\x5f\xab\x69\x6b\x97\x9b" \ + "\x1c\x83\x7f\xc0\xc3\x16\xb6\xe4\x16\x5b\x64\xf7" \ + "\x8d\x71\x63\x59\x91\x9b\xdc\x45\x70\xde\x47\xc0" \ + "\x47\x32\xdd\x5e\x5b\xcc\x35\xf0\xc9\x77\x62\xae" \ + "\x78\x79\x36\xdc\xcf\x75\x13\x57\x7e\x79\xf4\x8c" \ + "\x4b\x27\xaa\x0f\x13\x27\xb2\x40\xf5\x11\x7f\xcb" \ + "\xe3\x48\xaa\x33\xb6\xe0\x22\x4b\x05\x4d\x07\x46" \ + "\xb8\x02\x5e\x2e\x3b\x3e\x73\xcd\xe0\xdd\x1c\x97" \ + "\xf0\x2e\x8e\xd9\xd0\xaf\x1d\xb3\x81\x22\x4b\xdf" \ + "\x33\xee\xe6\x98\xa9\x34\xa0\xf6\x17\xb4\x55\x40" \ + "\xd0\x0b\xcf\x4c\xa0\x8f\xc0\xdf\xf4\x06\xe3\x25" \ + "\xc1\x98\x1b\xc4\x18\x76\x00\x00\x00\x00\x49\x45" \ + "\x4e\x44\xae\x42\x60\x82" +image8_data = \ + "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \ + "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \ + "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x02" \ + "\x5d\x49\x44\x41\x54\x38\x8d\xd5\x93\xa1\x72\xdb" \ + "\x40\x10\x86\x3f\x67\x0a\x56\xec\xc4\x22\x78\xd0" \ + "\x65\x36\x93\xa0\xc2\x1c\x68\xd6\xc2\xe6\x0d\xf2" \ + "\x1a\x81\x81\x11\x34\x94\x99\xc2\x54\xa8\x32\x9b" \ + "\x55\xf0\xe0\x89\xdd\xb1\x5b\xa6\x02\xb7\x9d\x66" \ + "\x92\xd6\x99\xb6\xd3\x99\xfe\xe8\x6e\x67\xe7\xdb" \ + "\x7f\x77\xef\xe0\x7f\xd3\xe2\xc7\x4b\xd7\x75\xb3" \ + "\x73\x0e\xef\x3d\x51\x15\x00\x23\x82\xb5\x16\x6b" \ + "\x2d\x57\x57\x57\x8b\x17\x29\xbf\x02\xb7\x6d\x3b" \ + "\x0f\x87\x03\xb9\x2d\x58\xae\xd7\x60\x04\x00\xef" \ + "\x1c\xe3\xc7\x03\x06\xa8\xaa\x8a\xeb\xeb\xeb\x57" \ + "\xc1\x17\xdf\xa0\x6d\xdb\x52\x5d\xd7\x54\xef\xb6" \ + "\x00\xa8\x2a\x49\x13\x8a\x12\x35\x32\xec\x3a\xc4" \ + "\x2b\x9b\xcd\xe6\x55\xce\x2f\xfa\xbe\x9f\x87\xc3" \ + "\x40\xfd\xe1\x3d\xcb\x4d\x8d\xaa\xa2\x4e\x48\xee" \ + "\x12\xc6\x82\x38\x08\xc1\x07\x96\x9b\x1a\x8a\x9c" \ + "\xe3\xf1\xf8\xaa\x51\x5c\x38\xe7\xc8\xad\xa5\xaa" \ + "\x6b\x00\xc4\x5f\x12\x9c\x67\xd2\x23\x93\x8c\x88" \ + "\xe6\xc8\x60\xd1\x18\xb1\xd5\x92\xd1\x39\xba\xae" \ + "\x9b\xcf\x83\xa7\x89\x65\xb5\x46\x51\x34\x80\x1b" \ + "\x1d\x2e\x1f\x49\x45\xc0\xe3\x50\x09\x64\x08\xea" \ + "\x15\x44\x90\xc2\xe0\xbd\x3f\xef\x58\x53\xc2\xe4" \ + "\x86\xa0\x01\x9f\x4d\x84\xf5\x84\x18\x41\x83\x62" \ + "\xb0\x40\x8e\x8b\x23\xc9\x24\x50\x10\x93\x31\x4d" \ + "\xd3\x59\xf0\x1b\x80\x98\x14\x11\x20\x25\x14\x40" \ + "\x15\xf1\x96\x4c\x0b\xbc\x1b\x48\x4b\x07\xe4\x68" \ + "\x88\x80\xc0\x29\xeb\xd7\x8e\x41\x41\xf5\xb4\x34" \ + "\xfd\x76\x86\x4c\x05\x3f\x1e\x08\x4b\x0f\x85\x80" \ + "\x26\x54\x40\x63\x40\x44\xce\x83\x8b\xbc\xc0\x39" \ + "\x87\xa6\x13\x50\xa3\xa2\x28\x5e\x1d\x5a\x44\x14" \ + "\xd0\x70\x8a\xa5\x98\x08\x21\x62\xad\x3d\x0f\xb6" \ + "\xd6\xe2\x87\xcf\xa4\x98\x50\x8d\x27\x40\x50\x44" \ + "\x73\x70\x42\x8c\x91\xaf\x8d\x10\xfd\x44\x81\x60" \ + "\x8c\x39\x0b\x5e\x00\xdc\xdd\xdd\xcd\x8e\x80\xa9" \ + "\xde\x42\x02\x48\xe8\x04\x84\x08\x56\xf0\x3e\x02" \ + "\x90\x7d\x72\x94\x65\xc9\xba\x5a\xe3\x46\x87\x31" \ + "\xe6\xa7\x9f\xe5\x02\x60\xb5\x5a\x61\x02\xc4\xee" \ + "\x40\xa6\x89\x4c\x33\xf2\xcb\x0c\xb1\x06\x51\x28" \ + "\x14\xf8\xf8\x99\xb2\x2c\xb9\xb9\xb9\x59\xb8\xd1" \ + "\xf1\xf8\xf8\x48\xd3\x34\xb4\x6d\xfb\xe2\x9b\xfe" \ + "\x5e\xad\xef\xfb\xf9\x78\x3c\x32\x3a\x87\x18\x81" \ + "\xec\xb4\x20\x0d\x11\x51\xa8\xeb\x9a\xed\x76\xbb" \ + "\x00\x18\x86\x61\xee\xba\x8e\xfd\x7e\x8f\x31\x86" \ + "\xed\x76\xcb\x6a\xb5\x7a\xe2\xfe\x59\x1b\x5d\xd7" \ + "\xcd\xde\x7b\x62\x8c\x88\x08\x79\x9e\x63\xad\xa5" \ + "\xaa\xaa\x67\xb9\xbb\xdd\x6e\x6e\x9a\x06\xef\x3d" \ + "\x75\x5d\x3f\x29\xfe\xc7\xea\xfb\x7e\xbe\xbd\xbd" \ + "\x9d\xad\xb5\x73\x59\x96\xf3\xfd\xfd\xfd\xfc\xa2" \ + "\xe3\xdf\xd5\xc3\xc3\xc3\xdc\x34\x0d\xd3\x34\xb1" \ + "\xd9\x6c\xfe\x1e\x18\x4e\x63\xdc\xef\xf7\xa4\x94" \ + "\xfe\x26\xf6\x1f\xe9\x0b\xbc\x4c\x5e\x59\xd6\x14" \ + "\xca\xf4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42" \ + "\x60\x82" + +class Eficas(QMainWindow): + def __init__(self,parent = None,name = None,fl = 0): + QMainWindow.__init__(self,parent,name,fl) + self.statusBar() + + self.image0 = QPixmap() + self.image0.loadFromData(image0_data,"PNG") + self.image1 = QPixmap() + self.image1.loadFromData(image1_data,"PNG") + self.image2 = QPixmap() + self.image2.loadFromData(image2_data,"PNG") + self.image3 = QPixmap() + self.image3.loadFromData(image3_data,"PNG") + self.image4 = QPixmap() + self.image4.loadFromData(image4_data,"PNG") + self.image5 = QPixmap() + self.image5.loadFromData(image5_data,"PNG") + self.image6 = QPixmap() + self.image6.loadFromData(image6_data,"PNG") + self.image7 = QPixmap() + self.image7.loadFromData(image7_data,"PNG") + self.image8 = QPixmap() + self.image8.loadFromData(image8_data,"PNG") + if not name: + self.setName("Eficas") + + self.setEnabled(1) + self.setSizePolicy(QSizePolicy(QSizePolicy.Minimum,QSizePolicy.Minimum,0,0,self.sizePolicy().hasHeightForWidth())) + self.setMinimumSize(QSize(21,336)) + self.setBackgroundOrigin(QMainWindow.WidgetOrigin) + f = QFont(self.font()) + self.setFont(f) + + self.setCentralWidget(QWidget(self,"qt_central_widget")) + + self.line1 = QFrame(self.centralWidget(),"line1") + self.line1.setGeometry(QRect(-30,-10,930,20)) + self.line1.setFrameShape(QFrame.HLine) + self.line1.setFrameShadow(QFrame.Sunken) + self.line1.setFrameShape(QFrame.HLine) + + self.fileNewAction = QAction(self,"fileNewAction") + self.fileNewAction.setIconSet(QIconSet(self.image0)) + self.fileOpenAction = QAction(self,"fileOpenAction") + self.fileOpenAction.setIconSet(QIconSet(self.image1)) + self.fileSaveAction = QAction(self,"fileSaveAction") + self.fileSaveAction.setIconSet(QIconSet(self.image2)) + self.fileSaveAsAction = QAction(self,"fileSaveAsAction") + self.fileExitAction = QAction(self,"fileExitAction") + self.editUndoAction = QAction(self,"editUndoAction") + self.editUndoAction.setEnabled(0) + self.editUndoAction.setIconSet(QIconSet(self.image3)) + self.editRedoAction = QAction(self,"editRedoAction") + self.editRedoAction.setEnabled(0) + self.editRedoAction.setIconSet(QIconSet(self.image4)) + self.editCutAction = QAction(self,"editCutAction") + self.editCutAction.setIconSet(QIconSet(self.image5)) + self.editCopyAction = QAction(self,"editCopyAction") + self.editCopyAction.setIconSet(QIconSet(self.image6)) + self.editPasteAction = QAction(self,"editPasteAction") + self.editPasteAction.setIconSet(QIconSet(self.image7)) + self.jdcFichierResultatAction = QAction(self,"jdcFichierResultatAction") + self.jdcFichierResultatAction.setEnabled(1) + self.jdcFichierResultatAction.setIconSet(QIconSet(self.image8)) + self.helpContentsAction = QAction(self,"helpContentsAction") + self.helpIndexAction = QAction(self,"helpIndexAction") + self.helpAboutAction = QAction(self,"helpAboutAction") + self.helpAboutAction.setOn(0) + self.fileSaveCloseAction = QAction(self,"fileSaveCloseAction") + self.fileCloseAction = QAction(self,"fileCloseAction") + self.fileNewViewAction = QAction(self,"fileNewViewAction") + self.fileNewViewAction.setEnabled(0) + self.fileCloseAllAction = QAction(self,"fileCloseAllAction") + self.jdcRapportDeValidationAction = QAction(self,"jdcRapportDeValidationAction") + self.jdcFichierSourceAction = QAction(self,"jdcFichierSourceAction") + self.traduitV7V8Action = QAction(self,"traduitV7V8Action") + self.aidenew_itemAction = QAction(self,"aidenew_itemAction") + self.fileNewInclude = QAction(self,"fileNewInclude") + self.optionEditeurAction = QAction(self,"optionEditeurAction") + self.optionPdfAction = QAction(self,"optionPdfAction") + + + self.toolBar = QToolBar(QString(""),self,Qt.DockTop) + + self.toolBar.setFrameShape(QToolBar.MenuBarPanel) + self.toolBar.setHorizontallyStretchable(0) + self.fileNewAction.addTo(self.toolBar) + self.fileSaveAction.addTo(self.toolBar) + self.fileOpenAction.addTo(self.toolBar) + self.fileSaveAsAction.addTo(self.toolBar) + self.editCutAction.addTo(self.toolBar) + self.editPasteAction.addTo(self.toolBar) + self.jdcFichierResultatAction.addTo(self.toolBar) + self.fileExitAction.addTo(self.toolBar) + self.toolBar.addSeparator() + + + self.MenuBar = QMenuBar(self,"MenuBar") + + self.MenuBar.setMargin(2) + + self.Fichier = QPopupMenu(self) + self.fileNewAction.addTo(self.Fichier) + self.fileNewInclude.addTo(self.Fichier) + self.fileOpenAction.addTo(self.Fichier) + self.fileSaveAction.addTo(self.Fichier) + self.fileSaveAsAction.addTo(self.Fichier) + self.fileCloseAction.addTo(self.Fichier) + self.fileCloseAllAction.addTo(self.Fichier) + self.Fichier.insertSeparator() + self.Fichier.insertSeparator() + self.fileExitAction.addTo(self.Fichier) + self.MenuBar.insertItem(QString(""),self.Fichier,2) + + self.Edition = QPopupMenu(self) + self.Edition.insertSeparator() + self.editCutAction.addTo(self.Edition) + self.editCopyAction.addTo(self.Edition) + self.editPasteAction.addTo(self.Edition) + self.MenuBar.insertItem(QString(""),self.Edition,3) + + self.JdC = QPopupMenu(self) + self.jdcRapportDeValidationAction.addTo(self.JdC) + self.jdcFichierSourceAction.addTo(self.JdC) + self.jdcFichierResultatAction.addTo(self.JdC) + self.MenuBar.insertItem(QString(""),self.JdC,4) + + self.Aide = QPopupMenu(self) + self.aidenew_itemAction.addTo(self.Aide) + self.MenuBar.insertItem(QString(""),self.Aide,5) + + self.Options = QPopupMenu(self) + self.optionEditeurAction.addTo(self.Options) + self.optionPdfAction.addTo(self.Options) + self.MenuBar.insertItem(QString(""),self.Options,6) + + self.Traduction = QPopupMenu(self) + self.traduitV7V8Action.addTo(self.Traduction) + self.MenuBar.insertItem(QString(""),self.Traduction,7) + + self.Patrons = QPopupMenu(self) + self.MenuBar.insertItem(QString(""),self.Patrons,8) + + + self.languageChange() + + self.resize(QSize(902,575).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.fileNewAction,SIGNAL("activated()"),self.fileNew) + self.connect(self.fileOpenAction,SIGNAL("activated()"),self.fileOpen) + self.connect(self.fileSaveAction,SIGNAL("activated()"),self.fileSave) + self.connect(self.fileSaveAsAction,SIGNAL("activated()"),self.fileSaveAs) + self.connect(self.fileExitAction,SIGNAL("activated()"),self.fileExit) + self.connect(self.editUndoAction,SIGNAL("activated()"),self.editUndo) + self.connect(self.editRedoAction,SIGNAL("activated()"),self.editRedo) + self.connect(self.editCutAction,SIGNAL("activated()"),self.editCut) + self.connect(self.editPasteAction,SIGNAL("activated()"),self.editPaste) + self.connect(self.jdcFichierResultatAction,SIGNAL("activated()"),self.visuJdcPy) + self.connect(self.helpIndexAction,SIGNAL("activated()"),self.helpIndex) + self.connect(self.helpContentsAction,SIGNAL("activated()"),self.helpContents) + self.connect(self.helpAboutAction,SIGNAL("activated()"),self.helpAbout) + self.connect(self.fileCloseAction,SIGNAL("activated()"),self.fileClose) + self.connect(self.fileNewViewAction,SIGNAL("activated()"),self.fileNewView) + self.connect(self.fileCloseAllAction,SIGNAL("activated()"),self.fileCloseAll) + self.connect(self.editCopyAction,SIGNAL("activated()"),self.editCopy) + self.connect(self.jdcRapportDeValidationAction,SIGNAL("activated()"),self.jdcRapport) + self.connect(self.jdcFichierSourceAction,SIGNAL("activated()"),self.jdcFichierSource) + self.connect(self.traduitV7V8Action,SIGNAL("activated()"),self.traductionV7V8) + self.connect(self.aidenew_itemAction,SIGNAL("activated()"),self.helpAbout) + self.connect(self.fileNewInclude,SIGNAL("activated()"),self.NewInclude) + self.connect(self.optionEditeurAction,SIGNAL("activated()"),self.optionEditeur) + self.connect(self.optionPdfAction,SIGNAL("activated()"),self.optionPdf) + + + def languageChange(self): + self.setCaption(self.__tr("Eficas ")) + self.fileNewAction.setText(self.__tr("Nouveau")) + self.fileNewAction.setMenuText(self.__tr("&Nouveau")) + self.fileNewAction.setAccel(self.__tr("Ctrl+N")) + self.fileOpenAction.setText(self.__tr("Ouvrir")) + self.fileOpenAction.setMenuText(self.__tr("&Ouvrir")) + self.fileOpenAction.setAccel(self.__tr("Ctrl+O")) + self.fileSaveAction.setText(self.__tr("Enregistrer")) + self.fileSaveAction.setMenuText(self.__tr("&Enregistrer")) + self.fileSaveAction.setAccel(self.__tr("Ctrl+E")) + self.fileSaveAsAction.setText(self.__tr("Enregistrer Sous")) + self.fileSaveAsAction.setMenuText(self.__tr("Enregistrer Sous")) + self.fileSaveAsAction.setAccel(QString.null) + self.fileExitAction.setText(self.__tr("Quitter")) + self.fileExitAction.setMenuText(self.__tr("Q&uitter")) + self.fileExitAction.setAccel(QString.null) + self.editUndoAction.setText(self.__tr("Undo")) + self.editUndoAction.setMenuText(self.__tr("&Undo")) + self.editUndoAction.setAccel(self.__tr("Ctrl+Z")) + self.editRedoAction.setText(self.__tr("Redo")) + self.editRedoAction.setMenuText(self.__tr("&Redo")) + self.editRedoAction.setAccel(self.__tr("Ctrl+Y")) + self.editCutAction.setText(self.__tr("Couper")) + self.editCutAction.setMenuText(self.__tr("C&ouper")) + self.editCutAction.setAccel(self.__tr("Ctrl+X")) + self.editCopyAction.setText(self.__tr("Copier")) + self.editCopyAction.setMenuText(self.__tr("&Copier")) + self.editCopyAction.setAccel(self.__tr("Ctrl+C")) + self.editPasteAction.setText(self.__tr("Coller")) + self.editPasteAction.setMenuText(self.__tr("&Coller")) + self.editPasteAction.setAccel(self.__tr("Ctrl+V")) + self.jdcFichierResultatAction.setText(self.__tr("Fichier Resultat")) + self.jdcFichierResultatAction.setMenuText(self.__tr("Fichier Resultat")) + self.jdcFichierResultatAction.setAccel(self.__tr("Ctrl+F")) + self.helpContentsAction.setText(self.__tr("Contents")) + self.helpContentsAction.setMenuText(self.__tr("&Contents...")) + self.helpContentsAction.setAccel(QString.null) + self.helpIndexAction.setText(self.__tr("Index")) + self.helpIndexAction.setMenuText(self.__tr("&Index...")) + self.helpIndexAction.setAccel(QString.null) + self.helpAboutAction.setText(self.__tr("About")) + self.helpAboutAction.setMenuText(self.__tr("&About")) + self.helpAboutAction.setAccel(QString.null) + self.fileSaveCloseAction.setText(self.__tr("Fermer")) + self.fileSaveCloseAction.setMenuText(self.__tr("Fermer")) + self.fileCloseAction.setText(self.__tr("Fermer")) + self.fileCloseAction.setMenuText(self.__tr("Fermer")) + self.fileCloseAction.setAccel(self.__tr("Ctrl+W")) + self.fileNewViewAction.setText(self.__tr("New view")) + self.fileCloseAllAction.setText(self.__tr("Tout Fermer")) + self.fileCloseAllAction.setMenuText(self.__tr("Tout Fermer")) + self.jdcRapportDeValidationAction.setText(self.__tr("Rapport de validation")) + self.jdcRapportDeValidationAction.setMenuText(self.__tr("Rapport de validation")) + self.jdcRapportDeValidationAction.setAccel(self.__tr("Ctrl+R")) + self.jdcFichierSourceAction.setText(self.__tr("Fichier source")) + self.jdcFichierSourceAction.setMenuText(self.__tr("Fichier source")) + self.jdcFichierSourceAction.setAccel(self.__tr("Ctrl+B")) + self.traduitV7V8Action.setText(self.__tr("traduitV7V8")) + self.traduitV7V8Action.setMenuText(self.__tr("traduitV7V8")) + self.aidenew_itemAction.setText(self.__tr("Eficas")) + self.fileNewInclude.setText(self.__tr("Nouvel Include")) + self.fileNewInclude.setMenuText(self.__tr("Nouvel Include")) + self.optionEditeurAction.setText(self.__tr("Parametres Eficas")) + self.optionEditeurAction.setMenuText(self.__tr("Parametres Eficas")) + self.optionPdfAction.setText(self.__tr("Lecteur Pdf")) + self.optionPdfAction.setMenuText(self.__tr("Lecteur Pdf")) + self.toolBar.setLabel(self.__tr("Tools")) + if self.MenuBar.findItem(2): + self.MenuBar.findItem(2).setText(self.__tr("&Fichier")) + if self.MenuBar.findItem(3): + self.MenuBar.findItem(3).setText(self.__tr("&Edition")) + if self.MenuBar.findItem(4): + self.MenuBar.findItem(4).setText(self.__tr("JdC")) + if self.MenuBar.findItem(5): + self.MenuBar.findItem(5).setText(self.__tr("&Aide")) + if self.MenuBar.findItem(6): + self.MenuBar.findItem(6).setText(self.__tr("Options")) + if self.MenuBar.findItem(7): + self.MenuBar.findItem(7).setText(self.__tr("Traduction")) + if self.MenuBar.findItem(8): + self.MenuBar.findItem(8).setText(self.__tr("Patrons")) + + + def fileNew(self): + print "Eficas.fileNew(): Not implemented yet" + + def fileOpen(self): + print "Eficas.fileOpen(): Not implemented yet" + + def fileSave(self): + print "Eficas.fileSave(): Not implemented yet" + + def fileSaveAs(self): + print "Eficas.fileSaveAs(): Not implemented yet" + + def filePrint(self): + print "Eficas.filePrint(): Not implemented yet" + + def fileExit(self): + print "Eficas.fileExit(): Not implemented yet" + + def editUndo(self): + print "Eficas.editUndo(): Not implemented yet" + + def editRedo(self): + print "Eficas.editRedo(): Not implemented yet" + + def jdcFichierSource(self): + print "Eficas.jdcFichierSource(): Not implemented yet" + + def fileNewView(self): + print "Eficas.fileNewView(): Not implemented yet" + + def editPaste(self): + print "Eficas.editPaste(): Not implemented yet" + + def visuJdcPy(self): + print "Eficas.visuJdcPy(): Not implemented yet" + + def helpIndex(self): + print "Eficas.helpIndex(): Not implemented yet" + + def helpContents(self): + print "Eficas.helpContents(): Not implemented yet" + + def helpAbout(self): + print "Eficas.helpAbout(): Not implemented yet" + + def fileClose(self): + print "Eficas.fileClose(): Not implemented yet" + + def fileCloseAll(self): + print "Eficas.fileCloseAll(): Not implemented yet" + + def jdcRapport(self): + print "Eficas.jdcRapport(): Not implemented yet" + + def editCut(self): + print "Eficas.editCut(): Not implemented yet" + + def editCopy(self): + print "Eficas.editCopy(): Not implemented yet" + + def traductionV7V8(self): + print "Eficas.traductionV7V8(): Not implemented yet" + + def NewInclude(self): + print "Eficas.NewInclude(): Not implemented yet" + + def optionEditeur(self): + print "Eficas.optionEditeur(): Not implemented yet" + + def optionPdf(self): + print "Eficas.optionPdf(): Not implemented yet" + + def __tr(self,s,c = None): + return qApp.translate("Eficas",s,c) diff --git a/UiQT4/myMain.ui b/UiQT4/myMain.ui new file mode 100644 index 00000000..955c4b2d --- /dev/null +++ b/UiQT4/myMain.ui @@ -0,0 +1,699 @@ + +Eficas + + + Eficas + + + true + + + + 0 + 0 + 902 + 575 + + + + + 1 + 1 + 0 + 0 + + + + + 21 + 336 + + + + WidgetOrigin + + + + + + + Eficas + + + + line1 + + + + -30 + -10 + 930 + 20 + + + + HLine + + + Sunken + + + Horizontal + + + + + + MenuBar + + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + toolBar + + + MenuBarPanel + + + false + + + Tools + + + + + + + + + + + + + + + + fileNewAction + + + image0 + + + Nouveau + + + &Nouveau + + + Ctrl+N + + + + + fileOpenAction + + + image1 + + + Ouvrir + + + &Ouvrir + + + Ctrl+O + + + + + fileSaveAction + + + image2 + + + Enregistrer + + + &Enregistrer + + + Ctrl+E + + + + + fileSaveAsAction + + + Enregistrer Sous + + + Enregistrer Sous + + + + + + + + fileExitAction + + + Quitter + + + Q&uitter + + + + + + + + editUndoAction + + + false + + + image3 + + + Undo + + + &Undo + + + Ctrl+Z + + + + + editRedoAction + + + false + + + image4 + + + Redo + + + &Redo + + + Ctrl+Y + + + + + editCutAction + + + image5 + + + Couper + + + C&ouper + + + Ctrl+X + + + + + editCopyAction + + + image6 + + + Copier + + + &Copier + + + Ctrl+C + + + + + editPasteAction + + + image7 + + + Coller + + + &Coller + + + Ctrl+V + + + + + jdcFichierResultatAction + + + true + + + image8 + + + Fichier Resultat + + + Fichier Resultat + + + Ctrl+F + + + + + helpContentsAction + + + Contents + + + &Contents... + + + + + + + + helpIndexAction + + + Index + + + &Index... + + + + + + + + helpAboutAction + + + false + + + About + + + &About + + + + + + + + fileSaveCloseAction + + + Fermer + + + Fermer + + + + + fileCloseAction + + + Fermer + + + Fermer + + + Ctrl+W + + + + + fileNewViewAction + + + false + + + New view + + + + + fileCloseAllAction + + + Tout Fermer + + + Tout Fermer + + + + + jdcRapportDeValidationAction + + + Rapport de validation + + + Rapport de validation + + + Ctrl+R + + + + + jdcFichierSourceAction + + + Fichier source + + + Fichier source + + + Ctrl+B + + + + + traduitV7V8Action + + + traduitV7V8 + + + traduitV7V8 + + + + + aidenew_itemAction + + + Eficas + + + + + fileNewInclude + + + Nouvel Include + + + Nouvel Include + + + + + optionEditeurAction + + + Parametres Eficas + + + Parametres Eficas + + + + + optionPdfAction + + + Lecteur Pdf + + + Lecteur Pdf + + + + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000007449444154388dedd5c109c0200c05d06fe936812c10b2ffdd85d25385b6a991480f053f081af0291210f828c5a9d9c4de96cd2b9ad9eb0000660e2fe0c2519839c4f70c4c446d5e6b3538cf928245e4b2f6f014acaa8fda1d4fc1a5741b22079f9d111d96ea8a912c78c10bee64e60719f57e9203ad452a04cc4e50200000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000009949444154388ded94410e85200c445f89c7367f61bc775d2848a42860ffced9548bbe8e13043e1d928177f481a123dc2b34f6f47a3de2b865a8843f4001982a0b3d5f62c58300aa1ad70550449ab9d507a773a8a4ba4f92a2df333c64c63bebbd82e5b8addecbcc7820eb4266c639745dfa80f36faf66c66fa19c3f882fb470ec05cdc0bed07893f68e171492635f686c3eeff6ba3c8fdd366dc4c0452c8781f8080000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000a049444154388dd5954d0a802010859fd14668e18de662d222bc98376a21b4ac451992c66469e0b7f187f1f11c47052a218e762daddbfb9e99f6568f80b5364b8588ce35440400e80a398ce8f99034d2292cc37c8ebd530feb583a05e954341f8a027b2a7d3a1f09bf854dc5d5d953aa396e4f38cab199e2d2e108abe156f82e30977fcb4d8ff942d75dbebed2e143953a93f6caad3d6111f44b7d4f820ff9c0069bb51ecded318c5c0000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000007349444154388ded92c10e80200840b1ef661d1cff4d876aa888a17669f9360f283ed80060f159425f3a71f53602e08e992b098801d02854176ae47f21ce1fb5b05d38eddc9060d0f11379635b3bc92bd518e239a943ec1d5ab7785cee107be4b215af4091f894de47181ecea59ede9ec59f380062ac28b1e3d701d90000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000007449444154388ded92c10ac02008406ddf2d3b84ffed0ea3586a26d165e0830ea53e8504487e4b910f5489f19ea5a3ca0f8a896365b306c42dd613c649bdc2598316136219f0f936c0a2ef00d75a62614d3ab22996f2a362ffa337c5ebede962aad1a2e84aaaa2f750dd12748c0fd0ab9324677800596e28b1743f46860000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000008249444154388dcdd341128020080550e8e02ebc38ad3273503e48537fe3e48c4f2425fa28e29c6f39920bf9276cb60185358877611388c2576418cda015f520b4e6b55be109dc0622b8e22acf31056e18dfdff80606aa551cc63564c4dcf80cd0201d577a5c85a8845fdc025ea5307afccd07e23a1df283ec2b37d9ad5fb4dfefd49cfbf72fac98c8cc890000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000bf49444154388dd593410a83301045df488ee51dbc8c3ba98bf46a9eabd385350d266362444a3f0c4266fcf3f824f06f12402b66da8c55f3de2212cf9d92cb98c0ba2d7c4544cf9a07638bbad53c4491235ecf7cc1623697a92540c11ff4fda75275015d24a9389e7d6f53df4fe4ccab323eea0f03c0c4b2a0712ce6add89b59b7661c3be095985f261679ee4ebcc22c9788551fe6a2cbc4969a894bcb6f23ee361aab62e252c57294dfbfb610bbf2c897b8a46cc6677eaa519571fa087ea83762da9abacb20235f0000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000d549444154388dc5955d0a84300c8427e2a90a9e6c8b0f4b3dd982d7ca3e58d7fe4cd0ba5d7640024df265da0a057e2439c9eb8d9eaa8841a0c9aad8c82ab32f9c425be1e30e0dcf00c00308f0b3a7a07410a9d7142e00b42c5a5fab696b979b1c837fc0c316b6e4165b64f78d716359919bdc4570de47c04732dd5e5bcc35f0c97762ae787936dccf7513577e79f48c4b27aa0f1327b240f5117fcbe348aa33b6e0224b054d0746b8025e2e3b3e73cde0dd1c97f02e8ed9d0af1db381224bdf33eee698a934a0f617b45540d00bcf4ca08fc0dff406e325c1981bc418760000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000025d49444154388dd593a172db4010863f670a56ecc42278d0653693a0c21c68d6c2e60df21a818111349499c254a8329b55f0e089ddb15ba602b79d6692d699b6d399fee86e67e7db7f77efe07fd3e2c74bd775b3730eef3d5115002382b5166b2d5757578b1729bf02b76d3b0f8703b92d58aed7600400ef1ce3c70306a8aa8aebebeb57c117dfa06ddb525dd754efb600a82a49138a123532ec3ac42b9bcde655ce2ffabe9f87c340fde13dcb4d8daaa24e48ee12c6823808c107969b1a8a9ce3f1f8aa515c38e7c8ada5aa6b00c45f129c67d223938c88e6c860d118b1d592d139baae9bcf83a78965b5465134801b1d2e1f4945c0e350096408ea154490c2e0bd3fef5853c2e486a0019f4d84f58418418362b0408e8b23c924501093314dd359f01b809814112025144015f1964c0bbc1b484b07e4688880c029ebd78e4141f5b434fd76864c053f1e084b0f8580265440634044ce838bbcc03987a61350a3a2285e1d5a4414d0708aa598082162ad3d0fb6d6e287cfa498508d274050447370428c91af8d10fd4481608c390b5e00dcddddcd8e80a9de420248e804840856f03e02907d729465c9ba5ae3468731e6a79fe50260b55a6102c4ee40a6894c33f2cb0cb106512814f8f899b22cb9b9b959b8d1f1f8f848d334b46dfbe29bfe5eadeffbf9783c323a871881ecb4200d1151a8eb9aed76bb00188661eeba8efd7e8f3186ed76cb6ab57ae2fe591b5dd7cdde7b628c8808799e63ada5aaaa67b9bbdd6e6e9a06ef3d755d3f29fec7eafb7ebebdbd9dadb5735996f3fdfdfdfca2e3dfd5c3c3c3dc340dd334b1d96cfe1e184e63dceff7a494fe26f61fe90bbc4c5e59d614caf40000000049454e44ae426082 + + + + + fileNewAction + activated() + Eficas + fileNew() + + + fileOpenAction + activated() + Eficas + fileOpen() + + + fileSaveAction + activated() + Eficas + fileSave() + + + fileSaveAsAction + activated() + Eficas + fileSaveAs() + + + fileExitAction + activated() + Eficas + fileExit() + + + editUndoAction + activated() + Eficas + editUndo() + + + editRedoAction + activated() + Eficas + editRedo() + + + editCutAction + activated() + Eficas + editCut() + + + editPasteAction + activated() + Eficas + editPaste() + + + jdcFichierResultatAction + activated() + Eficas + visuJdcPy() + + + helpIndexAction + activated() + Eficas + helpIndex() + + + helpContentsAction + activated() + Eficas + helpContents() + + + helpAboutAction + activated() + Eficas + helpAbout() + + + fileCloseAction + activated() + Eficas + fileClose() + + + fileNewViewAction + activated() + Eficas + fileNewView() + + + fileCloseAllAction + activated() + Eficas + fileCloseAll() + + + editCopyAction + activated() + Eficas + editCopy() + + + jdcRapportDeValidationAction + activated() + Eficas + jdcRapport() + + + jdcFichierSourceAction + activated() + Eficas + jdcFichierSource() + + + traduitV7V8Action + activated() + Eficas + traductionV7V8() + + + aidenew_itemAction + activated() + Eficas + helpAbout() + + + fileNewInclude + activated() + Eficas + NewInclude() + + + optionEditeurAction + activated() + Eficas + optionEditeur() + + + optionPdfAction + activated() + Eficas + optionPdf() + + + + fileNew() + fileOpen() + fileSave() + fileSaveAs() + filePrint() + fileExit() + editUndo() + editRedo() + jdcFichierSource() + fileNewView() + editPaste() + visuJdcPy() + helpIndex() + helpContents() + helpAbout() + fileClose() + fileCloseAll() + jdcRapport() + editCut() + editCopy() + traductionV7V8() + NewInclude() + optionEditeur() + optionPdf() + + + diff --git a/UiQT4/myMain.ui~ b/UiQT4/myMain.ui~ new file mode 100644 index 00000000..a636a0ea --- /dev/null +++ b/UiQT4/myMain.ui~ @@ -0,0 +1,699 @@ + +Eficas + + + Eficas + + + true + + + + 0 + 0 + 902 + 575 + + + + + 1 + 1 + 0 + 0 + + + + + 21 + 323 + + + + WidgetOrigin + + + + + + + Eficas + + + + line1 + + + + -30 + -10 + 930 + 20 + + + + HLine + + + Sunken + + + Horizontal + + + + + + MenuBar + + + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + toolBar + + + MenuBarPanel + + + false + + + Tools + + + + + + + + + + + + + + + + fileNewAction + + + image0 + + + Nouveau + + + &Nouveau + + + Ctrl+N + + + + + fileOpenAction + + + image1 + + + Ouvrir + + + &Ouvrir + + + Ctrl+O + + + + + fileSaveAction + + + image2 + + + Enregistrer + + + &Enregister + + + Ctrl+E + + + + + fileSaveAsAction + + + Enregister Sous + + + Enregister Sous + + + + + + + + fileExitAction + + + Quitter + + + Q&uitter + + + + + + + + editUndoAction + + + false + + + image3 + + + Undo + + + &Undo + + + Ctrl+Z + + + + + editRedoAction + + + false + + + image4 + + + Redo + + + &Redo + + + Ctrl+Y + + + + + editCutAction + + + image5 + + + Couper + + + C&ouper + + + Ctrl+X + + + + + editCopyAction + + + image6 + + + Copier + + + &Copier + + + Ctrl+C + + + + + editPasteAction + + + image7 + + + Coller + + + &Coller + + + Ctrl+V + + + + + jdcFichierResultatAction + + + true + + + image8 + + + Fichier Resultat + + + Fichier Resultat + + + Ctrl+F + + + + + helpContentsAction + + + Contents + + + &Contents... + + + + + + + + helpIndexAction + + + Index + + + &Index... + + + + + + + + helpAboutAction + + + false + + + About + + + &About + + + + + + + + fileSaveCloseAction + + + Fermer + + + Fermer + + + + + fileCloseAction + + + Fermer + + + Fermer + + + Ctrl+W + + + + + fileNewViewAction + + + false + + + New view + + + + + fileCloseAllAction + + + Tout Fermer + + + Tout Fermer + + + + + jdcRapportDeValidationAction + + + Rapport de validation + + + Rapport de validation + + + Ctrl+R + + + + + jdcFichierSourceAction + + + Fichier source + + + Fichier source + + + Ctrl+B + + + + + traduitV7V8Action + + + traduitV7V8 + + + traduitV7V8 + + + + + aidenew_itemAction + + + Eficas + + + + + fileNewInclude + + + Nouvel Include + + + Nouvel Include + + + + + optionEditeurAction + + + Parametres Eficas + + + Parametres Eficas + + + + + optionPdfAction + + + Lecteur Pdf + + + Lecteur Pdf + + + + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000007449444154388dedd5c109c0200c05d06fe936812c10b2ffdd85d25385b6a991480f053f081af0291210f828c5a9d9c4de96cd2b9ad9eb0000660e2fe0c2519839c4f70c4c446d5e6b3538cf928245e4b2f6f014acaa8fda1d4fc1a5741b22079f9d111d96ea8a912c78c10bee64e60719f57e9203ad452a04cc4e50200000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000009949444154388ded94410e85200c445f89c7367f61bc775d2848a42860ffced9548bbe8e13043e1d928177f481a123dc2b34f6f47a3de2b865a8843f4001982a0b3d5f62c58300aa1ad70550449ab9d507a773a8a4ba4f92a2df333c64c63bebbd82e5b8addecbcc7820eb4266c639745dfa80f36faf66c66fa19c3f882fb470ec05cdc0bed07893f68e171492635f686c3eeff6ba3c8fdd366dc4c0452c8781f8080000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000a049444154388dd5954d0a802010859fd14668e18de662d222bc98376a21b4ac451992c66469e0b7f187f1f11c47052a218e762daddbfb9e99f6568f80b5364b8588ce35440400e80a398ce8f99034d2292cc37c8ebd530feb583a05e954341f8a027b2a7d3a1f09bf854dc5d5d953aa396e4f38cab199e2d2e108abe156f82e30977fcb4d8ff942d75dbebed2e143953a93f6caad3d6111f44b7d4f820ff9c0069bb51ecded318c5c0000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000007349444154388ded92c10e80200840b1ef661d1cff4d876aa888a17669f9360f283ed80060f159425f3a71f53602e08e992b098801d02854176ae47f21ce1fb5b05d38eddc9060d0f11379635b3bc92bd518e239a943ec1d5ab7785cee107be4b215af4091f894de47181ecea59ede9ec59f380062ac28b1e3d701d90000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000007449444154388ded92c10ac02008406ddf2d3b84ffed0ea3586a26d165e0830ea53e8504487e4b910f5489f19ea5a3ca0f8a896365b306c42dd613c649bdc2598316136219f0f936c0a2ef00d75a62614d3ab22996f2a362ffa337c5ebede962aad1a2e84aaaa2f750dd12748c0fd0ab9324677800596e28b1743f46860000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000008249444154388dcdd341128020080550e8e02ebc38ad3273503e48537fe3e48c4f2425fa28e29c6f39920bf9276cb60185358877611388c2576418cda015f520b4e6b55be109dc0622b8e22acf31056e18dfdff80606aa551cc63564c4dcf80cd0201d577a5c85a8845fdc025ea5307afccd07e23a1df283ec2b37d9ad5fb4dfefd49cfbf72fac98c8cc890000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000bf49444154388dd593410a83301045df488ee51dbc8c3ba98bf46a9eabd385350d266362444a3f0c4266fcf3f824f06f12402b66da8c55f3de2212cf9d92cb98c0ba2d7c4544cf9a07638bbad53c4491235ecf7cc1623697a92540c11ff4fda75275015d24a9389e7d6f53df4fe4ccab323eea0f03c0c4b2a0712ce6add89b59b7661c3be095985f261679ee4ebcc22c9788551fe6a2cbc4969a894bcb6f23ee361aab62e252c57294dfbfb610bbf2c897b8a46cc6677eaa519571fa087ea83762da9abacb20235f0000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000d549444154388dc5955d0a84300c8427e2a90a9e6c8b0f4b3dd982d7ca3e58d7fe4cd0ba5d7640024df265da0a057e2439c9eb8d9eaa8841a0c9aad8c82ab32f9c425be1e30e0dcf00c00308f0b3a7a07410a9d7142e00b42c5a5fab696b979b1c837fc0c316b6e4165b64f78d716359919bdc4570de47c04732dd5e5bcc35f0c97762ae787936dccf7513577e79f48c4b27aa0f1327b240f5117fcbe348aa33b6e0224b054d0746b8025e2e3b3e73cde0dd1c97f02e8ed9d0af1db381224bdf33eee698a934a0f617b45540d00bcf4ca08fc0dff406e325c1981bc418760000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000025d49444154388dd593a172db4010863f670a56ecc42278d0653693a0c21c68d6c2e60df21a818111349499c254a8329b55f0e089ddb15ba602b79d6692d699b6d399fee86e67e7db7f77efe07fd3e2c74bd775b3730eef3d5115002382b5166b2d5757578b1729bf02b76d3b0f8703b92d58aed7600400ef1ce3c70306a8aa8aebebeb57c117dfa06ddb525dd754efb600a82a49138a123532ec3ac42b9bcde655ce2ffabe9f87c340fde13dcb4d8daaa24e48ee12c6823808c107969b1a8a9ce3f1f8aa515c38e7c8ada5aa6b00c45f129c67d223938c88e6c860d118b1d592d139baae9bcf83a78965b5465134801b1d2e1f4945c0e350096408ea154490c2e0bd3fef5853c2e486a0019f4d84f58418418362b0408e8b23c924501093314dd359f01b809814112025144015f1964c0bbc1b484b07e4688880c029ebd78e4141f5b434fd76864c053f1e084b0f8580265440634044ce838bbcc03987a61350a3a2285e1d5a4414d0708aa598082162ad3d0fb6d6e287cfa498508d274050447370428c91af8d10fd4481608c390b5e00dcddddcd8e80a9de420248e804840856f03e02907d729465c9ba5ae3468731e6a79fe50260b55a6102c4ee40a6894c33f2cb0cb106512814f8f899b22cb9b9b959b8d1f1f8f848d334b46dfbe29bfe5eadeffbf9783c323a871881ecb4200d1151a8eb9aed76bb00188661eeba8efd7e8f3186ed76cb6ab57ae2fe591b5dd7cdde7b628c8808799e63ada5aaaa67b9bbdd6e6e9a06ef3d755d3f29fec7eafb7ebebdbd9dadb5735996f3fdfdfdfca2e3dfd5c3c3c3dc340dd334b1d96cfe1e184e63dceff7a494fe26f61fe90bbc4c5e59d614caf40000000049454e44ae426082 + + + + + fileNewAction + activated() + Eficas + fileNew() + + + fileOpenAction + activated() + Eficas + fileOpen() + + + fileSaveAction + activated() + Eficas + fileSave() + + + fileSaveAsAction + activated() + Eficas + fileSaveAs() + + + fileExitAction + activated() + Eficas + fileExit() + + + editUndoAction + activated() + Eficas + editUndo() + + + editRedoAction + activated() + Eficas + editRedo() + + + editCutAction + activated() + Eficas + editCut() + + + editPasteAction + activated() + Eficas + editPaste() + + + jdcFichierResultatAction + activated() + Eficas + visuJdcPy() + + + helpIndexAction + activated() + Eficas + helpIndex() + + + helpContentsAction + activated() + Eficas + helpContents() + + + helpAboutAction + activated() + Eficas + helpAbout() + + + fileCloseAction + activated() + Eficas + fileClose() + + + fileNewViewAction + activated() + Eficas + fileNewView() + + + fileCloseAllAction + activated() + Eficas + fileCloseAll() + + + editCopyAction + activated() + Eficas + editCopy() + + + jdcRapportDeValidationAction + activated() + Eficas + jdcRapport() + + + jdcFichierSourceAction + activated() + Eficas + jdcFichierSource() + + + traduitV7V8Action + activated() + Eficas + traductionV7V8() + + + aidenew_itemAction + activated() + Eficas + helpAbout() + + + fileNewInclude + activated() + Eficas + NewInclude() + + + optionEditeurAction + activated() + Eficas + optionEditeur() + + + optionPdfAction + activated() + Eficas + optionPdf() + + + + fileNew() + fileOpen() + fileSave() + fileSaveAs() + filePrint() + fileExit() + editUndo() + editRedo() + jdcFichierSource() + fileNewView() + editPaste() + visuJdcPy() + helpIndex() + helpContents() + helpAbout() + fileClose() + fileCloseAll() + jdcRapport() + editCut() + editCopy() + traductionV7V8() + NewInclude() + optionEditeur() + optionPdf() + + +