3 #include <QApplication>
18 Option::Option(const QString &n, const Type &t, const QString &s,
27 void Option::set(const QString &n, const Type &t, const QString &s,
36 QString Option::getName() { return name; }
37 QString Option::getShort() { return sName; }
38 QString Option::getLong() { return lName; }
39 Option::Type Option::getType() { return type; }
40 void Option::setArg(const QString &s) { sarg = s; }
41 QString Option::getArg() { return sarg; }
42 void Option::setActive() { active = true; }
43 bool Option::isActive() { return active; }
45 ///////////////////////////////////////////////////////////////
50 QStringList arglist = qApp->arguments();
53 progname = arglist.first();
56 // Work through rest of options
59 for (i = 0; i < arglist.size(); ++i) {
61 if (arglist[i].left(1) == "-") {
62 // Compare given option to all defined options
63 for (int j = 0; j < optlist.size(); ++j) {
64 if (arglist.at(i) == optlist.value(j).getShort() ||
65 arglist.at(i) == optlist.value(j).getLong()) {
66 optlist[j].setActive();
68 if (optlist[j].getType() == Option::String) {
70 if (i == arglist.size()) {
71 qWarning("Error: argument to option missing");
74 optlist[j].setArg(arglist[i]);
81 qWarning("Error: Unknown argument ");
86 filelist.append(arglist[i]);
91 void Options::add(Option o) { optlist.append(o); }
93 void Options::add(const QString &n, const Option::Type &t = Option::Switch,
94 const QString &s = "", const QString &l = "")
101 void Options::setHelpText(const QString &s) { helptext = s; }
103 QString Options::getHelpText() { return helptext; }
105 QString Options::getProgramName() { return progname; }
107 QStringList Options::getFileList() { return filelist; }
109 bool Options::isOn(const QString &s)
111 for (int i = 0; i < optlist.size(); ++i)
112 if (optlist[i].getName() == s && optlist[i].isActive())
117 QString Options::getArg(const QString &s)
119 for (int i = 0; i < optlist.size(); ++i)
120 if (optlist[i].getName() == s)
121 return optlist[i].getArg();