| 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 |
|
|
| 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(); |
| 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); |
| 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; |
| 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 |
} |
} |