/** * This interprets the "-" options for reserved parameters * * @param name "-OPTIONNAME" * @param value Value of the option, if supplied (-name=value) */ void UserInterface::EvaluateOption(const QString name, const QString value) { Preference &p = Preference::Preferences(); if(name == "-GUI") { p_interactive = true; } else if(name == "-NOGUI") { p_interactive = false; } else if(name == "-BATCHLIST") { LoadBatchList(value); } else if(name == "-LAST") { PvlGroup &grp = p.findGroup("UserInterface", Isis::Pvl::Traverse); QString histFile = grp["HistoryPath"][0] + "/" + FileName( p_progName).name() + ".par"; LoadHistory(histFile); } else if(name == "-RESTORE") { LoadHistory(value); } else if(name == "-WEBHELP") { Isis::PvlGroup &pref = Isis::Preference::Preferences().findGroup( "UserInterface"); QString command = pref["GuiHelpBrowser"]; command += " $ISISROOT/doc/Application/presentation/Tabbed/"; command += FileName(p_progName).name() + "/" + FileName( p_progName).name() + ".html"; ProgramLauncher::RunSystemCommand(command); exit(0); } else if(name == "-INFO") { p_info = true; // check for filename and set value if(value.size() != 0) { p_infoFileName = value; } } else if(name == "-HELP") { if(value.size() == 0) { Pvl params; params.setTerminator(""); for(int k = 0; k < NumGroups(); k ++) { for(int j = 0; j < NumParams(k); j ++) { if(ParamListSize(k, j) == 0) { params += PvlKeyword(ParamName(k, j), ParamDefault(k, j)); } else { PvlKeyword key(ParamName(k, j)); QString def = ParamDefault(k, j); for(int l = 0; l < ParamListSize(k, j); l ++) { if(ParamListValue(k, j, l) == def) key.addValue("*" + def); else key.addValue(ParamListValue(k, j, l)); } params += key; } } } cout << params; } else { Pvl param; param.setTerminator(""); QString key = value; for(int k = 0; k < NumGroups(); k ++) { for(int j = 0; j < NumParams(k); j ++) { if(ParamName(k, j) == key) { param += PvlKeyword("ParameterName", key); param += PvlKeyword("Brief", ParamBrief(k, j)); param += PvlKeyword("Type", ParamType(k, j)); if(PixelType(k, j) != "") { param += PvlKeyword("PixelType", PixelType(k, j)); } if(ParamInternalDefault(k, j) != "") { param += PvlKeyword("InternalDefault", ParamInternalDefault(k, j)); } else param += PvlKeyword("Default", ParamDefault( k, j)); if(ParamMinimum(k, j) != "") { if(ParamMinimumInclusive(k, j) == "YES") { param += PvlKeyword("GreaterThanOrEqual", ParamMinimum(k, j)); } else { param += PvlKeyword("GreaterThan", ParamMinimum(k, j)); } } if(ParamMaximum(k, j) != "") { if(ParamMaximumInclusive(k, j) == "YES") { param += PvlKeyword("LessThanOrEqual", ParamMaximum(k, j)); } else { param += PvlKeyword("LessThan", ParamMaximum(k, j)); } } if(ParamLessThanSize(k, j) > 0) { PvlKeyword key("LessThan"); for(int l = 0; l < ParamLessThanSize(k, j); l ++) { key.addValue(ParamLessThan(k, j, l)); } param += key; } if(ParamLessThanOrEqualSize(k, j) > 0) { PvlKeyword key("LessThanOrEqual"); for(int l = 0; l < ParamLessThanOrEqualSize( k, j); l ++) { key.addValue( ParamLessThanOrEqual(k, j, l)); } param += key; } if(ParamNotEqualSize(k, j) > 0) { PvlKeyword key("NotEqual"); for(int l = 0; l < ParamNotEqualSize(k, j); l ++) { key.addValue(ParamNotEqual(k, j, l)); } param += key; } if(ParamGreaterThanSize(k, j) > 0) { PvlKeyword key("GreaterThan"); for(int l = 0; l < ParamGreaterThanSize(k, j); l ++) { key.addValue(ParamGreaterThan(k, j, l)); } param += key; } if(ParamGreaterThanOrEqualSize(k, j) > 0) { PvlKeyword key("GreaterThanOrEqual"); for(int l = 0; l < ParamGreaterThanOrEqualSize(k, j); l ++) { key.addValue(ParamGreaterThanOrEqual(k, j, l)); } param += key; } if(ParamIncludeSize(k, j) > 0) { PvlKeyword key("Inclusions"); for(int l = 0; l < ParamIncludeSize(k, j); l ++) { key.addValue(ParamInclude(k, j, l)); } param += key; } if(ParamExcludeSize(k, j) > 0) { PvlKeyword key("Exclusions"); for(int l = 0; l < ParamExcludeSize(k, j); l ++) { key.addValue(ParamExclude(k, j, l)); } param += key; } if(ParamOdd(k, j) != "") { param += PvlKeyword("Odd", ParamOdd(k, j)); } if(ParamListSize(k, j) != 0) { for(int l = 0; l < ParamListSize(k, j); l ++) { PvlGroup grp(ParamListValue(k, j, l)); grp += PvlKeyword("Brief", ParamListBrief( k, j, l)); if(ParamListIncludeSize(k, j, l) != 0) { PvlKeyword include("Inclusions"); for(int m = 0; m < ParamListIncludeSize(k, j, l); m ++) { include.addValue(ParamListInclude( k, j, l, m)); } grp += include; } if(ParamListExcludeSize(k, j, l) != 0) { PvlKeyword exclude("Exclusions"); for(int m = 0; m < ParamListExcludeSize(k, j, l); m ++) { exclude.addValue(ParamListExclude( k, j, l, m)); } grp += exclude; } param.addGroup(grp); } } cout << param; } } } } exit(0); } else if(name == "-PID") { p_parentId = toInt(value); } else if(name == "-ERRLIST") { p_errList = value; if(value == "") { QString msg = "-ERRLIST expects a file name"; throw IException(IException::User, msg, _FILEINFO_); } if(FileName(p_errList).fileExists()) { QFile::remove(p_errList); } } else if(name == "-ONERROR") { if(value.toUpper() == "CONTINUE") { p_abortOnError = false; } else if(value.toUpper() == "ABORT") { p_abortOnError = true; } else { QString msg = "[" + value + "] is an invalid value for -ONERROR, options are ABORT or CONTINUE"; throw IException(IException::User, msg, _FILEINFO_); } } else if(name == "-SAVE") { if(value.size() == 0) { p_saveFile = ProgramName() + ".par"; } else { p_saveFile = value; } } else if(name == "-PREFERENCE") { p.Load(value); } else if(name == "-LOG") { if(value.isEmpty()) { p.findGroup("SessionLog")["FileOutput"].setValue("On"); } else { p.findGroup("SessionLog")["FileOutput"].setValue("On"); p.findGroup("SessionLog")["FileName"].setValue(value); } } else if(name == "-VERBOSE") { p.findGroup("SessionLog")["TerminalOutput"].setValue("On"); } // Can't have a parent id and the gui if(p_parentId > 0 && p_interactive) { QString msg = "-GUI and -PID are incompatible arguments"; throw IException(IException::Unknown, msg, _FILEINFO_); } }