aboutsummaryrefslogtreecommitdiff
path: root/tier1/kconfig/DESIGN
diff options
context:
space:
mode:
authorJenkins CI <null@kde.org>2013-12-18 00:45:18 +0000
committerJenkins CI <null@kde.org>2013-12-18 00:45:18 +0000
commit867e7a50e6396338ab4fe9aa22ad141e4cd344d2 (patch)
tree1d6f8d6c912fa04dc268b5580bcfe696fa538743 /tier1/kconfig/DESIGN
parentc38b88497a833e482e6892b72c8f52adec6de857 (diff)
downloadkconfig-867e7a50e6396338ab4fe9aa22ad141e4cd344d2.tar.gz
kconfig-867e7a50e6396338ab4fe9aa22ad141e4cd344d2.tar.bz2
Move kconfig code to the root directory.
Diffstat (limited to 'tier1/kconfig/DESIGN')
-rw-r--r--tier1/kconfig/DESIGN106
1 files changed, 0 insertions, 106 deletions
diff --git a/tier1/kconfig/DESIGN b/tier1/kconfig/DESIGN
deleted file mode 100644
index 3cccc1ca..00000000
--- a/tier1/kconfig/DESIGN
+++ /dev/null
@@ -1,106 +0,0 @@
-If you add a major new feature, suggest using it in
-http://techbase.kde.org/Development/Tutorials/KConfig
-
-kconfigdata.h contains definitions of the data formats used by kconfig.
-
-Configuration entries are stored as "KEntry". They are indexed with "KEntryKey".
-The primary store is a "KEntryMap" which is defined as a QMap from "KEntryKey"
-to "KEntry"
-
-KEntry's are stored in order in the KEntryMap. The most significant sort
-criteria is mGroup. This means that all entries who belong in the same group,
-are grouped in the QMap as well.
-
-The start of a group is indicated with a KEntryKey with an empty mKey and a
-dummy KEntry. This allows us to search for the start of the group and then to
-iterate until we end up in another group. That way we will find all entries
-of a certain group.
-
-Entries that are localised with the _current_ locale are stored with bLocal
-set to true. Entries that are localised with another locale are either not
-stored at all (default), or with the localization as part of the key and bRaw
-set to true (when reading a file in order to merge it).
-
-Entries that are being read from a location other than the location to
-which is written back are marked as "default" and will be added both as
-normal entry as well as an entry with the key marked as default.
-
-When the configuration is synced to disk, the current on-disk state is re-read
-into a temporary map, updated with dirty (modified) entries from the
-current config object's entry map and then written back.
-
-
-Note that there is a subtle difference between revertToDefault() and deleteEntry().
-revertToDefault() will change the entry to the default value set by the system
-administrator (Via e.g. $KDEDIR/share/config) or, if no such default was set,
-non-existant.
-deleteEntry() will make the entry non-existant. If if the system administrator
-has specified a default value, the local entry is marked with [$d].
-
-Entries are marked "immutable" if the key is followed by [$i]. This means
-that a user can not override these entries.
-
-
-------------------------------------------------------------------------------
-
-KConfig XT
-==========
-
-My buzzword picker offered KConfig XT ("eXtended Technology") and KConfig NG
-("Next Generation"). Since the planned changes are ment to be evolutionary
-rather than revolutionary, KConfig NG was dropped.
-
-Goals
-=====
-
-* Have the default value for config entries defined in 1 place. Currently it is
-not uncommon to have them defined in three places:
- 1) In the application that reads the setting in order to use it
- 2) In the settings dialog when reading the setting
- 3) In the settings dialog when selecting "Use defaults".
-
-* Provide type-information about config entries to facilate "KConfEdit" like
-tools. Ideally type-information also includes range-information; this is even
-mandatory if enums become an explicit type.
-
-* Facilitate the documentation of config entries.
-
-KCoreConfigSkeleton
- |
- v
- KConfigSkeleton /--< myapp.kcfg
- | /
- |*---------------<
- |kconfig_compiler \
- | \--< myconfig.kcfgc
- v
- MyConfig <-----KConfigDialogManager----> MyConfigWidget *---< myconfigwidget.ui
- uic
-
-KCoreConfigSkeleton/ base class for deriving classes that store application
-KConfigSkeleton: specific options providing type-safety and single-point
- defaults.
-
-MyConfig: An application specific class that offers configuration options
- to the applications via variables or accessor functions and that
- handles type-safety and defaults. MyConfig is just an example
- name, the application developer choses the actual name.
-
-myapp.kcfg: File describing the configuration options used by a specific
- application. myapp.kcfg is just an example name, the application
- developer choses the actual name.
-
-myconfig.kcfgc: Implementation specific code generation instructions
- for the MyConfig class. myconfig.kcfgc is
- just an example name, the application developer
- choses the actual name.
-
-KConfigDialogManager: Class that links widgets in a dialog up with their
- corresponding confguration options in a configuration
- object derived from KConfigSkeleton.
-
-MyConfigWidget: Dialog generated from a .ui description file. Widget names
- in the dialog that start with "kcfg_" refer to configuration
- options.
-
-See http://techbase.kde.org/Development/Tutorials/Using_KConfig_XT