36 if(!snTemp.isEmpty()) {
67 return Compose(p, def2filename);
77 static PvlGroup dataDir(Preference::Preferences().findGroup(
"DataDirectory"));
80 static QString missionTransFile = (QString) dataDir[
"base"] +
"/translations/MissionName2DataDir.trn";
82 missionXlater.SetLabel(label);
83 QString mission = missionXlater.
Translate(
"MissionName");
86 static QString instTransFile = (QString) dataDir[
"base"] +
"/translations/Instruments.trn";
88 instrumentXlater.SetLabel(label);
89 QString instrument = instrumentXlater.
Translate(
"InstrumentName");
96 static std::map<QString, std::pair<PvlTranslationManager, PvlKeyword> > missionTranslators;
97 QString key = mission +
"_" + instrument;
98 std::map<QString, std::pair<PvlTranslationManager, PvlKeyword> >::iterator
99 translationIterator = missionTranslators.find(key);
101 if(translationIterator == missionTranslators.end()) {
103 FileName snFile((QString) dataDir[mission] +
"/translations/" +
104 instrument +
"SerialNumber????.trn");
105 snFile = snFile.highestVersion();
108 Pvl translation(snFile.expanded());
110 if(translation.hasKeyword(
"ObservationKeys")) {
111 observationKeys = translation[
"ObservationKeys"];
115 missionTranslators.insert(
116 std::pair<QString, std::pair<PvlTranslationManager, PvlKeyword> >
117 (key, std::pair<PvlTranslationManager, PvlKeyword>(
PvlTranslationManager(snFile.expanded()), observationKeys))
120 translationIterator = missionTranslators.find(key);
123 translationIterator->second.first.SetLabel(label);
124 translationIterator->second.first.Auto(outLabel);
128 if(!translationIterator->second.second.name().isEmpty()) {
129 snGroup += translationIterator->second.second;
147 std::vector<QString> sn;
148 for(
int i = 0; i < list.
Size(); i++) {