Exemple #1
0
	def __init__(self, statusBar, filer=False):
        	QWidget.__init__(self)
		
		# Boite d'alignement vertical
		vbox=QVBoxLayout(self)
		
		# On ne passe pas tout le parent, mais juste ce dont on a besoin (ici la bar de status)
		# Barre des tâches
		self.statusBar = statusBar

                #-------------------
		# Navigateur de répertoires
		#-------------------
		
		# arborescence des fichiers et dossiers permettant l'affichage
		self.listViewVisioVideo = QListView()

		filtres_option = QDir.AllDirs | QDir.Files | QDir.Readable
		filtres = QStringList()
		filtres << "*.avi" << "*.mpg" << "*.mpeg" << "*.mjpeg" << "*.flv" << "*.mp4" << "*.ogg" << "*.vob" << "*.mov" << "*.h264" << "*.wmv" << "*.3gp"
                sorting = QDir.DirsFirst
                if int(EkdConfig.get("general", "ignore_case")):
                    sorting |= QDir.IgnoreCase
		self.model = QDirModel(filtres, filtres_option, sorting)
		
		try :
			index = self.model.index(EkdConfig.get('general', 'video_input_path'))
		except Exception, e:
			index = self.model.index(QDir.homePath())
    def loadFiles(self):
        """
		# On sauvegarde la liste des fichiers chargés
		"""
        self.afficheurVideoSource.loadFileLocation(self.idSection)
        self.valeurDebut = float(EkdConfig.get(self.idSection, "valeurDebut"))
        self.valeurFin = float(EkdConfig.get(self.idSection, "valeurFin"))
        self.mettreAJourLabel("debut")
        self.mettreAJourLabel("fin")
	def loadOptions(self):
		"""
		On charge les différentes variables necessaire au widget
		"""
		idCodec = EkdConfig.get(self.idSection,'codec')
		self.codecSortie.setCurrentIndex(int(idCodec))
		resolution = EkdConfig.get(self.idSection,'resolution')
		self.resoSortie.setCurrentIndex(int(resolution))
		frequence = EkdConfig.get(self.idSection,'images_par_seconde')
		self.nbrImage.setValue(int(frequence))
		qualite = EkdConfig.get(self.idSection,'qualite')
		self.qualite.setValue(int(qualite))
	def load(self):
		'''
		Chargement de la configuration de tous les objets
		'''
		self.loadFiles()
		files = EkdConfig.get(self.idSection, 'ordreVideo')
		if debug : 
			#print files
			EkdPrint(u"%s" % str(files))
		self.ordreVideo.addSoundAction(files.split(u":"))
		files = EkdConfig.get(self.idSection, 'ordreAudio')
		if debug : 
			#print files
			EkdPrint(u"%s" % str(files))
		self.ordreAudio.addSoundAction(files.split(u":"))
Exemple #5
0
    def displayLenght(self) : #QT4 OK
      self.totimage=0
      if self.videof.currentText()=="NTSC" :
        self.n=1
        imgpsec=30
        ips=float(30000/1001)
      else :
        self.n=0
        imgpsec=25
        ips=imgpsec
      dicspeed={"0":1,"1":2,"2":4,"3":5,"4":10,"5":20}
      speedtrans=dicspeed[str(EkdConfig.get("videoporamaconfig","speedt"))]
      frametransition = 100 / speedtrans
      k=0
      while k<self.timeline.columnCount() :
        self.totimage += self.timeline.cellWidget(0,k).imagetime(self.n)[1]+self.timeline.cellWidget(0,k).imagetime(self.n)[2]
        k+=1
      self.totimage+=frametransition

      sec=float(self.totimage) / ips
      seconde=str(sec % 60).split(".")
      minute=int(sec / 60)
      heure=int(minute / 60)
      timesnd="%s:%s:%s.%s" % (str(heure).rjust(2,'0'),str(minute).rjust(2,'0'),seconde[0].rjust(2,'0'),seconde[1].ljust(3,'0')[0:3])
      self.duration.setText(timesnd)
Exemple #6
0
    def getFile(self):
        '''
        Invoque la boite de dialogue et retourne le fichier saisi
        '''
        ## Ajout d'une boite de dialogue avertissant du format des fichier de sortis dans le cas de multiples fichier à enregistrer
        show = Qt.Unchecked
        try :
            show = int(EkdConfig.get("general", "show_warning_messages"))
        except Exception, e:
            #print "%s" % e
	    EkdPrint("%s" % e)
            pass
Exemple #7
0
 def add2(self,files) : #Different de videoporama
   try :
     self.lastdir=self.findDir(files[0])
   except :
     None
   try :
     bgf=EkdConfig.get("videoporamaconfig","bgfile")
   except :
     bgf=""
   for file in files :
     k=self.timeline.columnCount()
     if file != u"" :
       self.DisplayThumb(file,k,
         EkdConfig.get("videoporamaconfig","time"),
         bgf,
         int(EkdConfig.get("videoporamaconfig","bgcolor"),16),
         EkdConfig.get("videoporamaconfig","typet"),
         0,
         EkdConfig.get("videoporamaconfig","speedt"))
   if self.timeline.columnCount() != 0 :
     self.serieBut.setEnabled(True)
   self.displayLenght()
	def load(self) :
		self.afficheurImgSource.loadFileLocation(self.idSection)
		self.spin1_ImTrait.setValue(int(EkdConfig.get(self.idSection, 'spin1_ImTrait')))
		self.spin2_ImTrait.setValue(int(EkdConfig.get(self.idSection, 'spin2_ImTrait')))
		self.stacked_redim_avec_ratio.spin.setValue(int(EkdConfig.get(self.idSection, 'stacked_redim_avec_ratio')))	
		self.stacked_redim_sans_ratio.spin.setValue(int(EkdConfig.get(self.idSection, 'stacked_redim_sans_ratio1')))	
		self.stacked_redim_sans_ratio.spin2.setValue(int(EkdConfig.get(self.idSection, 'stacked_redim_sans_ratio2')))	
		self.comboReglage.setCurrentIndex(int(EkdConfig.get(self.idSection, 'type_redim')))
	def ouvrirSource(self, nomEntree=None):
		""" Récupération des chemins vidéo sélectionnée """

		# On n'utilise pas le fonction recupSources du fichier animation_base.py contenu dans
		# le répertoire gui_modules_animation car pour cette fonction uniquement les fichiers
		# AVI (donc extension .avi) sont autorisés
		try:
			repEntree = EkdConfig.get('general', 'video_input_path')
		except:
			repEntree = os.path.expanduser('~')
		####################################################################################

		txt = _(u"Fichiers vidéos")

		if not nomEntree:
			liste=QFileDialog.getOpenFileNames(None, _(u"Ouvrir"), repEntree,
				"%s (*.avi *.mpg *.mpeg *.vob)\n" %txt)

			self.liste = [unicode(i) for i in liste]
		####################################################################################

		chemin=self.liste
		if not chemin: return

		## On a récupérer la vidéo, on défini le nouveau chemin par défaut des vidéos
		EkdConfig.set('general', 'video_input_path', os.path.dirname(chemin[0]))

		self.lstFichiersSource = []

		for fichier in chemin:
			self.lstFichiersSource.append(fichier)

		# Appel de la fonction nouvelleResolution pour application 16/9 ou 4/3
		self.nouvelleResolution()
		#print 'self.idCombo', self.idCombo
		EkdPrint(u'self.idCombo %s' % self.idCombo)

		# Le bouton appliquer devient utilisable
		self.boutApp.setEnabled(True)
		self.boutApp.setToolTip("")

		self.mplayer.setEnabled(True)
		self.mplayer.listeVideos = self.lstFichiersSource
		self.radioSource.setChecked(True)
		self.radioSource.setEnabled(False)
		self.radioConvert.setEnabled(False)

		# Affichage du chemin + nom de fichier dans la ligne d'édition
		self.ligneEditionSource.setText(liste[0])

		self.statusBar.showMessage(_(u"La vidéo résultante ne pourra pas être lue avec tous les logiciels"))
