コード例 #1
0
 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
コード例 #2
0
 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
コード例 #3
0
    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)