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 | |
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
-rw-r--r-- | src/kreadconfig/Makefile.am | 11 | ||||
-rw-r--r-- | src/kreadconfig/kreadconfig.cpp | 74 |
2 files changed, 85 insertions, 0 deletions
diff --git a/src/kreadconfig/Makefile.am b/src/kreadconfig/Makefile.am new file mode 100644 index 00000000..7362ab6f --- /dev/null +++ b/src/kreadconfig/Makefile.am @@ -0,0 +1,11 @@ +AM_CPPFLAGS = -DQT_NO_CAST_ASCII -DQT_CLEAN_NAMESPACE -DQT_NO_COMPAT + +INCLUDES = $(all_includes) +LDFLAGS = $(all_libraries) $(KDE_RPATH) +LDADD = $(LIB_KDEUI) + +bin_PROGRAMS = kreadconfig +kreadconfig_SOURCES = kreadconfig.cpp + +messages: + $(XGETTEXT) $(kreadconfig_SOURCES) -o $(podir)/kreadconfig.pot 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; + } +} |