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

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

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

revision 1.7 by cpcp, Thu Mar 13 20:24:25 2003 UTC revision 1.8 by cpcp, Thu Mar 20 20:51:25 2003 UTC
# Line 31  BakeryGateway::ViewSpouseToFamilyLink::V Line 31  BakeryGateway::ViewSpouseToFamilyLink::V
31  {  {
32    _mmi_spousetofamilylink->FamilyAdded().connect(slot(this, &ViewSpouseToFamilyLink::family_added));    _mmi_spousetofamilylink->FamilyAdded().connect(slot(this, &ViewSpouseToFamilyLink::family_added));
33    _mmi_spousetofamilylink->FamilyDeleted().connect(slot(this, &ViewSpouseToFamilyLink::family_deleted));    _mmi_spousetofamilylink->FamilyDeleted().connect(slot(this, &ViewSpouseToFamilyLink::family_deleted));
34      _mmi_spousetofamilylink->UnionDateChanged().connect(slot(this, &ViewSpouseToFamilyLink::family_union_details_changed));
35      _mmi_spousetofamilylink->UnionPlaceChanged().connect(slot(this, &ViewSpouseToFamilyLink::family_union_details_changed));
36      
37    return;    return;
38  }  }
39    
# Line 94  void BakeryGateway::ViewSpouseToFamilyLi Line 97  void BakeryGateway::ViewSpouseToFamilyLi
97    return;    return;
98  }  }
99    
100    void BakeryGateway::ViewSpouseToFamilyLink::family_union_details_changed(int tab_index)
101    {
102      std::string date_old_value;
103      std::string date_new_value;
104      std::string place_old_value;
105      std::string place_new_value;
106    
107      int family_index = tab_index - 1;
108      OneFamilyLink * tmp = _mmi_spousetofamilylink->getOneFamilyLink(tab_index);
109      if (tmp != 0)
110        {
111          OneSpouseToFamilyLink *  mmi_one_family_link = static_cast < OneSpouseToFamilyLink * >(tmp);
112          date_new_value = mmi_one_family_link->getUnionDate();
113          place_new_value = mmi_one_family_link->getUnionPlace();
114    
115          GEDCOMParser::SpouseToFamilyLinks_t family_links = _parent_entity->getSpouseToFamilyLinks();
116          SmartPtr < GEDCOMParser::SpouseToFamilyLink > family_link = family_links[family_index];
117          GEDCOMParser::FamilyRecords_t families = get_document()->getFamilyRecords();
118          SmartPtr < GEDCOMParser::FamilyRecord > family = families[family_link->getFamsXref()];
119          bool mariage_event_exists = false;
120          bool mariage_event_detail_exists = false;
121          bool mariage_event_detail_place_exists = false;
122          if (family->getMarriageEvent() != 0)
123            {
124              mariage_event_exists = true;
125              SmartPtr < GEDCOMParser::Event >  event = family->getMarriageEvent()->getEvent();
126              if (!event.Null())
127                {
128                  mariage_event_detail_exists = true;
129                  date_old_value = event->getDate();
130                  SmartPtr < GEDCOMParser::Place > place = event->getPlace();
131                  if (!place.Null())
132                    {
133                      mariage_event_detail_place_exists = true;
134                      place_old_value = place->getPlaceValue();
135                    }
136                }
137            }
138          if ((date_new_value != date_old_value) || (place_new_value != place_old_value))
139            {
140              GEDCOMParser::FamilyEvent * mariage_event = 0;
141              GEDCOMParser::Event * mariage_event_detail = 0;
142              GEDCOMParser::Place * mariage_event_detail_place = 0;
143              if (! mariage_event_exists)
144                {
145                  mariage_event = family->addFamilyEvent();
146                  mariage_event->setType(GEDCOMParser::FamilyEvent::e_Marr);
147                }
148              else
149                {
150                  mariage_event = family->getMarriageEvent();
151                }
152              if (! mariage_event_detail_exists)
153                {
154                  mariage_event_detail = mariage_event->setEvent();
155                }
156              else
157                {
158                  mariage_event_detail = mariage_event->getEvent().getPtr();
159                }
160              if (date_old_value != date_new_value)
161                {
162                  mariage_event_detail->setDate(date_new_value);
163                }
164              if (place_old_value != place_new_value)
165                {
166                  if (! mariage_event_detail_place_exists)
167                    {
168                      mariage_event_detail_place = mariage_event_detail->setPlace();
169                    }
170                  else
171                    {
172                      mariage_event_detail_place = mariage_event_detail->getPlace().getPtr();
173                    }
174                  mariage_event_detail_place->setPlaceValue(place_new_value);
175                }
176            }
177        }
178      return;
179    }
180    
181  void BakeryGateway::ViewSpouseToFamilyLink::ManageUnionEventNote(OneFamilyLink * family_link, GEDCOMParser::Event * union_event)  void BakeryGateway::ViewSpouseToFamilyLink::ManageUnionEventNote(OneFamilyLink * family_link, GEDCOMParser::Event * union_event)
182  {  {
183    if (union_event != 0)    if (union_event != 0)

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

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