def delFiles(self): """ Lance l'action de supprimer des fichiers ou des répertoires dans les clés USB """ titre1=QApplication.translate("Dialog","Choix de fichiers à supprimer",None) titre2=QApplication.translate("Dialog","Choix de fichiers à supprimer (jokers autorisés)",None) d=chooseInSticks.chooseDialog(self, titre1, titre2) ok = d.exec_() if ok: pathList=d.pathList() buttons=QMessageBox.Ok|QMessageBox.Cancel defaultButton=QMessageBox.Cancel reply=QMessageBox.warning( None, QApplication.translate("Dialog","Vous allez effacer plusieurs baladeurs",None), QApplication.translate("Dialog","Etes-vous certain de vouloir effacer : "+"\n".join(pathList),None), buttons, defaultButton) if reply == QMessageBox.Ok: cmd="usbThread.threadDeleteInUSB(p,{paths},subdir='Travail', logfile='{log}', parent=self)".format(paths=pathList,log=logFileName) for p in qApp.available: if not p.selected: continue # pas les médias désélectionnés registerCmd(cmd,p) t=eval(cmd) t.setDaemon(True) t.start() self.oldThreads.add(t) return True else: msgBox=QMessageBox.warning( None, QApplication.translate("Dialog","Aucun fichier sélectionné",None), QApplication.translate("Dialog","Veuillez choisir au moins un fichier",None)) return True
def copyFrom(self): """ Lance l'action de copier depuis les clés USB """ titre1=QApplication.translate("Dialog","Choix de fichiers à copier",None) titre2=QApplication.translate("Dialog", "Choix de fichiers à copier depuis les baladeurs", None) okPrompt=QApplication.translate("Dialog", "Choix de la destination ...", None) d=chooseInSticks.chooseDialog(self, title1=titre1, title2=titre2, okPrompt=okPrompt) d.exec_() if not d.ok : msgBox=QMessageBox.warning(None, QApplication.translate("Dialog","Aucun fichier sélectionné",None), QApplication.translate("Dialog","Veuillez choisir au moins un fichier",None)) return True # bon, alors c'est OK pour le choix des fichiers à envoyer pathList=d.pathList() mp=d.selectedDiskMountPoint() initialPath=os.path.expanduser("~") destDir = QFileDialog.getExistingDirectory( None, QApplication.translate("Dialog","Choisir un répertoire de destination",None), initialPath) if destDir and len(destDir)>0 : if self.mv: cmd="""usbThread.threadMoveFromUSB( p,{paths},subdir=self.workdir, rootPath='{mp}', dest='{dest}', logfile='{log}', parent=self)""".format(paths=pathList, mp=mp, dest=destDir, log=logFileName) else: cmd="""usbThread.threadCopyFromUSB( p,{paths},subdir=self.workdir, rootPath='{mp}', dest='{dest}', logfile='{log}', parent=self)""".format(paths=pathList, mp=mp, dest=destDir, log=logFileName) for p in qApp.available: if not p.selected: continue # pas les médias désélectionnés # on devrait vérifier s'il y a des données à copier # et s'il n'y en a pas, ajouter des lignes au journal # mais on va laisser faire ça dans le thread # inconvénient : ça crée quelquefois des sous-répertoires # vides inutiles dans le répertoire de destination. registerCmd(cmd,p) t=eval(cmd) t.setDaemon(True) t.start() self.oldThreads.add(t) # on ouvre un gestionnaire de fichiers pour voir le résultat buttons=QMessageBox.Ok|QMessageBox.Cancel defaultButton=QMessageBox.Cancel if QMessageBox.question( None, QApplication.translate("Dialog","Voir les copies",None), QApplication.translate("Dialog","Voulez-vous voir les fichiers copiés ?",None), buttons, defaultButton)==QMessageBox.Ok: subprocess.call("xdg-open '%s'" %destDir,shell=True) return True else: msgBox=QMessageBox.warning( None, QApplication.translate("Dialog","Destination manquante",None), QApplication.translate("Dialog","Veuillez choisir une destination pour la copie des fichiers",None)) return True