/[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.3 by cpcp, Sun Feb 9 20:13:24 2003 UTC revision 1.4 by cpcp, Tue Feb 11 21:09:51 2003 UTC
# Line 27  BakeryGateway::ViewIndividualEvents::Vie Line 27  BakeryGateway::ViewIndividualEvents::Vie
27  {  {
28    _mmi_individual_events->getBirthDateWidget()->changed.connect(SigC::slot(this, &ViewIndividualEvents::on_BirthDate_changed));    _mmi_individual_events->getBirthDateWidget()->changed.connect(SigC::slot(this, &ViewIndividualEvents::on_BirthDate_changed));
29    _mmi_individual_events->getDeathDateWidget()->changed.connect(SigC::slot(this, &ViewIndividualEvents::on_DeathDate_changed));    _mmi_individual_events->getDeathDateWidget()->changed.connect(SigC::slot(this, &ViewIndividualEvents::on_DeathDate_changed));
30      _mmi_individual_events->getBirthPlaceWidget()->changed.connect(SigC::slot(this, &ViewIndividualEvents::on_BirthPlace_changed));
31      _mmi_individual_events->getDeathPlaceWidget()->changed.connect(SigC::slot(this, &ViewIndividualEvents::on_DeathPlace_changed));
32    return;    return;
33  }  }
34    
# Line 118  void BakeryGateway::ViewIndividualEvents Line 120  void BakeryGateway::ViewIndividualEvents
120    return;    return;
121  }  }
122    
123  void BakeryGateway::ViewIndividualEvents::getEventsChanges(GEDCOMParser::IndividualEvent const * const event, std::string * const old_value, bool * const event_exists, bool * const eventdetail_exists) const  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
124  {  {
125    *old_value = "";    *date_old_value = "";
126      *place_old_value = "";
127    if (event != 0)    if (event != 0)
128      {      {
129        if (event->getEvent() != 0)        if (event->getEvent() != 0)
130          {          {
131            *old_value = event->getEvent()->getDate();            *date_old_value = event->getEvent()->getDate();
132              if (! event->getEvent()->getPlace().Null() != 0)
133                {
134                  *place_old_value = event->getEvent()->getPlace()->getPlaceValue();
135                }
136              else
137                {
138                  *place_exists = false;
139                }
140          }          }
141        else        else
142          {          {
143            *eventdetail_exists = false;            *eventdetail_exists = false;
144              *place_exists = false;
145          }          }
146      }      }
147    else    else
148      {      {
149        *event_exists = false;        *event_exists = false;
150        *eventdetail_exists = false;        *eventdetail_exists = false;
151          *place_exists = false;
152      }      }
153    return;    return;
154  }  }
155    
156  void BakeryGateway::ViewIndividualEvents::setEventsChanges(std::string const &new_value, std::string const &old_value, bool event_flag, bool eventdetail_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, bool event_flag, bool eventdetail_flag, bool place_flag, GEDCOMParser::IndividualEvent::enumIndividualEvents event_type)
157  {  {
158    if (new_value != old_value)    if ((date_new_value != date_old_value) || (place_new_value != place_old_value))
159      {      {
160        GEDCOMParser::IndividualEvent * event = 0;        GEDCOMParser::IndividualEvent * event = 0;
161        GEDCOMParser::Event * event_detail = 0;        GEDCOMParser::Event * event_detail = 0;
162          GEDCOMParser::Place * place = 0;
163        if (event_flag == false)        if (event_flag == false)
164          {          {
165            event = _parent_entity->addIndividualEvent();            event = _parent_entity->addIndividualEvent();
# Line 163  void BakeryGateway::ViewIndividualEvents Line 177  void BakeryGateway::ViewIndividualEvents
177          {          {
178            event_detail = event->getEvent().getPtr();            event_detail = event->getEvent().getPtr();
179          }          }
180        event_detail->setDate(new_value);        if (date_new_value != date_old_value)
181            {
182              event_detail->setDate(date_new_value);
183            }
184          
185          if (place_new_value != place_old_value)
186            {
187              if (place_flag == false)
188                {
189                  place = new GEDCOMParser::Place();
190                }
191              else
192                {
193                  place = event_detail->getPlace().getPtr();
194                }
195              place->setPlaceValue(place_new_value);
196            }
197          if (place_flag == false)
198            {
199              event_detail->setPlace(place);
200            }
201        if (eventdetail_flag == false)        if (eventdetail_flag == false)
202          {          {
203            event->setEvent(event_detail);            event->setEvent(event_detail);
# Line 176  void BakeryGateway::ViewIndividualEvents Line 210  void BakeryGateway::ViewIndividualEvents
210  {  {
211    bool birth_eventdetail_flag = true;    bool birth_eventdetail_flag = true;
212    bool birth_flag = true;    bool birth_flag = true;
213      bool birth_place_flag = true;
214    bool death_eventdetail_flag = true;    bool death_eventdetail_flag = true;
215    bool death_flag = true;    bool death_flag = true;
216      bool death_place_flag = true;
217    if (! _during_load)    if (! _during_load)
218      {      {
219        std::string new_birth_date = _mmi_individual_events->getBirthDate();        std::string new_birth_date = _mmi_individual_events->getBirthDate();
220        std::string old_birth_date;        std::string old_birth_date;
221          std::string new_birth_place = _mmi_individual_events->getBirthPlace();
222          std::string old_birth_place;
223        std::string new_death_date = _mmi_individual_events->getDeathDate();        std::string new_death_date = _mmi_individual_events->getDeathDate();
224        std::string old_death_date;        std::string old_death_date;
225        getEventsChanges(_parent_entity->getBirth(), &old_birth_date, &birth_flag, &birth_eventdetail_flag);        std::string new_death_place = _mmi_individual_events->getDeathPlace();
226        getEventsChanges(_parent_entity->getDeath(), &old_death_date, &death_flag, &death_eventdetail_flag);        std::string old_death_place;
227        setEventsChanges(new_birth_date, old_birth_date, birth_flag, birth_eventdetail_flag, GEDCOMParser::IndividualEvent::e_Birt);        getEventsChanges(_parent_entity->getBirth(), &old_birth_date, &old_birth_place, &birth_flag, &birth_eventdetail_flag, &birth_place_flag);
228        setEventsChanges(new_death_date, old_death_date, death_flag, death_eventdetail_flag, GEDCOMParser::IndividualEvent::e_Deat);        getEventsChanges(_parent_entity->getDeath(), &old_death_date, &old_death_place, &death_flag, &death_eventdetail_flag, &death_place_flag);
229          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);
230          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);
231        loadEventList();        loadEventList();
232      }      }
233    return;    return;
# Line 204  void BakeryGateway::ViewIndividualEvents Line 243  void BakeryGateway::ViewIndividualEvents
243  {  {
244    save_to_document();    save_to_document();
245    return;    return;
246    }
247    
248    void BakeryGateway::ViewIndividualEvents::on_BirthPlace_changed(void)
249    {
250      save_to_document();
251      return;
252    }
253    
254    void BakeryGateway::ViewIndividualEvents::on_DeathPlace_changed(void)
255    {
256      save_to_document();
257      return;
258  }  }

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

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