def add_reference(self, person, rect): """ Add a reference to the media object to the specified person. """ mediaref = MediaRef() mediaref.ref = self.get_current_handle() mediaref.set_rectangle(rect) person.add_media_reference(mediaref) self.commit_person(person) return mediaref
def __avatar_gen(self, media_handles, people, value): """ Add the image(s) chosen in the menu options to the people. """ counter = 0 name_txt = _("Avatar Generator") if value == 0: # Single image mode with DbTxn(name_txt, self.db, batch=True) as self.trans: self.db.disable_signals() num_people = len(people) self.progress.set_pass(_('Add avatar images...'), num_people) for person_handle in people: # people = list of people handles person = self.__db.get_person_from_handle(person_handle) if person.get_media_list() == []: mediaref = MediaRef() mediaref.ref = media_handles[0] person.add_media_reference(mediaref) self.db.commit_person(person, self.trans) counter += 1 self.progress.step() self.db.enable_signals() self.db.request_rebuild() elif value == 1: # male/female/unknown with DbTxn(name_txt, self.db, batch=True) as self.trans: self.db.disable_signals() num_people = len(people[0]) + len(people[1]) + len(people[2]) self.progress.set_pass(_('Add avatar images...'), num_people) # people = contains 3 lists here # each containing people handels of unknown, males or females for person_handle in people[0]: # unknown people handles person = self.__db.get_person_from_handle(person_handle) if person.get_media_list() == []: mediaref = MediaRef() mediaref.ref = media_handles[0] person.add_media_reference(mediaref) self.db.commit_person(person, self.trans) counter += 1 self.progress.step() for person_handle in people[1]: # male people handles person = self.__db.get_person_from_handle(person_handle) if person.get_media_list() == []: mediaref = MediaRef() mediaref.ref = media_handles[1] person.add_media_reference(mediaref) self.db.commit_person(person, self.trans) counter += 1 self.progress.step() for person_handle in people[2]: # female people handles person = self.__db.get_person_from_handle(person_handle) if person.get_media_list() == []: mediaref = MediaRef() mediaref.ref = media_handles[2] person.add_media_reference(mediaref) self.db.commit_person(person, self.trans) counter += 1 self.progress.step() self.db.enable_signals() self.db.request_rebuild() if counter > 0: info_text = _("{} avatar images were sucessfully added.") info_text2 = info_text.format(counter) OkDialog(_("INFO"), info_text2, parent=self.window) else: txt1 = _("There was no avatar image to add. ") txt2 = _("All persons already had one.") OkDialog(_("INFO"), (txt1 + txt2), parent=self.window)