* src/DataViews/_EventView.py: disable items with readonly db (bug #771)

* src/DataViews/_PersonView.py: disable items with readonly db (bug #771)
	* src/DataViews/_RelationView.py: disable items with readonly db (bug #771)
	* src/ViewManager.py: disable items with readonly db (bug #771)
	* src/PageView.py: disable items with readonly db (bug #771)


svn: r7816
This commit is contained in:
Don Allingham 2006-12-19 02:29:47 +00:00
parent e3899f9cc9
commit 3c73746665
6 changed files with 86 additions and 46 deletions

View File

@ -1,5 +1,9 @@
2006-12-18 Don Allingham <don@gramps-project.org>
* src/DataViews/_EventView.py: disable items with readonly db (bug #771)
* src/DataViews/_PersonView.py: disable items with readonly db (bug #771)
* src/DataViews/_RelationView.py: disable items with readonly db (bug #771)
* src/ViewManager.py: disable items with readonly db (bug #771)
* src/PageView.py: disable items with readonly db (bug #771)
* src/plugins/Desbrowser.py (DesBrowse.button_press_event): fix typo
(from bmcage)

View File

@ -136,9 +136,6 @@ class EventView(PageView.ListView):
def define_actions(self):
PageView.ListView.define_actions(self)
self.add_action('ColumnEdit', gtk.STOCK_PROPERTIES,
_('_Column Editor'), callback=self.column_editor)
self.add_action('FilterEdit', None, _('Event Filter Editor'),
callback=self.filter_editor,)

View File

@ -75,8 +75,6 @@ column_names = [
_('Spouse'),
_('Last Change'),
]
class PersonView(PageView.PersonNavView):
@ -99,7 +97,9 @@ class PersonView(PageView.PersonNavView):
self.filter_toggle)
def change_page(self):
pass
PageView.PersonNavView.change_page(self)
self.edit_action.set_visible(True)
self.edit_action.set_sensitive(not self.dbstate.db.readonly)
def set_active(self):
PageView.PersonNavView.set_active(self)
@ -127,28 +127,39 @@ class PersonView(PageView.PersonNavView):
"""
PageView.PersonNavView.define_actions(self)
self.all_action = gtk.ActionGroup(self.title + "/PersonAll")
self.edit_action = gtk.ActionGroup(self.title + "/PersonEdit")
self.all_action.add_actions([
('OpenAllNodes', None, _("Expand all nodes"), None, None, self.open_all_nodes),
('Edit', gtk.STOCK_EDIT, _("_Edit"), None, _("Edit the selected person"), self.edit),
('CloseAllNodes', None, _("Collapse all nodes"), None, None, self.close_all_nodes),
('Jump', None, _("_Jump"),"<control>j", None, self.jumpto),
])
self.edit_action.add_actions([
('Add', gtk.STOCK_ADD, _("_Add"), None, _("Add a new person"), self.add),
('Remove', gtk.STOCK_REMOVE, _("_Remove"), None, _("Remove the selected person"), self.remove),
('ColumnEdit', gtk.STOCK_PROPERTIES, _('_Column Editor'), None, None, self.column_editor),
('CmpMerge', None, _('_Compare and merge'), None, None, self.cmp_merge),
('FastMerge', None, _('_Fast merge'), None, None, self.fast_merge),
])
self.add_action_group(self.edit_action)
self.add_action_group(self.all_action)
def enable_action_group(self, obj):
PageView.PersonNavView.enable_action_group(self, obj)
self.all_action.set_visible(True)
self.edit_action.set_visible(False)
self.edit_action.set_sensitive(not self.dbstate.db.readonly)
self.add_action('Add', gtk.STOCK_ADD, _("_Add"),
tip=_("Add a new person"), callback=self.add)
self.add_action('Edit', gtk.STOCK_EDIT, _("_Edit"),
tip=_("Edit the selected person"), callback=self.edit)
self.add_action('Remove', gtk.STOCK_REMOVE, _("_Remove"),
tip=_("Remove the selected person"),
callback=self.remove)
self.add_action('OpenAllNodes', None, _("Expand all nodes"),
callback=self.open_all_nodes)
self.add_action('CloseAllNodes', None, _("Collapse all nodes"),
callback=self.close_all_nodes)
self.add_action('Jump', None, _("_Jump"),
accel="<control>j",callback=self.jumpto)
def disable_action_group(self, obj):
PageView.PersonNavView.disable_action_group(self, obj)
self.add_action('ColumnEdit', gtk.STOCK_PROPERTIES,
_('_Column Editor'), callback=self.column_editor,)
self.add_action('CmpMerge', None, _('_Compare and merge'),
callback=self.cmp_merge)
self.add_action('FastMerge', None, _('_Fast merge'),
callback=self.fast_merge)
self.all_action.set_visible(False)
self.edit_action.set_visible(False)
def cmp_merge(self, obj):
mlist = self.get_selected_objects()

View File

@ -324,6 +324,10 @@ class RelationshipView(PageView.PersonNavView):
self.order_action.set_sensitive(self.reorder_sensitive)
def change_page(self):
self.family_action.set_sensitive(not self.dbstate.db.readonly)
self.order_action.set_sensitive(not self.dbstate.db.readonly)
def siblings_toggle(self, obj):
self.show_siblings = obj.get_active()
self.change_person(self.dbstate.active.handle)

View File

@ -293,13 +293,17 @@ class PersonNavView(BookMarkView):
self.add_action('HomePerson', gtk.STOCK_HOME, _("_Home"),
tip=_("Go to the default person"), callback=self.home)
self.add_action('SetActive', gtk.STOCK_HOME, _("Set _Home Person"),
callback=self.set_default_person)
self.add_action('FilterEdit', None, _('Person Filter Editor'),
callback=self.filter_editor,)
self.add_action('FilterEdit', None, _('Person Filter Editor'),
callback=self.filter_editor)
self.other_action = gtk.ActionGroup(self.title + '/PersonOther')
self.other_action.add_actions([
('SetActive', gtk.STOCK_HOME, _("Set _Home Person"), None, None, self.set_default_person),
])
self.add_action_group(self.back_action)
self.add_action_group(self.fwd_action)
self.add_action_group(self.other_action)
def disable_action_group(self):
"""
@ -431,6 +435,7 @@ class PersonNavView(BookMarkView):
hobj = self.uistate.phistory
self.fwd_action.set_sensitive(not hobj.at_end())
self.back_action.set_sensitive(not hobj.at_front())
self.other_action.set_sensitive(not self.dbstate.db.readonly)
#----------------------------------------------------------------
#
@ -745,16 +750,24 @@ class ListView(BookMarkView):
BookMarkView.define_actions(self)
self.add_action('Add', gtk.STOCK_ADD, _("_Add"), tip=self.ADD_MSG,
callback=self.add)
self.edit_action = gtk.ActionGroup(self.title + '/ChangeOrder')
self.edit_action.add_actions([
('Add', gtk.STOCK_ADD, _("_Add"), None, self.ADD_MSG, self.add),
('Remove', gtk.STOCK_REMOVE, _("_Remove"), None, self.DEL_MSG, self.remove),
('ColumnEdit', gtk.STOCK_PROPERTIES, _('_Column Editor'), None, None, self.column_editor),
])
self.add_action_group(self.edit_action)
self.add_action('Edit', gtk.STOCK_EDIT,_("_Edit"), tip=self.EDIT_MSG,
callback=self.edit)
self.add_action('Remove',gtk.STOCK_REMOVE,_("_Remove"),
tip=self.DEL_MSG, callback=self.remove)
self.add_toggle_action('Filter', None, _('_Filter'),
callback=self.filter_toggle)
def column_editor(self,obj):
pass
def button_press(self,obj,event):
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
self.edit(obj)
@ -776,4 +789,6 @@ class ListView(BookMarkView):
def double_click(self,obj,event):
return False
def change_page(self):
self.edit_action.set_sensitive(not self.dbstate.db.readonly)

View File

@ -341,27 +341,17 @@ class ViewManager:
self.tip_of_day_activate),
]
self._action_action_list = [
self._readonly_action_list = [
('SaveAs', gtk.STOCK_SAVE_AS, _('_Save As'),"<control><shift>s",
None, self.save_as_activate),
('Export', 'gramps-export', _('_Export'), "<control>e", None,
self.export_data),
('Abandon', gtk.STOCK_REVERT_TO_SAVED,
_('_Abandon changes and quit'), None, None, self.abort),
('ScratchPad', gtk.STOCK_PASTE, _('_ScratchPad'), "",
_("Open the ScratchPad dialog"), self.scratchpad),
('Import', gtk.STOCK_CONVERT, _('_Import'), "<control>i", None,
self.import_data),
('Reports', 'gramps-reports', _('_Reports'), None,
_("Open the reports dialog"), self.reports_clicked),
('Tools', 'gramps-tools', _('_Tools'), None,
_("Open the tools dialog"), self.tools_clicked),
('EditMenu', None, _('_Edit')),
('ColumnEdit', gtk.STOCK_PROPERTIES, _('_Column Editor')),
('GoMenu', None, _('_Go')),
('BookMenu', None, _('_Bookmarks')),
('ReportsMenu', None, _('_Reports')),
('ToolsMenu', None, _('_Tools')),
('WindowsMenu', None, _('_Windows')),
('F2', None, 'F2', "F2", None, self.keypress),
('F3', None, 'F3', "F3", None, self.keypress),
@ -375,6 +365,19 @@ class ViewManager:
('F12', None, 'F12', "F12", None, self.keypress),
]
self._action_action_list = [
('ScratchPad', gtk.STOCK_PASTE, _('_ScratchPad'), "",
_("Open the ScratchPad dialog"), self.scratchpad),
('Import', gtk.STOCK_CONVERT, _('_Import'), "<control>i", None,
self.import_data),
('Tools', 'gramps-tools', _('_Tools'), None,
_("Open the tools dialog"), self.tools_clicked),
('EditMenu', None, _('_Edit')),
('ColumnEdit', gtk.STOCK_PROPERTIES, _('_Column Editor')),
('BookMenu', None, _('_Bookmarks')),
('ToolsMenu', None, _('_Tools')),
]
self._file_toggle_action_list = [
('Sidebar', None, _('_Sidebar'), None, None, self.sidebar_toggle,
self.show_sidebar ),
@ -417,6 +420,7 @@ class ViewManager:
self.create_pages()
if not self.file_loaded:
self.actiongroup.set_visible(False)
self.readonlygroup.set_visible(False)
self.fileactions.set_sensitive(False)
self.build_tools_menu()
self.build_report_menu()
@ -525,6 +529,7 @@ class ViewManager:
self.window.add_accel_group(accelgroup)
self.actiongroup = gtk.ActionGroup('MainWindow')
self.readonlygroup = gtk.ActionGroup('AllMainWindow')
self.fileactions = gtk.ActionGroup('FileWindow')
self.undoactions = gtk.ActionGroup('Undo')
self.redoactions = gtk.ActionGroup('Redo')
@ -532,6 +537,7 @@ class ViewManager:
self.fileactions.add_actions(self._file_action_list)
self.actiongroup.add_actions(self._action_action_list)
self.readonlygroup.add_actions(self._readonly_action_list)
self.fileactions.add_toggle_actions(self._file_toggle_action_list)
self.undoactions.add_actions(self._undo_action_list)
@ -546,6 +552,7 @@ class ViewManager:
self.uimanager.insert_action_group(self.fileactions, 1)
self.uimanager.insert_action_group(self.actiongroup, 1)
self.uimanager.insert_action_group(self.readonlygroup, 1)
self.uimanager.insert_action_group(self.undoactions, 1)
self.uimanager.insert_action_group(self.redoactions, 1)
self.uimanager.insert_action_group(self.undohistoryactions, 1)
@ -863,9 +870,11 @@ class ViewManager:
if self.state.db.readonly:
msg = "%s (%s) - GRAMPS" % (name, _('Read Only'))
self.uistate.window.set_title(msg)
self.actiongroup.set_sensitive(False)
else:
msg = "%s - GRAMPS" % name
self.uistate.window.set_title(msg)
self.actiongroup.set_sensitive(True)
res = self.state.db.get_researcher()
owner = GrampsCfg.get_researcher()