* src/Marriage.py: proper window management on delete event.
* src/RelLib.py (Event.are_equal): Correction. * src/Date.py (is_empty): Require empty text for a date to be empty. * src/WriteXML (write_object): Remove places from Media. * src/GrampsDbBase.py (undo): Typos. * src/GrampsDBCallback: Pretty printing for warnings. svn: r4297
This commit is contained in:
parent
315775f279
commit
d52de130ff
@ -1,3 +1,11 @@
|
||||
2005-04-04 Alex Roitman <shura@gramps-project.org>
|
||||
* src/Marriage.py: proper window management on delete event.
|
||||
* src/RelLib.py (Event.are_equal): Correction.
|
||||
* src/Date.py (is_empty): Require empty text for a date to be empty.
|
||||
* src/WriteXML (write_object): Remove places from Media.
|
||||
* src/GrampsDbBase.py (undo): Typos.
|
||||
* src/GrampsDBCallback: Pretty printing for warnings.
|
||||
|
||||
2005-04-04 Don Allingham <don@gramps-project.org>
|
||||
* src/ChooseParents.py: fix father/mother relationship
|
||||
* src/FamilyView.py: fix update of child pointers after add
|
||||
|
@ -464,9 +464,9 @@ class Date:
|
||||
|
||||
def is_empty(self):
|
||||
"""
|
||||
Returns True if the date is a date range or a date span.
|
||||
Returns True if the date contains no information (empty text).
|
||||
"""
|
||||
return self.modifier == MOD_TEXTONLY
|
||||
return self.modifier == MOD_TEXTONLY and not self.text
|
||||
|
||||
def is_compound(self):
|
||||
"""
|
||||
|
@ -120,7 +120,7 @@ class GrampsDBCallback(object):
|
||||
for (k,v) in s.items():
|
||||
if self.__signal_map.has_key(k):
|
||||
# signal name clash
|
||||
sys.err.write("Warning: signal name clash: ", str(k))
|
||||
sys.err.write("Warning: signal name clash: %s\n" % str(k))
|
||||
self.__signal_map[k] = v
|
||||
|
||||
# self.__signal_map now contains the connonical list
|
||||
@ -130,7 +130,7 @@ class GrampsDBCallback(object):
|
||||
def connect(self, signal_name, callback):
|
||||
# Check that signal exists.
|
||||
if signal_name not in self.__signal_map.keys():
|
||||
sys.stderr.write("Warning: attempt to connect to unknown signal: ", str(signal_name))
|
||||
sys.stderr.write("Warning: attempt to connect to unknown signal: %s\n" % str(signal_name))
|
||||
return
|
||||
|
||||
# Add callable to callback_map
|
||||
@ -146,28 +146,29 @@ class GrampsDBCallback(object):
|
||||
|
||||
# Check signal exists
|
||||
if signal_name not in self.__signal_map.keys():
|
||||
sys.stderr.write("Warning: attempt to emit to unknown signal: ", str(signal_name))
|
||||
sys.stderr.write("Warning: attempt to emit to unknown signal: %s\n"
|
||||
% str(signal_name))
|
||||
return
|
||||
|
||||
# type check arguments
|
||||
arg_types = self.__signal_map[signal_name]
|
||||
if arg_types == None and len(args) > 0:
|
||||
sys.stderr.write("Warning: signal emitted with "\
|
||||
"wrong number of args: ", str(signal_name))
|
||||
"wrong number of args: %s\n" % str(signal_name))
|
||||
return
|
||||
|
||||
if len(args) > 0:
|
||||
if len(args) != len(arg_types):
|
||||
sys.stderr.write("Warning: signal emitted with "\
|
||||
"wrong number of args: ", str(signal_name))
|
||||
"wrong number of args: %s\n" % str(signal_name))
|
||||
return
|
||||
|
||||
if arg_types != None:
|
||||
for i in range(0,len(arg_types)):
|
||||
if not isinstance(args[i],arg_types[i]):
|
||||
sys.stderr.write("Warning: signal emitted with "\
|
||||
"wrong arg types: %s" % (str(signal_name),))
|
||||
sys.stderr.write("arg passed was: %s type should be: %s"
|
||||
"wrong arg types: %s\n" % (str(signal_name),))
|
||||
sys.stderr.write(" arg passed was: %s, type should be: %s\n"
|
||||
% (args[i],repr(arg_types[i])))
|
||||
return
|
||||
|
||||
@ -181,9 +182,9 @@ class GrampsDBCallback(object):
|
||||
type(cb) == types.MethodType: # call func
|
||||
cb(*args)
|
||||
else:
|
||||
sys.stderr.write("Warning: badly formed entry in callback map")
|
||||
sys.stderr.write("Warning: badly formed entry in callback map.\n")
|
||||
except:
|
||||
sys.stderr.write("Warning: exception occured in callback function.")
|
||||
sys.stderr.write("Warning: exception occured in callback function.\n")
|
||||
|
||||
#
|
||||
# instance signals control methods
|
||||
|
@ -977,25 +977,25 @@ class GrampsDbBase(GrampsDBCallback.GrampsDBCallback):
|
||||
(key, handle, data) = transaction.get_record(record_id)
|
||||
if key == PERSON_KEY:
|
||||
if data == None:
|
||||
self.emit('person-delete',([str(handle),]))
|
||||
self.emit('person-delete',([str(handle)],))
|
||||
del self.person_map[str(handle)]
|
||||
else:
|
||||
self.person_map[str(handle)] = data
|
||||
self.emit('person-update',([str(handle),]))
|
||||
self.emit('person-update',([str(handle)],))
|
||||
elif key == FAMILY_KEY:
|
||||
if data == None:
|
||||
self.emit('family-delete',([str(handle),]))
|
||||
self.emit('family-delete',([str(handle)],))
|
||||
del self.family_map[str(handle)]
|
||||
else:
|
||||
self.family_map[str(handle)] = data
|
||||
self.emit('family-update',([str(handle),]))
|
||||
self.emit('family-update',([str(handle)],))
|
||||
elif key == SOURCE_KEY:
|
||||
if data == None:
|
||||
self.emit('source-delete',([str(handle),]))
|
||||
self.emit('source-delete',([str(handle)],))
|
||||
del self.source_map[str(handle)]
|
||||
else:
|
||||
self.source_map[str(handle)] = data
|
||||
self.emit('source-update',([str(handle),]))
|
||||
self.emit('source-update',([str(handle)],))
|
||||
elif key == EVENT_KEY:
|
||||
if data == None:
|
||||
del self.event_map[str(handle)]
|
||||
@ -1003,17 +1003,17 @@ class GrampsDbBase(GrampsDBCallback.GrampsDBCallback):
|
||||
self.event_map[str(handle)] = data
|
||||
elif key == PLACE_KEY:
|
||||
if data == None:
|
||||
self.emit('place-delete',([str(handle),]))
|
||||
self.emit('place-delete',([str(handle)],))
|
||||
del self.place_map[str(handle)]
|
||||
else:
|
||||
self.place_map[str(handle)] = data
|
||||
self.emit('place-update',([str(handle),]))
|
||||
self.emit('place-update',([str(handle)],))
|
||||
elif key == MEDIA_KEY:
|
||||
if data == None:
|
||||
self.emit('media-delete',([str(handle),]))
|
||||
self.emit('media-delete',([str(handle)],))
|
||||
del self.media_map[str(handle)]
|
||||
else:
|
||||
self.emit('media-update',([str(handle),]))
|
||||
self.emit('media-update',([str(handle)],))
|
||||
self.media_map[str(handle)] = data
|
||||
|
||||
if self.undo_callback:
|
||||
|
@ -338,7 +338,7 @@ class Marriage:
|
||||
child_window.close(None)
|
||||
self.child_windows = {}
|
||||
|
||||
def close(self,ok=0):
|
||||
def close(self):
|
||||
self.gallery.close()
|
||||
self.close_child_windows()
|
||||
self.remove_itself_from_winsmenu()
|
||||
@ -611,25 +611,32 @@ class Marriage:
|
||||
return changed
|
||||
|
||||
def cancel_callback(self):
|
||||
self.close(0)
|
||||
self.close()
|
||||
|
||||
def on_cancel_edit(self,obj):
|
||||
if self.did_data_change() and not GrampsKeys.get_dont_ask():
|
||||
global quit
|
||||
self.quit = obj
|
||||
SaveDialog(_('Save Changes?'),
|
||||
_('If you close without saving, the changes you '
|
||||
'have made will be lost'),
|
||||
self.cancel_callback,
|
||||
self.save)
|
||||
else:
|
||||
self.close(0)
|
||||
self.close()
|
||||
|
||||
def save(self):
|
||||
self.on_close_marriage_editor(None)
|
||||
|
||||
def on_delete_event(self,obj,b):
|
||||
self.on_cancel_edit(obj)
|
||||
if self.did_data_change() and not GrampsKeys.get_dont_ask():
|
||||
SaveDialog(_('Save Changes?'),
|
||||
_('If you close without saving, the changes you '
|
||||
'have made will be lost'),
|
||||
self.cancel_callback,
|
||||
self.save)
|
||||
return True
|
||||
else:
|
||||
self.close()
|
||||
return False
|
||||
|
||||
def on_close_marriage_editor(self,*obj):
|
||||
|
||||
@ -700,7 +707,7 @@ class Marriage:
|
||||
self.db.commit_family(self.family,trans)
|
||||
self.db.transaction_commit(trans,_("Edit Marriage"))
|
||||
|
||||
self.close(1)
|
||||
self.close()
|
||||
|
||||
def event_edit_callback(self,event):
|
||||
"""Birth and death events may not be in the map"""
|
||||
|
@ -2126,16 +2126,17 @@ class Event(PrimaryObject,PrivateSourceNote,MediaBase,DateBase,PlaceBase):
|
||||
|
||||
witness_list = self.get_witness_list()
|
||||
other_list = other.get_witness_list()
|
||||
if (not witness_list) and (not other_list):
|
||||
return True
|
||||
elif not (witness_list and other_list):
|
||||
if (witness_list and not other_list) or \
|
||||
(other_list and not witness_list):
|
||||
return False
|
||||
if witness_list and other_list:
|
||||
another_list = other_list[:]
|
||||
for a in witness_list:
|
||||
if a in other_list:
|
||||
other_list.remove(a)
|
||||
if a in another_list:
|
||||
another_list.remove(a)
|
||||
else:
|
||||
return False
|
||||
if other_list:
|
||||
if another_list:
|
||||
return False
|
||||
return True
|
||||
|
||||
@ -3735,8 +3736,10 @@ class SourceRef(BaseObject,DateBase,PrivacyBase,NoteBase):
|
||||
return False
|
||||
if (self.date and other.date and \
|
||||
not self.date.is_equal(other.date)) \
|
||||
or (self.date and not other.date) \
|
||||
or (not self.date and other.date):
|
||||
or ((not self.date) and other.date and \
|
||||
not other.date.is_empty()) \
|
||||
or ((not other.date) and self.date and \
|
||||
not self.date.is_empty()):
|
||||
return False
|
||||
if self.get_text() != other.get_text():
|
||||
return False
|
||||
|
@ -844,19 +844,16 @@ class XmlWriter:
|
||||
self.g.write(' description="%s"' % self.fix(obj.get_description()))
|
||||
alist = obj.get_attribute_list()
|
||||
note = obj.get_note()
|
||||
phandle = obj.get_place_handle()
|
||||
dval = obj.get_date_object()
|
||||
slist = obj.get_source_references()
|
||||
if len(alist) == 0 and len(slist) == 0 and note == "" and \
|
||||
phandle == "" and not dval.is_empty():
|
||||
if len(alist) == 0 and len(slist) == 0 and note == "" \
|
||||
and not dval.is_empty():
|
||||
self.g.write('/>\n')
|
||||
else:
|
||||
self.g.write('>\n')
|
||||
self.write_attribute_list(alist)
|
||||
if note != "":
|
||||
self.write_note("note",obj.get_note_object(),3)
|
||||
if phandle:
|
||||
self.g.write(' <place ref="%s"/>\n' % phandle)
|
||||
if not dval.is_empty():
|
||||
self.write_date(dval,3)
|
||||
for s in slist:
|
||||
|
Loading…
Reference in New Issue
Block a user