-class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget):
- """
- """
- def __init__(self,node, jdc_item, editor):
- QtGui.QWidget.__init__(self,None)
- self.setupUi(self)
- #self.labelIcone.setText('<img src="/local00/home/A96028/Install_EficasV1/KarineEficas/InterfaceQT4/loopOff.png">');
-
- self.item = jdc_item
- self.node = node
- self.editor = editor
- self.jdc = self.item.object.get_jdc_root()
- debutTitre=self.editor.titre
- self.listeWidget=[]
- if self.editor.fichier != None :
- nouveauTitre=debutTitre+" "+str(os.path.basename(self.editor.fichier))
- else :
- nouveauTitre=debutTitre
- self.editor.appliEficas.setWindowTitle(nouveauTitre)
-
- #print self.node.tree
-
- self.connect(self.RBalpha,SIGNAL("clicked()"),self.afficheAlpha)
- self.connect(self.RBGroupe,SIGNAL("clicked()"),self.afficheGroupe)
- self.connect(self.RBOrdre,SIGNAL("clicked()"),self.afficheOrdre)
- if self.node.tree.item.get_regles() == () :
- self.RBRegle.close()
- self.labelRegle.close()
- else : self.connect(self.RBRegle,SIGNAL("clicked()"),self.afficheRegle)
-
- if self.editor.Ordre_Des_Commandes == None : self.RBOrdre.close()
-
-
- self.editor.labelCommentaire.setText("")
- if self.editor.widgetOptionnel!= None :
- self.editor.widgetOptionnel.close()
- self.editor.widgetOptionnel=None
- self.name=None
- self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.AjouteRadioButton)
-
- self.affiche_alpha=0
- self.affiche_groupe=0
- self.affiche_ordre=0
- if self.editor.affiche=="alpha" :
- self.affiche_alpha==1;
- self.RBalpha.setChecked(True);
- self.afficheAlpha()
- elif self.editor.affiche=="groupe" :
- self.affiche_groupe==1;
- self.RBGroupe.setChecked(True);
- self.afficheGroupe()
- elif self.editor.affiche=="ordre" :
- self.affiche_ordre==1;
- self.RBOrdre.setChecked(True);
- self.afficheOrdre()
- if self.editor.code == "Adao" : self.frameAffichage.close()
-
- def afficheRegle(self):
- self.node.tree.AppelleBuildLBRegles()
-
- def afficheAlpha(self):
- self.affiche_alpha=1
- self.affiche_groupe=0
- self.affiche_ordre=0
- self.AjouteRadioButton()
-
- def afficheGroupe(self):
- self.affiche_alpha=0
- self.affiche_groupe=1
- self.affiche_ordre=0
- self.AjouteRadioButton()
-
- def afficheOrdre(self):
- self.affiche_alpha=0
- self.affiche_groupe=0
- self.affiche_ordre=1
- self.AjouteRadioButton()
-
- def mouseDoubleClickEvent(self,event):
- nodeCourrant=self.node.tree.currentItem()
- if nodeCourrant==None: nodeCourrant=self.node.tree.racine
- if self.name != None :
- plier=self.editor.afficheCommandesPliees
- if nodeCourrant==self.node : nouveau=self.node.append_child(self.name,'first',plier)
- else : nouveau=nodeCourrant.append_brother(self.name,plier=plier)
- else :
- nouveau = 0
- if nouveau == 0 : return # on n a pas insere le noeud
- nouveau.setDeplie()
- #if self.editor.afficheApresInsert==True : nouveau.plieToutEtReaffiche()
- if self.editor.afficheApresInsert == True :
- #if self.editor.affichePlie==True: nouveau.plieToutEtReaffiche()
- if self.editor.afficheCommandesPliees ==True: nouveau.plieToutEtReaffiche()
- else : nouveau.deplieToutEtReaffiche()
- nouveau.fenetre.donnePremier()
- #nouveau.deplieToutEtReaffiche()
- else :
- self.node.setSelected(False)
- nouveau.setSelected(True)
- self.node.tree.setCurrentItem(nouveau)
- event.accept()
-
-
- def CreeListeCommande(self,filtre):
- listeGroupes,dictGroupes=self.jdc.get_groups()
- if "CACHE" in dictGroupes.keys():
- aExclure=dictGroupes["CACHE"]
- else:
- aExclure=()
- listeACreer=[]
- for l in self.jdc.get_liste_cmd():
- if l not in aExclure :
- if filtre != None and not filtre in l : continue
- listeACreer.append(l)
- return listeACreer
-
- def AjouteRadioButton(self):
- filtre=str(self.LEFiltre.text())
- if filtre==str("") : filtre=None
- if hasattr(self,'buttonGroup') :
- for b in self.buttonGroup.buttons():
- self.buttonGroup.removeButton(b)
- b.close()
- else :
- self.buttonGroup = QButtonGroup()
- for w in self.listeWidget :
- w.close()
- self.listeWidget=[]
- if self.affiche_alpha==1 :
- liste=self.CreeListeCommande(filtre)
- for cmd in liste :
- rbcmd=(QRadioButton(tr(cmd)))
- self.buttonGroup.addButton(rbcmd)
- self.commandesLayout.addWidget(rbcmd)
- rbcmd.mouseDoubleClickEvent=self.mouseDoubleClickEvent
- self.connect(self.buttonGroup, SIGNAL("buttonClicked(QAbstractButton*)"),self.rbClique)
- elif self.affiche_groupe==1 :
- listeGroupes,dictGroupes=self.jdc.get_groups()
- for grp in listeGroupes:
- if grp == "CACHE" : continue
- label=QLabel(self)
- text=QString.fromUtf8('<html><head/><body><p><span style=\" font-weight:600;\">Groupe : '+tr(grp)+'</span></p></body></html>')
- label.setText(text)
- self.listeWidget.append(label)
- aAjouter=1
- for cmd in dictGroupes[grp]:
- if filtre != None and not filtre in cmd : continue
- if aAjouter == 1 :
- self.commandesLayout.addWidget(label)
- aAjouter=0
- rbcmd=(QRadioButton(tr(cmd)))
- self.buttonGroup.addButton(rbcmd)
- self.commandesLayout.addWidget(rbcmd)
- rbcmd.mouseDoubleClickEvent=self.mouseDoubleClickEvent
- self.connect(self.buttonGroup, SIGNAL("buttonClicked(QAbstractButton*)"),self.rbClique)
- label2=QLabel(self)
- label2.setText(" ")
- self.listeWidget.append(label2)
- self.commandesLayout.addWidget(label2)
- elif self.affiche_ordre==1 :
- listeFiltre=self.CreeListeCommande(filtre)
- liste=[]
- if self.editor.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
- else : Ordre_Des_Commandes=self.editor.Ordre_Des_Commandes
- for cmd in Ordre_Des_Commandes :
- if cmd in listeFiltre :
- liste.append(cmd)
- for cmd in liste :
- rbcmd=(QRadioButton(tr(cmd)))
- self.buttonGroup.addButton(rbcmd)
- self.commandesLayout.addWidget(rbcmd)
- rbcmd.mouseDoubleClickEvent=self.mouseDoubleClickEvent
- self.connect(self.buttonGroup, SIGNAL("buttonClicked(QAbstractButton*)"),self.rbClique)
-
-
- def LEfiltreReturnPressed(self):
- self.AjouteRadioButton(filtre)
-
-
- def rbClique(self,id):
- self.name=str(id.text().toLatin1())
- definitionEtape=getattr(self.jdc.cata[0],self.name)
- commentaire=getattr(definitionEtape,self.jdc.lang)
- try :
- commentaire=getattr(definitionEtape,self.jdc.lang)
- except :
+class MonChoixCommande(Ui_ChoixCommandes,QWidget):
+ """
+ """
+ def __init__(self,node, jdc_item, editor):
+ QWidget.__init__(self,parent=None)
+ self.setupUi(self)
+
+ self.repIcon=os.path.join( os.path.dirname(os.path.abspath(__file__)),'..','Editeur','icons')
+ iconeFile=os.path.join(self.repIcon,'lettreRblanc30.png')
+ icon = QIcon(iconeFile)
+ self.RBRegle.setIcon(icon)
+ self.RBRegle.setIconSize(QSize(21, 31))
+
+ self.item = jdc_item
+ self.node = node
+ self.editor = editor
+ self.simpleClic=self.editor.maConfiguration.simpleClic
+ self.jdc = self.item.object.getJdcRoot()
+ debutTitre=self.editor.titre
+ self.listeWidget=[]
+ self.dicoCmd={}
+ if self.editor.fichier != None :
+ nouveauTitre=debutTitre+" "+os.path.basename(self.editor.fichier)
+ else :
+ nouveauTitre=debutTitre
+ self.editor.appliEficas.setWindowTitle(nouveauTitre)
+
+
+ self.RBalpha.clicked.connect(self.afficheAlpha)
+ self.RBGroupe.clicked.connect(self.afficheGroupe)
+ self.RBOrdre.clicked.connect(self.afficheOrdre)
+ self.RBClear.clicked.connect(self.clearFiltre)
+ self.RBCasse.toggled.connect(self.ajouteRadioButtons)
+ self.LEFiltre.returnPressed.connect(self.ajouteRadioButtons)
+ self.LEFiltre.textChanged.connect(self.ajouteRadioButtons)
+
+ if self.node.tree.item.getRegles() == () :
+ self.RBRegle.close()
+ self.labelRegle.close()
+ else :
+ self.RBRegle.clicked.connect(self.afficheRegle)
+
+ if self.editor.readercata.Ordre_Des_Commandes == None : self.RBOrdre.close()
+
+
+ #self.editor.labelCommentaire.setText("")
+ if self.editor.widgetOptionnel!= None :
+ self.editor.fermeOptionnel()
+ self.editor.widgetOptionnel=None
+ self.name=None
+
+ self.boolAlpha=0
+ self.boolGroupe=0
+ self.boolOrdre=0
+ if self.editor.maConfiguration.affiche=="alpha" :
+ self.boolAlpha==1;
+ self.RBalpha.setChecked(True);
+ self.afficheAlpha()
+ elif self.editor.maConfiguration.affiche=="groupe" :
+ self.boolGroupe==1;
+ self.RBGroupe.setChecked(True);
+ self.afficheGroupe()
+ elif self.editor.maConfiguration.affiche=="ordre" :
+ self.boolOrdre==1;
+ self.RBOrdre.setChecked(True);
+ self.afficheOrdre()
+ if self.editor.maConfiguration.closeFrameRechercheCommandeSurPageDesCommandes == True : self.frameAffichage.close()
+
+ if self.editor.widgetTree != None : self.editor.restoreSplitterSizes(2)
+ else: self.editor.restoreSplitterSizes(3)
+
+ def afficheRegle(self):
+ self.node.tree.appellebuildLBRegles()
+
+ def afficheAlpha(self):
+ self.boolAlpha=1
+ self.boolGroupe=0
+ self.boolOrdre=0
+ self.ajouteRadioButtons()
+
+ def afficheGroupe(self):
+ self.boolAlpha=0
+ self.boolGroupe=1
+ self.boolOrdre=0
+ self.ajouteRadioButtons()
+
+ def afficheOrdre(self):
+ self.boolAlpha=0
+ self.boolGroupe=0
+ self.boolOrdre=1
+ self.ajouteRadioButtons()
+
+ def insereNoeudApresClick(self,event):
+ #print self.editor.Classement_Commandes_Ds_Arbre
+ #if self.editor.Classement_Commandes_Ds_Arbre!= () : self.chercheOu()
+ #print ('dans insereNoeudApresClick')
+ nodeCourrant=self.node.tree.currentItem()
+ if nodeCourrant==None: nodeCourrant=self.node.tree.racine
+ if self.name != None :
+ plier=self.editor.maConfiguration.afficheCommandesPliees
+ if nodeCourrant==self.node : nouveau=self.node.appendChild(self.name,'first',plier)
+ else : nouveau=nodeCourrant.appendBrother(self.name,plier=plier)
+ else :
+ nouveau = 0
+ if nouveau == 0 : return # on n a pas insere le noeud
+ nouveau.setDeplie()
+ #if self.editor.afficheApresInsert==True : nouveau.plieToutEtReaffiche()
+ if self.editor.afficheApresInsert == True :
+ #if self.editor.affichePlie==True: nouveau.plieToutEtReaffiche()
+ if self.editor.maConfiguration.afficheCommandesPliees ==True: nouveau.plieToutEtReaffiche()
+ else : nouveau.deplieToutEtReaffiche()
+ nouveau.fenetre.donnePremier()
+ #nouveau.deplieToutEtReaffiche()
+ else :
+ self.node.setSelected(False)
+ nouveau.setSelected(True)
+ self.node.tree.setCurrentItem(nouveau)
+ if event != None : event.accept()
+
+
+
+ def creeListeCommande(self,filtre):
+ listeGroupes,dictGroupes=self.jdc.getGroups()
+ sensibleALaCasse=self.RBCasse.isChecked()
+ if "CACHE" in dictGroupes: aExclure=list(dictGroupes["CACHE"])
+ else: aExclure=[]
+ listeACreer=[]
+ listeEtapesDejaPresentes=[]
+ if self.editor.maConfiguration.rendVisiblesLesCaches :
+ for e in self.jdc.etapes:
+ listeEtapesDejaPresentes.append(e.nom)
+ for c in aExclure :
+ if c not in listeEtapesDejaPresentes : aExclure.remove(c)
+ #for e in self.jdc.etapes:
+ # print (e.nom)
+ # print (e.definition.repetable)
+ # if e.definition.repetable == 'n' : aExclure.append(e.nom)
+ #print (aExclure)
+ for l in self.jdc.getListeCmd():
+ if l not in aExclure :
+ if sensibleALaCasse and (filtre != None and not filtre in l) : continue
+ if (not sensibleALaCasse) and filtre != None and (not filtre in l) and (not filtre.upper() in l) : continue
+ listeACreer.append(l)
+ return listeACreer
+
+ def ajouteRadioButtons(self):
+ if self.editor.maConfiguration.nombreDeBoutonParLigne != 0 :
+ self.ajoutePushButtons()
+ return
+ #print 'ds ajouteRadioButtons'
+ filtre=str(self.LEFiltre.text())
+ if filtre==str("") : filtre=None
+ if hasattr(self,'buttonGroup') :
+ for b in self.buttonGroup.buttons():
+ self.buttonGroup.removeButton(b)
+ b.setParent(None)
+ b.close()
+ else :
+ self.buttonGroup = QButtonGroup()
+ for w in self.listeWidget :
+ w.setParent(None)
+ w.close()
+ self.listeWidget=[]
+ if self.boolAlpha==1 :
+ liste=self.creeListeCommande(filtre)
+ for cmd in liste :
+ self.dicoCmd[tr(cmd)]=cmd
+ rbcmd=(QRadioButton(tr(cmd)))
+ self.buttonGroup.addButton(rbcmd)
+ self.commandesLayout.addWidget(rbcmd)
+ #if self.simpleClic : rbcmd.mouseReleaseEvent=self.insereNoeudApresClick
+ #else : rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+ #self.buttonGroup.buttonClicked.connect(self.rbClique)
+ if not(self.simpleClic ): rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+ if self.simpleClic :
+ self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+ else :
+ self.buttonGroup.buttonClicked.connect(self.rbClique)
+ elif self.boolGroupe==1 :
+ listeGroupes,dictGroupes=self.jdc.getGroups()
+ for grp in listeGroupes:
+ if grp == "CACHE" : continue
+ label=QLabel(self)
+ text=tr('<html><head/><body><p><span style=\" font-weight:600;\">Groupe : '+tr(grp)+'</span></p></body></html>')
+ label.setText(text)
+ self.listeWidget.append(label)
+ aAjouter=1
+ sensibleALaCasse=self.RBCasse.isChecked()
+ for cmd in dictGroupes[grp]:
+ if sensibleALaCasse and (filtre != None and not filtre in cmd) : continue
+ if (not sensibleALaCasse) and filtre != None and (not filtre in cmd) and (not filtre.upper() in cmd) : continue
+ if aAjouter == 1 :
+ self.commandesLayout.addWidget(label)
+ aAjouter=0
+ self.dicoCmd[tr(cmd)]=cmd
+ rbcmd=(QRadioButton(tr(cmd)))
+ self.buttonGroup.addButton(rbcmd)
+ self.commandesLayout.addWidget(rbcmd)
+ if not(self.simpleClic ): rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+ if self.simpleClic :
+ self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+ else :
+ self.buttonGroup.buttonClicked.connect(self.rbClique)
+ label2=QLabel(self)
+ label2.setText(" ")
+ self.listeWidget.append(label2)
+ self.commandesLayout.addWidget(label2)
+ elif self.boolOrdre==1 :
+ listeFiltre=self.creeListeCommande(filtre)
+ liste=[]
+ if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
+ else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes
+ for cmd in Ordre_Des_Commandes :
+ if cmd in listeFiltre :
+ liste.append(cmd)
+ for cmd in liste :
+ self.dicoCmd[tr(cmd)]=cmd
+ rbcmd=(QRadioButton(tr(cmd)))
+ self.buttonGroup.addButton(rbcmd)
+ self.commandesLayout.addWidget(rbcmd)
+ if not(self.simpleClic ): rbcmd.mouseDoubleClickEvent=self.insereNoeudApresClick
+ if self.simpleClic :
+ self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+ else :
+ self.buttonGroup.buttonClicked.connect(self.rbClique)
+
+
+
+ def ajoutePushButtons(self):
+ if hasattr(self,'buttonGroup') :
+ for b in self.buttonGroup.buttons():
+ self.buttonGroup.removeButton(b)
+ b.setParent(None)
+ b.close()
+ else :
+ self.buttonGroup = QButtonGroup()
+ self.buttonGroup.buttonClicked.connect(self.rbCliqueEtInsere)
+ for w in self.listeWidget :
+ w.setParent(None)
+ w.close()
+ self.listeWidget=[]
+
+ if not hasattr(self,'maGrilleBouton') :
+ #self.commandesLayout.close()
+ self.maGrilleBouton=QGridLayout()
+ self.maGrilleBouton.setSpacing(20)
+ self.verticalLayout.addLayout(self.maGrilleBouton)
+ col=-1
+ ligne = 0
+
+ if self.boolAlpha==1 :
+ liste=self.creeListeCommande(None)
+ elif self.boolOrdre:
+ liste=self.creeListeCommande(None)
+ listeFiltre=self.creeListeCommande(None)
+ liste=[]
+ if self.editor.readercata.Ordre_Des_Commandes == None : Ordre_Des_Commandes=listeFiltre
+ else : Ordre_Des_Commandes=self.editor.readercata.Ordre_Des_Commandes
+ for cmd in Ordre_Des_Commandes :
+ if cmd in listeFiltre :
+ liste.append(cmd)
+ for cmd in liste :
+ col=col+1
+ if col == self.editor.maConfiguration.nombreDeBoutonParLigne :
+ col=0
+ ligne=ligne+1
+ self.dicoCmd[tr(cmd)]=cmd
+ rbcmd=QPushButton(tr(cmd))
+ rbcmd.setGeometry(QRect(40, 20, 211, 71))
+ rbcmd.setMaximumSize(QSize(250, 81))
+ rbcmd.setStyleSheet("background-color : rgb(66, 165, 238);\n"
+"/*border-style : outset;*/\n"
+"border-radius : 20px;\n"
+"border-width : 30 px;\n"
+"border-color : beige;\n"
+"text-align : center")
+ #print ('self.editor.maConfiguration.dicoImages', self.editor.maConfiguration.dicoImages)
+ if cmd in self.editor.maConfiguration.dicoImages :
+ fichier=self.editor.maConfiguration.dicoImages[cmd]
+ icon = QIcon()
+ icon.addPixmap(QPixmap(fichier), QIcon.Normal, QIcon.Off)
+ rbcmd.setIcon(icon)
+ rbcmd.setIconSize(QSize(48, 48))
+
+ self.buttonGroup.addButton(rbcmd)
+ self.maGrilleBouton.addWidget(rbcmd,ligne,col)
+
+ def clearFiltre(self):
+ self.LEFiltre.setText("")
+ self.ajouteRadioButtons()
+
+ def rbCliqueEtInsere(self,id):
+ self.rbClique(id)
+ self.insereNoeudApresClick(None)
+
+ def rbClique(self,id):
+
+ try :
+ self.name=self.dicoCmd[id.text()]
+ except :
+ try :
+ self.name=self.dicoCmd[str(id.text())]
+ except :
+ print ('pb d accent : contacter la maintenance')
+
+ definitionEtape=getattr(self.jdc.cata,self.name)
+ #commentaire=getattr(definitionEtape,self.jdc.lang)