Ability to abandon edited events
svn: r260
This commit is contained in:
parent
6be65fb518
commit
fc3f5aed1c
@ -49,11 +49,20 @@ class Date:
|
||||
fmt = re.compile(r"\s*" + from_str + r"\s+(.+)\s+" + to_str + r"\s+(.+)\s*$",
|
||||
re.IGNORECASE)
|
||||
|
||||
def __init__(self):
|
||||
self.start = SingleDate()
|
||||
self.stop = None
|
||||
self.range = 0
|
||||
self.text = ""
|
||||
def __init__(self,source=None):
|
||||
if source:
|
||||
self.start = SingleDate(source.start)
|
||||
if source.start:
|
||||
self.stop = SingleDate(source.stop)
|
||||
else:
|
||||
self.stop = None
|
||||
self.range = source.range
|
||||
self.text = source.text
|
||||
else:
|
||||
self.start = SingleDate()
|
||||
self.stop = None
|
||||
self.range = 0
|
||||
self.text = ""
|
||||
|
||||
def get_start_date(self):
|
||||
return self.start
|
||||
@ -312,11 +321,17 @@ class SingleDate:
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def __init__(self):
|
||||
self.month = -1
|
||||
self.day = -1
|
||||
self.year = -1
|
||||
self.mode = SingleDate.exact
|
||||
def __init__(self,source=None):
|
||||
if source:
|
||||
self.month = source.month
|
||||
self.day = source.day
|
||||
self.year = source.year
|
||||
self.mode = source.mode
|
||||
else:
|
||||
self.month = -1
|
||||
self.day = -1
|
||||
self.year = -1
|
||||
self.mode = SingleDate.exact
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
|
@ -1334,7 +1334,7 @@
|
||||
<can_focus>True</can_focus>
|
||||
<signal>
|
||||
<name>select_row</name>
|
||||
<handler>on_nameList_select_row</handler>
|
||||
<handler>on_name_list_select_row</handler>
|
||||
<last_modification_time>Mon, 18 Dec 2000 22:29:26 GMT</last_modification_time>
|
||||
</signal>
|
||||
<columns>2</columns>
|
||||
@ -1715,7 +1715,7 @@
|
||||
<can_focus>True</can_focus>
|
||||
<signal>
|
||||
<name>select_row</name>
|
||||
<handler>on_eventList_select_row</handler>
|
||||
<handler>on_event_select_row</handler>
|
||||
<last_modification_time>Fri, 01 Dec 2000 02:58:20 GMT</last_modification_time>
|
||||
</signal>
|
||||
<columns>4</columns>
|
||||
@ -1801,7 +1801,7 @@
|
||||
<can_focus>True</can_focus>
|
||||
<signal>
|
||||
<name>clicked</name>
|
||||
<handler>on_eventAddBtn_clicked</handler>
|
||||
<handler>on_event_add_clicked</handler>
|
||||
<object>eventList</object>
|
||||
<last_modification_time>Fri, 01 Dec 2000 00:29:52 GMT</last_modification_time>
|
||||
</signal>
|
||||
@ -1817,7 +1817,7 @@
|
||||
<can_focus>True</can_focus>
|
||||
<signal>
|
||||
<name>clicked</name>
|
||||
<handler>on_eventUpdateBtn_clicked</handler>
|
||||
<handler>on_event_update_clicked</handler>
|
||||
<object>eventList</object>
|
||||
<last_modification_time>Fri, 01 Dec 2000 02:58:32 GMT</last_modification_time>
|
||||
</signal>
|
||||
@ -1833,7 +1833,7 @@
|
||||
<can_focus>True</can_focus>
|
||||
<signal>
|
||||
<name>clicked</name>
|
||||
<handler>on_eventDeleteBtn_clicked</handler>
|
||||
<handler>on_event_delete_clicked</handler>
|
||||
<object>eventList</object>
|
||||
<last_modification_time>Thu, 25 Jan 2001 19:57:23 GMT</last_modification_time>
|
||||
</signal>
|
||||
@ -3217,7 +3217,7 @@
|
||||
<object>editPerson</object>
|
||||
<last_modification_time>Thu, 19 Oct 2000 19:25:50 GMT</last_modification_time>
|
||||
</signal>
|
||||
<stock_button>GNOME_STOCK_BUTTON_CLOSE</stock_button>
|
||||
<stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
|
||||
<relief>GTK_RELIEF_NORMAL</relief>
|
||||
</widget>
|
||||
</widget>
|
||||
|
@ -131,6 +131,8 @@ class EditPerson:
|
||||
self.name_note = self.get_widget("name_note")
|
||||
self.name_source = self.get_widget("name_source")
|
||||
|
||||
self.elist = person.getEventList()[:]
|
||||
|
||||
self.selectedIcon = -1
|
||||
|
||||
self.top_window.signal_autoconnect({
|
||||
@ -140,9 +142,9 @@ class EditPerson:
|
||||
"on_name_source_clicked" : on_name_source_clicked,
|
||||
"on_birth_note_clicked" : on_birth_note_clicked,
|
||||
"on_birth_source_clicked" : on_birth_source_clicked,
|
||||
"on_eventAddBtn_clicked" : on_event_add_clicked,
|
||||
"on_eventDeleteBtn_clicked" : on_event_delete_clicked,
|
||||
"on_nameList_select_row" : on_name_list_select_row,
|
||||
"on_event_add_clicked" : on_event_add_clicked,
|
||||
"on_event_delete_clicked" : on_event_delete_clicked,
|
||||
"on_name_list_select_row" : on_name_list_select_row,
|
||||
"on_browse_clicked": on_browse_clicked,
|
||||
"on_web_list_select_row" : on_web_list_select_row,
|
||||
"on_attr_list_select_row" : on_attr_list_select_row,
|
||||
@ -159,8 +161,8 @@ class EditPerson:
|
||||
"on_update_address_clicked" : on_update_address_clicked,
|
||||
"on_delete_address_clicked" : on_delete_address_clicked,
|
||||
"on_add_address_clicked" : on_add_address_clicked,
|
||||
"on_eventUpdateBtn_clicked" : on_event_update_clicked,
|
||||
"on_eventList_select_row" : on_event_select_row,
|
||||
"on_event_update_clicked" : on_event_update_clicked,
|
||||
"on_event_select_row" : on_event_select_row,
|
||||
"on_editperson_switch_page" : on_switch_page,
|
||||
"destroy_passed_object" : utils.destroy_passed_object,
|
||||
"on_makeprimary_clicked" : on_primary_photo_clicked,
|
||||
@ -422,7 +424,7 @@ class EditPerson:
|
||||
self.event_list.clear()
|
||||
|
||||
self.event_index = 0
|
||||
for event in self.person.getEventList():
|
||||
for event in self.elist:
|
||||
attr = ""
|
||||
if Config.show_detail:
|
||||
if event.getNote() != "":
|
||||
@ -486,6 +488,13 @@ class EditPerson:
|
||||
def load_photo(self,photo):
|
||||
self.get_widget("personPix").load_file(photo)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
def update_events(self):
|
||||
self.person.setEventList(self.elist)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -819,14 +828,13 @@ def on_event_delete_clicked(obj):
|
||||
if row < 0:
|
||||
return
|
||||
|
||||
list = edit_person_obj.person.getEventList()
|
||||
del list[row]
|
||||
del edit_person_obj.elist[row]
|
||||
|
||||
if row > len(list)-1:
|
||||
if row > len(edit_person_obj.elist)-1:
|
||||
obj.set_data(INDEX,row-1)
|
||||
|
||||
edit_person_obj.redraw_event_list()
|
||||
utils.modified()
|
||||
edit_person_obj.events_changed = 1
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -945,25 +953,28 @@ def on_primary_photo_clicked(obj):
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
def update_event(event,name,date,place,desc,note):
|
||||
changed = 0
|
||||
if event.getPlace() != place:
|
||||
event.setPlace(place)
|
||||
utils.modified()
|
||||
changed = 1
|
||||
|
||||
if event.getName() != const.save_pevent(name):
|
||||
event.setName(const.save_pevent(name))
|
||||
utils.modified()
|
||||
changed = 1
|
||||
|
||||
if event.getDescription() != desc:
|
||||
event.setDescription(desc)
|
||||
utils.modified()
|
||||
changed = 1
|
||||
|
||||
if event.getNote() != note:
|
||||
event.setNote(note)
|
||||
utils.modified()
|
||||
changed = 1
|
||||
|
||||
if event.getDate() != date:
|
||||
event.setDate(date)
|
||||
utils.modified()
|
||||
changed = 1
|
||||
|
||||
return changed
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -1011,7 +1022,7 @@ def on_apply_person_clicked(obj):
|
||||
edit_person_obj = obj.get_data(EDITPERSON)
|
||||
person = edit_person_obj.person
|
||||
|
||||
surname = edit_person_obj.surname.get_text()
|
||||
surname = edit_person_obj.surname_field.get_text()
|
||||
suffix = edit_person_obj.suffix.get_text()
|
||||
given = edit_person_obj.given.get_text()
|
||||
nick = edit_person_obj.nick.get_text()
|
||||
@ -1103,8 +1114,11 @@ def on_apply_person_clicked(obj):
|
||||
person.setNote(text)
|
||||
utils.modified()
|
||||
|
||||
edit_person_obj.update_events()
|
||||
if edit_person_obj.events_changed:
|
||||
utils.modified()
|
||||
|
||||
utils.destroy_passed_object(obj)
|
||||
|
||||
edit_person_obj.callback(edit_person_obj)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@ -1470,9 +1484,11 @@ def on_event_edit_apply_clicked(obj):
|
||||
|
||||
if event == None:
|
||||
event = Event()
|
||||
ee.parent.person.addEvent(event)
|
||||
ee.parent.elist.append(event)
|
||||
|
||||
if update_event(event,ename,edate,eplace,edesc,enote):
|
||||
ee.parent.events_changed = 1
|
||||
|
||||
update_event(event,ename,edate,eplace,edesc,enote)
|
||||
ee.parent.redraw_event_list()
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
@ -399,6 +399,9 @@ class Person:
|
||||
def getEventList(self) :
|
||||
return self.EventList
|
||||
|
||||
def setEventList(self,list) :
|
||||
self.EventList = list
|
||||
|
||||
def addFamily(self,family) :
|
||||
self.FamilyList.append(family)
|
||||
|
||||
@ -490,13 +493,27 @@ class Person:
|
||||
#-------------------------------------------------------------------------
|
||||
class Event:
|
||||
|
||||
def __init__(self):
|
||||
self.place = ""
|
||||
self.date = Date()
|
||||
self.description = ""
|
||||
self.name = ""
|
||||
self.source_ref = None
|
||||
self.note = None
|
||||
def __init__(self,source=None):
|
||||
if source:
|
||||
self.place = source.place
|
||||
self.date = Date(source.date)
|
||||
self.description = source.description
|
||||
self.name = source.name
|
||||
if source.source_ref:
|
||||
self.source_ref = SourceRef(source.source_ref)
|
||||
else:
|
||||
self.source_ref = None
|
||||
if source.note:
|
||||
self.note = Note(source.note)
|
||||
else:
|
||||
self.source_ref = None
|
||||
else:
|
||||
self.place = ""
|
||||
self.date = Date()
|
||||
self.description = ""
|
||||
self.name = ""
|
||||
self.source_ref = None
|
||||
self.note = None
|
||||
|
||||
def set(self,name,date,place,description):
|
||||
self.name = name
|
||||
@ -754,12 +771,19 @@ class Source:
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class SourceRef:
|
||||
def __init__(self):
|
||||
self.ref = None
|
||||
self.page = ""
|
||||
self.date = Date()
|
||||
self.comments = Note()
|
||||
self.text = ""
|
||||
def __init__(self,source=None):
|
||||
if source:
|
||||
self.ref = source.ref
|
||||
self.page = source.page
|
||||
self.date = Date(source.date)
|
||||
self.comments = Note(source.comments.get())
|
||||
self.text = source.text
|
||||
else:
|
||||
self.ref = None
|
||||
self.page = ""
|
||||
self.date = Date()
|
||||
self.comments = Note()
|
||||
self.text = ""
|
||||
|
||||
def setBase(self,ref):
|
||||
self.ref = ref
|
||||
|
Loading…
Reference in New Issue
Block a user