Exemple #10
0
	def load(self) :
		self.selectionAudioFile.loadFileLocation(self.idSection)
		self.selectionFile.reglageExp.loadConfig(self.idSection)
		self.choix1.setChecked(int(EkdConfig.get(self.idSection, 'choix1')))
		self.choix2.setChecked(int(EkdConfig.get(self.idSection, 'choix2')))
		self.choix3.setChecked(int(EkdConfig.get(self.idSection, 'choix3')))
		self.choixm1.setChecked(int(EkdConfig.get(self.idSection, 'choixm1')))
		self.choixm2.setChecked(int(EkdConfig.get(self.idSection, 'choixm2')))
		self.choixm3.setChecked(int(EkdConfig.get(self.idSection, 'choixm3')))
Exemple #11
0
	def ouvrirVideo(self):
		"""Ouverture de la boîte de dialogue de fichiers"""
		txt = u"Fichiers vidéo"
		if self.cheminPourBoutonParcourir:
			chemin = self.cheminPourBoutonParcourir

		else:
			try:
				chemin = EkdConfig.get('general','video_input_path').decode("UTF8")
			except:
				chemin = os.path.expanduser('~')

		liste=QFileDialog.getOpenFileNames(None, u"Ouvrir", chemin, "%s (*.avi *.mpg *.mpeg *.mjpeg *.flv *.mp4 *.ogg *.vob *.mov *.wmv *.3gp *.h264)\n*" %txt)
		if not liste: return
		self.listeVideos = liste
		self.changeRatio(unicode(self.listeVideos[0]))

		chemin = unicode(self.listeVideos[0])
		EkdConfig.set('general','video_input_path',os.path.dirname(chemin).encode("UTF8"))
Exemple #12
0
    def recupSourceAudio(self, nomEntree=None):
        """Récupère le fichier source audio via une boite de dialogue. Utilise et modifie les paramètres de configuration"""

        if self.ligneEditionSource.text().isEmpty(): lignePleine = False
        else:
            lignePleine = True
            fichier = unicode(self.ligneEditionSource.text())
            path = os.path.dirname(fichier)

        if lignePleine and os.path.exists(path):
            repEntree = path
        else:
            try:
                repEntree = EkdConfig.get('general','audio_input_path').decode("UTF8")
            except Exception, e:
                repEntree = '~'
                EkdConfig.set('general','audio_input_path', repEntree.encode("UTF8"))
            if not QFileInfo(repEntree).exists():
                repEntree = '~'
                EkdConfig.set('general','audio_input_path', repEntree.encode("UTF8"))
Exemple #13
0
    def recupSourcesAudio(self, nomEntree=None):
        """Récupère les fichiers sources audio via une boite de dialogue. Utilise et modifie les paramètres de configuration"""

        if not self.lstFichiersSourceAudio: listePleine = False
        else:
            listePleine = True
            fichier = self.lstFichiersSourceAudio[0]
            path = os.path.dirname(fichier)

        if listePleine and os.path.exists(path):
            repEntree = path
        else:
            try:
                repEntree = EkdConfig.get('general','audio_input_path').decode("UTF8")
            except Exception, e:
                repEntree = '~'
                EkdConfig.set('general','audio_input_path', repEntree.encode("UTF8"))
            if not os.path.exists(repEntree):
                repEntree = '~'
                EkdConfig.set('general','audio_input_path', repEntree.encode("UTF8"))
Exemple #14
0
    def __init__(self, verifsformats, parent=None) :
      super(vid_widg, self).__init__(parent)
      self.retranslateUi()
      self.parent=parent
      self.verifsformats = verifsformats
      self.outputfileformat.addItems(self.verifsformats[4])
      z=self.checkfirsttime("o")
      self.home=os.path.expanduser("~")
      self.lastdir=self.home
      self.timeline.horizontalHeader().hide()
      self.timeline.verticalHeader().hide()
      self.timeline.setRowCount(1)
      self.timeline.setRowHeight(0,75)
      self.pfilee=0
      self.saveas=0
      self.index=-1
      self.actionMove_left.setDisabled(True)
      self.actionMove_right.setDisabled(True)
      self.serieBut.setDisabled(True)

      if os.name != 'nt' :
        self.I=EkdConfig.get("videoporamaconfig", "imgmgkdir")
      else :
        self.I=""

     # Chargement des données template
      fo=open(self.templatedir + os.sep +"template_data.idv","r")
      # Import des données template à partir du fichier idv
      self.datat=minidom.parse(fo)
      fo.close()
      self.data=self.datat

      # Create transition list
      self.LstTransi()
      self.typet.addItems(self.lstT)
      self.transiopt.addItem(self.tr("No Option"))
      # Display default values and configs
      self.affichedata(self.templatedir + os.sep + 'template_data.idv')

      sizes=QFontDatabase.standardSizes()
      Ssizes=QStringList()
      for size in sizes :
        Ssizes.append(str(size))
      self.fontSize.insertItems(0,Ssizes)
      self.fontSize.setCurrentIndex(6)
      FD=QFont(self.fontComboBox.currentText(),int(self.fontSize.currentText()))
      self.changeFont(FD)
      bckcol=QPalette()
      bckcol.setColor(QPalette.Base,Qt.black)
      self.fontColor.setPalette(bckcol)

      # Qt SLOT/SIGNAL connection
      self.connect(self.fontColorB,SIGNAL("pressed()"),self.setTextColor)
      self.connect(self.fontComboBox,SIGNAL("currentFontChanged(QFont)"),self.changeFont)
      self.connect(self.bold,SIGNAL("released()"),self.setBold)
      self.connect(self.Italic,SIGNAL("released()"),self.setItalic)
      self.connect(self.Souligne,SIGNAL("released()"),self.setUnderline)
      self.connect(self.textLeft,SIGNAL("pressed()"),self.setTextLeft)
      self.connect(self.textCenter,SIGNAL("pressed()"),self.setTextCenter)
      self.connect(self.textRight,SIGNAL("pressed()"),self.setTextRight)
      self.connect(self.addText,SIGNAL("pressed()"),self.addTextToImage)
      self.connect(self.updateText,SIGNAL("pressed()"),self.updateTextImage)
      self.connect(self.deleteText,SIGNAL("pressed()"),self.deleteTextImage)
      self.connect(self.emptyText,SIGNAL("pressed()"),self.emptyTextf)
      self.connect(self.fontSize,SIGNAL("currentIndexChanged(QString)"),self.changeSizeFont)
      self.connect(self.timeline,SIGNAL("itemSelectionChanged()"),self.selectionListe)
      self.connect(self.textEdit,SIGNAL("currentCharFormatChanged(QTextCharFormat)"),self.updateFont)
      self.connect(self.typet,SIGNAL("currentIndexChanged(int)"),self.chgTrOption)
      self.connect(self.transiopt,SIGNAL("currentIndexChanged(int)"),self.chgopttransi)
      self.connect(self.time,SIGNAL("valueChanged(int)"),self.chtime)
      self.connect(self.actionMove_right,SIGNAL("pressed()"),self.up)
      self.connect(self.actionMove_left,SIGNAL("pressed()"),self.down)
      self.connect(self.speedt,SIGNAL("activated(int)"),self.choixspeedt)
      self.connect(self.bgcolor,SIGNAL("lostFocus()"),self.chbgcolor)
      self.connect(self.bgfile,SIGNAL("lostFocus()"),self.chbgfile)
      self.connect(self.bgcolora,SIGNAL("clicked()"),self.setBgcolor)
      self.connect(self.soundfile,SIGNAL("lostFocus()"),self.chsndfile)
      self.connect(self.bgfilea,SIGNAL("clicked()"),self.setBgfile)
      self.connect(self.soundfilea,SIGNAL("clicked()"),self.sndfilea)
      self.connect(self.startZoomSize,SIGNAL("valueChanged(int)"),self.startZoomSizeA)
      self.connect(self.endZoomSize,SIGNAL("valueChanged(int)"),self.endZoomSizeA)
      self.connect(self.option,SIGNAL("currentChanged(int)"),self.setTabZoom)
      self.connect(self.chkZoom,SIGNAL("stateChanged(int)"),self.chkZoomAction)
      self.connect(self.validZoom,SIGNAL("pressed()"),self.validZoomAction)
      self.connect(self.imgformat,SIGNAL("activated(int)"),self.setImgFormat)
      self.connect(self.videof,SIGNAL("activated(int)"),self.choixvideof)
      self.connect(self.outputfileformat,SIGNAL("activated(int)"),self.choixoutputformat)
      self.connect(self.serieBut,SIGNAL("pressed()"),self.serie)
