| 23 |
#include "GEDCOMParser/IndividualAttribute.hh" |
#include "GEDCOMParser/IndividualAttribute.hh" |
| 24 |
#include <functional> |
#include <functional> |
| 25 |
#include <algorithm> |
#include <algorithm> |
| 26 |
|
#include <iostream> |
| 27 |
|
|
| 28 |
BakeryGateway::ViewIndividualAttributes::ViewIndividualAttributes(MMIIndividualAttributes * mmi) : |
BakeryGateway::ViewIndividualAttributes::ViewIndividualAttributes(MMIIndividualAttributes * mmi) : |
| 29 |
_mmi_individual_attributes(mmi) |
_mmi_individual_attributes(mmi), |
| 30 |
|
during_load(false) |
| 31 |
{ |
{ |
| 32 |
|
_mmi_individual_attributes->getOccupationWidget()->changed.connect(SigC::slot(this, &ViewIndividualAttributes::on_Occupation_changed)); |
| 33 |
|
return; |
| 34 |
|
} |
| 35 |
|
|
| 36 |
|
void BakeryGateway::ViewIndividualAttributes::save_to_document(void) |
| 37 |
|
{ |
| 38 |
|
if (! during_load) |
| 39 |
|
{ |
| 40 |
|
std::string const new_occupation = _mmi_individual_attributes->getOccupation(); |
| 41 |
|
if (new_occupation != getOccupation()->getValue()) |
| 42 |
|
{ |
| 43 |
|
getOccupation()->setValue(new_occupation); |
| 44 |
|
} |
| 45 |
|
} |
| 46 |
|
return; |
| 47 |
|
} |
| 48 |
|
|
| 49 |
|
void BakeryGateway::ViewIndividualAttributes::on_Occupation_changed(void) |
| 50 |
|
{ |
| 51 |
|
save_to_document(); |
| 52 |
return; |
return; |
| 53 |
} |
} |
| 54 |
|
|
| 57 |
return; |
return; |
| 58 |
} |
} |
| 59 |
|
|
| 60 |
void BakeryGateway::ViewIndividualAttributes::load_from_document(void) |
GEDCOMParser::IndividualAttribute * const BakeryGateway::ViewIndividualAttributes::getOccupation(void) |
| 61 |
{ |
{ |
| 62 |
_mmi_individual_attributes->setOccupation(""); |
GEDCOMParser::IndividualAttribute * res = 0; |
| 63 |
if (_parent_entity != 0) |
if (_parent_entity != 0) |
| 64 |
{ |
{ |
| 65 |
GEDCOMParser::IndividualAttributes_t attributes = _parent_entity->getIndividualAttributes(); |
GEDCOMParser::IndividualAttributes_t attributes = _parent_entity->getIndividualAttributes(); |
| 66 |
|
|
| 67 |
GEDCOMParser::IndividualAttributes_t::const_iterator iter = |
GEDCOMParser::IndividualAttributes_t::const_iterator iter = |
| 68 |
std::find(attributes.begin(), |
std::find(attributes.begin(), |
| 69 |
attributes.end(), |
attributes.end(), |
| 70 |
GEDCOMParser::IndividualAttribute::e_Occu); |
GEDCOMParser::IndividualAttribute::e_Occu); |
| 71 |
|
|
| 72 |
if (iter != attributes.end()) |
if (iter != attributes.end()) |
| 73 |
{ |
{ |
| 74 |
_mmi_individual_attributes->setOccupation((*iter)->getValue()); |
res = (*iter).getPtr(); |
| 75 |
|
} |
| 76 |
|
} |
| 77 |
|
return res; |
| 78 |
|
} |
| 79 |
|
|
| 80 |
|
void BakeryGateway::ViewIndividualAttributes::load_from_document(void) |
| 81 |
|
{ |
| 82 |
|
during_load = true; |
| 83 |
|
_mmi_individual_attributes->setOccupation(""); |
| 84 |
|
std::string occupation = ""; |
| 85 |
|
if (_parent_entity != 0) |
| 86 |
|
{ |
| 87 |
|
if (getOccupation() != 0) |
| 88 |
|
{ |
| 89 |
|
occupation = getOccupation()->getValue(); |
| 90 |
} |
} |
| 91 |
|
_mmi_individual_attributes->setOccupation(occupation); |
| 92 |
} |
} |
| 93 |
|
during_load = false; |
| 94 |
return; |
return; |
| 95 |
} |
} |