def ensureOwner(self, ownerDialog): """ Demande un nom de propriétaire si celui-ci n'est pas encore défini pour cette clé USB. Enregistre au passage le nom du propriétaire dans les instances du disque et de sa partiton vfat @param ownerDialog si vrai : fait dialogue interactif @return un nom de propriétaire """ if self.parent and not self.mp: # partiton non montée return ud = self.getFat() assert ud.parent # ud désigne une partition vfat if not db.knowsId(ud.stickid, ud.uuid, ud.tattoo()): text = self.randomOwner(6) if ownerDialog: prompt = QApplication.translate( "Dialog", "La cle {id}<br>n'est pas identifiee, donnez le nom du proprietaire", None ).format(id=ud.stickid) title = QApplication.translate("Dialog", "Entrer un nom", None) text, ok = QInputDialog.getText(None, title, prompt) db.writeStudent(ud.stickid, ud.uuid, ud.tattoo(), text) o = db.readStudent(ud.stickid, ud.uuid, ud.tattoo()) self.owner = o ud.owner = o return o
def ownerByDb(self): """ renvoie un nom de propriétaire dans tous les cas. """ s = db.readStudent(self.stickid, self.uuid, self.tattoo()) if s != None: return s else: return QApplication.translate("Dialog", "inconnu", None)
def diskFromOwner(self,student): """ trouve le disque qui correspond à un propriétaire, ou alors renvoie le premier disque inconnu. @param student le propriétaire du disque @return le disque correspondant à l'étudiant """ defaultDisk=None for d in ownedUsbDisk.Available(access="firstFat"): s=db.readStudent(d.stickid, d.uuid, d.tattoo()) if s==student : return d elif s==None and defaultDisk==None : # premier disque inconnu defaultDisk=d return defaultDisk
def namingADrive(self): """ Gère un dialogue pour renommer un baladeur désigné par self.recentConnect """ if self.availableNames: if self.recentConnect not in qApp.available.targets: return disk=qApp.available.targets[self.recentConnect] hint=db.readStudent(disk.serial, disk.uuid, ownedUsbDisk.tattooInDir(disk.mp)) if hint != None: oldName=hint else: oldName="" d=nameAdrive.nameAdriveDialog(self, oldName=oldName, nameList=self.namesDialog.itemStrings(), driveIdent=(stickId, uuid, tattoo)) d.show() result=d.exec_() return