Exemple #15
0
	def load(self) :
		self.afficheurImgSourceAvecCanalAlpha.loadFileLocation(self.idSection, u'sourcesa')
		self.afficheurImgSourceSansCanalAlpha.loadFileLocation(self.idSection, u'sourcessa')
		self.spin1.setValue(int(EkdConfig.get(self.idSection, u'spin1')))
		self.spin2.setValue(int(EkdConfig.get(self.idSection, u'spin2')))	
Exemple #16
0
 def updateTimer(self):
     interval = float(EkdConfig.get("general", "interval_speed")) * 1000
     if interval > 100:
         self.timer.setInterval(interval)
     else:
         self.timer.setInterval(100)
Exemple #17
0
    def updateNum(self, val):
        self.value = val
        EkdConfig.set(self.section, self.id, self.value)
        #print "Debug:: TIMER %s | value %s | value Ekd config %s | section %s" % (self.id, self.value, EkdConfig.get(self.section, self.id), self.section)
	EkdPrint(u"Debug:: TIMER %s | value %s | value Ekd config %s | section %s" % (self.id, self.value, EkdConfig.get(self.section, self.id), self.section))
Exemple #18
0
    def __init__(self, statusBar, boutParcourir=False, filer=False):
        QWidget.__init__(self)

        self.sortie = []
        # Boite d'alignement verticale
        vbox = QVBoxLayout(self)

        # On ne passe pas tout le parent, mais juste ce dont on a besoin (ici la bar de status)
        # Barre des tâches
        self.statusBar = statusBar

        # -------------------
        # Navigateur de répertoires
        # -------------------

        # arborescence des fichiers et dossiers permettant l'affichage
        self.listViewVisioImg = QListView()

        filtres_option = QDir.Dirs | QDir.Readable | QDir.Executable
        filtres = QStringList()
        filtres << "*"
        sorting = QDir.DirsFirst
        if int(EkdConfig.get("general", "ignore_case")):
            sorting |= QDir.IgnoreCase
        self.model = QDirModel(filtres, filtres_option, sorting)

        try:
            index = self.model.index(EkdConfig.get("general", "image_input_path"))
        except:
            index = self.model.index(QDir.homePath())
        self.listViewVisioImg.setModel(self.model)
        self.listViewVisioImg.setRootIndex(index)
        self.connect(self.listViewVisioImg, SIGNAL("doubleClicked(const QModelIndex &)"), self.naviguer)
        self.connect(self.listViewVisioImg, SIGNAL("clicked(QModelIndex)"), self.updateDir)
        # Ajout du navigateur à la VBox
        if filer:
            vbox.addWidget(self.listViewVisioImg)
            self.listViewVisioImg.setMaximumHeight(100)

            # -------------------
            # Boite de commandes
            # -------------------

            # Création du visionneur
        self.afficheurImg = VisionneurImagePourEKD()

        # -Boite horizontale des boutons de commandes
        hbox2 = QHBoxLayout()

        iconTaille = 32
        flat = 1

        # --Bouton début
        boutDebut = QPushButton()
        boutDebut.setIcon(QIcon("Icones" + os.sep + "player_start.png"))
        boutDebut.setIconSize(QSize(iconTaille, iconTaille))
        boutDebut.setToolTip(_(u"Première image"))
        boutDebut.setFlat(flat)
        hbox2.addWidget(boutDebut)
        self.connect(boutDebut, SIGNAL("clicked()"), self.debut)

        # --Bouton precedent
        boutPrecedent = QPushButton()
        boutPrecedent.setIcon(QIcon("Icones" + os.sep + "player_rew.png"))
        boutPrecedent.setIconSize(QSize(iconTaille, iconTaille))
        boutPrecedent.setToolTip(_(u"Image précédente"))
        boutPrecedent.setFlat(flat)
        hbox2.addWidget(boutPrecedent)
        self.connect(boutPrecedent, SIGNAL("clicked()"), self.precedent)

        # --Bouton de lecture
        boutLecture = QPushButton()
        boutLecture.setIcon(QIcon("Icones" + os.sep + "player_play.png"))
        boutLecture.setIconSize(QSize(iconTaille, iconTaille))
        boutLecture.setToolTip(_(u"Lancer le diaporama"))
        boutLecture.setFlat(flat)
        hbox2.addWidget(boutLecture)
        self.connect(boutLecture, SIGNAL("clicked()"), self.diaporama)

        # --Bouton pause
        boutArret = QPushButton()
        boutArret.setIcon(QIcon("Icones" + os.sep + "player_pause.png"))
        boutArret.setIconSize(QSize(iconTaille, iconTaille))
        boutArret.setToolTip(_(u"Mettre en pause le diaporama"))
        boutArret.setFlat(flat)
        hbox2.addWidget(boutArret)
        self.connect(boutArret, SIGNAL("clicked()"), self.pause)
        ############################################################

        # --Bouton suivant
        boutSuivant = QPushButton()
        boutSuivant.setIcon(QIcon("Icones" + os.sep + "player_fwd.png"))
        boutSuivant.setIconSize(QSize(iconTaille, iconTaille))
        boutSuivant.setToolTip(_(u"Image suivante"))
        boutSuivant.setFlat(flat)
        hbox2.addWidget(boutSuivant)
        self.connect(boutSuivant, SIGNAL("clicked()"), self.suivant)

        # --Bouton fin
        boutFin = QPushButton()
        boutFin.setIcon(QIcon("Icones" + os.sep + "player_end.png"))
        boutFin.setIconSize(QSize(iconTaille, iconTaille))
        boutFin.setToolTip(_(u"Dernière image"))
        boutFin.setFlat(flat)
        hbox2.addWidget(boutFin)
        self.connect(boutFin, SIGNAL("clicked()"), self.fin)

        hbox2.addStretch()

        # --Bouton taille fenetre
        boutTailleFenetre = QPushButton()
        boutTailleFenetre.setIcon(QIcon("Icones" + os.sep + "fenetre.png"))
        boutTailleFenetre.setIconSize(QSize(iconTaille, iconTaille))
        boutTailleFenetre.setToolTip(_(u"Ajuster à la fenêtre"))
        boutTailleFenetre.setFlat(flat)
        hbox2.addWidget(boutTailleFenetre)
        self.connect(boutTailleFenetre, SIGNAL("clicked()"), self.afficheurImg.setTailleFenetre)

        # --Bouton taille reel
        boutTailleReelle = QPushButton()
        boutTailleReelle.setIcon(QIcon("Icones" + os.sep + "taillereelle.png"))
        boutTailleReelle.setIconSize(QSize(iconTaille, iconTaille))
        boutTailleReelle.setToolTip(_(u"Taille réelle"))
        boutTailleReelle.setFlat(flat)
        hbox2.addWidget(boutTailleReelle)
        self.connect(boutTailleReelle, SIGNAL("clicked()"), self.afficheurImg.setTailleReelle)

        # --Bouton zoom avant
        boutZoomAvant = QPushButton()
        boutZoomAvant.setIcon(QIcon("Icones" + os.sep + "zoomplus.png"))
        boutZoomAvant.setIconSize(QSize(iconTaille, iconTaille))
        boutZoomAvant.setToolTip(_(u"Zoom avant"))
        boutZoomAvant.setFlat(flat)
        hbox2.addWidget(boutZoomAvant)
        self.connect(boutZoomAvant, SIGNAL("clicked()"), self.afficheurImg.zoomAvant)

        # --Bouton zoom arrière
        boutZoomArriere = QPushButton()
        boutZoomArriere.setIcon(QIcon("Icones" + os.sep + "zoommoins.png"))
        boutZoomArriere.setIconSize(QSize(iconTaille, iconTaille))
        boutZoomArriere.setToolTip(_(u"Zoom arrière"))
        boutZoomArriere.setFlat(flat)
        hbox2.addWidget(boutZoomArriere)
        self.connect(boutZoomArriere, SIGNAL("clicked()"), self.afficheurImg.zoomArriere)

        # --Bouton zoom arrière
        prop = "interval_speed"
        allprops = EkdConfig.getAllProperties(EkdConfig.getConfigSection("general"))
        self.boutTimer = EkdTimePropertie(prop, EkdConfig.PROPERTIES[prop], allprops[prop], section="general")
        self.boutTimer.widget.setToolTip(_(u"Vitesse de défilement"))
        hbox2.addWidget(self.boutTimer.widget)

        if boutParcourir:
            # --Bouton Configuration du diaporama
            # La variable suivante fait le lien entre le chemin sélectionné de l'arbre
            # et celui qui sera ouvert avec la boite de dialogue du bouton parcourir
            self.cheminImage = None
            boutSelectFich = QPushButton("...")
            boutSelectFich.setToolTip(_(u"Parcourir"))
            hbox2.addWidget(boutSelectFich)
            self.connect(boutSelectFich, SIGNAL("clicked()"), self.ouvrirImages)

            # Apercus
        self.listeApercus = QListWidget()
        self.listeApercus.setGridSize(QSize(85, 64))
        self.listeApercus.setIconSize(QSize(64, 64))
        self.listeApercus.setFlow(QListView.LeftToRight)

        if PYQT_VERSION_STR >= "4.1.0":
            self.listeApercus.setHorizontalScrollMode(QAbstractItemView.ScrollPerItem)
        self.connect(self.listeApercus, SIGNAL("currentRowChanged(int)"), self.changerImage)

        # Ajout du viewer à la VBox
        vbox.addWidget(self.afficheurImg)

        # Ajout de l'apercu à la VBox
        vbox.addWidget(self.listeApercus)

        # Fonction de test et de lecture de l'image gif
        self.isGif = self.afficheurImg.isGif
        self.startPauseGif = self.afficheurImg.startPauseGif

        # Création du QTimer
        self.timer = QTimer()
        self.updateTimer()
        self.connect(self.timer, SIGNAL("timeout()"), self.diapo)

        # Ajout des commandes
        self.listeApercus.setMaximumSize(QSize(2000, 100))
        vbox.addLayout(hbox2)
