* DisplayState.py: recent file support
* EditPerson.py: Window management * EditSource.py: Window management * EventEdit.py: Window management * ListBox.py: Window management * Sources.py: Window management * UrlEdit.py: Window management * ViewManager.py: Window management svn: r5629
This commit is contained in:
		| @@ -340,6 +340,59 @@ class GrampsWindowManager: | ||||
|         self.action_group.add_actions(action_data) | ||||
|         self.enable() | ||||
|  | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # Recent Docs Menu | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
|  | ||||
| _rct_top = '<ui><menubar name="MenuBar"><menu action="FileMenu"><menu action="OpenRecent">' | ||||
| _rct_btm = '</menu></menu></menubar></ui>' | ||||
|  | ||||
| import RecentFiles | ||||
| import os | ||||
| try: | ||||
|     from gnomevfs import get_mime_type | ||||
| except: | ||||
|     from gnome.vfs import get_mime_type | ||||
|  | ||||
| class RecentDocsMenu: | ||||
|     def __init__(self,uimanager): | ||||
|         self.action_group = gtk.ActionGroup('RecentFiles') | ||||
|         self.active = DISABLED | ||||
|         self.uimanager = uimanager | ||||
|  | ||||
|     def build(self): | ||||
|         f = StringIO() | ||||
|         f.write(_rct_top) | ||||
|         gramps_rf = RecentFiles.GrampsRecentFiles() | ||||
|  | ||||
|         count = 0 | ||||
|          | ||||
|         if self.active != DISABLED: | ||||
|             self.uimanager.remove_ui(self.active) | ||||
|             self.uimanager.remove_action_group(self.action_group) | ||||
|             self.active = DISABLED | ||||
|              | ||||
|         actions = [] | ||||
|         for item in gramps_rf.gramps_recent_files: | ||||
|             try: | ||||
|                 filename = os.path.basename(item.get_path()).replace('_','__') | ||||
|                 filetype = get_mime_type(item.get_path()) | ||||
|                 action_id = "RecentMenu%d" % count | ||||
|                 f.write('<menuitem action="%s"/>' % action_id) | ||||
|                 actions.append((action_id,None,filename,None,None,None)) | ||||
|             except RuntimeError: | ||||
|                 pass    # ignore no longer existing files | ||||
|              | ||||
|             count +=1 | ||||
|         f.write(_rct_btm) | ||||
|         self.action_group.add_actions(actions) | ||||
|         self.uimanager.insert_action_group(self.action_group,1) | ||||
|         self.action = self.uimanager.add_ui_from_string(f.getvalue()) | ||||
|         f.close() | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # Gramps Managed Window class | ||||
|   | ||||
		Reference in New Issue
	
	Block a user