KDECore
kcmdlineargs.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KCMDLINEARGS_H
00020 #define KCMDLINEARGS_H
00021
00022 #include <kdecore_export.h>
00023 #include <QtCore/QBool>
00024
00025 #include <klocale.h>
00026
00027 template <class T> class QList;
00028 class QString;
00029 class QStringList;
00030 class QByteArray;
00031 class QDataStream;
00032 class KUrl;
00033
00034 class KCmdLineArgs;
00035 class KCmdLineArgsPrivate;
00036 class KCmdLineArgsStatic;
00037 class KCmdLineOptionsPrivate;
00038
00048 class KDECORE_EXPORT KCmdLineOptions
00049 {
00050 friend class KCmdLineArgs;
00051 friend class KCmdLineArgsStatic;
00052
00053 public:
00057 KCmdLineOptions ();
00058
00062 KCmdLineOptions (const KCmdLineOptions &options);
00063
00067 KCmdLineOptions& operator= (const KCmdLineOptions &options);
00068
00072 ~KCmdLineOptions ();
00073
00094 KCmdLineOptions &add (const QByteArray &name,
00095 const KLocalizedString &description = KLocalizedString(),
00096 const QByteArray &defaultValue = QByteArray());
00097
00103 KCmdLineOptions &add (const KCmdLineOptions &options);
00104
00105 private:
00106
00107 KCmdLineOptionsPrivate *d;
00108 };
00109
00110 class KCmdLineArgsList;
00111 class KApplication;
00112 class KAboutData;
00113
00254 class KDECORE_EXPORT KCmdLineArgs
00255 {
00256 friend class KApplication;
00257 friend class KCmdLineArgsList;
00258 friend class KCmdLineArgsStatic;
00259 public:
00260
00261
00262 enum StdCmdLineArg {
00263 CmdLineArgQt = 0x01,
00264 CmdLineArgKDE = 0x02,
00265 CmdLineArgsMask=0x03,
00266 CmdLineArgNone = 0x00,
00267 Reserved = 0xff
00268 };
00269 Q_DECLARE_FLAGS(StdCmdLineArgs, StdCmdLineArg)
00288 static void init(int argc, char **argv,
00289 const QByteArray &appname,
00290 const QByteArray &catalog,
00291 const KLocalizedString &programName,
00292 const QByteArray &version,
00293 const KLocalizedString &description = KLocalizedString(),
00294 StdCmdLineArgs stdargs=StdCmdLineArgs(CmdLineArgQt|CmdLineArgKDE));
00295
00308 static void init(int _argc,
00309 char **_argv,
00310 const KAboutData *about,
00311 StdCmdLineArgs stdargs=StdCmdLineArgs(CmdLineArgQt|CmdLineArgKDE));
00325 static void init(const KAboutData *about);
00326
00330 static void addStdCmdLineOptions(StdCmdLineArgs stdargs=StdCmdLineArgs(CmdLineArgQt|CmdLineArgKDE));
00331
00395 static void addCmdLineOptions(const KCmdLineOptions &options,
00396 const KLocalizedString &name = KLocalizedString(),
00397 const QByteArray &id = QByteArray(),
00398 const QByteArray &afterId = QByteArray());
00399
00409 static KCmdLineArgs *parsedArgs(const QByteArray &id = QByteArray());
00410
00420 static QString cwd();
00421
00426 static QString appName();
00427
00435 static void usage(const QByteArray &id = QByteArray());
00436
00441 static void usageError(const QString &error);
00442
00449 static void enable_i18n();
00450
00451
00452
00453
00472 QString getOption(const QByteArray &option) const;
00473
00490 QStringList getOptionList(const QByteArray &option) const;
00491
00506 bool isSet(const QByteArray &option) const;
00507
00514 int count() const;
00515
00524 QString arg(int n) const;
00525
00539 KUrl url(int n) const;
00540
00547 static KUrl makeURL( const QByteArray &urlArg );
00548
00555 static void setCwd( const QByteArray &cwd );
00556
00560 void clear();
00561
00569 static void reset();
00570
00574 static void loadAppArgs( QDataStream &);
00575
00581 static void saveAppArgs( QDataStream &);
00582
00586 static void addTempFileOption();
00587
00588
00589
00593 static bool isTempFileSet();
00594
00600 static int &qtArgc();
00601
00610 static char **qtArgv();
00611
00615 static const KAboutData *aboutData();
00616
00617 protected:
00622 KCmdLineArgs( const KCmdLineOptions &_options, const KLocalizedString &_name,
00623 const QByteArray &_id);
00624
00632 ~KCmdLineArgs();
00633
00634 private:
00635
00651 static void initIgnore(int _argc, char **_argv, const QByteArray &_appname);
00652
00653 KCmdLineArgsPrivate *const d;
00654 };
00655
00656 Q_DECLARE_OPERATORS_FOR_FLAGS(KCmdLineArgs::StdCmdLineArgs)
00657
00658 #endif
00659