Exemple #19
0
    def __init__(self, titre, texte="", min_w=320, min_h=250, max_w=500,
                    max_h=600, icone="Icones/messagebox_info.png",
                    checkbox=False, parent=None):
        """Boite de message standard pour ekd.
           Usage :
             1. initialisation en spécifiant la taille, le titre et
                éventuellement le texte de la fenêtre.
                l'icone est également paramétrable
             2. Ajout du text avec la fonction setAideText.
             3. Affichage de la fenêtre en appelant la fonction show().
           Facilité :
             1. Redimensionnement de la fenêtre par appel de la fonction
                setSize(w, h)
             2. Ajout automatique des bars de défilement."""
        super(EkdMessage, self).__init__(parent)
        self.setWindowTitle(titre)
        self.setMaximumHeight(max_h)
        self.setMaximumWidth(max_w)
        self.setMinimumHeight(min_h)
        self.setMinimumWidth(min_w)
        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        sizePolicy.setVerticalStretch(1)
        self.setSizePolicy(sizePolicy)

        self.w = min_w
        self.h = min_h
        self.verticalLayout = QVBoxLayout(self)
        self.hbox1 = QHBoxLayout()
        self.vbox1 = QVBoxLayout()

        # Icone
        self.iconeI = QLabel(self)
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
                    self.iconeI.sizePolicy().hasHeightForWidth())
        self.iconeI.setSizePolicy(sizePolicy)
        self.iconeI.setPixmap(QPixmap(icone))
        self.vbox1.addWidget(self.iconeI)
        spacerItem = QSpacerItem(20, 40,
                                QSizePolicy.Minimum,
                                QSizePolicy.Expanding)
        self.vbox1.addItem(spacerItem)
        self.hbox1.addLayout(self.vbox1)
        ##

        # Definition de la zone de texte
        self.text = QTextEdit(self)

        ## On utilise le même thème que la fenêtre pour la zone de texte
        ## On force les couleur ici, on ne laisse pas le Thème s'en charger
        palette = self.text.palette()
        palette.setBrush(QPalette.Active,
                            QPalette.Base,
                            self.palette().window())
        palette.setBrush(QPalette.Inactive,
                            QPalette.Base,
                            self.palette().window())
        palette.setBrush(QPalette.Disabled,
                            QPalette.Base,
                            self.palette().window())
        palette.setBrush(QPalette.Active,
                            QPalette.Text,
                            self.palette().windowText())
        palette.setBrush(QPalette.Inactive,
                            QPalette.Text,
                            self.palette().windowText())
        palette.setBrush(QPalette.Disabled,
                            QPalette.Text,
                            self.palette().windowText())
        self.text.setPalette(palette)

        self.text.setFrameShape(QFrame.NoFrame)
        self.text.setFrameShadow(QFrame.Plain)
        self.text.setLineWidth(0)
        self.text.setReadOnly(True)
        self.text.setAlignment(Qt.AlignLeft | Qt.AlignTop)
        sizePolicy = QSizePolicy(QSizePolicy.Expanding,QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.text.sizePolicy().hasHeightForWidth())
        self.text.setSizePolicy(sizePolicy)
        self.hbox1.addWidget(self.text)
        ##

        self.verticalLayout.addLayout(self.hbox1)
        self.hbox2 = QHBoxLayout()
        self.ok = QPushButton(self)
        self.ok.setText(_("Ok"))
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.ok.sizePolicy().hasHeightForWidth())
        self.ok.setSizePolicy(sizePolicy)
        self.hbox2.addWidget(self.ok)
        self.verticalLayout.addLayout(self.hbox2)
        self.setText(texte)

        '''
        Checkbox pour savoir si l'utilisateur veut oui ou non revoir
        l'avertissement
        '''
        if checkbox :
            self.checkbox = QCheckBox(_(u"Voir ce message la prochaine fois"),
                                        self)
            self.hbox2.addWidget(self.checkbox)
            try :
                self.checkbox.setCheckState(int(EkdConfig.get("general",
                                                    "show_warning_messages")))
            except Exception, e:
                #print "First time launched"
		EkdPrint(u"First time launched")
            self.connect(self.checkbox, SIGNAL("stateChanged(int)"),
                                                    self.setDontShow)
