diff --git a/ewol/resource/ColorFile.cpp b/ewol/resource/ColorFile.cpp index 1fc9869a..23da9454 100644 --- a/ewol/resource/ColorFile.cpp +++ b/ewol/resource/ColorFile.cpp @@ -40,30 +40,38 @@ void ewol::resource::ColorFile::reload() { } // open and read all json elements: ejson::Document doc; - if (false == doc.load(m_name)) { + if (doc.load(m_name) == false) { EWOL_ERROR("Can not load file : '" << m_name << "' = " << etk::FSNode(m_name).getFileSystemName()); return; } ejson::Array baseArray = doc["color"].toArray(); if (baseArray.exist() == false) { - EWOL_ERROR("Can not get basic array : 'color'"); + EWOL_ERROR("Can not get basic array : 'color' in file:" << m_name); + doc.display(); return; } + bool findError = false; for (const auto it : baseArray) { ejson::Object tmpObj = it.toObject(); if (tmpObj.exist() == false) { - EWOL_DEBUG(" can not get object in 'color' : " << it); + EWOL_ERROR(" can not get object in 'color' : " << it); + findError = true; continue; } - std::string name = tmpObj.getStringValue("name", ""); - std::string color = tmpObj.getStringValue("color", m_errorColor.getHexString()); + std::string name = tmpObj["name"].toString().get(); + std::string color = tmpObj["color"].toString().get(m_errorColor.getHexString()); EWOL_DEBUG("find new color : '" << name << "' color='" << color << "'"); if (name.size() == 0) { EWOL_ERROR("Drop an empty name"); + findError = true; continue; } m_list.add(name, etk::Color(color)); } + if (findError == true) { + EWOL_ERROR("pb in parsing file:" << m_name); + doc.display(); + } } diff --git a/ewol/resource/ConfigFile.cpp b/ewol/resource/ConfigFile.cpp index 4914130c..c92b4ad3 100644 --- a/ewol/resource/ConfigFile.cpp +++ b/ewol/resource/ConfigFile.cpp @@ -72,12 +72,11 @@ double ewol::resource::ConfigFile::getNumber(int32_t _id) { return m_list[_id].toNumber().get(); } -const std::string& ewol::resource::ConfigFile::getString(int32_t _id) { +std::string ewol::resource::ConfigFile::getString(int32_t _id) { std::unique_lock lock(m_mutex); - static const std::string& errorString(""); if ( _id < 0 || m_list[_id].exist() == false) { - return errorString; + return ""; } return m_list[_id].toString().get(); } diff --git a/ewol/resource/ConfigFile.h b/ewol/resource/ConfigFile.h index ffa622a8..1f22c4a8 100644 --- a/ewol/resource/ConfigFile.h +++ b/ewol/resource/ConfigFile.h @@ -31,7 +31,7 @@ namespace ewol { int32_t request(const std::string& _paramName); double getNumber(int32_t _id); - const std::string& getString(int32_t _id); + std::string getString(int32_t _id); bool getBoolean(int32_t _id); public: /** diff --git a/ewol/resource/DistanceFieldFont.cpp b/ewol/resource/DistanceFieldFont.cpp index 183a740b..211b8d37 100644 --- a/ewol/resource/DistanceFieldFont.cpp +++ b/ewol/resource/DistanceFieldFont.cpp @@ -354,22 +354,22 @@ void ewol::resource::DistanceFieldFont::exportOnFile() { ejson::Array tmpList; for (size_t iii=0; iiisecond + "/" + m_languageDefault + ".json"; doc.load(filename); for (auto element : doc.getKeys()) { - std::string val = doc.getStringValue(element); + std::string val = doc[element].toString().get(); auto itTrans = m_translate.find(element); if (itTrans == m_translate.end()) { m_translate.insert(make_pair(element, val)); @@ -179,7 +179,7 @@ class LocalInstanceTranslation { ejson::Document doc; doc.load(filename); for (auto element : doc.getKeys()) { - std::string val = doc.getStringValue(element); + std::string val = doc[element].toString().get(); auto itTrans = m_translate.find(element); if (itTrans == m_translate.end()) { m_translate.insert(make_pair(element, val)); @@ -198,7 +198,7 @@ class LocalInstanceTranslation { ejson::Document doc; doc.load(filename); for (auto element : doc.getKeys()) { - std::string val = doc.getStringValue(element); + std::string val = doc[element].toString().get(); auto itTrans = m_translate.find(element); if (itTrans == m_translate.end()) { m_translate.insert(make_pair(element, val));