aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBernhard Rosenkraenzer <bero@arklinux.org>2001-01-18 20:25:36 +0000
committerAleix Pol <aleixpol@kde.org>2014-04-26 14:11:11 +0200
commit05c9ae907b70f1ab149b6d48f9dd573ce8ae729b (patch)
tree6ac029895a7a5b20cb1c1780d81146743c2149cb /src
parent4ee20d573d7fc2f81edd305cb8285a3906ea046b (diff)
downloadkconfig-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')
-rw-r--r--src/kreadconfig/Makefile.am11
-rw-r--r--src/kreadconfig/kreadconfig.cpp74
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;
+ }
+}