Exemple #20
0
    def __init__(self, parent, path = None, suffix = '', title = u"Sauver",
                                            multiple = False, mode = None):

        if type(suffix) == tuple or type(suffix) == list :
            sfilter=""
            for s in suffix :
                sfilter += "*"+s+" "
            self.filter=sfilter[:-1]
            # Si on a plusieur suffix, on prend le premier par défaut pour
            # la sauvegarde
            self.suffix = suffix[0]
        else :
            self.suffix = suffix
            self.filter = "*" + self.suffix

        QDialog.__init__(self, parent)

        self.setWindowTitle(title)
        self.multiple = multiple
        self.mode = mode

        if not path:
            if self.mode == "image" :
                path = EkdConfig.get("general", "image_output_path")
            elif self.mode == "video" :
                path = EkdConfig.get("general", "video_output_path")
            elif self.mode == "audio" :
                path = EkdConfig.get("general", "sound_output_path")
            else :
                path = unicode(QDir.homePath())

        # Nom du répertoire courant
        self.location = QLabel("<b>%s</b>" % path)
        # Variable permettant de savoir à tout moment le répertoire courant.
        self.currentDir = path
        self.mkdirButton = QPushButton(u"  Créer un répertoire")
        self.mkdirButton.setIcon(QIcon("Icones" + os.sep + "add_sub_task.png"))
        if int(EkdConfig.get("general", "show_hidden_files")) :
            #print "hidden shown"
	    EkdPrint(u"hidden shown")
            shf = QDir.Hidden
        else : shf = QDir.Readable
        # Liste des fichiers
        self.dirList = QListView()
        sorting = QDir.DirsFirst
        if int(EkdConfig.get("general", "ignore_case")):
            sorting |= QDir.IgnoreCase
        self.sorting = sorting
        self.flags = QDir.Files | QDir.Readable | shf
        self.dirModel = QStandardItemModel()
        self.dirList.setModel(self.dirModel)
        self.updateDir(path)
        self.dirList.setWrapping(True)

        #panneau latéral
        self.dirTree = QTreeView()
        self.dirModelLight = QDirModel(QStringList(""), QDir.AllDirs |
                                    QDir.NoDotAndDotDot | shf, QDir.DirsFirst |
                                    QDir.Name | QDir.IgnoreCase)
        self.dirTree.setModel(self.dirModelLight)
        self.dirTree.setColumnHidden(1,True)
        self.dirTree.setColumnHidden(2,True)
        self.dirTree.setColumnHidden(3,True)
        self.dirTree.setMaximumWidth(200)
        self.dirTree.setMinimumWidth(150)
        self.dirTree.setCurrentIndex(self.dirModelLight.index(path))
        self.dirTree.resizeColumnToContents(0)
        self.connect(self.dirTree, SIGNAL("pressed(QModelIndex)"),
                                                    self.updateLatDir)
        self.connect(self.dirTree, SIGNAL("expanded(QModelIndex)"),
                                                        self.treeMAJ)
        self.connect(self.dirTree, SIGNAL("collapsed(QModelIndex)"),
                                                        self.treeMAJ)

        # Nom du fichier
        self.fileField = QLineEdit()

        # Nom du filtre
        self.filterField = QComboBox()
        self.filterField.addItems(QStringList(self.filter))

        # Bouton de sauvegarde et d'annulation
        self.saveButton = QPushButton(_(u"  Enregistrer"))
        self.saveButton.setIcon(QIcon("Icones" + os.sep + "action.png"))
        self.cancelButton = QPushButton(_(u"  Annuler"))
        self.cancelButton.setIcon(QIcon("Icones" + os.sep + "annuler.png"))

        # Organisation des différents objets de la boite de dialogue
        self.layout = QHBoxLayout(self)
        self.layout.addWidget(self.dirTree)
        self.filelinelayout = QGridLayout()
        self.filelinelayout.addWidget(self.location, 0, 0, 1, 0)
        self.filelinelayout.addWidget(self.mkdirButton, 0, 2)
        self.filelinelayout.addWidget(self.dirList, 1, 0, 1, 0)
        self.filelinelayout.addWidget(QLabel(_("Nom de fichier : ")), 2, 0)
        self.filelinelayout.addWidget(self.fileField, 2, 1)
        self.filelinelayout.addWidget(self.saveButton, 2, 2)
        self.filelinelayout.addWidget(QLabel(_("Filtre extension : ")), 3, 0)
        self.filelinelayout.addWidget(self.filterField, 3, 1)
        self.filelinelayout.addWidget(self.cancelButton, 3, 2)

        self.layout.addLayout(self.filelinelayout)

        # Connexion des différents objets
        self.connect(self.dirList, SIGNAL("clicked(QModelIndex)"),
                                                        self.updateFile)
        self.connect(self.saveButton, SIGNAL("clicked()"), self.accept)
        self.connect(self.cancelButton, SIGNAL("clicked()"), self.reject)
        self.connect(self.mkdirButton, SIGNAL("clicked()"), self.mkdir)
        self.connect(self.dirList,
                    SIGNAL("indexesMoved (const QModelIndexList&)"),
                    self.updateFile)
        self.connect(self.fileField, SIGNAL("textChanged (const QString&)"),
                    self.activate)
        self.connect(self.fileField, SIGNAL("returnPressed()"), self.accept)

        # Taille minimum
        self.setMinimumSize(700, 480)

        # Par défaut, on désactive
        self.deactivate()

        # Completion des fichiers
        self.completion = QCompleter(self.dirModel, self.dirList)
