svn: r7368
This commit is contained in:
parent
d8110a2f34
commit
6cda31bfe8
@ -277,6 +277,8 @@ class EmbeddedList(ButtonTab):
|
||||
"""
|
||||
(model, node) = self.selection.get_selected()
|
||||
if node:
|
||||
obj = self.model.get_value(node, self._HANDLE_COL)
|
||||
print "Select", obj, obj.ref, obj.get_reference_handle()
|
||||
return model.get_value(node, self._HANDLE_COL)
|
||||
return None
|
||||
|
||||
|
@ -83,17 +83,6 @@ class EventEmbedList(EmbeddedList):
|
||||
def column_order(self):
|
||||
return ((1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (1, 5))
|
||||
|
||||
def handle_extra_type(self, objtype, obj):
|
||||
try:
|
||||
ref = RelLib.EventRef()
|
||||
event = self.dbstate.db.get_event_from_handle(obj)
|
||||
ref.set_role(self.default_role())
|
||||
self.get_ref_editor()(
|
||||
self.dbstate, self.uistate, self.track,
|
||||
event, ref, self.event_added)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
||||
def default_type(self):
|
||||
return RelLib.EventType(RelLib.EventType.MARRIAGE)
|
||||
|
||||
@ -108,7 +97,7 @@ class EventEmbedList(EmbeddedList):
|
||||
event.set_type(self.default_type())
|
||||
self.get_ref_editor()(
|
||||
self.dbstate, self.uistate, self.track,
|
||||
event, ref, self.event_added)
|
||||
event, ref, self.object_added)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
||||
@ -124,7 +113,7 @@ class EventEmbedList(EmbeddedList):
|
||||
ref.set_role(self.default_role())
|
||||
self.get_ref_editor()(
|
||||
self.dbstate, self.uistate, self.track,
|
||||
event, ref, self.event_added)
|
||||
event, ref, self.object_added)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
||||
@ -135,7 +124,7 @@ class EventEmbedList(EmbeddedList):
|
||||
try:
|
||||
self.get_ref_editor()(
|
||||
self.dbstate, self.uistate, self.track,
|
||||
event, ref, self.event_updated)
|
||||
event, ref, self.object_edited)
|
||||
except Errors.WindowActiveError:
|
||||
from QuestionDialog import WarningDialog
|
||||
WarningDialog(
|
||||
@ -147,13 +136,13 @@ class EventEmbedList(EmbeddedList):
|
||||
"reference, you need to close the event.")
|
||||
)
|
||||
|
||||
def event_updated(self, ref, event):
|
||||
def object_added(self, reference, primary):
|
||||
reference.ref = primary.handle
|
||||
self.get_data().append(reference)
|
||||
self.changed = True
|
||||
self.rebuild()
|
||||
|
||||
def event_added(self, ref, event):
|
||||
ref.ref = event.handle
|
||||
self.get_data().append(ref)
|
||||
def object_edited(self, ref, event):
|
||||
self.changed = True
|
||||
self.rebuild()
|
||||
|
||||
@ -170,4 +159,16 @@ class EventEmbedList(EmbeddedList):
|
||||
event = self.dbstate.db.get_event_from_handle(obj.ref)
|
||||
self.get_ref_editor()(
|
||||
self.dbstate, self.uistate, self.track,
|
||||
event, obj, self.event_updated)
|
||||
event, obj, self.object_edited)
|
||||
|
||||
def handle_extra_type(self, objtype, obj):
|
||||
try:
|
||||
ref = RelLib.EventRef()
|
||||
event = self.dbstate.db.get_event_from_handle(obj)
|
||||
ref.set_role(self.default_role())
|
||||
self.get_ref_editor()(
|
||||
self.dbstate, self.uistate, self.track,
|
||||
event, ref, self.object_added)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
||||
|
@ -144,7 +144,17 @@ class RepoEmbedList(EmbeddedList):
|
||||
self.dbstate, self.uistate, self.track, repo,
|
||||
ref, self.edit_callback)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
from QuestionDialog import WarningDialog
|
||||
WarningDialog(
|
||||
_("Cannot edit this reference"),
|
||||
_("This repository reference cannot be edited at this "
|
||||
"time. Either the associated repository is already "
|
||||
"being edited or another repository reference that is "
|
||||
"associated with the same repository is being edited."
|
||||
"\n\nTo edit this repository reference, you need to "
|
||||
"close the repository.")
|
||||
)
|
||||
|
||||
|
||||
def edit_callback(self, name):
|
||||
self.changed = True
|
||||
|
@ -34,6 +34,7 @@ from gettext import gettext as _
|
||||
#-------------------------------------------------------------------------
|
||||
import RelLib
|
||||
import Errors
|
||||
import Utils
|
||||
from DdTargets import DdTargets
|
||||
from _SourceRefModel import SourceRefModel
|
||||
from _EmbeddedList import EmbeddedList
|
||||
@ -72,25 +73,24 @@ class SourceEmbedList(EmbeddedList):
|
||||
return 'gramps-source'
|
||||
|
||||
def get_data(self):
|
||||
return self.obj
|
||||
return self.obj.get_source_references()
|
||||
|
||||
def column_order(self):
|
||||
return ((1, 0), (1, 1), (1, 2), (1, 3))
|
||||
|
||||
def add_button_clicked(self, obj):
|
||||
sref = RelLib.SourceRef()
|
||||
src = RelLib.Source()
|
||||
try:
|
||||
from Editors import EditSourceRef
|
||||
|
||||
sref = RelLib.SourceRef()
|
||||
src = RelLib.Source()
|
||||
EditSourceRef(
|
||||
self.dbstate,
|
||||
self.uistate,
|
||||
self.track,
|
||||
src,
|
||||
sref,
|
||||
self.add_callback)
|
||||
|
||||
self.object_added)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
||||
@ -99,7 +99,6 @@ class SourceEmbedList(EmbeddedList):
|
||||
SelectSource = selector_factory('Source')
|
||||
|
||||
sel = SelectSource(self.dbstate,self.uistate,self.track)
|
||||
|
||||
src = sel.run()
|
||||
if src:
|
||||
try:
|
||||
@ -111,30 +110,39 @@ class SourceEmbedList(EmbeddedList):
|
||||
self.track,
|
||||
src,
|
||||
ref,
|
||||
self.add_callback)
|
||||
self.object_added)
|
||||
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
||||
def add_callback(self, reference, primary):
|
||||
reference.ref = primary.handle
|
||||
self.get_data().append(reference)
|
||||
self.changed = True
|
||||
self.rebuild()
|
||||
|
||||
def edit_button_clicked(self, obj):
|
||||
sref = self.get_selected()
|
||||
if sref:
|
||||
src = self.dbstate.db.get_source_from_handle(sref.ref)
|
||||
|
||||
try:
|
||||
from Editors import EditSourceRef
|
||||
|
||||
EditSourceRef(self.dbstate, self.uistate, self.track,
|
||||
src, sref, self.edit_callback)
|
||||
src, sref, self.object_edited)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
from QuestionDialog import WarningDialog
|
||||
WarningDialog(
|
||||
_("Cannot edit this reference"),
|
||||
_("This source reference cannot be edited at this time. "
|
||||
"Either the associated source is already being edited "
|
||||
"or another source reference that is associated with "
|
||||
"the same source is being edited.\n\nTo edit this "
|
||||
"source reference, you need to close the source.")
|
||||
)
|
||||
|
||||
def edit_callback(self, refererence, primary):
|
||||
def object_added(self, reference, primary):
|
||||
reference.ref = primary.handle
|
||||
self.get_data().append(reference)
|
||||
self.changed = True
|
||||
self.rebuild()
|
||||
|
||||
def object_edited(self, refererence, primary):
|
||||
self.changed = True
|
||||
self.rebuild()
|
||||
|
||||
@ -145,6 +153,6 @@ class SourceEmbedList(EmbeddedList):
|
||||
from Editors import EditSourceRef
|
||||
|
||||
EditSourceRef(self.dbstate, self.uistate, self.track,
|
||||
src, sref, self.add_callback)
|
||||
src, sref, self.object_added)
|
||||
except Errors.WindowActiveError:
|
||||
pass
|
||||
|
@ -45,6 +45,7 @@ class SourceRefModel(gtk.ListStore):
|
||||
gtk.ListStore.__init__(self, str, str, str, str, object)
|
||||
self.db = db
|
||||
for sref in sref_list:
|
||||
src = self.db.get_source_from_handle(sref.ref)
|
||||
src = self.db.get_source_from_handle(sref.get_reference_handle())
|
||||
print "Model", sref, sref.ref, sref.get_reference_handle()
|
||||
self.append(row=[src.gramps_id, src.title, src.author,
|
||||
sref.page, sref, ])
|
||||
|
@ -265,7 +265,7 @@ class EditPerson(EditPrimary):
|
||||
self.srcref_list = self._add_tab(
|
||||
notebook,
|
||||
SourceEmbedList(self.dbstate, self.uistate,
|
||||
self.track, self.obj.source_list))
|
||||
self.track, self.obj))
|
||||
|
||||
self.attr_list = self._add_tab(
|
||||
notebook,
|
||||
|
@ -192,7 +192,6 @@ class EditSourceRef(EditReference):
|
||||
else:
|
||||
self.db.add_source(self.source,trans)
|
||||
self.db.transaction_commit(trans,_("Add Source"))
|
||||
self.source_ref.ref = self.source.handle
|
||||
|
||||
if self.update:
|
||||
self.update(self.source_ref,self.source)
|
||||
|
Loading…
Reference in New Issue
Block a user