diff options
| author | Bernhard Rosenkraenzer <bero@arklinux.org> | 2001-01-18 20:25:36 +0000 | 
|---|---|---|
| committer | Aleix Pol <aleixpol@kde.org> | 2014-04-26 14:11:11 +0200 | 
| commit | 05c9ae907b70f1ab149b6d48f9dd573ce8ae729b (patch) | |
| tree | 6ac029895a7a5b20cb1c1780d81146743c2149cb /src/kreadconfig/kreadconfig.cpp | |
| parent | 4ee20d573d7fc2f81edd305cb8285a3906ea046b (diff) | |
| download | kconfig-05c9ae907b70f1ab149b6d48f9dd573ce8ae729b.tar.gz kconfig-05c9ae907b70f1ab149b6d48f9dd573ce8ae729b.tar.bz2 | |
Don't apply our settings to GTK if the user didn't want it.
svn path=/trunk/kdebase/src/kreadconfig/; revision=78898
Diffstat (limited to 'src/kreadconfig/kreadconfig.cpp')
| -rw-r--r-- | src/kreadconfig/kreadconfig.cpp | 74 | 
1 files changed, 74 insertions, 0 deletions
| diff --git a/src/kreadconfig/kreadconfig.cpp b/src/kreadconfig/kreadconfig.cpp new file mode 100644 index 00000000..15dfad24 --- /dev/null +++ b/src/kreadconfig/kreadconfig.cpp @@ -0,0 +1,74 @@ +/* Read KGlobal::config() entries - for use in shell scripts. + * (c) 2001 Red Hat, Inc. + * Programmed by Bernhard Rosenkraenzer <bero@redhat.com> + *  + * If --type is specified as bool, the return value is 0 if the value + * is set, 1 if it isn't set. There is no output. + *  + * If --type is specified as num, the return value matches the value + * of the key. There is no output. + *  + * If --type is not set, the value of the key is simply printed to stdout. + *  + * Usage examples: + *	if kreadconfig --group KDE --key macStyle --type bool; then + *		echo "We're using Mac-Style menus." + *	else + *		echo "We're using normal menus." + *	fi + *	 + *	TRASH=`kreadconfig --group Paths --key Trash` + *	if test -n "$TRASH"; then + *		mv someFile "$TRASH" + *	else + *		rm someFile + *	fi + */ +#include <kconfig.h> +#include <kglobal.h> +#include <kapp.h> +#include <kcmdlineargs.h> +#include <klocale.h> +#include <kaboutdata.h> +#include <iostream> +static KCmdLineOptions options[] = +{ +	{ "group <group>", I18N_NOOP("Group to look in"), "KDE" }, +        { "key <key>", I18N_NOOP("Key to look for"), 0 }, +        { "default <default>", I18N_NOOP("Default value"), 0 }, +	{ "type <type>", I18N_NOOP("Type of variable"), 0 }, +	{ 0, 0, 0 } +}; +int main(int argc, char **argv) +{ +	KAboutData aboutData("kreadconfig", I18N_NOOP("KReadConfig"), +		"1.0.0", +		"Read KGlobal::config() entries - for use in shell scripts", +		KAboutData::License_GPL, +		"(c) 2001 Red Hat, Inc."); +	aboutData.addAuthor("Bernhard Rosenkraenzer", 0, "bero@redhat.com"); +	KCmdLineArgs::init(argc, argv, &aboutData); +	KCmdLineArgs::addCmdLineOptions(options); +	KCmdLineArgs *args=KCmdLineArgs::parsedArgs(); + +	QString group=QString::fromLatin1(args->getOption("group")); +	QString key=QString::fromLatin1(args->getOption("key")); +	QCString dflt=args->getOption("default"); +	QCString type=args->getOption("type").lower(); +	 +	KApplication app; + +	KConfig *konfig=KGlobal::config(); +	konfig->setGroup(group); +	if(type=="bool") { +		dflt=dflt.lower(); +		bool def=(dflt=="true" || dflt=="on" || dflt=="yes" || dflt=="1"); +		return !konfig->readBoolEntry(key, def); +	} else if(type=="num") { +		return konfig->readLongNumEntry(key, dflt.toLong()); +	} else { +		/* Assume it's a string... */ +		cout << konfig->readEntry(key, dflt).latin1() << endl; +		return 0; +	} +} | 