Exemple #21
0
	def loadConfig(self, idsection="") :
		if idsection == "" :
			return 
		self.comboFormat.setCurrentIndex(int(EkdConfig.get(idsection, 'format')))
		self.expert.setChecked(int(EkdConfig.get(idsection, 'expert')))
		self.qualite.setCurrentIndex(int(EkdConfig.get(idsection, 'qualite')))
 	def loadOptions(self):
		'''
		# On charge les options
		'''
		idCodec = EkdConfig.get(self.idSection,'codec')
		self.chargerItemCombo(idCodec)
	def load(self) :
		self.afficheurImgSource.loadFileLocation(self.idSection)
		self.comboReglage.setCurrentIndex(int(EkdConfig.get(self.idSection, u'choixReglage')))
		self.spin1.setValue(int(EkdConfig.get(self.idSection, u'spin1')))
		self.spin2.setValue(int(EkdConfig.get(self.idSection, u'spin2')))	
		self.spin3.setValue(int(EkdConfig.get(self.idSection, u'spin3')))
	def __init__(self, choixCodec, min_range_1, max_range_1, min_range_2, max_range_2, txt1 = _(u"Réglage de la compression : "), txt5 = _(u"Réglage du bitrate vidéo : ")):
	
		'''
		Codecs_AvecReglages  : Crée un widget avec : 1 slider, 1 bare de progession et un texte explicatif
		          choixCodec : Nom du codec qui sera utilisé lors de l'enregistrement dans EkdConfig
			  min_range_1  : Valeur minimale du slider et de la barre
			  max_range_1  : Valeur maximale du slider et de la barre
			  min_range_2  : Valeur minimale du slider et de la barre
			  max_range_2  : Valeur maximale du slider et de la barre
			  txt1         : Texte intitulé du réglage (compression vidéo)
			  txt5         : Texte intitulé du réglage (bitrate vidéo)
		'''
		
		QWidget.__init__(self)

		self.choixCodec = choixCodec

		self.idSection = "animation_encodage_general"

		# label titre
		self.txt1 = txt1
		self.txt5 = txt5
		
		self.min_range_2 = min_range_2
		self.max_range_2 = max_range_2
		
		#txt1=_(u"Réglage de la compression : ")
		self.label_1=QLabel("<center><u>%s</u></center>" % txt1)

		# boite de spin pour la compression vidéo
		self.spinCompression=QSpinBox()		# self car on va récupérer la variable depuis le moteur
		self.spinCompression.setRange(min_range_1, max_range_1)
		
		self.label_2=QLabel("<center><u>%s</u></center>" % txt5)
		
		txt6 = _(u'Dimension de la vidéo :')
		self.label_3 = QLabel("<center><u>%s</u></center>" % txt6)
		
		self.label_4 = QLabel("<center><u>%s</u></center>" % txt6)
		self.label_5 = QLabel("<center><u>%s</u></center>" % txt6)
		
		# Boîte de spin pour le bitrate vidéo
		self.spinBitrateVideo=QSpinBox()
		self.spinBitrateVideo.setRange(min_range_2, max_range_2)

		# Curseur associé à spinCompression
		self.curseur_1 = QSlider(Qt.Horizontal)
		self.curseur_1.setRange(min_range_1, max_range_1)
		
		self.connect(self.spinCompression,SIGNAL("valueChanged(int)"),self.sauverSpin_1)
		self.connect(self.curseur_1, SIGNAL("sliderMoved(int)"), self.curseurBouge_1)
		
		# Curseur associé à spinBitrateVideo
		self.curseur_2 = QSlider(Qt.Horizontal)
		self.curseur_2.setRange(min_range_2, max_range_2)
		
		self.connect(self.spinBitrateVideo,SIGNAL("valueChanged(int)"),self.sauverSpin_2)
		self.connect(self.curseur_2, SIGNAL("sliderMoved(int)"), self.curseurBouge_2)

		# Widgets pour la sélection de la résolution 
		# en sortie pour le 3GP
		self.resoSortie3gp = QComboBox()
		liste_reso_3gp = [(u'128x96', '128x96'), (u'176x144', '176x144'), (u'352x288', '352x288'),  (u'704x576', '704x576')]
		for i in liste_reso_3gp: self.resoSortie3gp.addItem(i[0],QVariant(i[1]))
		self.connect(self.resoSortie3gp, SIGNAL("activated(int)"), self.changerReglagesResol3gp)
		
		# Widgets pour la sélection de la résolution 
		# en sortie pour l'AMV
		self.resoSortieAMV = QComboBox()
		liste_reso_AMV = [(u'128x90', '128x90'), (u'128x128', '128x128'), (u'160x120', '160x120'), (u'208x176', '208x176')]
		for i in liste_reso_AMV: self.resoSortieAMV.addItem(i[0],QVariant(i[1]))
		self.connect(self.resoSortieAMV, SIGNAL("activated(int)"), self.changerReglagesResolAMV)
		
		# Widgets pour la sélection de la résolution en sortie pour les codecs: 
		# codecmotionjpeg, codecmpeg2, codech264mpeg4, codech264mpeg4_ext_h264, 
		# codecdivx4, codecmpeg1, macromediaflashvideo, codecwmv2
		self.resoSortieGeneral = QComboBox()
		liste_reso_General = [(_(u"Pas de changement (vidéo avec la même taille que l'original)"), u'idem'), (_(u'HD 1080p (16/9): 1920x1080'), u'-vf scale=1920:1080 -aspect 16:9'), (_(u'HD 720p (16/9): 1280x720'), u'-vf scale=1280:720 -aspect 16:9'), (_(u'HD 1080p divisé par deux (16/9): 960x540'), u'-vf scale=960:540 -aspect 16:9'), (_(u'HD 480 (16/9): 852x480'), u'-vf scale=852:480 -aspect 16:9'), (_(u'PAL/SECAM (16/9): 1024x576'), u'-vf scale=1024:576 -aspect 16:9'), (_(u'PAL/SECAM Computer Video (4/3): 768x576'), u'-vf scale=768:576 -aspect 4:3'), (_(u'PAL/SECAM (rapport 1.25): 720x576'), u'-vf scale=720:576'), (_(u'PAL/SECAM (4/3): 384x288'), u'-vf scale=384:288 -aspect 4:3'), (_(u'PAL/SECAM Qualité VCD (rapport 1.22): 352x288'), u'-vf scale=352:288'), (_(u'PAL/SECAM (4/3): 320x240'), u'-vf scale=320:240 -aspect 4:3'),  (_(u'NTSC (rapport 1.5): 720x480'), u'-vf scale=720:480'), (_(u'NTSC Computer Video (4/3): 640x480'), u'-vf scale=640:480 -aspect 4:3'), (_(u'NTSC Computer Video (4/3): 512x384'), u'-vf scale=512:384 -aspect 4:3'), (_(u'NTSC SVCD (1/1): 480x480'), u'-vf scale=480:480'), (_(u'NTSC Qualité VCD (rapport 1.46): 352x240'), u'-vf scale=352:240'), (_(u'Affichage WHUXGA (rapport 1.6): 7680x4800'), u'-vf scale=7680:4800'), (_(u'Affichage WHSXGA (rapport 1.56): 6400x4096'), u'-vf scale=6400:4096'), (_(u'Affichage HSXGA (rapport 1.25): 5120x4096'), u'-vf scale=5120:4096'), (_(u'Affichage WQUXGA (rapport 1.6): 3840x2400'), u'-vf scale=3840:2400'), (_(u'Affichage WQSXGA (rapport 1.56): 3200x2048'), u'-vf scale=3200:2048'), (_(u'Affichage QSXGA (rapport 1.25): 2560x2048'), u'-vf scale=2560:2048'), (_(u'Affichage WOXGA (rapport 1.6): 2560x1600'), u'-vf scale=2560:1600'), (_(u'Affichage QXGA (4/3): 2048x1536'), u'-vf scale=2048:1536 -aspect 4:3'), (_(u'Affichage WUXGA (rapport 1.6): 1920x1200'), u'-vf scale=1920:1200'), (_(u'Affichage WSXGA (rapport 1.56): 1600x1024'), u'-vf scale=1600:1024'), (_(u'Affichage WXGA (16/9): 1366x768'), u'-vf scale=1366:768 -aspect 16:9'), (_(u'Affichage SXGA (rapport 1.25): 1280x1024'), u'-vf scale=1280:1024'), (_(u'Affichage UXGA (4/3): 1600x1200'), u'-vf scale=1600:1200 -aspect 4:3'), (_(u'Affichage XGA (4/3): 1024x768'), u'-vf scale=1024:768 -aspect 4:3'), (_(u'Affichage SVGA (4/3): 800x600'), u'-vf scale=800:600 -aspect 4:3'), (_(u'Affichage VEGA (rapport 1.83): 640x350'), u'-vf scale=640:350'), (_(u'Affichage VGA (4/3): 640x480'), u'-vf scale=640:480 -aspect 4:3'), (_(u'Affichage QQVGA (4/3): 160x120'), u'-vf scale=160:120 -aspect 4:3'), (_(u'Smartphone (16/10): 800x480'), u'-vf scale=800:480 -aspect 16:10')]
		for i in liste_reso_General: self.resoSortieGeneral.addItem(i[0],QVariant(i[1]))
		self.connect(self.resoSortieGeneral, SIGNAL("activated(int)"), self.changerReglagesResolGeneral)
		
		try:
			debug( "%s" % EkdConfig.get(self.idSection,self.choixCodec))
			self.spinCompression.setValue(int(EkdConfig.get(self.idSection,self.choixCodec)))
		except:
			debug("Pas de parametre ou mauvais parametre de configuration pour:\n\
			DivX4, Codec Motion JPEG, Codec MPEG1, Codec MPEG2 ou Codec WMV2")
			#debug( "Pas de paramètre ou mauvais paramètre de configuration pour:\n\
			#DivX4, Codec Motion JPEG, Codec MPEG1, Codec MPEG2 ou Codec WMV2")

		# Rangement des widgets
		vbox = QVBoxLayout(self)
		grid=QGridLayout()
		# Label pour la compression vidéo
		grid.addWidget(self.label_1,1,2)
		# Slider de la qualité de la compression
		grid.addWidget(self.spinCompression,2,1)
		# Curseur associé à spinCompression
		grid.addWidget(self.curseur_1,2,2)
		# Label pour le bitrate vidéo
		grid.addWidget(self.label_2,3,2)
		# Slider du bitrate vidéo
		grid.addWidget(self.spinBitrateVideo,4,1)
		# Curseur associé à spinBitrateVideo
		grid.addWidget(self.curseur_2,4,2)
		grid.addWidget(self.label_3,5,2)
		grid.addWidget(self.resoSortie3gp,6,2)
		grid.addWidget(self.label_4,7,2)
		grid.addWidget(self.resoSortieAMV,8,2)
		grid.addWidget(self.label_5,9,2)
		grid.addWidget(self.resoSortieGeneral,10,2)
		vbox.addStretch()
		vbox.addLayout(grid)
		vbox.addStretch()

		# On récupère la valeur du bitrate à partir de la configuration
		try:
			bitrate = EkdConfig.get('animation_encodage_general_bitrate_video',self.choixCodec)
			self.spinBitrateVideo.setValue(int(bitrate))
		except IndexError:
			pass
		# On cache certains widgets suivant les codecs choisis dans 
		# la liste ... et on montre ceux qui doivent être montrés
		if self.choixCodec in ['codech264mpeg4', 'codech264mpeg4_ext_h264']:
			self.label_1.hide()
			self.spinCompression.hide()
			self.curseur_1.hide()
			self.label_3.hide()
			self.resoSortie3gp.hide()
			self.label_4.hide()
			self.resoSortieAMV.hide()
		elif self.choixCodec in ['codecoggtheora', 'codec_vob_ffmpeg']:
			self.label_2.hide()
			self.spinBitrateVideo.hide()
			self.curseur_2.hide()
			self.label_3.hide()
			self.resoSortie3gp.hide()
			self.label_4.hide()
			self.resoSortieAMV.hide()
			self.label_5.hide()
			self.resoSortieGeneral.hide()
		elif self.choixCodec in ['codecdivx4', 'codecmotionjpeg', 'codecmpeg1', 'codecmpeg2', 'codecwmv2', 'macromediaflashvideo']:
			self.label_3.hide()
			self.resoSortie3gp.hide()
			self.label_4.hide()
			self.resoSortieAMV.hide()
		elif self.choixCodec in ['avirawsanscompression', 'codec_hfyu_ffmpeg']:
			self.label_1.hide()
			self.spinCompression.hide()
			self.curseur_1.hide()
			self.label_2.hide()
			self.spinBitrateVideo.hide()
			self.curseur_2.hide()
			self.label_3.hide()
			self.resoSortie3gp.hide()
			self.label_4.hide()
			self.resoSortieAMV.hide()
			self.label_5.show()
			self.resoSortieGeneral.show()
		elif self.choixCodec in ['codecxvid']:
			self.label_1.hide()
			self.spinCompression.hide()
			self.curseur_1.hide()
			self.label_2.show()
			self.spinBitrateVideo.show()
			self.curseur_2.show()
			self.label_3.hide()
			self.resoSortie3gp.hide()
			self.label_4.hide()
			self.resoSortieAMV.hide()
			self.label_5.show()
			self.resoSortieGeneral.show()
		elif self.choixCodec in ['codec_3GP_ffmpeg']:
			self.label_1.hide()
			self.spinCompression.hide()
			self.curseur_1.hide()
			self.label_2.hide()
			self.spinBitrateVideo.hide()
			self.curseur_2.hide()
			self.label_4.hide()
			self.resoSortieAMV.hide()
			self.label_3.show()
			self.resoSortie3gp.show()
			self.label_5.hide()
			self.resoSortieGeneral.hide()
		elif self.choixCodec in ['codec_AMV_ffmpeg']:
			self.label_1.hide()
			self.spinCompression.hide()
			self.curseur_1.hide()
			self.label_2.hide()
			self.spinBitrateVideo.hide()
			self.curseur_2.hide()
			self.label_3.hide()
			self.resoSortie3gp.hide()
			self.label_4.show()
			self.resoSortieAMV.show()
			self.label_5.hide()
			self.resoSortieGeneral.hide()
		elif self.choixCodec in ['codec_mov_ffmpeg']:
			self.label_1.show()
			self.spinCompression.show()
			self.curseur_1.show()
			self.label_2.hide()
			self.spinBitrateVideo.hide()
			self.curseur_2.hide()
			self.label_3.hide()
			self.resoSortie3gp.hide()
			self.label_4.hide()
			self.resoSortieAMV.hide()
	def load(self) :
		self.selectionAudioFile.loadFileLocation(self.idSection)
		self.selectionFile.choixFormatAudio.reglageExp.loadConfig(self.idSection)
		files = eval(EkdConfig.get(self.idSection, 'ordre'))
		#print "[Debug] Chargement des fichiers |",files,"| de la section :",idsection
		self.selectionFile.setListSource(files)
