bool Settings::get_value(const synfig::String& key, synfig::String& value)const { // Search for the value in any children domains DomainMap::const_iterator iter; for(iter=domain_map.begin();iter!=domain_map.end();++iter) { // if we have a domain hit if(key.size()>iter->first.size() && String(key.begin(),key.begin()+iter->first.size())==iter->first) { synfig::String key_(key.begin()+iter->first.size()+1,key.end()); // If the domain has it, then we have got a hit if(iter->second->get_value(key_,value)) return true; } } // Search for the value in our simple map if(simple_value_map.count(key)) { value=simple_value_map.find(key)->second; return true; } // key not found return false; }
Distance::System // (static) Distance::ident_system(const synfig::String& x) { synfig::String str; // Make it all upper case, and remove white space for(unsigned int i=0;i<x.size();i++)if(x[i]!=' ' && x[i]!='\t')str+=toupper(x[i]); // If it is plural, make it singular if(str[str.size()-1]=='S') str=synfig::String(str.begin(),str.end()-1); if(str.empty() || str=="U" || str=="UNIT") return SYSTEM_UNITS; if(str=="PX" || str=="PIXEL") return SYSTEM_PIXELS; if(str=="PT" || str=="POINT") return SYSTEM_POINTS; if(str=="IN" || str=="\"" || str=="INCHE" || str=="INCH") return SYSTEM_INCHES; if(str=="M" || str=="METER") return SYSTEM_METERS; if(str=="CM" || str=="CENTIMETER") return SYSTEM_CENTIMETERS; if(str=="MM" || str=="MILLIMETER") return SYSTEM_MILLIMETERS; synfig::warning("Distance::ident_system(): Unknown distance system \"%s\"",x.c_str()); return SYSTEM_UNITS; }
// This function pre-processes the message so that we // don't get any CVS syntax errors. inline synfig::String fix_msg(const synfig::String& message) { synfig::String ret; int i; for(i=0;i<(int)message.size();i++) { if(message[i]=='\'') ret+="'\"'\"'"; else ret+=message[i]; } return ret; }
bool Settings::set_value(const synfig::String& key,const synfig::String& value) { // Search for the key in any children domains DomainMap::iterator iter; for(iter=domain_map.begin();iter!=domain_map.end();++iter) { // if we have a domain hit if(key.size()>iter->first.size() && String(key.begin(),key.begin()+iter->first.size())==iter->first) { synfig::String key_(key.begin()+iter->first.size()+1,key.end()); return iter->second->set_value(key_,value); } } simple_value_map[key]=value; return true; }