* src/* 143 files
    * test/try_tree_model.py
    * windows/nsis/gcheck.py
    imports cleanup
svn: r10055
		
	
		
			
				
	
	
		
			140 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import time
 | |
| import gtk
 | |
| import gobject
 | |
| 
 | |
| import sys, os
 | |
| sys.path.append("../src")
 | |
| 
 | |
| #from Models import PersonModel,PersonFilterModel
 | |
| import GenericFilter
 | |
| 
 | |
| ## class ProxyPerson(object):
 | |
| ##     """
 | |
| ##     This class provides a wrapper around the real object that
 | |
| ##     is stored in the model. 
 | |
| ##     """
 | |
|     
 | |
| ##     def __init__(self,id,db):
 | |
| ##         self._id = id
 | |
| ##         self._db = db
 | |
| ##         self._obj = None
 | |
| 
 | |
| ##     def row_ref(self):
 | |
| ##         """This should return the value that is used
 | |
| ##         as the row reference in the model."""
 | |
| ##         return self._id
 | |
| 
 | |
| ##     def __getattr__(self, name):
 | |
| ##         """
 | |
| ##         Delegate to the real object.
 | |
| ##         """
 | |
| 
 | |
| ##         # Fetch the object from the database if we
 | |
| ##         # don't already have it
 | |
| ##         if self._obj is None:
 | |
| ##             self._obj = self._get_object()
 | |
| 
 | |
| ##         # Call the method that we were asked
 | |
| ##         # for on the real object.
 | |
| ##         return getattr(self._obj, name)
 | |
| 
 | |
| ##     def _get_object(self):
 | |
| ##         """
 | |
| ##         Fetch the real object from the database.
 | |
| ##         """
 | |
| ##         print "getting object = ", self._id
 | |
| ##         return self._db.get_person_from_handle(self._id)
 | |
| 
 | |
|     
 | |
| class PersonWindow(gtk.Window):
 | |
| 
 | |
|     def __init__(self,db):
 | |
|         gtk.Window.__init__(self)
 | |
| 
 | |
|         self.set_default_size(700,300)
 | |
| 
 | |
|         self._db = db
 | |
| 
 | |
|         fil = GenericFilter.GenericFilter()
 | |
|         fil.add_rule(GenericFilter.SearchName(["Taylor"]))
 | |
| 
 | |
|         person_tree = PersonTreeView(db,fil)        
 | |
|         person_tree.show()
 | |
| 
 | |
|         scrollwindow = gtk.ScrolledWindow()
 | |
|         scrollwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
 | |
|         scrollwindow.set_shadow_type(gtk.SHADOW_ETCHED_IN)
 | |
|         scrollwindow.show()        
 | |
|         scrollwindow.add(person_tree)        
 | |
|         self.add(scrollwindow)
 | |
| 
 | |
|         person_tree.clear_filter()
 | |
|         
 | |
|         #person_tree.set_filter(fil)
 | |
|         #person_model = PersonFilterModel(db,fil)
 | |
| 	#person_tree.set_model(person_model)
 | |
| 
 | |
|         self._person_tree = person_tree
 | |
|         #self._person_model = person_model
 | |
| 
 | |
| 	#gobject.idle_add(self.load_tree().next)
 | |
|         
 | |
|         self._expose_count = 0
 | |
| 
 | |
| ##     def load_tree(self):
 | |
| ##         self._person_tree.freeze_child_notify()
 | |
| 
 | |
| ##         for i in self._db.get_person_handles():
 | |
| ##             self._person_model.add(ProxyPerson(i,self._db))
 | |
| ##             yield True
 | |
|             
 | |
| ##         self._person_tree.thaw_child_notify()
 | |
|         
 | |
| ##         self._person_tree.set_model(self._person_model)
 | |
| 
 | |
| ##         yield False
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     import sys, os
 | |
|     sys.path.append("..")
 | |
|     
 | |
|     import GrampsDb
 | |
|     import const
 | |
|     import logging
 | |
|     
 | |
|     form = logging.Formatter(fmt="%(relativeCreated)d: %(levelname)s: %(filename)s: line %(lineno)d: %(message)s")
 | |
|     stderrh = logging.StreamHandler(sys.stderr)
 | |
|     stderrh.setFormatter(form)
 | |
|     stderrh.setLevel(logging.DEBUG)
 | |
| 
 | |
|     # everything.
 | |
|     l = logging.getLogger()
 | |
|     l.setLevel(logging.DEBUG)
 | |
|     l.addHandler(stderrh)
 | |
| 
 | |
| 
 | |
|     def cb(d):
 | |
|         pass
 | |
| 
 | |
|     def main():
 | |
| 	print "start", sys.argv[1]
 | |
|         
 | |
|         db = GrampsDb.gramps_db_factory(const.app_gramps)()
 | |
|         db.load(os.path.realpath(sys.argv[1]),
 | |
|                 cb, # callback
 | |
|                 "w")
 | |
| 
 | |
| 	print "window"
 | |
|         w = PersonWindow(db)
 | |
|         w.show()
 | |
| 
 | |
|         w.connect("destroy", gtk.main_quit)
 | |
| 
 | |
| 	print "main"
 | |
|         gtk.main()
 | |
| 
 | |
|     #import profile
 | |
|     #profile.run('main()','profile.out')
 | |
| 
 | |
|     main()
 |