Exemple #26
0
	def load(self) :
		self.afficheurImgSource.loadFileLocation(self.idSection)
		self.spin1.setValue(int(EkdConfig.get(self.idSection, 'spin1')))
		self.spin2.setValue(int(EkdConfig.get(self.idSection, 'spin2')))
		self.spin3.setValue(int(EkdConfig.get(self.idSection, 'spin3')))
		self.comboClassement.setCurrentIndex(int(EkdConfig.get(self.idSection, 'comboClassement')))
	def __init__(self, statusBar):

		# On joue avec l'héritage de Base
		vbox=QVBoxLayout()

		# Identifiant de la classe
		self.idSection = "animation_conversion_video_16_9_4_3"
		super(Animation_ConvertirAnimEn_16_9_Ou_4_3, self).__init__('vbox', titre=_(u"Conversion 16/9 - 4/3"))
		self.printSection()

		# Liste de fichiers initiaux (contenu dans le fichier de configuration)
		self.lstFichiersSource = []
		self.lstFichiersSourceProv = [] # idem mais provisoire (sert à récupérer les chemins dans l'ordre de sélection)

		self.statusBar = statusBar
		# -------------------------------------------------------------------
		# Boîte de groupe : "Fichier vidéo source"
		# -------------------------------------------------------------------
		self.afficheurVideoSource=SelectWidget(extensions = ["*.avi", "*.mpg", "*.mpeg", "*.vob"], mode="texte", video = True)
		###################################################################################################
		# Onglets
		self.indexVideoSource = self.add(self.afficheurVideoSource, _(u'Video(s) source'))
		self.connect(self.afficheurVideoSource,SIGNAL("fileSelected"),self.getFile)
		self.connect(self.afficheurVideoSource, SIGNAL("pictureChanged(int)"), self.getFile)
		#--------------------------------------------------------------------

		groupReglage=QGroupBox()
		self.layoutReglage=QVBoxLayout(groupReglage)

		## ---------------------------------------------------------------------
		# Variables pour la fonction tampon
		## ---------------------------------------------------------------------
		self.typeEntree = "video" # Défini le type de fichier source.
		self.typeSortie = "video" # Défini le type de fichier de sortie.
		self.sourceEntrees = self.afficheurVideoSource # Fait le lien avec le sélecteur de fichier source.


		#=== Widget qui seront inclus dans la boite de réglage ===#
		# boite de combo
		self.combo=QComboBox() # le self sert à afficher des informations sur les items à partir de la fonction
		listeCombo=[	(_(u'16/9 ème --> rapport 1.77') ,'16_9'),\
				(_(u'16/10 ème --> rapport 1.60') ,'16_10'),\
				(_(u'4/3 --> rapport 1.33') ,'4_3'),\
				(_(u'5/3 --> rapport 1.66') ,'5_3'),\
				(_(u'Panoramique 1,85:1 --> rapport 1.85') ,'1_85'),\
				(_(u'Cinemascope Panavision 2,35:1 --> rapport 2.35') ,'2_35'),\
				(_(u'CinemaScope optique 2,39:1 --> rapport 2.39') ,'2_39'),\
				(_(u'CinemaScope magnétique 2,55:1 --> rapport 2.55') ,'2_55'),]
		##############################################################################################
		# Insertion des codecs de compression dans la combo box
		for i in listeCombo:
                	self.combo.addItem(i[0],QVariant(i[1]))

		self.connect(self.combo, SIGNAL("activated(int)"), self.nouvelleResolution)

		self.layoutReglage.addWidget(self.combo, 0, Qt.AlignHCenter)

		# Chargement du paramètre de configuration
		try:
			typ = EkdConfig.get(self.idSection,'type')
			indice = 0 # indice de la ligne de self.listeCombo correspondant au type d'ordre
			for i in listeCombo:
				if i[1]!=typ:
					indice += 1
				else:
					break
			self.combo.setCurrentIndex(indice)
		except:
			self.combo.setCurrentIndex(0)

		self.nouvelleResolution()
		self.add(groupReglage, _(u"Réglages"))
		self.addPreview()
		self.addLog()
