From 05c9ae907b70f1ab149b6d48f9dd573ce8ae729b Mon Sep 17 00:00:00 2001 From: Bernhard Rosenkraenzer Date: Thu, 18 Jan 2001 20:25:36 +0000 Subject: Don't apply our settings to GTK if the user didn't want it. svn path=/trunk/kdebase/src/kreadconfig/; revision=78898 --- src/kreadconfig/Makefile.am | 11 ++++++ src/kreadconfig/kreadconfig.cpp | 74 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 src/kreadconfig/Makefile.am create mode 100644 src/kreadconfig/kreadconfig.cpp (limited to 'src') 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 + * + * 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 +#include +#include +#include +#include +#include +#include +static KCmdLineOptions options[] = +{ + { "group ", I18N_NOOP("Group to look in"), "KDE" }, + { "key ", I18N_NOOP("Key to look for"), 0 }, + { "default ", I18N_NOOP("Default value"), 0 }, + { "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; + } +} -- cgit v1.2.1