/[ghosts]/ghosts/gedcomviewer/src/BakeryGateway/ViewIndividualEvents.cpp
ViewVC logotype

Diff of /ghosts/gedcomviewer/src/BakeryGateway/ViewIndividualEvents.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by cpcp, Thu Mar 20 20:51:25 2003 UTC revision 1.7 by cpcp, Mon Dec 1 20:11:00 2003 UTC
# Line 20  Line 20 
20    
21  **/  **/
22  #include "BakeryGateway/ViewIndividualEvents.hh"  #include "BakeryGateway/ViewIndividualEvents.hh"
23    #include "GEDCOMHelper/IndividualRecordHelper.hh"
24    
25  BakeryGateway::ViewIndividualEvents::ViewIndividualEvents(MMIIndividualEvents * mmi) :  BakeryGateway::ViewIndividualEvents::ViewIndividualEvents(MMIIndividualEvents * mmi) :
26    _mmi_individual_events(mmi),    _mmi_individual_events(mmi),
# Line 78  void BakeryGateway::ViewIndividualEvents Line 79  void BakeryGateway::ViewIndividualEvents
79    if (_parent_entity != 0)    if (_parent_entity != 0)
80      {      {
81        delete_subscribed_views();        delete_subscribed_views();
82          GEDCOMHelper::IndividualRecordHelper helper(_parent_entity, get_document());
83        // handling of birth        // handling of birth
84        _mmi_individual_events->setBirthDate("");        _mmi_individual_events->setBirthDate("");
85        _mmi_individual_events->setBirthPlace("");        _mmi_individual_events->setBirthPlace("");
86        _mmi_individual_events->MMIBirthNote->clear();        _mmi_individual_events->MMIBirthNote->clear();
87        GEDCOMParser::IndividualEvent * const birth_event = _parent_entity->getBirth();        GEDCOMParser::IndividualEvent * const birth_event = helper.getBirth();
88        if (birth_event != 0)        if (birth_event != 0)
89          {          {
90            if (!birth_event->getEvent().Null())            if (!birth_event->getEvent().Null())
# Line 100  void BakeryGateway::ViewIndividualEvents Line 102  void BakeryGateway::ViewIndividualEvents
102        _mmi_individual_events->setDeathDate("");        _mmi_individual_events->setDeathDate("");
103        _mmi_individual_events->setDeathPlace("");        _mmi_individual_events->setDeathPlace("");
104        _mmi_individual_events->MMIDeathNote->clear();        _mmi_individual_events->MMIDeathNote->clear();
105        GEDCOMParser::IndividualEvent * const death_event = _parent_entity->getDeath();        GEDCOMParser::IndividualEvent * const death_event = helper.getDeath();
106        if (death_event != 0)        if (death_event != 0)
107          {          {
108            if (!death_event->getEvent().Null())            if (!death_event->getEvent().Null())
# Line 120  void BakeryGateway::ViewIndividualEvents Line 122  void BakeryGateway::ViewIndividualEvents
122    return;    return;
123  }  }
124    
125  void BakeryGateway::ViewIndividualEvents::getEventsChanges(GEDCOMParser::IndividualEvent const * const event, std::string * const date_old_value, std::string * const place_old_value, bool * const event_exists, bool * const eventdetail_exists, bool * const place_exists) const  void BakeryGateway::ViewIndividualEvents::getEventsChanges(GEDCOMParser::IndividualEvent const * const event, std::string * const date_old_value, std::string * const place_old_value) const
126  {  {
127    *date_old_value = "";    *date_old_value = "";
128    *place_old_value = "";    *place_old_value = "";
# Line 133  void BakeryGateway::ViewIndividualEvents Line 135  void BakeryGateway::ViewIndividualEvents
135              {              {
136                *place_old_value = event->getEvent()->getPlace()->getPlaceValue();                *place_old_value = event->getEvent()->getPlace()->getPlaceValue();
137              }              }
           else  
             {  
               *place_exists = false;  
             }  
138          }          }
       else  
         {  
           *eventdetail_exists = false;  
           *place_exists = false;  
         }  
     }  
   else  
     {  
       *event_exists = false;  
       *eventdetail_exists = false;  
       *place_exists = false;  
139      }      }
140    return;    return;
141  }  }
142    
143  void BakeryGateway::ViewIndividualEvents::setEventsChanges(std::string const &date_new_value, std::string const &date_old_value, std::string const &place_new_value, std::string const &place_old_value, bool event_flag, bool eventdetail_flag, bool place_flag, GEDCOMParser::IndividualEvent::enumIndividualEvents event_type)  void BakeryGateway::ViewIndividualEvents::setEventsChanges(std::string const &date_new_value, std::string const &date_old_value, std::string const &place_new_value, std::string const &place_old_value, GEDCOMParser::IndividualEvent::enumIndividualEvents event_type)
144  {  {
145    if ((date_new_value != date_old_value) || (place_new_value != place_old_value))    if ((date_new_value != date_old_value) || (place_new_value != place_old_value))
146      {      {
147        GEDCOMParser::IndividualEvent * event = 0;        GEDCOMHelper::IndividualRecordHelper helper(_parent_entity, get_document());
148        GEDCOMParser::Event * event_detail = 0;        helper.setEvent(event_type, date_new_value, place_new_value);
       GEDCOMParser::Place * place = 0;  
       if (event_flag == false)  
         {  
           event = _parent_entity->addIndividualEvent();  
           event->setType(event_type);  
         }  
       else  
         {  
           event = _parent_entity->getEvent(event_type);  
         }  
       if (eventdetail_flag == false)  
         {  
           event_detail = event->setEvent();  
         }  
       else  
         {  
           event_detail = event->getEvent().getPtr();  
         }  
       if (date_new_value != date_old_value)  
         {  
           event_detail->setDate(date_new_value);  
         }  
         
       if (place_new_value != place_old_value)  
         {  
           if (place_flag == false)  
             {  
               place = event_detail->setPlace();  
             }  
           else  
             {  
               place = event_detail->getPlace().getPtr();  
             }  
           place->setPlaceValue(place_new_value);  
 //        if (place_flag == false)  
 //          {  
 //            event_detail->setPlace(place);  
 //          }  
         }  
 //       if (eventdetail_flag == false)  
 //      {  
 //        event->setEvent(event_detail);  
 //      }  
149      }      }
150    return;    return;
151  }  }
152    
153  void BakeryGateway::ViewIndividualEvents::save_to_document(void)  void BakeryGateway::ViewIndividualEvents::save_to_document(void)
154  {  {
   bool birth_eventdetail_flag = true;  
   bool birth_flag = true;  
   bool birth_place_flag = true;  
   bool death_eventdetail_flag = true;  
   bool death_flag = true;  
   bool death_place_flag = true;  
155    if ((! _during_load) && (_parent_entity != 0))    if ((! _during_load) && (_parent_entity != 0))
156      {      {
157        std::string new_birth_date = _mmi_individual_events->getBirthDate();        std::string new_birth_date = _mmi_individual_events->getBirthDate();
# Line 224  void BakeryGateway::ViewIndividualEvents Line 162  void BakeryGateway::ViewIndividualEvents
162        std::string old_death_date;        std::string old_death_date;
163        std::string new_death_place = _mmi_individual_events->getDeathPlace();        std::string new_death_place = _mmi_individual_events->getDeathPlace();
164        std::string old_death_place;        std::string old_death_place;
165        getEventsChanges(_parent_entity->getBirth(), &old_birth_date, &old_birth_place, &birth_flag, &birth_eventdetail_flag, &birth_place_flag);        GEDCOMHelper::IndividualRecordHelper helper(_parent_entity, get_document());
166        getEventsChanges(_parent_entity->getDeath(), &old_death_date, &old_death_place, &death_flag, &death_eventdetail_flag, &death_place_flag);        getEventsChanges(helper.getBirth(), &old_birth_date, &old_birth_place);
167        setEventsChanges(new_birth_date, old_birth_date, new_birth_place, old_birth_place, birth_flag, birth_eventdetail_flag, birth_place_flag, GEDCOMParser::IndividualEvent::e_Birt);        getEventsChanges(helper.getDeath(), &old_death_date, &old_death_place);
168        setEventsChanges(new_death_date, old_death_date, new_death_place, old_death_place, death_flag, death_eventdetail_flag, death_place_flag, GEDCOMParser::IndividualEvent::e_Deat);        setEventsChanges(new_birth_date, old_birth_date, new_birth_place, old_birth_place, GEDCOMParser::IndividualEvent::e_Birt);
169          setEventsChanges(new_death_date, old_death_date, new_death_place, old_death_place, GEDCOMParser::IndividualEvent::e_Deat);
170        loadEventList();        loadEventList();
171      }      }
172    return;    return;

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26