Exemple #28
0
  def __init__(self,dom,win,lstfmt,wide=0,parent=None) :
    super(process, self).__init__(parent)
    self.win=win
    self.listformat = lstfmt
    self.wide=wide
    if wide == 1 :
      self.aspect="3"
      self.wimage="16:9"
    else :
      self.aspect="2"
      self.wimage="4:3"
    self.img=[]
    self.err=0 # define if there's an error in initialisation phase
    self.msgerror=""
    self.sont=0
    try:
      self.t=EkdConfig.get("videoporamaconfig","speedt")
    except:
      self.t="3"
    try:
      self.n=dom.getElementsByTagName('videof')[0].childNodes[0].nodeValue
      if self.n=="0" : #PAL
        self.VIDEO_TYPE_LETTER="p"
        self.VIDEO_FORMAT="SIZE_720x576"
        self.IMGSEC="25:1"
        self.widthpict=720
        self.heightpict=576
        self.imgpsec=25
      elif self.n=="1" : #NTSC
        self.VIDEO_TYPE_LETTER="n"
        self.VIDEO_FORMAT="SIZE_720x480"
        self.IMGSEC="30000:1001"
        self.widthpict=720
        self.heightpict=480
        self.imgpsec=30
      elif self.n=="2" : #SECAM
        self.VIDEO_TYPE_LETTER="s"
        self.VIDEO_FORMAT="SIZE_720x576"
        self.IMGSEC="25:1"
        self.widthpict=720
        self.heightpict=576
        self.imgpsec=25
      elif self.n=="3" : #HDReady
        self.VIDEO_TYPE_LETTER="p"
        self.IMGSEC="25:1"
        self.widthpict=1280
        self.heightpict=720
        self.imgpsec=25
      elif self.n=="4" : #Full HD
        self.VIDEO_TYPE_LETTER="p"
        self.IMGSEC="25:1"
        self.widthpict=1920
        self.heightpict=1080
        self.imgpsec=25
      elif self.n=="5" : #Web flv
        self.VIDEO_TYPE_LETTER="p"
        self.IMGSEC="25:1"
        self.widthpict=384
        self.heightpict=288
        self.imgpsec=25
      elif self.n=="6" : #moyen xvid
        self.VIDEO_TYPE_LETTER="p"
        self.IMGSEC="25:1"
        self.widthpict=640
        if self.wide :
          self.heightpict=480
        else :
          self.heightpict=480
        self.imgpsec=25
    except:
      self.VIDEO_TYPE_LETTER="p"
      self.VIDEO_FORMAT="SIZE_720x576"
      self.widthpict=720
      self.heightpict=576
      self.imgpsec=25

    # Definition of total number of frame to process
    self.dicspeed={"0":1,"1":2,"2":4,"3":5,"4":10,"5":20}
    self.speedtrans=self.dicspeed[self.t]
    self.frametransition = 100 / self.speedtrans

    self.totimage=0
    # Images files
    if self.win.timeline.columnCount() == 0 :
      self.msgerror=self.msgerror+self.tr("There aren't picture to process \n")
      self.err=1
    else :
      k=0
      while k<self.win.timeline.columnCount() :
        self.img.append(self.win.timeline.cellWidget(0,k))
        self.totimage += self.win.timeline.cellWidget(0,k).imagetime(int(self.n))[1]+self.win.timeline.cellWidget(0,k).imagetime(int(self.n))[2]
        k+=1
      self.totimage+=self.frametransition
    # configurations elements
    # tmp directory
    self.T=self.win.T
    #ffmpeg directory
    if os.name != 'nt' :
      self.I=EkdConfig.get("videoporamaconfig","imgmgkdir")
    else :
      self.I=""
    #mjpegtools directory
    if os.name != 'nt' :
      self.MJ=EkdConfig.get("videoporamaconfig","mjpegtoolsdir")
    else:
      self.MJ=""
    # sox directory
    if os.name != 'nt' :
      self.S=EkdConfig.get("videoporamaconfig","soxdir")
    else:
      self.S=""
    try:
      self.w=dom.getElementsByTagName('sndfile')[0].childNodes[0].nodeValue
      if self.w=="" :
        self.w=os.getcwd()+os.sep+u"videoporama/template/nullsound.wav"
        self.sont=1
    except:
      self.w=os.getcwd()+os.sep+u"videoporama/template/nullsound.wav"
      self.sont=1
    try:
      self.f=dom.getElementsByTagName('outputf')[0].childNodes[0].nodeValue
    except:
      None
    try:
      self.mpgf=dom.getElementsByTagName('mpegformat')[0].childNodes[0].nodeValue
      self.formatmpg(self.mpgf)
    except:
      None
    try:
      self.o=dom.getElementsByTagName('outputfile')[0].childNodes[0].nodeValue
      if self.o=="" :
        self.msgerror=self.msgerror+self.tr("There isn't output file define \n")
        self.err=1
    except:
      self.msgerror=self.msgerror+self.tr("There isn't output file define \n")
      self.err=1
      None
    self.lumask={}
    z=0
    b=os.listdir(os.getcwd()+os.sep+u"videoporama/luma/")
    for c in b :
      # Ajouté le 23/11/2009 pour corriger le problème des .svn
      if not c.startswith(".") :
        self.lumask[z]=os.getcwd()+os.sep+u"videoporama/luma/"+c
        z+=1

    if self.err :
      self.error(self.msgerror)