From 1bada0dfa2faefe9c5d9e4b2c7fc6798b3160dca Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 28 Nov 2012 19:55:56 -0500 Subject: [PATCH] Fixup tree dumping Remove unnesecary conversions and string concats in the tree->log dumping code. --- .../pfLocalizationDataMgr.cpp | 89 ++++++------------- .../pfLocalizationMgr/pfLocalizationDataMgr.h | 22 +++-- 2 files changed, 41 insertions(+), 70 deletions(-) diff --git a/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp b/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp index 8bade722..d4f77715 100644 --- a/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp +++ b/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.cpp @@ -554,7 +554,7 @@ void LocalizationDatabase::IMergeData() void LocalizationDatabase::IVerifyElement(const std::wstring &ageName, const std::wstring &setName, LocalizationXMLFile::set::iterator& curElement) { - std::vector languageNames; + WStringVector languageNames; std::wstring defaultLanguage; int numLocales = plLocalization::GetNumLocales(); @@ -788,9 +788,9 @@ mapT &pfLocalizationDataMgr::pf3PartMap::operator[](const std::wstring &ke //// getAgeList() //////////////////////////////////////////////////// template -std::vector pfLocalizationDataMgr::pf3PartMap::getAgeList() +WStringVector pfLocalizationDataMgr::pf3PartMap::getAgeList() { - std::vector retVal; + WStringVector retVal; typename ThreePartMap::iterator curAge; for (curAge = fData.begin(); curAge != fData.end(); curAge++) @@ -802,9 +802,9 @@ std::vector pfLocalizationDataMgr::pf3PartMap::getAgeList() //// getSetList() //////////////////////////////////////////////////// template -std::vector pfLocalizationDataMgr::pf3PartMap::getSetList(const std::wstring & age) +WStringVector pfLocalizationDataMgr::pf3PartMap::getSetList(const std::wstring & age) { - std::vector retVal; + WStringVector retVal; typename std::map >::iterator curSet; if (fData.find(age) == fData.end()) @@ -819,9 +819,9 @@ std::vector pfLocalizationDataMgr::pf3PartMap::getSetList(co //// getNameList() /////////////////////////////////////////////////// template -std::vector pfLocalizationDataMgr::pf3PartMap::getNameList(const std::wstring & age, const std::wstring & set) +WStringVector pfLocalizationDataMgr::pf3PartMap::getNameList(const std::wstring & age, const std::wstring & set) { - std::vector retVal; + WStringVector retVal; typename std::map::iterator curName; if (fData.find(age) == fData.end()) @@ -898,10 +898,10 @@ std::wstring pfLocalizationDataMgr::IGetCurrentLanguageName() //// IGetAllLanguageNames //////////////////////////////////////////// -std::vector pfLocalizationDataMgr::IGetAllLanguageNames() +WStringVector pfLocalizationDataMgr::IGetAllLanguageNames() { int numLocales = plLocalization::GetNumLocales(); - std::vector retVal; + WStringVector retVal; for (int curLocale = 0; curLocale <= numLocales; curLocale++) { @@ -1005,14 +1005,14 @@ void pfLocalizationDataMgr::IWriteText(const std::string & filename, const std:: fileData += L"\n"; fileData += L"\t\n"; - std::vector setNames = GetSetList(ageName); + WStringVector setNames = GetSetList(ageName); for (int curSet = 0; curSet < setNames.size(); curSet++) { setEmpty = true; // so far, this set is empty std::wstring setCode = L""; setCode += L"\t\t\n"; - std::vector elementNames = GetElementList(ageName, setNames[curSet]); + WStringVector elementNames = GetElementList(ageName, setNames[curSet]); for (int curElement = 0; curElement < elementNames.size(); curElement++) { setCode += L"\t\t\t\n"; @@ -1151,32 +1151,11 @@ pfLocalizedString pfLocalizationDataMgr::GetSpecificElement(const std::wstring & return retVal; } -//// GetAgeList ////////////////////////////////////////////////////// - -std::vector pfLocalizationDataMgr::GetAgeList() -{ - return fLocalizedElements.getAgeList(); -} - -//// GetSetList ////////////////////////////////////////////////////// - -std::vector pfLocalizationDataMgr::GetSetList(const std::wstring & ageName) -{ - return fLocalizedElements.getSetList(ageName); -} - -//// GetElementList ////////////////////////////////////////////////// - -std::vector pfLocalizationDataMgr::GetElementList(const std::wstring & ageName, const std::wstring & setName) -{ - return fLocalizedElements.getNameList(ageName, setName); -} - //// GetLanguages //////////////////////////////////////////////////// -std::vector pfLocalizationDataMgr::GetLanguages(const std::wstring & ageName, const std::wstring & setName, const std::wstring & elementName) +WStringVector pfLocalizationDataMgr::GetLanguages(const std::wstring & ageName, const std::wstring & setName, const std::wstring & elementName) { - std::vector retVal; + WStringVector retVal; std::wstring key = ageName + L"." + setName + L"." + elementName; if (fLocalizedElements.exists(key)) { @@ -1296,8 +1275,8 @@ bool pfLocalizationDataMgr::DeleteElement(const std::wstring & name) void pfLocalizationDataMgr::WriteDatabaseToDisk(const std::string & path) { // first, write the styles and panel settings to styles.sub - std::vector ageNames = GetAgeList(); - std::vector languageNames = IGetAllLanguageNames(); + WStringVector ageNames = GetAgeList(); + WStringVector languageNames = IGetAllLanguageNames(); for (int curAge = 0; curAge < ageNames.size(); curAge++) { for (int curLanguage = 0; curLanguage < languageNames.size(); curLanguage++) @@ -1319,41 +1298,27 @@ void pfLocalizationDataMgr::WriteDatabaseToDisk(const std::string & path) void pfLocalizationDataMgr::OutputTreeToLog() { - std::vector ages = GetAgeList(); + WStringVector ages = GetAgeList(); fLog->AddLine("\n"); fLog->AddLine("Localization tree:\n"); - for (int i = 0; i < ages.size(); i++) + for (WStringVector::iterator i = ages.begin(); i != ages.end(); ++i) { - char *ageName = hsWStringToString(ages[i].c_str()); - std::string temp = ageName; - delete [] ageName; - - temp = "\t" + temp + "\n"; - fLog->AddLine(temp.c_str()); + std::wstring age = *i; + fLog->AddLineF("\t%S", age.c_str()); - std::vector sets = GetSetList(ages[i]); - - for (int j = 0; j < sets.size(); j++) + WStringVector sets = GetSetList(age); + for (WStringVector::iterator j = sets.begin(); j != sets.end(); ++j) { - char *setName = hsWStringToString(sets[j].c_str()); - std::string temp = setName; - delete [] setName; - - temp = "\t\t" + temp + "\n"; - fLog->AddLine(temp.c_str()); + std::wstring set = (*j); + fLog->AddLineF("\t\t%S", set.c_str()); - std::vector names = GetElementList(ages[i], sets[j]); - - for (int k = 0; k < names.size(); k++) + WStringVector names = GetElementList(age, set); + for (WStringVector::iterator k = names.begin(); k != names.end(); ++k) { - char *elemName = hsWStringToString(names[k].c_str()); - std::string temp = elemName; - delete [] elemName; - - temp = "\t\t\t" + temp + "\n"; - fLog->AddLine(temp.c_str()); + std::wstring name = (*k); + fLog->AddLineF("\t\t\t%S", name.c_str()); } } } diff --git a/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.h b/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.h index 533b77b2..51a73210 100644 --- a/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.h +++ b/Sources/Plasma/FeatureLib/pfLocalizationMgr/pfLocalizationDataMgr.h @@ -62,6 +62,9 @@ struct LocElementInfo; struct LocSetInfo; struct LocAgeInfo; +// Temporary helper (until everything is plString-ized) +typedef std::vector WStringVector; + class pfLocalizationDataMgr { private: @@ -90,9 +93,9 @@ protected: mapT &operator[](const std::wstring &key); // returns the item referenced by the key (and creates if necessary) - std::vector getAgeList(); // returns a list of all ages in this map - std::vector getSetList(const std::wstring & age); // returns a list of all sets in the specified age - std::vector getNameList(const std::wstring & age, const std::wstring & set); + WStringVector getAgeList(); // returns a list of all ages in this map + WStringVector getSetList(const std::wstring & age); // returns a list of all sets in the specified age + WStringVector getNameList(const std::wstring & age, const std::wstring & set); }; LocalizationDatabase *fDatabase; @@ -107,7 +110,7 @@ protected: localizedElement ICreateLocalizedElement(); // ease of use function that creates a basic localized element object std::wstring IGetCurrentLanguageName(); // get the name of the current language - std::vector IGetAllLanguageNames(); + WStringVector IGetAllLanguageNames(); void IConvertElement(LocElementInfo *elementInfo, const std::wstring & curPath); void IConvertSet(LocSetInfo *setInfo, const std::wstring & curPath); @@ -131,10 +134,13 @@ public: pfLocalizedString GetElement(const std::wstring & name); pfLocalizedString GetSpecificElement(const std::wstring & name, const std::wstring & languageName); - std::vector GetAgeList(); - std::vector GetSetList(const std::wstring & ageName); - std::vector GetElementList(const std::wstring & ageName, const std::wstring & setName); - std::vector GetLanguages(const std::wstring & ageName, const std::wstring & setName, const std::wstring & elementName); + WStringVector GetAgeList() { return fLocalizedElements.getAgeList(); } + WStringVector GetSetList(const std::wstring & ageName) { return fLocalizedElements.getSetList(ageName); } + WStringVector GetElementList(const std::wstring & ageName, const std::wstring & setName) + { + return fLocalizedElements.getNameList(ageName, setName); + } + WStringVector GetLanguages(const std::wstring & ageName, const std::wstring & setName, const std::wstring & elementName); std::wstring GetElementXMLData(const std::wstring & name, const std::wstring & languageName); std::wstring GetElementPlainTextData(const std::wstring & name, const std::wstring & languageName);