From ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kconf_update/Mainpage.dox | 31 ++ kconf_update/Makefile.am | 33 ++ kconf_update/README.kconf_update | 251 ++++++++++ kconf_update/kconf_update.cpp | 959 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 1274 insertions(+) create mode 100644 kconf_update/Mainpage.dox create mode 100644 kconf_update/Makefile.am create mode 100644 kconf_update/README.kconf_update create mode 100644 kconf_update/kconf_update.cpp (limited to 'kconf_update') diff --git a/kconf_update/Mainpage.dox b/kconf_update/Mainpage.dox new file mode 100644 index 000000000..77d486cea --- /dev/null +++ b/kconf_update/Mainpage.dox @@ -0,0 +1,31 @@ +/** @mainpage ./kconf_update + +kconf_update is a tool designed to update config files. Over time applications +sometimes need to rearrange the way configuration options are stored. Since +such an update shouldn't influence the configuration options that the user +has selected, the application must take care that the options stored in the +old way will still be honored. + +What used to happen is that the application looks up both the old and the +new configuration option and then decides which one to use. This method has +several drawbacks: +- The application may need to read more configuration files than strictly + needed, resulting in a slower startup. +- The application becomes bigger with code that will only be used once. + +kconf_update addresses these problems by offering a framework to update +configuration files without adding code to the application itself. + +See the README file for more information. + +@authors +Waldo Bastian \ + +@maintainers +[Unknown/None] + +@licenses +@lgpl + +*/ +// vim:ts=4:sw=4:expandtab:filetype=doxygen diff --git a/kconf_update/Makefile.am b/kconf_update/Makefile.am new file mode 100644 index 000000000..334ffdb18 --- /dev/null +++ b/kconf_update/Makefile.am @@ -0,0 +1,33 @@ +# This file is part of the KDE libraries +# Copyright (C) 2001 Waldo Bastian + +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. + +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. + +# You should have received a copy of the GNU Library General Public License +# along with this library; see the file COPYING.LIB. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + +INCLUDES= -I../kded $(all_includes) + +bin_PROGRAMS = +lib_LTLIBRARIES = +kdeinit_LTLIBRARIES = kconf_update.la + +kconf_update_la_SOURCES = kconf_update.cpp +kconf_update_la_LIBADD = $(LIB_KDECORE) +kconf_update_la_LDFLAGS = $(all_libraries) -module -avoid-version + +METASOURCES = AUTO + +# Internal +# noinst_HEADERS = kconf_update.h + diff --git a/kconf_update/README.kconf_update b/kconf_update/README.kconf_update new file mode 100644 index 000000000..14d50ad66 --- /dev/null +++ b/kconf_update/README.kconf_update @@ -0,0 +1,251 @@ +README kconf_update + +Version: 1.1 +Author: Waldo Bastian , + +What it does +============ + +kconf_update is a tool designed to update config files. Over time applications +sometimes need to rearrange the way configuration options are stored. Since +such an update shouldn't influence the configuration options that the user +has selected, the application must take care that the options stored in the +old way will still be honored. + +What used to happen is that the application looks up both the old and the +new configuration option and then decides which one to use. This method has +several drawbacks: +* The application may need to read more configuration files than strictly +needed, resulting in a slower startup. +* The application becomes bigger with code that will only be used once. + +kconf_update addresses these problems by offering a framework to update +configuration files without adding code to the application itself. + + +How it works +============ + +Applications can install so called "update files" under +$KDEDIR/share/apps/kconf_update. An update file has ".upd" as extension and +contains instructions for transferring/converting configuration information +from one place to another. + +Updating the configuration happens automatically, either when KDE gets started +or when kded detects a new update file in the above mentioned location. + +Update files are separated into sections. Each section has an Id. When a +section describing a configuration change has been applied, the Id will be +stored in the file "kconf_updaterc". This information is used to make sure +that a configuration update is only performed once. + +If you overwrite an existing update file with a new version that contains a +new section, only the update instructions from this extra section will be +performed. + +File format of the update file +============================== + +Empty lines or lines that start with '#' are considered comments. +Commas (,) are used to seperate fields and may not occur as part +of any field and all of the keywords are case-sensitive, i.e. you +cannot say "key" instead of "Key" for example. + +For the rest the file is parsed and executed sequentially from top to bottom. +Each line can contain one entry. The following entries are recognized: + + +Id= + +With identifying the group of update entries that follows. Once a group +of entries have been applied, their is stored and this group of entries +will not be applied again. + + +File=, +File= + +Specifies that configuration information is read from and written +to . If you only specify , the information is read from +as well as written to . + +Script=