CTK 0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
Loading...
Searching...
No Matches
ctkCommandLineParser.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Library: CTK
4
5 Copyright (c) Kitware Inc.
6
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0.txt
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18
19=========================================================================*/
20
21#ifndef __ctkCommandLineParser_h
22#define __ctkCommandLineParser_h
23
24// Qt includes
25#include <QString>
26#include <QStringList>
27#include <QVariant>
28
29class QSettings;
30
31// CTK includes
32#include "ctkCoreExport.h"
33
62class CTK_CORE_EXPORT ctkCommandLineParser : public QObject
63{
64 Q_OBJECT
65 Q_PROPERTY(QString errorString READ errorString)
66 Q_PROPERTY(QStringList unparsedArguments READ unparsedArguments)
67 Q_PROPERTY(bool settingsEnabled READ settingsEnabled)
68
69public:
70
71 typedef QObject Superclass;
72
84 ctkCommandLineParser(QObject* newParent = 0);
85
101 ctkCommandLineParser(QSettings* settings, QObject* newParent = 0);
102
104
125 QHash<QString, QVariant> parseArguments(const QStringList &arguments, bool* ok = 0);
126
131 QHash<QString, QVariant> parseArguments(int argc, char** argv, bool* ok = 0);
132
140 QString errorString() const;
141
151 const QStringList& unparsedArguments() const;
152
163 Q_INVOKABLE bool argumentAdded(const QString& argument) const;
164
173 Q_INVOKABLE bool argumentParsed(const QString& argument) const;
174
219 void addArgument(const QString& longarg, const QString& shortarg,
220 QVariant::Type type, const QString& argHelp = QString(),
221 const QVariant& defaultValue = QVariant(),
222 bool ignoreRest = false, bool deprecated = false);
223
236 void addDeprecatedArgument(const QString& longarg, const QString& shortarg,
237 const QString& argHelp);
238
253 bool setExactMatchRegularExpression(const QString& argument, const QString& expression,
254 const QString& exactMatchFailedMessage);
255
261 int fieldWidth() const;
262
271 QString helpText(const char charPad = ' ') const;
272
297 void setArgumentPrefix(const QString& longPrefix, const QString& shortPrefix);
298
309 void beginGroup(const QString& description);
310
316 void endGroup();
317
339 void enableSettings(const QString& disableLongArg = "",
340 const QString& disableShortArg = "");
341
353 void mergeSettings(bool merge);
354
362 bool settingsEnabled() const;
363
364
371 void setStrictModeEnabled(bool strictMode);
372
373private:
374 class ctkInternal;
375 ctkInternal * Internal;
376};
377#endif
QString helpText(const char charPad=' ') const
void addArgument(const QString &longarg, const QString &shortarg, QVariant::Type type, const QString &argHelp=QString(), const QVariant &defaultValue=QVariant(), bool ignoreRest=false, bool deprecated=false)
QHash< QString, QVariant > parseArguments(int argc, char **argv, bool *ok=0)
Q_INVOKABLE bool argumentAdded(const QString &argument) const
bool setExactMatchRegularExpression(const QString &argument, const QString &expression, const QString &exactMatchFailedMessage)
void mergeSettings(bool merge)
void setArgumentPrefix(const QString &longPrefix, const QString &shortPrefix)
void addDeprecatedArgument(const QString &longarg, const QString &shortarg, const QString &argHelp)
QString errorString() const
ctkCommandLineParser(QSettings *settings, QObject *newParent=0)
void setStrictModeEnabled(bool strictMode)
ctkCommandLineParser(QObject *newParent=0)
int fieldWidth() const
Q_INVOKABLE bool argumentParsed(const QString &argument) const
const QStringList & unparsedArguments() const
QHash< QString, QVariant > parseArguments(const QStringList &arguments, bool *ok=0)
void enableSettings(const QString &disableLongArg="", const QString &disableShortArg="")
void beginGroup(const QString &description)
bool settingsEnabled() const