* src/plugins/WriteFtree.py: Bring to new API.
svn: r6595
This commit is contained in:
		@@ -1,4 +1,5 @@
 | 
			
		||||
2006-05-09  Alex Roitman  <shura@gramps-project.org>
 | 
			
		||||
	* src/plugins/WriteFtree.py: Bring to new API.
 | 
			
		||||
	* src/Filters/_FilterMenu.py (build_filter_menu): Return the menu.
 | 
			
		||||
	* src/plugins/WriteGeneWeb.py: Bring to new API.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -63,9 +63,9 @@ from PluginUtils import register_export
 | 
			
		||||
# writeData
 | 
			
		||||
#
 | 
			
		||||
#-------------------------------------------------------------------------
 | 
			
		||||
def writeData(database,filename,person,option_box):
 | 
			
		||||
def writeData(database,filename,person,option_box,callback=None):
 | 
			
		||||
    ret = 0
 | 
			
		||||
    writer = FtreeWriter(database,person,0,filename,option_box)
 | 
			
		||||
    writer = FtreeWriter(database,person,0,filename,option_box,callback)
 | 
			
		||||
    ret = writer.export_data()
 | 
			
		||||
    return ret
 | 
			
		||||
    
 | 
			
		||||
@@ -131,12 +131,18 @@ class FtreeWriterOptionBox:
 | 
			
		||||
#-------------------------------------------------------------------------
 | 
			
		||||
class FtreeWriter:
 | 
			
		||||
 | 
			
		||||
    def __init__(self,database,person,cl=0,filename="",option_box=None):
 | 
			
		||||
    def __init__(self,database,person,cl=0,filename="",
 | 
			
		||||
                 option_box=None,callback = None):
 | 
			
		||||
        self.db = database
 | 
			
		||||
        self.person = person
 | 
			
		||||
        self.option_box = option_box
 | 
			
		||||
        self.cl = cl
 | 
			
		||||
        self.filename = filename
 | 
			
		||||
        self.callback = callback
 | 
			
		||||
        if '__call__' in dir(self.callback): # callback is really callable
 | 
			
		||||
            self.update = self.update_real
 | 
			
		||||
        else:
 | 
			
		||||
            self.update = self.update_empty
 | 
			
		||||
 | 
			
		||||
        self.plist = {}
 | 
			
		||||
 | 
			
		||||
@@ -158,6 +164,16 @@ class FtreeWriter:
 | 
			
		||||
                    ErrorDialog(m1,m2)
 | 
			
		||||
                    return
 | 
			
		||||
 | 
			
		||||
    def update_empty(self):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    def update_real(self):
 | 
			
		||||
        self.count += 1
 | 
			
		||||
        newval = int(100*self.count/self.total)
 | 
			
		||||
        if newval != self.oldval:
 | 
			
		||||
            self.callback(newval)
 | 
			
		||||
            self.oldval = newval
 | 
			
		||||
 | 
			
		||||
    def cl_setup(self):
 | 
			
		||||
        self.restrict = True
 | 
			
		||||
        for p in self.db.get_person_handles(sort_handles=False):
 | 
			
		||||
@@ -167,7 +183,12 @@ class FtreeWriter:
 | 
			
		||||
        name_map = {}
 | 
			
		||||
        id_map = {}
 | 
			
		||||
        id_name = {}
 | 
			
		||||
        self.count = 0
 | 
			
		||||
        self.oldval = 0
 | 
			
		||||
        self.total = 2*len(self.plist)
 | 
			
		||||
 | 
			
		||||
        for key in self.plist:
 | 
			
		||||
            self.update()
 | 
			
		||||
            pn = self.db.get_person_from_handle(key).get_primary_name()
 | 
			
		||||
            sn = pn.get_surname()
 | 
			
		||||
            items = pn.get_first_name().split()
 | 
			
		||||
@@ -194,6 +215,7 @@ class FtreeWriter:
 | 
			
		||||
        f = open(self.filename,"w")
 | 
			
		||||
 | 
			
		||||
        for key in self.plist:
 | 
			
		||||
            self.update()
 | 
			
		||||
            p = self.db.get_person_from_handle(key)
 | 
			
		||||
            name = id_name[key]
 | 
			
		||||
            father = ""
 | 
			
		||||
@@ -212,15 +234,15 @@ class FtreeWriter:
 | 
			
		||||
            #
 | 
			
		||||
            # Calculate Date
 | 
			
		||||
            #
 | 
			
		||||
            birth_handle = p.get_birth_handle()
 | 
			
		||||
            death_handle = p.get_death_handle()
 | 
			
		||||
            if birth_handle:
 | 
			
		||||
                birth_event = self.db.get_event_from_handle(birth_handle)
 | 
			
		||||
            birth_ref = p.get_birth_ref()
 | 
			
		||||
            death_ref = p.get_death_ref()
 | 
			
		||||
            if birth_ref:
 | 
			
		||||
                birth_event = self.db.get_event_from_handle(birth_ref.ref)
 | 
			
		||||
                birth = birth_event.get_date_object()
 | 
			
		||||
            else:
 | 
			
		||||
                birth = None
 | 
			
		||||
            if death_handle:
 | 
			
		||||
                death_event = self.db.get_event_from_handle(death_handle)
 | 
			
		||||
            if death_ref:
 | 
			
		||||
                death_event = self.db.get_event_from_handle(death_ref.ref)
 | 
			
		||||
                death = death_event.get_date_object()
 | 
			
		||||
            else:
 | 
			
		||||
                death = None
 | 
			
		||||
 
 | 
			
		||||
@@ -261,6 +261,7 @@ class GeneWebWriter:
 | 
			
		||||
            return 0
 | 
			
		||||
        
 | 
			
		||||
        self.count = 0
 | 
			
		||||
        self.oldval = 0
 | 
			
		||||
        self.total = len(self.flist)
 | 
			
		||||
        for key in self.flist:
 | 
			
		||||
            self.write_family(key)
 | 
			
		||||
@@ -611,7 +612,7 @@ class GeneWebWriter:
 | 
			
		||||
#-------------------------------------------------------------------------
 | 
			
		||||
def exportData(database,filename,person,option_box,callback=None):
 | 
			
		||||
    ret = 0
 | 
			
		||||
    gw = GeneWebWriter(database,person,0,filename,option_box)
 | 
			
		||||
    gw = GeneWebWriter(database,person,0,filename,option_box,callback)
 | 
			
		||||
    ret = gw.export_data()
 | 
			
		||||
    return ret
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user