summaryrefslogtreecommitdiffstats
path: root/tde-i18n-sv/docs/tdevelop
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-12-03 11:05:10 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-12-03 11:05:10 -0600
commitf7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b (patch)
tree1f78ef53b206c6b4e4efc88c4849aa9f686a094d /tde-i18n-sv/docs/tdevelop
parent85ca18776aa487b06b9d5ab7459b8f837ba637f3 (diff)
downloadtde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.tar.gz
tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.zip
Second part of prior commit
Diffstat (limited to 'tde-i18n-sv/docs/tdevelop')
-rw-r--r--tde-i18n-sv/docs/tdevelop/Makefile.am4
-rw-r--r--tde-i18n-sv/docs/tdevelop/Makefile.in613
-rw-r--r--tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.am4
-rw-r--r--tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.in635
-rw-r--r--tde-i18n-sv/docs/tdevelop/kde_app_devel/appwizard.pngbin0 -> 35163 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/kde_app_devel/index.cache.bz2bin0 -> 22461 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook1870
-rw-r--r--tde-i18n-sv/docs/tdevelop/kde_app_devel/kscribblefiles.pngbin0 -> 12785 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/kdearch/Makefile.am4
-rw-r--r--tde-i18n-sv/docs/tdevelop/kdearch/Makefile.in635
-rw-r--r--tde-i18n-sv/docs/tdevelop/kdearch/index.cache.bz2bin0 -> 29613 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/kdearch/index.docbook3680
-rw-r--r--tde-i18n-sv/docs/tdevelop/kdearch/whatsthis.pngbin0 -> 5671 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.am4
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.in635
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/SF-general.pngbin0 -> 7758 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.pngbin0 -> 8687 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.pngbin0 -> 7115 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/adv-build-management.docbook172
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/app-changelog.docbook89
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/app-files.docbook1684
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/app-menu.docbook72
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/app-misc-info.docbook28
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/app-uimodes-examples.docbook174
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/applicationwizard.docbook1382
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/automake-file-popup.pngbin0 -> 9592 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.pngbin0 -> 9499 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.pngbin0 -> 7735 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.pngbin0 -> 10434 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.pngbin0 -> 11921 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.pngbin0 -> 2958 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.pngbin0 -> 10084 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.pngbin0 -> 3935 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.pngbin0 -> 7801 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/class-browsers.docbook89
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/classview.pngbin0 -> 5994 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/commands.docbook2999
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-baselibs.pngbin0 -> 7220 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.pngbin0 -> 13810 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.pngbin0 -> 11408 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.pngbin0 -> 40485 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.pngbin0 -> 42439 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.pngbin0 -> 30628 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.pngbin0 -> 48312 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.pngbin0 -> 7275 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.pngbin0 -> 5716 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.pngbin0 -> 5536 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.pngbin0 -> 5747 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.pngbin0 -> 5762 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.pngbin0 -> 5745 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.pngbin0 -> 14200 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.pngbin0 -> 5902 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.pngbin0 -> 4565 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.pngbin0 -> 11852 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.pngbin0 -> 20069 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.pngbin0 -> 15346 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.pngbin0 -> 3141 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.pngbin0 -> 14552 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.pngbin0 -> 18212 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.pngbin0 -> 9456 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.pngbin0 -> 20327 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.pngbin0 -> 10488 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.pngbin0 -> 12127 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.pngbin0 -> 7098 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.pngbin0 -> 7973 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project-cvs.pngbin0 -> 11413 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.pngbin0 -> 13357 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.pngbin0 -> 21902 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.pngbin0 -> 9183 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/credits.docbook40
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/cvs.docbook133
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/debugger.docbook337
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/doctree-add-bookmark.pngbin0 -> 15525 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.pngbin0 -> 10323 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/doctree.pngbin0 -> 9234 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.pngbin0 -> 5814 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/documentation.docbook73
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/documents-contents.pngbin0 -> 9417 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.pngbin0 -> 6089 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/edit-doctree-TOC-entry.pngbin0 -> 15771 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/editing.docbook612
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-lookup.pngbin0 -> 11210 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.pngbin0 -> 3118 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.pngbin0 -> 4250 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.pngbin0 -> 2938 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.pngbin0 -> 13168 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.pngbin0 -> 9707 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.pngbin0 -> 12107 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/file-browsers.docbook67
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/file-list-close-selected.pngbin0 -> 10426 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-create.pngbin0 -> 12019 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-default.pngbin0 -> 2731 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.pngbin0 -> 9104 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/filetree.pngbin0 -> 6924 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.pngbin0 -> 10522 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.pngbin0 -> 4567 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/getting-started.docbook4098
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/importdirectory.pngbin0 -> 15355 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/index.cache.bz2bin0 -> 102496 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/index.docbook694
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/kdcop_browsing.pngbin0 -> 19027 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/nutshell.docbook376
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/open-recent-project.pngbin0 -> 20250 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/plugin-tools.docbook731
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-all-todos.pngbin0 -> 6788 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-marks.pngbin0 -> 6309 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-todo.pngbin0 -> 9655 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/project-advanced.docbook111
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/project-management.docbook1297
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/raw-project-warning.pngbin0 -> 6619 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/run-button.pngbin0 -> 2889 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/script_location.pngbin0 -> 13761 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface-0.pngbin0 -> 13270 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface.pngbin0 -> 22812 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/setup.docbook3011
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header-navigate.pngbin0 -> 14283 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header.pngbin0 -> 6293 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/split-windows.pngbin0 -> 5657 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/split-workspace.pngbin0 -> 4144 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/survey-manual.docbook329
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode-0.pngbin0 -> 23800 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode.pngbin0 -> 34432 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-install.docbook1290
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-mdi-mode.pngbin0 -> 36649 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-scripting.docbook74
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-survey.docbook776
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-tabbed-mode.pngbin0 -> 36870 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-toplevel-mode.pngbin0 -> 31662 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-new.pngbin0 -> 42151 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-options.pngbin0 -> 3586 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-new-project.pngbin0 -> 20112 bytes
-rw-r--r--tde-i18n-sv/docs/tdevelop/tdevelop/unixdev.docbook641
-rw-r--r--tde-i18n-sv/docs/tdevelop/tip.database30
133 files changed, 29493 insertions, 0 deletions
diff --git a/tde-i18n-sv/docs/tdevelop/Makefile.am b/tde-i18n-sv/docs/tdevelop/Makefile.am
new file mode 100644
index 00000000000..9e41d9df652
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/Makefile.am
@@ -0,0 +1,4 @@
+KDE_LANG = sv
+SUBDIRS = $(AUTODIRS)
+KDE_DOCS = AUTO
+KDE_MANS = AUTO
diff --git a/tde-i18n-sv/docs/tdevelop/Makefile.in b/tde-i18n-sv/docs/tdevelop/Makefile.in
new file mode 100644
index 00000000000..3365ae4c76a
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/Makefile.in
@@ -0,0 +1,613 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 483858 $
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = docs/tdevelop
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+#>- html-recursive info-recursive install-data-recursive \
+#>- install-dvi-recursive install-exec-recursive \
+#>- install-html-recursive install-info-recursive \
+#>- install-pdf-recursive install-ps-recursive install-recursive \
+#>- installcheck-recursive installdirs-recursive pdf-recursive \
+#>- ps-recursive uninstall-recursive
+#>+ 7
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CONF_FILES = @CONF_FILES@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+GMSGFMT = @GMSGFMT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_RPATH = @KDE_RPATH@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_RPATH = @X_RPATH@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+#>- bindir = @bindir@
+#>+ 2
+DEPDIR = .deps
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+tdeinitdir = @tdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+KDE_LANG = sv
+#>- SUBDIRS = $(AUTODIRS)
+#>+ 1
+SUBDIRS =. kde_app_devel tdevelop kdearch
+KDE_DOCS = AUTO
+KDE_MANS = AUTO
+#>- all: all-recursive
+#>+ 1
+all: docs-am all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+#>- @for dep in $?; do \
+#>- case '$(am__configure_deps)' in \
+#>- *$$dep*) \
+#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- && exit 0; \
+#>- exit 1;; \
+#>- esac; \
+#>- done; \
+#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/Makefile'; \
+#>- cd $(top_srcdir) && \
+#>- $(AUTOMAKE) --gnu docs/tdevelop/Makefile
+#>+ 12
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docs/tdevelop/Makefile
+ cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+#>- distdir: $(DISTFILES)
+#>+ 1
+distdir: distdir-nls $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+#>- uninstall: uninstall-recursive
+#>+ 1
+uninstall: uninstall-nls uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-recursive
+#>+ 1
+clean: kde-rpo-clean clean-recursive
+
+#>- clean-am: clean-generic mostlyclean-am
+#>+ 1
+clean-am: clean-bcheck clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+#>- install-data-am:
+#>+ 1
+install-data-am: install-nls
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic ctags \
+ ctags-recursive distclean distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+ tags-recursive uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+#>+ 2
+KDE_DIST=Makefile.in tip.database Makefile.am
+
+#>+ 2
+docs-am: tip.database
+
+#>+ 13
+install-nls:
+ $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop
+ @for base in tip.database ; do \
+ echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\
+ $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\
+ done
+
+uninstall-nls:
+ for base in tip.database ; do \
+ rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\
+ done
+
+
+#>+ 5
+distdir-nls:
+ for file in tip.database ; do \
+ cp $(srcdir)/$$file $(distdir); \
+ done
+
+#>+ 15
+force-reedit:
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docs/tdevelop/Makefile
+ cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/Makefile.in
+
+
+#>+ 21
+clean-bcheck:
+ rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-recursive
+
+bcheck-am:
+ @for i in ; do \
+ if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+ echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+ echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+ echo "$$i"; \
+ if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+ rm -f $$i.bchecktest.cc; exit 1; \
+ fi ; \
+ echo "" >> $$i.bchecktest.cc.class; \
+ perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+ rm -f a.out; \
+ fi ; \
+ done
+
+
+#>+ 3
+final:
+ $(MAKE) all-am
+
+#>+ 3
+final-install:
+ $(MAKE) install-am
+
+#>+ 3
+no-final:
+ $(MAKE) all-am
+
+#>+ 3
+no-final-install:
+ $(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+ -rm -f *.rpo
+
+#>+ 3
+nmcheck:
+nmcheck-am: nmcheck
diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.am b/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.am
new file mode 100644
index 00000000000..9e41d9df652
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.am
@@ -0,0 +1,4 @@
+KDE_LANG = sv
+SUBDIRS = $(AUTODIRS)
+KDE_DOCS = AUTO
+KDE_MANS = AUTO
diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.in b/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.in
new file mode 100644
index 00000000000..07326b37dd2
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/Makefile.in
@@ -0,0 +1,635 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 483858 $
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = docs/tdevelop/kde_app_devel
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+#>- html-recursive info-recursive install-data-recursive \
+#>- install-dvi-recursive install-exec-recursive \
+#>- install-html-recursive install-info-recursive \
+#>- install-pdf-recursive install-ps-recursive install-recursive \
+#>- installcheck-recursive installdirs-recursive pdf-recursive \
+#>- ps-recursive uninstall-recursive
+#>+ 7
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CONF_FILES = @CONF_FILES@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+GMSGFMT = @GMSGFMT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_RPATH = @KDE_RPATH@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_RPATH = @X_RPATH@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+#>- bindir = @bindir@
+#>+ 2
+DEPDIR = .deps
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+tdeinitdir = @tdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+KDE_LANG = sv
+#>- SUBDIRS = $(AUTODIRS)
+#>+ 1
+SUBDIRS =.
+KDE_DOCS = AUTO
+KDE_MANS = AUTO
+#>- all: all-recursive
+#>+ 1
+all: docs-am all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+#>- @for dep in $?; do \
+#>- case '$(am__configure_deps)' in \
+#>- *$$dep*) \
+#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- && exit 0; \
+#>- exit 1;; \
+#>- esac; \
+#>- done; \
+#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile'; \
+#>- cd $(top_srcdir) && \
+#>- $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile
+#>+ 12
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile
+ cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/kde_app_devel/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+#>- distdir: $(DISTFILES)
+#>+ 1
+distdir: distdir-nls $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+#>- uninstall: uninstall-recursive
+#>+ 1
+uninstall: uninstall-docs uninstall-nls uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-recursive
+#>+ 1
+clean: kde-rpo-clean clean-recursive
+
+#>- clean-am: clean-generic mostlyclean-am
+#>+ 1
+clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+#>- install-data-am:
+#>+ 1
+install-data-am: install-docs install-nls
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic ctags \
+ ctags-recursive distclean distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+ tags-recursive uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+#>+ 2
+KDE_DIST=appwizard.png index.docbook index.cache.bz2 kscribblefiles.png Makefile.in Makefile.am
+
+#>+ 24
+index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) appwizard.png index.docbook kscribblefiles.png
+ @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi
+
+docs-am: index.cache.bz2
+
+install-docs: docs-am install-nls
+ $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel
+ @if test -f index.cache.bz2; then \
+ echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/; \
+ $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/; \
+ elif test -f $(srcdir)/index.cache.bz2; then \
+ echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/; \
+ $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/; \
+ fi
+ -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/common
+ $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/common
+
+uninstall-docs:
+ -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel
+
+clean-docs:
+ -rm -f index.cache.bz2
+
+
+#>+ 13
+install-nls:
+ $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel
+ @for base in appwizard.png index.docbook kscribblefiles.png ; do \
+ echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/$$base ;\
+ $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/$$base ;\
+ done
+
+uninstall-nls:
+ for base in appwizard.png index.docbook kscribblefiles.png ; do \
+ rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kde_app_devel/$$base ;\
+ done
+
+
+#>+ 5
+distdir-nls:
+ for file in appwizard.png index.docbook kscribblefiles.png ; do \
+ cp $(srcdir)/$$file $(distdir); \
+ done
+
+#>+ 15
+force-reedit:
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docs/tdevelop/kde_app_devel/Makefile
+ cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/kde_app_devel/Makefile.in
+
+
+#>+ 21
+clean-bcheck:
+ rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-recursive
+
+bcheck-am:
+ @for i in ; do \
+ if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+ echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+ echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+ echo "$$i"; \
+ if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+ rm -f $$i.bchecktest.cc; exit 1; \
+ fi ; \
+ echo "" >> $$i.bchecktest.cc.class; \
+ perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+ rm -f a.out; \
+ fi ; \
+ done
+
+
+#>+ 3
+final:
+ $(MAKE) all-am
+
+#>+ 3
+final-install:
+ $(MAKE) install-am
+
+#>+ 3
+no-final:
+ $(MAKE) all-am
+
+#>+ 3
+no-final-install:
+ $(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+ -rm -f *.rpo
+
+#>+ 3
+nmcheck:
+nmcheck-am: nmcheck
diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/appwizard.png b/tde-i18n-sv/docs/tdevelop/kde_app_devel/appwizard.png
new file mode 100644
index 00000000000..a66c28512b1
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/appwizard.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.cache.bz2 b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.cache.bz2
new file mode 100644
index 00000000000..8fe8eb3ef08
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.cache.bz2
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook
new file mode 100644
index 00000000000..8968c49a7cc
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.docbook
@@ -0,0 +1,1870 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY tdevelop "<application
+>KDevelop</application
+>">
+ <!ENTITY kappname "&tdevelop;">
+ <!ENTITY % addindex "INCLUDE">
+ <!ENTITY % Swedish "INCLUDE"
+> <!-- change language only here -->
+]>
+
+<book lang="&language;">
+
+<bookinfo>
+<title
+>Programmeringshandbok &tdevelop;</title>
+
+<date
+>2002-12-05</date>
+<releaseinfo
+>2.0</releaseinfo>
+
+<authorgroup>
+<author
+><firstname
+>Ralf</firstname
+> <surname
+>Nolden</surname
+> <affiliation
+><address
+><email
+>Ralf.Nolden@post.rwth-aachen.de</email
+></address
+></affiliation>
+</author>
+<author
+><firstname
+>Caleb</firstname
+> <surname
+>Tennis</surname
+> <affiliation
+><address
+><email
+>caleb@aei-tech.com</email
+></address
+></affiliation>
+</author>
+</authorgroup>
+
+<copyright>
+<year
+>1999</year>
+<holder
+>Ralf Nolden</holder>
+</copyright>
+<copyright>
+<year
+>2002</year>
+<holder
+>Caleb Tennis</holder>
+</copyright>
+
+<!-- ROLES_OF_TRANSLATORS -->
+
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<abstract>
+<para
+>Användarguide till C++ programutveckling för K-skrivbordsmiljön (KDE) med den integrerade utvecklingsmiljön &tdevelop;</para>
+</abstract>
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>KDevelop</keyword>
+<keyword
+>IDE</keyword>
+<keyword
+>utveckling</keyword>
+<keyword
+>programmering</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="chapter1">
+<title
+>Inledning</title>
+<para
+>Medan Unix-system blir mer och mer populära även för nybörjare som arbetar med datorer, på grund av sina fördelar i form av stabilitet och funktionalitet, blir de flesta på något sätt besvikna, eftersom program inte har likadana utseenden och vart och ett beter sig annorlunda. Med KDE har utvecklare ett nästan perfekt sätt att skapa förstklassiga program för Unix-skrivbordssystem, för att få en bredare användargrupp enbart på grund av kvaliteten som programmen erbjuder. Därför blir KDE mer och mer populärt som en bas för programkonstruktion, och utvecklare vill dra fördel av möjligheterna som systemet erbjuder. </para>
+
+<sect1 id="c1s1">
+<title
+>Vad du redan bör veta</title>
+<para
+>För att använda den här programmeringshandboken på bästa sätt, antar vi att du redan känner till programspråket C++. Om du inte gör det, bör du göra dig bekant med det först. Information om C++ är tillgänglig via olika källor, antingen på skriftlig form i den lokala bokhandeln eller med handledningar på Internet. Kunskap om konstruktion av grafiska användargränssnitt krävs inte, eftersom handboken försöker täcka konstruktion av KDE-program, som också omfattar en introduktion till QT-verktygslådan samt KDE-biblioteken och konstruktion av användargränssnitt. Dessutom bör du ha bekantat dig med &tdevelop;, genom att läsa användarmanualen till &tdevelop;, som innehåller en beskrivande genomgång av funktionerna som den integrerade utvecklingsmiljön tillhandahåller. </para>
+</sect1>
+
+<sect1 id="c1s2">
+<title
+>Om den här handboken</title>
+<para
+>Den här handboken är skriven för att ge utvecklare en introduktion till utveckling av KDE-program genom att använda den integrerade utvecklingsmiljön KDevelop. </para>
+<para
+>Följande kapitel ger därför en introduktion till hur projekt skapas, förklarar källkoden som redan skapats och visar hur den givna källkoden kan utökas med olika funktioner som verktygsrader, menyrader och vyområden. </para>
+<para
+>Därefter beskrivs dialogeditorn i detalj, där det förklaras hur grafiska komponenter skapas och hur inställningar av komponentegenskaper görs i detalj för alla komponenter som tillhandahålls. </para>
+<para
+>Till sist får du information om flera ämnen som utökar din kunskap om projektkonstruktion och hjälper dig lösa ytterligare problem förutom kodning, som att lägga till dokumentation om programgränssnittet och utöka handböcker. </para>
+<sect2 id="c1s2s1">
+<title
+>I nästa kapitel</title>
+<para
+>Vi kommer att ta en titt på QT- och KDE-biblioteken, visa grundläggande koncept och varför saker och ting ser ut som de gör. Dessutom beskriver vi hur exempelprogrammen som tillhandahålls med QT-verktygslådan skapas genom att använda KDevelop, så att nybörjare redan kan se de första resultaten efter ett fåtal steg, och därigenom lär sig hur några av de bästa funktionerna i &tdevelop; används. </para>
+</sect2>
+
+<sect2 id="c1s2s2">
+<title
+>I följande kapitel</title>
+<para
+>Du får lära dig att: <itemizedlist>
+<listitem
+><para
+>Skapa ett program med programguiden</para
+></listitem>
+<listitem
+><para
+>Vad projektskelettet redan tillhandahåller</para
+></listitem>
+<listitem
+><para
+>Vad koden som redan skapats betyder</para
+></listitem>
+<listitem
+><para
+>Hur man skapar egna vyer</para
+></listitem>
+<listitem
+><para
+>Hur programmets funktion kan utökas med dialogrutor, menyrader och verktygsrader</para
+></listitem>
+<listitem
+><para
+>Hur programmet kan göras användarvänligt genom att tillhandahålla hjälpfunktioner</para
+></listitem>
+<listitem
+><para
+>Hur man skriver direktdokumentation</para
+></listitem>
+</itemizedlist>
+</para>
+</sect2>
+
+</sect1>
+
+<sect1 id="c1s3">
+<title
+>Ytterligare information</title>
+<para
+>Ytterligare information om QT- och KDE-programmering är tillgänglig från olika källor: <itemizedlist>
+<listitem
+><para
+>Programming with Qt av Matthias Kalle Dalheimer</para
+></listitem>
+<listitem
+><para
+><ulink url="www.tdevelop.org"
+>Handbok KDevelop, som tillhandahålls med den integrerade utvecklingsmiljön KDevelop</ulink
+></para
+></listitem>
+<listitem
+><para
+><ulink url="doc.trolltech.com"
+>Direktreferensen till QT-biblioteket</ulink
+></para
+></listitem>
+<listitem
+><para
+><ulink url="developer.kde.org"
+>KDE:s webbplats för utvecklare</ulink
+></para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>Dessutom bör du söka hjälp genom att prenumerera på de olika e-postlistorna, vars adresser är tillgängliga på nämda webbsidor, och på diskussionsgrupper i Usenet som ägnas åt användning av KDE och Unix-system samt programspråken C och C++. </para>
+<para
+>För att skaffa hjälp med den integrerade utvecklingsmiljön KDevelop, kan du skicka frågor till vår e-postlista på <email
+>tdevelop@tdevelop.org</email
+>. Kom ihåg att KDevelop-gruppen är engagerad i att erbjuda möjligheter för dig att skapa program, och därför inte är avsett som en teknisk stödgrupp ifall program du utvecklar inte fungerar på grund av implementeringsfel eller felaktig inställning av operativsystemet. Med detta ber vi alla användare att dra fördel av e-postlistan i de fall då problem med användning av själva den integrerade utvecklingsmiljön uppstår, samt för felrapporter och förbättringsförslag av funktionerna i utvecklingsmiljön. </para>
+</sect1>
+
+</chapter>
+
+<chapter id="chapter2">
+<title
+>KDE- och QT-biblioteken</title>
+<para
+>Det norska företaget TrollTech (<ulink url="http://www.trolltech.com"
+>http://www.trolltech.com</ulink
+>) tillhandahåller en så kallad GUI-verktygslåda, som kallas QT. GUI betyder "grafiskt användargränssnitt", och därför visas QT-baserade program med knappar, fönster etc., vilket möjliggör användarinmatning genom att synliggöra funktionerna som ett program tillhandahåller. En sådan verktygslåda behövs för att utveckla grafiska program som använder gränssnittet X-windows på Unix-system, eftersom X inte själv innehåller ett fördefinierat användargränssnitt. Även om andra verktygslådor också finns tillgängliga för att skapa användargränssnitt, erbjuder QT några tekniska fördelar som gör programkonstruktion mycket enkel. Dessutom är QT-verktygslådan också tillgänglig på Microsoft Windows-system, vilket gör det möjligt för utvecklare att tillhandahålla sina program på båda plattformarna. </para>
+<para
+>KDE-gruppen (<ulink url="http://www.kde.org"
+>http://www.kde.org</ulink
+>) bildades med målet att göra det mer användarvänligt att bruka Unix-system, och bestämde att QT-verktygslådan skulle användas för utveckling av en fönsterhanterare för X-windows, samt en mängd verktyg som ingår i KDE-paketen. K-skrivbordsmiljön innehåller därför huvudkomponenterna fönsterhanteraren kwm, filhanteraren kfm och startpanelen kpanel samt en mängd förstklassiga verktyg och program. Efter KDE gavs ut, tittademånga utvecklare till den nya miljön och vad den hade att erbjuda. KDE-biblioteken tillhandahåller väsentliga metoder och klasser som gör att alla program som konstrueras med dem liknar varandra och beter sig likadant, så att användaren har den stora fördelen att bara behöva vänja sig vid användning av ett specifikt program, inte vid hantering av dialogrutor och knappar. Dessutom integreras KDE-program med skrivbordet, kan fungera tillsammans med filhanteraren via drag och släpp, erbjuder sessionshantering, och mycket mer om alla funktioner som erbjuds av KDE-biblioteken används. Både QT-verktygslådan och KDE-biblioteken är implementerade med programspråket C++. Därför är de flesta program som använder sig av biblioteken också skrivna i C++. I följande kapitel tar vi en kort tur genom biblioteken för att se vad som redan tillhandahålls, och hur QT- och KDE-program i allmänhet skapas. </para>
+<para
+>Både QT-verktygslådan och KDE-biblioteken är implementerade med programspråket C++. Därför skrivs också program som använder dessa bibliotek oftast i C++. I följande kapitel tar vi en snabbtur genom biblioteken för att se vad som redan tillhandahålls, och hur QT- och KDE-program skapas i allmänhet. </para>
+
+<sect1 id="c2s1">
+<title
+>QT-verktygslådan för grafiska användargränssnitt</title>
+<para
+>Som sagt, är QT-biblioteket en verktygslåda som erbjuder grafiska element som används för att skapa program med grafiska gränssnitt och behövs för programmering av X-windows. Dessutom erbjuder verktygslådan: <itemizedlist>
+<listitem
+><para
+>En komplett uppsättning klasser och metoder klara att använda till och med för programmering som inte rör grafik</para
+></listitem>
+<listitem
+><para
+>En bra lösning för användarkommunikation med virtuella metoder och mekanismen med signaler och slots</para
+></listitem>
+<listitem
+><para
+>En uppsättning fördefinierade grafiska gränssnittselement, som kallas "grafiska komponenter" och kan användas för att skapa synliga element</para
+></listitem>
+<listitem
+><para
+>Dessutom fullständiga fördefinierade dialogrutor som ofta används i program som förlopps- och fildialogrutor</para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>Därför är det mycket väsentligt att känna till QT-klasserna, även om du bara vill programmera KDE-program. För att få en inblick i grundkoncepten för att skapa och kompilera ett program med grafiskt gränssnitt, tar vi först en titt på ett exempelprogram som bara använder QT. Därefter utökar vi det till ett KDE-program. </para>
+
+<sect2 id="c2s1s1">
+<title
+>Det första QT-programmet</title>
+<para
+>Som vanligt måste program i C++ innehålla funktionen <function
+>main()</function
+>, som är programkörningens startpunkt. Eftersom vi vill att programmet ska vara synligt som grafik i fönster och erbjuda kommunikation med användaren, måste vi först veta hur de kan visas för användaren. Som ett exempel, tar vi en titt på det första exemplet som ingår i QT:s direktreferensdokumentation, och förklarar de grundläggande stegen i körningen, inklusive varför och hur programmets fönster visas: <programlisting
+>#include &lt;qapplication.h>
+#include &lt;qpushbutton.h>
+
+int main( int argc, char **argv )
+{
+QApplication a( argc, argv );
+
+QPushButton hello( "Hello world!", 0 );
+hello.resize( 100, 30 );
+
+a.setMainWidget( &amp;hello );
+hello.show();
+return a.exec();
+}
+</programlisting>
+</para>
+<para
+>Det här programmet ritar bara upp ett fönster som innehåller en knapp med "Hello world" som text. Som för alla QT-baserade program, måste du först skapa en instans av klassen <classname
+>QApplication</classname
+>, som representeras av variabeln a. </para>
+<para
+>Därefter skapar programmet en instans av klassen <classname
+>QPushButton</classname
+> som heter hello. Det här blir knappen. Konstruktorn av hello tar en sträng som parameter, som är innehållet i komponenten som blir synligt som knappens text. </para>
+<para
+>Därefter anropas metoden <methodname
+>resize()</methodname
+> för knappen hello. Det ändrar komponentens normalstorlek (som i det här fallet är <classname
+>QPushButton</classname
+>) som den hade när den skapades, till längden 100 bildpunkter och höjden 80 bildpunkter. Till sist anropas metoden setMainWidget() och metoden show() för hello. Slutligen körs vår QApplication med <methodname
+>a.exec()</methodname
+>, går in i huvudhändelsesnurran och väntar till den ska returnera ett heltalsvärde till det omgivande operativsystemet för att signalera att programmet har avslutats. </para>
+</sect2>
+
+<sect2 id="c2s1s2">
+<title
+>Referensdokumentation för Qt</title>
+<para
+>Låt oss nu ta en snabb titt på referensdokumentationen för QT-biblioteket. För att göra det, starta &tdevelop; och välj "Qt" i dokumentationsflikens träd. Dokumentationsbläddraren öppnas och visar startsidan i QT-referensdokumentationen. Det här är det första stället där du kan hämta information om QT, dess klasser och tillgängliga funktioner som de tillhandahåller. Dessutom är ovanstående program det första som finns med i handledningsavsnittet. För att komma till klasserna vi vill titta på, <classname
+>QApplication</classname
+> och <classname
+>QPushButton</classname
+>, välj "Alphabetical Class List" och leta efter motsvarande namn. Följ något av dem för att ta en titt på klassdokumentationen. </para>
+<para
+>Som ett alternativ kan du använda direktdokumentationen från TrollTechs <ulink url="doc.trolltech.com"
+>QT-dokumentation</ulink
+>. </para>
+<para
+>Du kommer att se konstruktorn och alla andra metoder som klassen <classname
+>QApplication</classname
+> tillhandahåller. Om du följer en länk, får du mer information om användningen och betydelsen hos metoderna, vilket är mycket användbart om du ibland inte kan inse riktig användning eller vill ha ett exempel. Det här gäller också dokumentationen av KDE-biblioteken, som använder en liknande sorts dokumentation, därför är detta nästan allt du behöver veta om att använda klassreferenser med dokumentationsbläddraren. </para>
+<sect3 id="c2s1s2s1">
+<title
+>Tolkning av exemplet</title>
+<para
+>Med början från <classname
+>QApplication</classname
+>, hittar du alla metoder som används i vårt första exempel: <itemizedlist>
+<listitem
+><para
+>konstruktorn <methodname
+>QApplication()</methodname
+></para
+></listitem>
+<listitem
+><para
+>metoden <methodname
+>setMainWidget()</methodname
+></para
+></listitem>
+<listitem
+><para
+>metoden <methodname
+>exec()</methodname
+></para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>Tolkningen av varför vi använder metoderna är mycket enkel: <orderedlist>
+<listitem
+><para
+>Skapa en instans av klassen <classname
+>QApplication</classname
+> med konstruktorn, så att vi kan använda elementen för det grafiska gränssnittet som tillhandahålls av QT</para
+></listitem>
+<listitem
+><para
+>Skapa en grafisk komponent som blir innehållet i vårt programfönster</para
+></listitem>
+<listitem
+><para
+>Ange komponenten som huvudkomponent för a</para
+></listitem>
+<listitem
+><para
+>Kör en instans av <classname
+>QApplication</classname
+></para
+></listitem>
+</orderedlist
+>
+</para>
+<para
+>Det andra objektet i vårt program är tryckknappen, en instans av klassen <classname
+>QPushButton</classname
+>. Av de två konstruktorer som finns för att skapa klassen, använder vi den andra. Den tar en text, som är textinnehållet i knappen. Här är det strängen "Hello world!". Därefter anropar vi metoden <methodname
+>resize()</methodname
+> för att ändra storlek på knappen i enlighet med dess innehåll. Knappen måste bli större för att göra strängen fullständigt synlig. </para>
+<para
+>Men vad gäller för metoden <methodname
+>show()</methodname
+>? Nu märker du, att som de flesta andra grafiska komponenter, är <classname
+>QPushButton</classname
+> baserad på enkelt arv. Dokumentationen säger, ärver <classname
+>QButton</classname
+>. Följ länken till klassen <classname
+>QButton</classname
+>. Det visar många andra komponenter som ärvs av <classname
+>QPushButton</classname
+>, som vi senare använder för att förklara signal/slot-mekanismen. Hur som helst finns inte metoden <methodname
+>show()</methodname
+> listad, och därför måste den vara en metod som också tillhandahålls via arv. Klassen som <classname
+>QButton</classname
+> ärver är <classname
+>QWidget</classname
+>. Följ bara länken igen, så ser du en hel mängd metoder som klassen QWidget tillhandahåller, inklusive metoden <methodname
+>show()</methodname
+>. Nu förstår vi vad som gjordes i exemplet med knappen: <orderedlist>
+<listitem
+><para
+>Skapa en instans av <classname
+>QPushButton</classname
+>, och använd den andra konstruktorn för att ange knappens text</para
+></listitem>
+<listitem
+><para
+>Ändra storlek på komponenten till dess innehåll</para
+></listitem>
+<listitem
+><para
+>Ange komponenten som huvudkomponent i instansen av <classname
+>QApplication</classname
+></para
+></listitem>
+<listitem
+><para
+>Tala om för den grafiska komponenten att den ska visas på skärmen genom att anropa <methodname
+>show()</methodname
+>, en metod som ärvts från <classname
+>QWidget</classname
+></para
+></listitem>
+</orderedlist>
+</para>
+<para
+>Efter att ha anropat metoden <methodname
+>exec()</methodname
+>, är programmet synligt för användaren, och visar ett fönster med knappen "Hello world!". Observera att program med grafiska gränssnitt beter sig något annorlunda jämfört med procedurbaserade program. Den viktigaste saken här är att programmet går in i en så kallad "huvudhändelsesnurra". Det betyder att programmet måste vänta på användarens åtgärder och därefter reagera på dem. Det betyder också, för ett QT-program, att programmet måste vara i huvudhändelsesnurran för att starta händelsehanteringen. Nästa avsnitt beskriver kortfattat vad det betyder förprogrammeraren och vad QT erbjuder för att hantera händelser. </para>
+<note
+><para
+>För användare som redan är avancerade: Knappen har ingen överliggande komponent deklarerad i konstruktorn. Därför är den en toppnivåkomponent och kör med en lokal händelsesnurra som inte behöver vänta på huvudhändelsesnurran. Se dokumentationen för klassen QWidget och KDE:s biblioteksreferensguide.</para>
+</note
+>
+
+</sect3>
+</sect2>
+
+<sect2 id="c2s1s3">
+<title
+>Användarkommandon</title>
+<para
+>Efter att ha läst föregående avsnitt, bör du redan känna till: <itemizedlist>
+<listitem
+><para
+>Vad QT-biblioteket tillhandahåller för program med grafiska gränssnitt,</para
+></listitem>
+<listitem
+><para
+>Hur ett program som använder QT skapas, och</para
+></listitem>
+<listitem
+><para
+>Var och hur du hittar information om klasser som du vill använda med dokumentationsbläddraren.</para
+></listitem>
+</itemizedlist
+>
+</para>
+<para
+>Nu fortsätter vi med att ge programmet "liv" genom att behandla användarhändelser. I allmänhet har användaren två sätt att kommunicera med ett program: musen och tangentbordet. Ett grafiskt användargränssnitt måste tillhandahålla metoder för båda sätten, som detekterar åtgärder och gör något som reaktion på åtgärderna. </para
+>
+<para
+>Fönstersystemet skickar därför alla kommunikationshändelser till motsvarande program. <classname
+>QApplication</classname
+> skickar dem därefter till det aktiva fönstret som ett <classname
+>QEvent</classname
+>, och komponenterna själva måste bestämma vad som ska göras med dem. En komponent tar emot händelsen och behandlar <methodname
+>QWidget::event(QEvent*)</methodname
+>, som avgör vilken händelse som har skett och hur reaktionen ska ske. Metoden <methodname
+>event()</methodname
+> gör därför den huvudsakliga händelsehanteringen. Därefter skickar metoden <methodname
+>event()</methodname
+> händelsen till så kallade händelsefilter som avgör vad som sker och vad som ska göras med händelsen. Om inget filter signalerar att det är ansvarigt för händelsen, anropas speciell händelsehantering. Därigenom kan vi skilja mellan: <itemizedlist>
+<listitem
+><para
+>Tangentbordshändelser: Tangenterna Tabulator och Skift+Tabulator:</para>
+<itemizedlist>
+<listitem
+><para
+><methodname
+>virtual void focusInEvent(QFocusEvent *)</methodname
+></para
+></listitem>
+<listitem
+><para
+><methodname
+>virtual void focusOutEvent(QFocusEvent *)</methodname
+></para
+></listitem>
+</itemizedlist>
+</listitem>
+
+<listitem
+><para
+>All övrig tangentbordsinmatning:</para>
+<itemizedlist>
+<listitem
+><para
+><methodname
+>virtual void keyPressEvent(QKeyEvent *)</methodname
+></para
+></listitem>
+<listitem
+><para
+><methodname
+>virtual void keyReleaseEvent(QKeyEvent *)</methodname
+></para
+></listitem>
+</itemizedlist>
+</listitem>
+
+<listitem
+><para
+>Musförflyttning:</para>
+<itemizedlist>
+<listitem
+><para
+><methodname
+>virtual void mouseMoveEvent(QMouseEvent *)</methodname
+></para
+></listitem>
+<listitem
+><para
+><methodname
+>virtual void enterEvent(QEvent *)</methodname
+></para
+></listitem>
+<listitem
+><para
+><methodname
+>virtual void leaveEvent(QEvent *)</methodname
+></para
+></listitem>
+</itemizedlist>
+</listitem>
+
+<listitem
+><para
+>Åtgärder med musknapparna</para>
+<itemizedlist>
+<listitem
+><para
+><methodname
+>virtual void mousePressEvent(QMouseEvent *)</methodname
+></para
+></listitem>
+<listitem
+><para
+><methodname
+>virtual void mouseReleaseEvent(QMouseEvent *)</methodname
+></para
+></listitem>
+<listitem
+><para
+><methodname
+>virtual void mouseDoubleClickEvent(QMouseEvent *)</methodname
+></para
+></listitem>
+</itemizedlist>
+</listitem>
+
+<listitem
+><para
+>Fönsterhändelser som innehåller den grafiska komponenten</para>
+<itemizedlist>
+<listitem
+><para
+><methodname
+>virtual void moveEvent(QMoveEvent *)</methodname
+></para
+></listitem>
+<listitem
+><para
+><methodname
+>virtual void resizeEvent(QResizeEvent *)</methodname
+></para
+></listitem>
+<listitem
+><para
+><methodname
+>virtual void closeEvent(QCloseEvent *)</methodname
+></para
+></listitem>
+</itemizedlist>
+</listitem>
+
+</itemizedlist>
+</para>
+<para
+>Observera att alla händelsefunktioner är virtuella och protected. Därför kan du implementera om händelser som du behöver i egna komponenter och ange hur din komponent ska reagera. <classname
+>QWidget</classname
+> innehåller också några andra virtuella metoder som kan vara användbara i dina program. Hur som helst, är det nödvändigt att känna till <classname
+>QWidget</classname
+> väl. </para>
+</sect2>
+<sect2 id="c1s2s4">
+<title
+>Interaktion mellan objekt med signaler och slots</title>
+<para
+>Nu kommer vi till den mest uppenbara fördelen med QT-verktygslådan: signal/slot-mekanismen. Den erbjuder en mycket bekväm och användbar lösning för kommunikation mellan objekt, som oftast löses med återanropsfunktioner i X-windows verktygslådor. Eftersom kommunikationen kräver strikt programmering och ibland gör det mycket svårt att skapa användargränssnitt (som beskrivs i QT-dokumentationen och förklaras i Programming with Qt av K. Dalheimer), uppfann TrollTech ett nytt system där objekt kan skicka signaler som kan anslutas till metoder som deklareras som slots. Som programmerare av C++, behöver man bara veta några saker om mekanismen: <itemizedlist>
+<listitem
+><para
+>klassdeklarationen av en klass som använder signaler och slots måste innehålla makrot Q_OBJECT i början (utan ett semikolon), och måste härledas från klassen <classname
+>QObject</classname
+> </para
+></listitem>
+<listitem
+><para
+>en signal kan skickas med nyckelordet emit, t.ex. emit signal(parametrar);, inne i vilken medlemsfunktion som helst i en klass som tillåter användning av signaler och slots </para
+></listitem>
+
+<listitem
+><para
+>alla signaler som används av klasser som inte ärvs måste läggas till i klassdeklarationen i en signalsektion </para
+></listitem>
+<listitem
+><para
+>alla metoder som kan anslutas med en signal deklareras i sektioner med det ytterligare nyckelordet slot, t.ex. public slots: inne i klassdeklarationen </para
+></listitem>
+<listitem
+><para
+>metaobjektkompilatorn moc har körts för deklarationsfilen för att expandera makron och skapa implementeringen (som man inte behöverkänna till). Utdatafilerna från moc kompileras också av C++ kompilatorn. </para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>Ett annat sätt att använda signaler utan att härleda från <classname
+>QObject</classname
+> är att använda klassen <classname
+>QSignal</classname
+>. Se referensdokumentationen för mer information och exempel på användning. Vi antar att du härleder från <classname
+>QObject</classname
+> i det följande. </para>
+<para
+>På detta sätt kan din klass skicka signaler vart som helst och tillhandahålla slots som signaler kan anslutas till. Genom att använda en signal, behöver du inte bry dig om vem som tar emot den. Du behöver bara skicka signalen, och vilken slot du än ansluter till den kan reagera när den skickas. Dessutom kan en slot användas som en vanlig metod i implementeringen. </para>
+<para
+>För att nu ansluta en signal till en slot, måste du använda metoderna <methodname
+>connect()</methodname
+> som tillhandahålls av <classname
+>QObject</classname
+> eller, om tillgängliga, speciella metoder som objekt tillhandahåller för att ange anslutningen för en viss signal. </para>
+
+<sect3 id="c1s2s4s1">
+<title
+>Exempel på användning</title>
+<para
+>För att förklara hur objektinteraktion hanteras, tar vi vårt första exempel igen och utökar det med en enkel anslutning: <programlisting
+>#include &lt;qapplication.h>
+#include &lt;qpushbutton.h>
+
+int main( int argc, char **argv )
+{
+QApplication a( argc, argv );
+
+QPushButton hello( "Hello world!" , 0);
+hello.resize( 100, 30 );
+
+a.setMainWidget( &amp;hello );
+
+QObject::connect(&amp;hello, SIGNAL( clicked() ), &amp;a, SLOT( quit() ));
+
+hello.show();
+return a.exec();
+}
+</programlisting>
+</para>
+<para
+>Du märker att allt du måste lägga till för att ge knappen mer kommunikation är metoden <methodname
+>connect()</methodname
+>: <methodname
+>connect (&amp;hello, SIGNAL( clicked() ), &amp;a, SLOT( quit() ))</methodname
+>;. Vad är betydelsen nu? Klassdeklarationen av QObject säger följande om metoden <methodname
+>connect()</methodname
+>: </para>
+<para
+><methodname
+>bool connect ( const QObject * avsändare, const char * signal, const QObject * mottagare, const char * medlem ) </methodname
+></para>
+<para
+>Detta betyder att du måste ange en <classname
+>QObject</classname
+>-instanspekare som är signalens avsändare, vilket betyder att den kan skicka signalen, som första parameter. Därefter måste du ange signalen som du vill ansluta till. De två sista parametrarna är mottagarobjektet som tillhandahåller en slot, följt av medlemsfunktionen som är en verklig slot som kommer att köras när signalen skickas. </para>
+<para
+>Genom att använda signaler och slots, kan programmets objekt enkelt kommunicera med varandra utan att uttryckligen bero på typen hos mottagarobjektet. Du får lära dig mer om hur den här mekanismen används produktivt senare i handboken. Mer information om signal/slot-mekanismen finns också i <ulink url="developer.kde.org/documentation/library/libraryref.html"
+>KDE:s biblioteksreferensguide</ulink
+> och <ulink url="doc.trolltech.com"
+>QT:s direktreferens</ulink
+>. </para>
+</sect3>
+</sect2>
+</sect1>
+
+<sect1 id="c2s3">
+<title
+>Vad KDE tillhandahåller</title>
+<sect2 id="c2s3s1">
+<title
+>KDE 3.x biblioteken</title>
+<para
+>KDE:s huvudbibliotek som används för att skapa KDE-program är: <itemizedlist>
+<listitem
+><para
+>biblioteket tdecore, som innehåller alla klasser som är osynliga element för att tillhandahålla programfunktioner </para
+></listitem>
+<listitem
+><para
+>biblioteket tdeui, som innehåller element i användargränssnittet som menyrader, verktygsrader, etc. </para
+></listitem>
+<listitem
+><para
+>biblioteket kfile, som innehåller filvalsdialogrutor </para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>Dessutom erbjuder KDE följande bibliotek för speciallösningar: <itemizedlist>
+<listitem
+><para
+>biblioteket tdefx, som innehåller pixmaps, bildeffekter och KStyle-utökningen till QStyle </para
+></listitem>
+<listitem
+><para
+>biblioteket khtml, som innehåller KDE:s HTML-komponent </para
+></listitem>
+<listitem
+><para
+>biblioteket kjs, som innehåller KDE:s stöd för Javaskript </para
+></listitem>
+<listitem
+><para
+>biblioteket kio, som innehåller åtkomst av nätverksfiler på låg nivå </para
+></listitem>
+<listitem
+><para
+>biblioteket kparts, med stöd för återanvändbara, inbäddningsbara och utökningsbara program </para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>Därefter tar vi en titt på vad som behövs för att förvandla vårt första QT-program till ett KDE-program. </para>
+</sect2>
+<sect2 id="c2s3s2">
+<title
+>Exempel på ett KDE-program</title>
+<para
+>Du ser att det inte är mycket svårare att skriva ett KDE-program än ett QT-program i det följande. Du måste bara använda några andra klasser för att komma åt KDE:s funktioner, så är du nästan klar. Vi diskuterar en ändrad version av QT-koden ovan, som ett exempel: <programlisting
+>#include &lt;kapplication.h>
+#include &lt;qpushbutton.h>
+
+int main( int argc, char **argv )
+{
+KApplication a( argc, argv );
+
+QPushButton hello( "Hello world!", 0 );
+hello.resize( 100, 30 );
+
+a.setTopWidget( &amp;hello );
+
+QObject::connect(&amp;hello, SIGNAL( clicked() ), &amp;a, SLOT( quit() ));
+
+hello.show();
+return a.exec();
+}
+</programlisting>
+</para
+>
+<para
+>Du märker att vi först har ändrat från <classname
+>QApplication</classname
+> till <classname
+>KApplication</classname
+>. Dessutom var vi tvungna att ändra den tidigare använda metoden <methodname
+>setMainWidget()</methodname
+> till <methodname
+>setTopWidget</methodname
+> som <classname
+>KApplication</classname
+> använder för att ange huvudkomponenten. Det är allt! Ditt första KDE-program är klart. Du behöver bara tala om för kompilatorn vilken deklarationssökväg KDE har, och för länkaren att den ska länka med tdecore-biblioteket med -ltdecore. </para>
+<para
+>Eftersom du nu åtminstone vet vad funktionen <function
+>main()</function
+> i allmänhet tillhandahåller, och hur ett program blir synligt och tillåter kommunikation mellan användare och objekt, fortsätter vi med nästa kapitel, där vårt första program med &tdevelop; skapas. Där kan du också prova allting som tidigare nämnts, och se effekterna. </para>
+<para
+>Vad du ytterligare bör ha tittat på hittills är QT-referensdokumentationen, särskilt klasserna <classname
+>QApplication</classname
+>, <classname
+>QWidget</classname
+> och <classname
+>QObject</classname
+> och tdecore-biblioteksdokumentationen för klassen <classname
+>KApplication</classname
+>. <ulink url="developer.kde.org/documentation/library/libraryref.html"
+>KDE:s biblioteksreferensguide</ulink
+> har också en fullständig beskrivning av hur konstruktorerna i <classname
+>QApplication</classname
+> och <classname
+>KApplication</classname
+> anropas, inklusive behandling av kommandoradsväljare. </para>
+</sect2>
+</sect1>
+
+</chapter>
+
+<chapter id="chapter3">
+<title
+>Skapa nya program</title>
+
+<sect1 id="c3s1">
+<title
+>Programguiden</title>
+<para
+>Programguiden i &tdevelop; är avsedd att låta dig börja arbeta med ett nytt projekt i &tdevelop;. Därför skapas alla projekt först av guiden, och därefter kan du börja bygga dem och utöka vad som redan tillhandahålls av källkodsskelettet. Du kan välja bland flera projekttyper enligt målet med ditt projekt: <itemizedlist>
+<listitem
+><para
+>KDE Application Framework: Innehåller källkod för en fullständig ramstruktur till ett vanligt KDE-program </para
+></listitem>
+<listitem
+><para
+>QMake project: Skapar ett programramverk baserat på TrollTechs qmake konfigurationssystem </para
+></listitem>
+<listitem
+><para
+>Simple Hello world program: Skapar ett C++ terminalbaserat program utan stöd för grafiskt gränssnitt </para
+></listitem>
+<listitem
+><para
+>En mängd andra programskelett </para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>I det här kapitlet ser vi hur Programguiden kan startas, och vad som måste göras för att skapa ett KDE-programmeringsprojekt. Det här är också det första steget i uppföljningen där vi skapar den ursprungliga versionen av vårt exempelprojekt. Stegen är oftast likadana för alla andra projekttyper, men det kanske inte finns så många tillgängliga alternativ. </para>
+</sect1>
+
+<sect1 id="c3s2">
+<title
+>Starta programguiden och skapa projekt</title>
+<sect2 id="c3s2s1">
+<title
+>Starta programguiden och första sidan</title>
+<para
+>Öppna &tdevelop; för att börja med ditt KDE-program. Välj Nytt projekt i projektmenyn. Programguiden startar, och du ser urvalsträdet på första sidan som innehåller tillgängliga projekttyper som kan skapas. Välj delträdet C++, därefter KDE, och Application framework. </para>
+<para
+>Vi kommer att skapa programmet KScribble som exempelprojekt. Skriv in det som programmets namn, och ändra eventuellt annan information som behövs längst ner på skärmen. Välj därefter Nästa. <screenshot
+><mediaobject
+><imageobject>
+<imagedata fileref="appwizard.png" format="PNG"/>
+</imageobject
+><textobject
+><phrase
+>Programguiden</phrase
+></textobject>
+</mediaobject
+></screenshot>
+</para>
+</sect2>
+<sect2 id="c3s2s2">
+<title
+>Versionskontrollinformation</title>
+<para
+>På den här skärmen har du möjlighet att bestämma om projektet ska använda ett versionskontrollsystem som CVS. För vårt exempelprojekt använder vi inte versionskontroll, så försäkra dig om att rutan lyder Inget, och välj Nästa. </para>
+</sect2>
+<sect2 id="c3s2s3">
+<title
+>Deklarations- och källkodsmallar</title>
+<para
+>Följande två sidor visar exempel på sidhuvuden som hamnar överst i deklarations- och källkodsfilerna som du skapar med &tdevelop;. Lämna dem bara som de är för närvarande, och välj Nästa och därefter Slutför. Om knappen Slutför inte är aktiverad, har du inte ställt in alla alternativ riktigt. Använd knappen Tillbaka för att återgå till tidigare sidor och rätta eventuella misstag. </para>
+</sect2>
+<sect2 id="c3s2s4">
+<title
+>Avslutning</title>
+<para
+>När den är färdig, ska Programguiden stängas och meddelandefönstret ska dyka upp och visa information om aktiviteterna som &tdevelop; för närvarande utför. I slutet av alla aktiviteter ska du se **** Lyckades ****. Det betyder att programmets ramverk har skapats med lyckat resultat. </para>
+</sect2>
+</sect1>
+
+<sect1 id="c3s3">
+<title
+>Bygg första gången</title>
+<para
+>Efter projektet har skapats, tar vi först en tur genom källkoden för att få en allmän förståelse för hur programmets ramverk ser ut. Det hjälper oss inte bara att komma igång, utan vi vet också var ändringar ska göras i senare steg. </para>
+<para
+>Det här kapitlet gör antagandet att du förstår den grundläggande hanteringen av &tdevelop;. Titta i KDevelops handbok för att hitta informationen om du behöver. </para>
+<para
+>Hantering av automake visar projektfilerna enligt följande: <screenshot
+><mediaobject
+><imageobject>
+<imagedata fileref="kscribblefiles.png" format="PNG"/>
+</imageobject
+><textobject
+><phrase
+>Filer i vårt projekt</phrase
+></textobject>
+</mediaobject
+></screenshot>
+</para>
+<para
+>Innan vi dyker ner i källkoden, ska vi låta &tdevelop; bygga och köra vårt nya program. För att göra det, välj Bygg projekt i menyn Bygg, eller tryck på F8. Utmatningsfönstret öppnas och visar utskrivna meddelanden under kompileringsfasen. <programlisting
+>1 cd /home/caleb/kscribble &amp;&amp; WANT_AUTOCONF_2_5=1 WANT_AUTOMAKE_1_6=1 gmake k
+2 gmake all-recursive
+3 gmake[1]: Entering directory `/home/caleb/kscribble'
+4 Making all in doc
+5 gmake[2]: Entering directory `/home/caleb/kscribble/doc'
+6 Making all in .
+7 gmake[3]: Entering directory `/home/caleb/kscribble/doc'
+8 gmake[3]: Nothing to be done for `all-am'.
+9 gmake[3]: Leaving directory `/home/caleb/kscribble/doc'
+10 Making all in en
+11 gmake[3]: Entering directory `/home/caleb/kscribble/doc/en'
+12 /usr/local/kde3/bin/meinproc --check --cache index.cache.bz2 /home/caleb/kscribble/doc/en/index.docbook
+13 gmake[3]: Leaving directory `/home/caleb/kscribble/doc/en'
+14 gmake[2]: Leaving directory `/home/caleb/kscribble/doc'
+15 Making all in po
+16 gmake[2]: Entering directory `/home/caleb/kscribble/po'
+17 gmake[2]: Nothing to be done for `all'.
+18 gmake[2]: Leaving directory `/home/caleb/kscribble/po'
+19 Making all in src
+20 gmake[2]: Entering directory `/home/caleb/kscribble/src'
+21 source='main.cpp' object='main.o' libtool=no \
+22 depfile='.deps/main.Po' tmpdepfile='.deps/main.TPo' \
+23 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \
+24 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include
+ -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor
+ -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings
+ -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new
+ -c -o main.o `test -f 'main.cpp' || echo '/home/caleb/kscribble/src/'`main.cpp
+25 /usr/lib/qt/bin/moc /home/caleb/kscribble/src/kscribble.h -o kscribble.moc
+26 source='kscribble.cpp' object='kscribble.o' libtool=no \
+27 depfile='.deps/kscribble.Po' tmpdepfile='.deps/kscribble.TPo' \
+28 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \
+29 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include
+ -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor
+ -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings
+ -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new
+ -c -o kscribble.o `test -f 'kscribble.cpp' || echo '/home/caleb/kscribble/src/'`kscribble.cpp
+30 kscribble.cpp: In member function `void KScribble::setupActions()'
+31 kscribble.cpp:107: warning: unused variable `KAction*custom'
+32 /usr/lib/qt/bin/moc /home/caleb/kscribble/src/kscribbleview.h -o kscribbleview.moc
+33 source='kscribbleview.cpp' object='kscribbleview.o' libtool=no \
+34 depfile='.deps/kscribbleview.Po' tmpdepfile='.deps/kscribbleview.TPo' \
+35 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \
+36 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include
+ -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor
+ -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi
+ -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new -c
+ -o kscribbleview.o `test -f 'kscribbleview.cpp' || echo '/home/caleb/kscribble/src/'`kscribbleview.cpp
+37 kscribbleview.cpp: In member function `void KScribbleView::print(QPainter*,
+38 int, int)':
+39 kscribbleview.cpp:79: warning: unused parameter `QPainter*p'
+40 kscribbleview.cpp:79: warning: unused parameter `int height'
+41 kscribbleview.cpp:79: warning: unused parameter `int width'
+42 /usr/lib/qt/bin/moc /home/caleb/kscribble/src/pref.h -o pref.moc
+43 source='pref.cpp' object='pref.o' libtool=no \
+44 depfile='.deps/pref.Po' tmpdepfile='.deps/pref.TPo' \
+45 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \
+46 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include
+ -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor
+ -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings
+ -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new
+ -c -o pref.o `test -f 'pref.cpp' || echo '/home/caleb/kscribble/src/'`pref.cpp
+47 /usr/local/kde3/bin/dcopidl /home/caleb/kscribble/src/kscribbleiface.h
+> kscribbleiface.kidl ||
+ ( rm -f kscribbleiface.kidl ; /bin/false )
+48 /usr/local/kde3/bin/dcopidl2cpp --c++-suffix cpp --no-signals --no-stub kscribbleiface.kidl
+49 source='kscribbleiface_skel.cpp' object='kscribbleiface_skel.o' libtool=no \
+50 depfile='.deps/kscribbleiface_skel.Po' tmpdepfile='.deps/kscribbleiface_skel.TPo' \
+51 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \
+52 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include
+ -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor
+ -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings
+ -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new
+ -c -o kscribbleiface_skel.o `test -f 'kscribbleiface_skel.cpp' ||
+ echo '/home/caleb/kscribble/src/'`kscribbleiface_skel.cpp
+53 /bin/sh ../libtool --silent --mode=link --tag=CXX g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall
+ -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500
+ -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new -o kscribble -R
+ /usr/local/kde3/lib -R /usr/lib/qt/lib -R /usr/X11R6/lib -L/usr/X11R6/lib -L/usr/lib/qt/lib
+ -L/usr/local/kde3/lib main.o kscribble.o kscribbleview.o pref.o kscribbleiface_skel.o -lkio
+54 source='kscribble_client.cpp' object='kscribble_client.o' libtool=no \
+55 depfile='.deps/kscribble_client.Po' tmpdepfile='.deps/kscribble_client.TPo' \
+56 depmode=gcc3 /bin/sh /home/caleb/kscribble/admin/depcomp \
+57 g++ -DHAVE_CONFIG_H -I. -I/home/caleb/kscribble/src -I.. -I/usr/local/kde3/include
+ -I/usr/lib/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor
+ -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings
+ -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new
+ -c -o kscribble_client.o `test -f 'kscribble_client.cpp' || echo
+ '/home/caleb/kscribble/src/'`kscribble_client.cpp
+58 /bin/sh ../libtool --silent --mode=link --tag=CXX g++ -Wnon-virtual-dtor -Wno-long-long -Wundef
+ -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500
+ -D_BSD_SOURCE -Wcast-align -Wconversion -O2 -fno-exceptions -fno-check-new -o kscribble_client -R
+ /usr/local/kde3/lib -R /usr/lib/qt/lib -R /usr/X11R6/lib -L/usr/X11R6/lib -L/usr/lib/qt/lib
+ -L/usr/local/kde3/lib kscribble_client.o -ltdecore
+59 gmake[2]: Leaving directory `/home/caleb/kscribble/src'
+60 gmake[2]: Entering directory `/home/caleb/kscribble'
+61 gmake[2]: Nothing to be done for `all-am'.
+62 gmake[2]: Leaving directory `/home/caleb/kscribble'
+63 gmake[1]: Leaving directory `/home/caleb/kscribble'
+64 *** Lyckades ***
+</programlisting>
+</para>
+<para
+>Som du kan se, har vi lagt till radnummer framför varje rad som inte visas i utmatningen, men som gör det enklare att beskriva vad som sker under byggningen. För det första fungerar byggprogrammet rekursivt. Det betyder att det börjar i katalogen där det startas, först går ner i underkataloger, en i taget, och därefter återgår till katalogen där det startades, behandlar det, och sedan avslutas. </para>
+<para
+>Den första intressanta raden är 24. Observera att g++, som är vår C++ kompilator, anropas av make på den här raden för att kompilera den första källkodsfilen i vårt projekt - i det här fallet main.cpp. Många ytterligare kommandoradsväljare används också med g++ kompilatorn.Vissa är förvalda, medan andra kan anpassas via &tdevelop;. </para>
+<para
+>Innan nästa fil (kscribble.cpp, rad 29) kompileras, körs först moc (metaobjektkompilatorn) för kscribble.h (rad 25). Det sker därför att KScribble-klasser använder signaler och slots, så att makrot Q_OBJECT måste expanderas, och moc gör det åt oss. Resultatfilen, kscribble.moc, används av kscribble.cpp via satsen #include i filen. </para>
+</sect1>
+
+<sect1 id="c3s4">
+<title
+>Källkodsskelettet</title>
+<para
+>För att klargöra hur ett KDE-program fungerar, måste vi först granska källkodsskelettet som redan tillhandahålls av programguiden mycket noggrant. Som vi redan sett, har vi en uppsättning källkods- och deklarationsfiler som bygger upp den ursprungliga programkoden och gör den klar att köra. Därför är det enklaste sättet att förklara koden att följa implementeringen rad för rad som den behandlas under körning av programmet till det går in i huvudhändelsesnurran och är klart att acceptera användarinmatning. Därefter tar vi en titt på funktionerna som möjliggör kommunikation med användaren, och hur vissa saker fungerar. Det här är troligen det bästa sättet att förklara ramverket, och eftersom det är liknande för nästan alla KDE-program, gör det att du kan läsa källkod också från andra projekt. Dessutom lär du dig var olika delar av koden ska ändras för att få ditt program att bete sig som det är avsett att göra. </para>
+
+<sect2 id="c3s4s1">
+<title
+>Funktionen main()</title>
+<para
+>Eftersom programmet börjar köra genom att gå in i funktionen <function
+>main()</function
+>, är det där vi börjar titta på koden. Funktionen <function
+>main()</function
+> i KScribble är implementerad i filen main.cpp, och kan också hittas genom att använda klassbläddraren och välja mappen "Globala funktioner". <programlisting
+>1 int main(int argc, char **argv)
+2 {
+3 KAboutData about("kscribble", I18N_NOOP("KScribble"), version, description,
+4 KAboutData::License_GPL, "(C) 2002 Ditt Namn", 0, 0, "du@du.se");
+5 about.addAuthor( "Ditt Namn", 0, "du@du.se" );
+6 KCmdLineArgs::init(argc, argv, &amp;about);
+7 KCmdLineArgs::addCmdLineOptions(options);
+8 KApplication app;
+9
+10 // registrera oss som en DCOP-klient
+11 app.dcopClient()->registerAs(app.name(), false);
+12
+13 // se om vi startar med sessionshantering
+14 if (app.isRestored())
+15 RESTORE(KScribble)
+16 else
+17 {
+18 // ingen session.. starta bara som vanligt
+19 KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+20 if (args->count() == 0)
+21 {
+22 KScribble *widget = new KScribble;
+23 widget->show();
+24 }
+25 else
+26 {
+27 int i = 0;
+28 for (; i &lt; args->count(); i++)
+29 {
+30 KScribble *widget = new KScribble;
+31 widget->show();
+32 widget->load(args->url(i));
+33 }
+34 }
+35 args->clear();
+36 }
+37
+38 return app.exec();
+39 }
+</programlisting>
+</para
+>
+<para
+>Vad som först händer nu, är att objektet <classname
+>KApplication</classname
+> skapas som vanligt, men vi har lagt till några KDE-metoder som anger information om program och upphovsman för programmet. </para>
+</sect2>
+<sect2>
+<title
+>Start av användarprogrammet</title>
+
+<para
+>... (ännu inte skrivet)</para>
+
+</sect2>
+<sect2>
+<title
+>Konstruktorn</title>
+<para
+>Låt oss ta en titt på konstruktorn och se hur instansen anropas <programlisting
+>1 KScribble::KScribble()
+2 : KMainWindow( 0, "KScribble" ),
+3 m_view(new KScribbleView(this)),
+4 m_printer(0)
+5 {
+6 // acceptera drag och släpp
+7 setAcceptDrops(true);
+8
+9 // tala om för KMainWindow att det verkligen är huvudkomponenten
+10 setCentralWidget(m_view);
+11
+12 // ställ därefter in våra åtgärder
+13 setupActions();
+14
+15 // och en statusrad
+16 statusBar()->show();
+17
+18 // tillåt vyn att ändra statusraden och rubriken
+19 connect(m_view, SIGNAL(signalChangeStatusbar(const QString&amp;)),
+20 this, SLOT(changeStatusbar(const QString&amp;)));
+21 connect(m_view, SIGNAL(signalChangeCaption(const QString&amp;)),
+22 this, SLOT(changeCaption(const QString&amp;)));
+23
+24 }
+</programlisting>
+</para>
+<para
+>Observera att <classname
+>KScribble</classname
+> ärver klassen <classname
+>KMainWindow</classname
+>, en ofta använd basklass för KDE-program. Vi initierar en klass som heter <classname
+>KScribbleView</classname
+> som central grafikkomponent, skapar en <classname
+>KStatusBar</classname
+> via metoden <methodname
+>statusBar()</methodname
+> (på rad 16), och kopplar ihop några signaler och slots. </para>
+</sect2>
+</sect1>
+</chapter>
+
+
+<chapter id="chapter4">
+<title
+>Konstruktion av programvyn</title>
+<sect1 id="c4s1">
+<title
+>Inledning</title>
+<para
+>När ett program med ett grafiskt gränssnitt utvecklas, sker det huvudsakliga arbetet genom att tillhandahålla en så kallad "vy" för programmet. En vy är i allmänhet en grafisk komponent som visar data i ett dokument och tillhandahåller metoder för att manipulera dokumentets innehåll. Detta kan göras av användaren via de händelser som skapas via tangentbordet och musen. Komplexare åtgärder behandlas ofta av verktygsrader och menyrader som kommunicerar med vyn och dokumentet. Statusraden tillhandahåller sedan information om dokumentet, vyn eller programmets status. Som exempel, tittar vi på hur en editor är konstruerad, och var varje del kan hittas. </para>
+<para
+>En editor antas i allmänhet tillhandahålla ett gränssnitt för att visa och/eller ändra innehåll i ett textdokument för användaren. Om du startar Kate, ser du följande i det visuella gränssnittet: <itemizedlist>
+<listitem
+><para
+>Menyraden: tillhandahåller komplexa åtgärder samt öppna, spara och stänga filer eller avsluta programmet. </para
+></listitem>
+<listitem
+><para
+>Verktygsraden: erbjuder ikoner som ger snabbare åtkomst till de oftast använda funktionerna, </para
+></listitem>
+<listitem
+><para
+>Statusraden visar status för markörpositionen med aktuell rad och kolumn, </para
+></listitem>
+<listitem
+><para
+>Vyn i fönstrets mitt, som visar ett dokument och erbjuder en markör kopplad till tangentbordet och musen för att hantera data. </para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>Nu är det enkelt att förstå att en vy är programmets mest unika del, och att konstruktionen av vyn bestämmer hur användbart och lätt att acceptera programmet är. Det betyder att ett av de första stegen i utvecklingen är att avgöra syftet med programmet och vilken sorts konstruktion av vyn som passar bäst för att låta vilken användare som helst arbeta med programmet, med en minimal ansträngning för att lära sig hur användargränssnittet ska hanteras. </para>
+<para
+>Vyer tillhandahålls av QT- och KDE-biblioteken för vissa syften, som textredigering och visning av HTML-filer. Vi beskriver vissa aspekter av de här högnivåkomponenterna i nästa avsnitt. Men för de flesta program måste nya komponenter konstrueras och implementeras. Det är detta som gör att programmeraren också blir en formgivare, och där skapelseförmågan sätts på prov. Trots detta bör du först försöka uppnå något intuitivt. Kom ihåg att många användare accepterar inte ett program som inte: <itemizedlist>
+<listitem
+><para
+>har bra grafiskt utseende </para
+></listitem>
+<listitem
+><para
+>erbjuder många funktioner </para
+></listitem>
+<listitem
+><para
+>är enkelt att hantera </para
+></listitem>
+<listitem
+><para
+>går snabbt att lära sig använda </para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>Det behöver inte sägas att stabilitet är ett av huvudmålen med konstruktionen. Ingen kan förhindra fel, men ett minimum kan åtminstone uppnås med smarta konstruktionsmål och utbredd användning av objektorienterad konstruktion. C++ gör det till ett nöje att programmera om du vet hur man utnyttjar dess möjligheter - arv, att dölja information och återanvändning av befintlig kod. </para>
+<para
+>När ett KDE- eller QT-projekt skapas, måste du alltid ha en vy som ärver en QWidget, antingen med direkt arv eller eftersom en bibliotekskomponent som du vill använda ärver QWidget. Därför harProgramguiden redan skapat en vy som är en instans av klassen programnamnView, som redan ärver QWidget. </para>
+<para
+>Det här kapitlet beskriver därför hur bibliotekskomponenter används för att skapa vyer för KDE- och QT-program som skapas med &tdevelop;. Därefter tar vi en titt på biblioteken och vilka sorters vyer de redan erbjuder. </para>
+</sect1>
+<sect1 id="c4s2">
+<title
+>Använda biblioteksvyer</title>
+<para
+>När programmets konstruktion har fastställts, bör du först leta efter befintlig kod som kan göra livet mycket enklare. En del av detta är att leta efter en grafisk komponent som kan användas för vyn, eller åtminstone för en del av den, antingen direkt eller med arv. KDE- och QT-biblioteken innehåller redan en uppsättning grafiska komponenter som kan användas för ändamålet. Det finns två möjligheter att använda dem: <orderedlist>
+<listitem
+><para
+>Ta bort den nya vyklassen och skapa en instans av en bibliotekskomponent, och därefter ange den som vyn, </para
+></listitem>
+<listitem
+><para
+>Ändra arv för tillhandahållen vyklass till klassen för bibliotekskomponenten som ska användas. </para
+></listitem>
+</orderedlist>
+</para>
+<para
+>Hur som helst är det viktigt att veta att om programramverket för närvarande inte länkas med biblioteket som innehåller den grafiska komponenten, kommer länkningen att misslyckas. Efter du bestämt dig för att använda en viss grafisk komponent, titta efter biblioteket som ska länkas in. Öppna därefter "Projekt"->"Projektinställningar" i menyraden för &tdevelop;. Byt till sidan "Länkinställningar" och leta efter kryssrutorna som anger de bibliotek som för närvarande används. Om biblioteket för din komponent redan är markerat, kan du lämna projektinställningarna oförändrade och börja göra nödvändiga ändringar baserat på ditt val. Om inte, och länkinställningarna erbjuder att lägga till biblioteket med en kryssruta, markera den och tryck på "Ok" för att stänga dialogrutan igen. I alla andra fall, lägg till biblioteket i redigeringsraden under med väljaren -l. För bibliotek som ditt program ska söka efter innan byggfiler skapas av configure-skriptet, lägg till motsvarande sökmakro i filen configure.in som finns i projektets rotkatalog, och lägg till makrot på redigeringsraden. Tänk på att du måste köra "Bygg"->"Autoconf och automake" och "Bygg"->"Configure" innan byggfilerna innehåller rätt expansion av biblioteksmakrot. </para>
+<para
+>Dessutom, om deklarationsfilerna för biblioteket som ska läggas till inte finns med i nuvarande deklarationssökväg (som syns i väljaren -I till "make" i utmatningsfönstret), måste du lägga till sökvägen i dialogrutan Projektinställningar på sidan "Kompilatorinställningar" med väljaren -I eller i motsvarande automake-makro på redigeringsraden för "Ytterligare inställningar". </para>
+<sect2 id="c4s3s1">
+<title
+>Vyer i Qt</title>
+<para
+>När du tittar på första sidan av QT:s direktdokumentation, hittar du en länk till "Widget Screenshots", där du kan titta på hur de grafiska komponenterna som QT innehåller ser ut. De är färdiga att använda, och kan kombineras för att ge komplexa komponenter som kan skapa programvyer eller dialogrutor. I följande stycken beskriver vi några av dessa, som är mycket användbara för att skapa programvyer, men kom ihåg att KDE-biblioteken ibland innehåller andra komponenter med samma syfte. Dessa granskas i nästa avsnitt. </para>
+<para
+>Här är några tips om vilken Qt-komponent som kan användas för vilket ändamål: <orderedlist>
+<listitem
+><para
+>Om vyområdet inte är stort nog för att visa all data, måste användaren kunna panorera i dokumentet med lister till vänster och längst ner i vyn. QT tillhandahåller klassen <classname
+>QScrollView</classname
+> för detta, som erbjuder ett underliggande område med panoreringsmöjlighet. Som tidigare förklarats, kan du låta din egen grafiska komponent ärva <classname
+>QScrollView</classname
+>, eller använda en instans för att hantera ditt dokuments vykomponent. </para
+></listitem
+>
+<listitem
+><para
+>För att skapa en egen ScrollView, låt komponenten View ärva från <classname
+>QWidget</classname
+> och lägg till vertikala och horisontella rullningslister med <classname
+>QScrollBars</classname
+>. (Detta görs av KDE:s komponent KHTMLView.) </para
+></listitem
+>
+<listitem
+><para
+>För textbehandling, använd <classname
+>QTextEdit</classname
+>. Den här klassen tillhandahåller en fullständig grafisk texteditorkomponent, som redan kan klippa ut, kopiera och klistra text och hanteras av en vy med rullningslister. </para
+></listitem
+>
+<listitem
+><para
+>Använd <classname
+>QTable</classname
+> för att visa data som är arrangerat i en tabell. Eftersom <classname
+>QTable</classname
+> också hanteras av rullningslister, erbjuder den en bra lösning för program med tabellberäkningar. </para
+></listitem
+>
+<listitem
+><para
+>För att visa två olika grafiska komponenter eller två instanser av samma komponent samtidigt, använd <classname
+>QSplitter</classname
+>. Den tillåter att vyer läggs sida vid sida med horisontella eller vertikala avdelare. Kmail är ett bra exempel på hur det ser ut. Huvudfönstret är delat vertikalt av en avdelare, och det högra fönstret är återigen avdelat horisontellt. </para
+></listitem
+>
+<listitem
+><para
+><classname
+>QListView</classname
+> visar information i en lista och ett träd. Det är användbart för att skapa filträd eller vilken annan hierarkisk information som helst som du vill hantera. </para
+></listitem
+>
+</orderedlist>
+</para>
+<para
+>Du märker att enbart QT erbjuder en hel uppsättning med grafiska komponenter som är klara för användning, så att du inte behöver uppfinna nya lösningar om de passar dina behov. Sidoeffekten när standardkomponenter används är att användare redan vet hur de hanteras, och behöver bara koncentrera sig på data som visas. </para>
+</sect2>
+<sect2 id="c4s3s2">
+<title
+>Vyer i KDE</title>
+<para
+>KDE-biblioteken uppfanns för att göra det enklare att skapa program för K-skrivbordsmiljön och göra det möjligt för dem att ha mer funktioner än enbart vad QT erbjuder. Biblioteket tdeui erbjuder: <orderedlist>
+<listitem
+><para
+>KListView: en mer kraftfull version av <classname
+>QListView</classname
+> </para
+></listitem>
+<listitem
+><para
+>KIconView: en grafisk visare av ikonfiler </para
+></listitem>
+</orderedlist>
+</para>
+<para
+>Biblioteket khtml tillhandahåller å andra sidan en fullständig HTML-tolkningskomponent, som är klar att använda. Den har redan rullningslister, så du behöver inte ens hantera det. En möjlig användning kan vara att integrera den som en förhandsgranskningskomponent för en HTML-editor. Den används av program som Konqueror för att visa HTML-filer. </para>
+</sect2>
+</sect1>
+<sect1 id="c4s4">
+<title
+>Skapa egna vyer</title>
+<para
+>Ännu inte skrivet </para>
+</sect1>
+</chapter>
+
+<chapter id="chapter5">
+<title
+>Anpassa menyrader och verktygsrader</title>
+<sect1 id="c5s1">
+<title
+>Inledning</title>
+<para
+>Menyrader och verktygsrader är några av de viktigaste delarna av ett program för att tillhandahålla sätt att arbeta med en dokumentstruktur. Du bör göra alla funktioner tillgängliga via menyraden, som en allmän regel. De alternativ som inte är tillgängliga vid ett visst ögonblick i användningen av programmet bör vara inaktiverade. </para>
+<para
+>Dessutom kan ett program bara innehålla en menyrad, men flera verktygsrader. Verktygsrader, å andra sidan, bör bara innehålla de oftast använda kommandona med ikoner eller tillhandahålla metoder för snabb åtkomst som kombinationsrutor för att välja värden. </para>
+</sect1>
+<sect1 id="c5s2">
+<title
+>Hur fungerar det?</title>
+<para
+>Vårt program ärver klassen <classname
+>KMainWindow</classname
+> som automatiskt hanterar att skapa en menyrad och verktygsrader åt oss. I metoden <methodname
+>KScribble::setupActions()</methodname
+> finns ett anrop till <methodname
+>KMainWindow::createGUI()</methodname
+>. Den metoden laddar en resursfil, i det här fallet kscribbleui.rc, för att initiera menyerna vid start. Observera att kscribbleui.rc listas som en av projektfilerna i Hantering av automake. Öppnas filen syns detta: <programlisting
+>1 &lt;!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
+2 &lt;kpartgui name="kscribble" version="1">
+3 &lt;MenuBar>
+4 &lt;Menu name="custom"
+>&lt;text
+>C&amp;ustom&lt;/text>
+5 &lt;Action name="custom_action" />
+6 &lt;/Menu>
+7 &lt;/MenuBar>
+8 &lt;/kpartgui
+>
+</programlisting>
+</para>
+<para
+>Förklaring ... </para>
+<para
+>Ett annat sätt att ändra innehållet i menyn och verktygsraderna är att direkt manipulera dem via metoderna som tillhandahålls i deras klasser. Metoden <methodname
+>menuBar()</methodname
+> returnerar till exempel komponenten <classname
+>KMenuBar</classname
+> som är menyraden i vårt program. Tittar du i dokumentationen för <classname
+>KMenuBar</classname
+> och klassen den ärver <classname
+>QMenuBar</classname
+>, hittar du ett stort antal metoder kallade <methodname
+>insertItem()</methodname
+>, som låter dig lägga till alternativ i menyraden. </para>
+<para
+><classname
+>KMainWindow</classname
+>s metoder <methodname
+>statusBar()</methodname
+> och <methodname
+> toolBar()</methodname
+> ger dig också lämpliga grafiska komponenter. </para>
+</sect1>
+<sect1 id="c5s3">
+<title
+>Inställning av snabbtangenter</title>
+<para
+>Något mycket professionellt som du alltid bör lägga till i programmet är snabbtangenter. De används oftast av erfarna användare som vill arbeta snabbt med sina program och är villiga att lära sig genvägar. KDE-biblioteken erbjuder klassen <classname
+>KAction</classname
+> för detta, som tillhandahåller snabbtangenter och åtkomst av globalt inställda standardgenvägar. </para>
+<para
+>Normalt använder bara ramprogram skapade av &tdevelop; vanliga snabbtangenter som F1 för att komma åt direkthjälp, Ctrl+N för Ny fil, etc. </para>
+<para
+>Om programmet innehåller många snabbtangenter bör du göra dem anpassningsbara via en inställningsmeny. Antingen kan det kombineras med annan programinställning i en QWidget eller vara ensamt. KDE-biblioteket tillhandahåller redan en <classname
+>KKeyChooser</classname
+> för att använda i flikdialogrutor, medan <classname
+>KKeyDialog</classname
+> tillhandahåller en inställningsdialogruta för snabbtangenter som är färdig att använda. </para>
+
+</sect1>
+</chapter>
+
+<!--
+<chapter id="chapter6">
+<title
+>Other Features</title>
+</chapter>
+
+<chapter id="chapter7">
+<title
+>Printing Support</title>
+</chapter>
+-->
+<chapter id="chapter8">
+<title
+>Hjälpfunktioner</title>
+<sect1 id="c8s1">
+<title
+>Inledning</title>
+<para
+>En mycket viktig del av utvecklingsprocessen är att tillhandahålla hjälpfunktioner för användaren om möjligt. De flesta utvecklare tenderar att fördröja detta, men du bör komma ihåg att en normal användare inte nödvändigtvis är en Unix-expert. Han kanske kommer från den mörka sidan av programvaruanvändning som erbjuder alla godsaker som en användare kan behöva för att arbeta sig in i användningen av ett program utan att någonsin röra en handbok. Därför tillhandahåller KDE- och QT-biblioteken alla möjligheter som oftast anses göra ett program professionellt i den vanliga användarens ögon, men hjälpfunktioner som är klara att använda. Inne i programmet är de:</para>
+<itemizedlist>
+<listitem
+><para
+>Verktygstips</para
+></listitem>
+<listitem
+><para
+>Hjälp i statusraden</para
+></listitem>
+<listitem
+><para
+>Vad är det här...? knappar</para
+></listitem>
+</itemizedlist>
+<para
+>Dessutom bör programmet tillhandahålla en möjlighet att komma åt en HTML-baserad handbok direkt med den vanliga hjälptangenten F1. Det här sammanhangsberoende hjälpsystemet tillhandahålls automatiskt via klassen <classname
+>KMainWindow</classname
+>, även om du som upphovsman måste tillhandahålla innehållet. </para>
+<para
+>Eftersom &tdevelop; också erbjuder alla sorters hjälp, samt att KDE-ramverket som skapas av programguiden redan innehåller stöd för detta, hjälper det här kapitlet dig att lära dig var och hur du kan lägga till hjälpfunktioner. </para>
+<para
+>Under utvecklingen av programmet bör du försöka att vara konsekvent i vad du än gör. Därför bör du utföra nödvändiga steg direkt när du utökar koden. Det förhindrar att du behöver dyka ner i koden igen för att lista ut vad programmet gör eller vad du avsåg med vissa delar av koden. </para>
+</sect1>
+
+<sect1 id="c8s2">
+<title
+>Verktygstips</title>
+<para
+>Ett mycket enkelt sätt att tillhandahålla hjälp är verktygstips. De är små hjälpmeddelanden som dyker upp när användaren flyttar musen över en komponent som tillhandahåller ett verktygstips, och försvinner när musen flyttas. Den populäraste användningen av verktygstips är i verktygsrader där verktygstipsen bör vara så små som möjligt, eftersom verktygsrader kan ställas in att visa innehållet på olika sätt: antingen visas knappen, knappen med text till höger, knappen med text nedanför, eller bara text. Denna inställning bör kunna anpassas av användaren, men det är inte helt nödvändigt. Texten visas ändå som ett verktygstips, och en verktygsrad består oftast av knappar och andra grafiska komponenter som redigeringsfält och kombinationsrutor. För en fullständig beskrivning, se klassreferensen för <classname
+>KToolBar</classname
+>, som finns i tdeui-biblioteket. </para>
+<para
+>Som ett exempel tittar vi på knappen "Ny fil" i ett generellt program: </para>
+<para
+>Där tillhandahåller delen i18n("New File") meddelandet för verktygstipset. Det omges av makrot i18n(), som tillhandahålls av kapp.h, för att översätta verktygstipset till språket som för närvarande är valt. </para>
+<para
+>Verktygstips kan också läggas till i vilken egen grafisk komponent som helst genom att använda <classname
+>QToolTip</classname
+> som tillhandahålls av QT. Ett exempel på det skulle kunna vara: </para>
+</sect1>
+<sect1 id="c8s3">
+<title
+>Utöka statusraden</title>
+<para
+>Eftersom program som ärver <classname
+>KMainWindow</classname
+> också innehåller en statusrad, erbjuder den också en uppsättning färdiga statusradmeddelanden för alla meny- och verktygsradsobjekt. Ett hjälpmeddelande i statusraden är ett kort meddelande som utökar betydelsen av ett verktygstips, eller kan ses som en ersättning av ett verktygstips för ett alternativ i menyraden, och visas (som namnet anger) i statusraden när användaren aktiverar en meny och markerar ett menyalternativ. </para>
+</sect1>
+<sect1 id="c8s4">
+<title
+>Knappen <guibutton
+>Vad är det här?</guibutton
+></title>
+<para
+>Knappen <guibutton
+>Vad är det här...?</guibutton
+> tillhandahåller hjälpfönster med syftet att ge användaren hjälp med en viss komponent i vyn som används eller ett objekt i en verktygsrad. Den finns i verktygsraden och aktiveras när användaren trycker på knappen. Markören ändras till en pilmarkör med ett frågetecken, precis som knappen själv ser ut. Därefter kan användaren klicka på en synlig komponent och får då ett hjälpfönster. Som en övning kan du prova beteendet med knappen <guibutton
+>Vad är det här...?</guibutton
+> inne i &tdevelop;. </para>
+<para
+>För att lägga till "Vad är det här...?" hjälp i en av dina grafiska komponenter, använd den statiska metoden <methodname
+>QWhatsThis::add(QWidget *widget, const QString &amp;text)</methodname
+> </para>
+</sect1>
+</chapter>
+
+<chapter id="chapter9">
+<title
+>Dokumentation</title>
+<sect1 id="c9s1">
+<title
+>Inledning</title>
+<para
+>På grund av att projekt ofta saknar en fullständig uppsättning användardokumentation, innehåller alla projekt i &tdevelop; en handbok skapad i förväg. På så sätt uppfylls ett annat av KDE:s mål: Att tillhandahålla tillräckligt med direkthjälp för att stödja användare som inte är bekanta med programmet. Det här kapitlet introducerar därför hur dokumentationsmallen som tillhandahålls kan utökas, och vad du måste göra för att användaren ska få tillgång till den. </para>
+</sect1>
+<sect1 id="c9s2">
+<title
+>Användardokumentation</title>
+<para
+>Projektdokumentationen finns under projektkatalog/doc/en, eller kanske en annan katalog om engelska inte är ditt modersmål. Där finns en fil, index.docbook, där dokumentationen lagras. Formatet för att redigera filen förklaras på <ulink url="http://i18n.kde.org/doc/markup/"
+>KDE:s webbsida för dokumentation</ulink
+>. </para>
+</sect1>
+<sect1 id="c9s3">
+<title
+>Programdokumentation</title>
+<para
+>En annan viktig del av dokumentationen är att inkludera en beskrivande hjälp för klassgränssnitten. Det låter dig och andra programmerare använda dina klasser genom att läsa klassdokumentationen i HTML, som kan skapas med KDoc. &tdevelop; stöder fullständigt användning av KDoc för att skapa KDE-biblioteksdokumentation, ramverket för ditt program är också redan dokumenterat. För att arbeta sig in i koden som tillhandahålls, är det en god start att läsa inkluderad direktdokumentation. Det följande beskriver vad som ska göras för att få fram dokumentation av programmeringsgränssnittet, hur &tdevelop; hjälper dig lägga till det, och vilka särskilda taggar som KDoc tillhandahåller. </para>
+</sect1>
+</chapter>
+
+<chapter id="chapter10">
+<title
+>Språk</title>
+<sect1 id="c10s1">
+<title
+>Inledning</title>
+<para
+>Internationalisering med i18n är ett system som används för att erbjuda internationella versioner av ett program eller projekt. Svårigheten med att skriva program är att de bara stöder språket som de ursprungligen skapas med. Detta synliggörs med texter, menyalternativ och liknande. Målet med internationaliseringen är att tillhandahålla program och biblioteksfunktioner i användarens språk, och på så sätt göra det möjligt för användare som inte har originalspråket som modersmål att använda funktionerna som erbjuds och känna sig mer nöjd och belåten. </para>
+</sect1>
+<!--
+<sect1 id="c10s2">
+<title
+>How KDE support Internationalization</title>
+
+</sect1
+> -->
+</chapter>
+<!--
+<chapter id="chapter11">
+<title
+>Finding Errors</title>
+</chapter>
+
+<chapter id="chapter12">
+<title
+>Licensing</title>
+</chapter>
+
+<chapter id="chapter13">
+<title
+>References</title>
+</chapter>
+-->
+<chapter id="credits">
+<title
+>Tack till</title>
+
+<para
+>(ännu inte skrivet ...) </para>
+
+<!--CREDITS_FOR_TRANSLATORS-->
+
+</chapter
+> <!-- credits -->
+
+<appendix id="bibliography">
+<title
+>Bibliografi</title>
+<bibliography>
+
+<biblioentry>
+<title
+><ulink url="info://make/Top"
+>GNU Make Manual</ulink
+></title>
+<authorgroup>
+<author
+><firstname
+>Richard M.</firstname
+><surname
+>Stallman</surname
+></author>
+<author
+><firstname
+>Roland</firstname
+><surname
+>McGrath</surname
+></author>
+</authorgroup>
+</biblioentry>
+
+<biblioentry>
+<title
+><ulink url="info://automake/Top"
+>GNU Automake</ulink
+></title>
+<authorgroup>
+<author
+><firstname
+>David</firstname
+><surname
+>MacKenzie</surname
+></author>
+<author
+><firstname
+>Tom</firstname
+><surname
+>Tromey</surname
+></author>
+</authorgroup>
+</biblioentry>
+
+<biblioentry>
+<title
+><ulink url="info://autoconf/Top"
+>GNU Autoconf</ulink
+></title>
+<authorgroup>
+<author
+><firstname
+>David</firstname
+><surname
+>MacKenzie</surname
+></author>
+<author
+><firstname
+>Ben</firstname
+><surname
+>Elliston</surname
+></author>
+</authorgroup>
+</biblioentry>
+
+<biblioentry>
+<title
+><ulink url="info://gcc/Top"
+>Using the GNU Compiler Collection</ulink
+></title>
+<author
+><firstname
+>Richard M.</firstname
+><surname
+>Stallman</surname
+></author>
+</biblioentry>
+
+<biblioentry>
+<title
+><ulink url="info://libtool/Top"
+>GNU Libtool</ulink
+></title>
+<authorgroup>
+<author
+><firstname
+>Gordon</firstname
+><surname
+>Matzigkeit</surname
+></author>
+<author
+><firstname
+>Alexandre</firstname
+><surname
+>Oliva</surname
+></author>
+<author
+><firstname
+>Thomas</firstname
+><surname
+>Tanner</surname
+></author>
+<author
+><firstname
+>Gary V.</firstname
+><surname
+>Vaughan</surname
+></author>
+</authorgroup>
+</biblioentry>
+
+<biblioentry>
+<title
+>GNU Autoconf, Automake, and Libtool</title>
+<edition
+>1st edition</edition>
+<pubdate
+>October 2000</pubdate>
+<authorgroup>
+<author
+><firstname
+>Gary V.</firstname
+><surname
+>Vaughan</surname
+></author>
+<author
+><firstname
+>Ben</firstname
+><surname
+>Elliston</surname
+></author>
+<author
+><firstname
+>Tom</firstname
+><surname
+>Tromey</surname
+></author>
+<author
+><firstname
+>Ian Lance</firstname
+><surname
+>Taylor</surname
+></author>
+</authorgroup>
+<publisher
+><publishername
+>New Riders Publishing</publishername
+></publisher>
+<isbn
+>ISBN 1578701902</isbn>
+</biblioentry>
+
+
+<biblioentry>
+<title
+>Advanced Programming in the UNIX(R) Environment</title>
+<edition
+>1st edition</edition>
+<pubdate
+>June 1992</pubdate>
+<author
+><firstname
+>W. Richard</firstname
+><surname
+>Stevens</surname
+></author>
+<publisher
+><publishername
+>Addison-Wesley Pub Co</publishername
+></publisher>
+<isbn
+>ISBN 0201563177</isbn>
+</biblioentry>
+
+<biblioentry>
+<title
+>Thinking in C++, Volume 1: Introduction to Standard C++</title>
+<edition
+>2nd Edition</edition>
+<pubdate
+>April 15, 2000</pubdate>
+<author
+><firstname
+>Bruce</firstname
+><surname
+>Eckel</surname
+></author>
+<publisher
+><publishername
+>Prentice Hall</publishername
+></publisher>
+<isbn
+>ISBN 0139798099</isbn>
+</biblioentry>
+
+<biblioentry>
+<title
+>Open Source Development with CVS</title>
+<edition
+>2nd Edition</edition>
+<pubdate
+>October 12, 2001</pubdate>
+<authorgroup>
+<author
+><firstname
+>Karl</firstname
+><surname
+>Fogel</surname
+></author>
+<author
+><firstname
+>Moshe</firstname
+><surname
+>Bar</surname
+></author>
+</authorgroup>
+<publisher
+><publishername
+>The Coriolis Group</publishername
+></publisher>
+<isbn
+>ISBN 158880173X</isbn>
+</biblioentry>
+
+<biblioentry>
+<title
+>Programming PHP</title>
+<edition
+>1st edition</edition>
+<pubdate
+>March 2002</pubdate>
+<authorgroup>
+<author
+><firstname
+>Rasmus</firstname
+><surname
+>Lerdorf</surname
+></author>
+<author
+><firstname
+>Kevin</firstname
+><surname
+>Tatroe</surname
+></author>
+</authorgroup>
+<publisher
+><publishername
+>O'Reilly &amp; Associates</publishername
+></publisher>
+<isbn
+>ISBN 1565926102</isbn>
+</biblioentry>
+
+<biblioentry>
+<title
+>Programming Python</title>
+<edition
+>2nd Edition</edition>
+<pubdate
+>March 2001</pubdate>
+<author
+><firstname
+>Mark</firstname
+><surname
+>Lutz</surname
+></author>
+<publisher
+><publishername
+>O'Reilly &amp; Associates</publishername
+></publisher>
+<isbn
+>ISBN 0596000855</isbn>
+</biblioentry>
+
+<biblioentry>
+<title
+>Gui Programming With Python : Using the Qt Toolkit</title>
+<edition
+>Bk&amp;Cd-r edition</edition>
+<pubdate
+>January 2002</pubdate>
+<author
+><firstname
+>Boudewijn</firstname
+><surname
+>Rempt</surname
+></author>
+<publisher
+><publishername
+>Opendocs Llc</publishername
+></publisher>
+<isbn
+>ISBN 0970033044</isbn>
+</biblioentry>
+
+<biblioentry>
+<title
+>Programming Perl</title>
+<subtitle
+>Kamelboken</subtitle>
+<edition
+>3rd Edition</edition>
+<pubdate
+>July 2000</pubdate>
+<authorgroup>
+<author
+><firstname
+>Larry</firstname
+><surname
+>Wall</surname
+></author>
+<author
+><firstname
+>Tom</firstname
+><surname
+>Christiansen</surname
+></author>
+<author
+><firstname
+>Jon</firstname
+><surname
+>Orwant</surname
+></author>
+</authorgroup>
+<publisher
+><publishername
+>O'Reilly &amp; Associates</publishername
+></publisher>
+<isbn
+>ISBN 0596000278</isbn>
+</biblioentry>
+
+<biblioentry>
+<title
+>Learning Perl</title>
+<subtitle
+>Lamaboken</subtitle>
+<edition
+>3rd Edition</edition>
+<pubdate
+>July 15, 2001</pubdate>
+<authorgroup>
+<author
+><firstname
+>Randal L.</firstname
+><surname
+>Schwartz</surname
+></author>
+<author
+><firstname
+>Tom</firstname
+><surname
+>Phoenix</surname
+></author>
+</authorgroup>
+<publisher
+><publishername
+>O'Reilly &amp; Associates</publishername
+></publisher>
+<isbn
+>ISBN 0596001320</isbn>
+</biblioentry>
+
+</bibliography>
+
+&underFDL;
+
+
+</appendix>
+
+</book>
diff --git a/tde-i18n-sv/docs/tdevelop/kde_app_devel/kscribblefiles.png b/tde-i18n-sv/docs/tdevelop/kde_app_devel/kscribblefiles.png
new file mode 100644
index 00000000000..b3c37cb7a89
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/kscribblefiles.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.am b/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.am
new file mode 100644
index 00000000000..9e41d9df652
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.am
@@ -0,0 +1,4 @@
+KDE_LANG = sv
+SUBDIRS = $(AUTODIRS)
+KDE_DOCS = AUTO
+KDE_MANS = AUTO
diff --git a/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.in b/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.in
new file mode 100644
index 00000000000..34fba4e9aa2
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kdearch/Makefile.in
@@ -0,0 +1,635 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 483858 $
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = docs/tdevelop/kdearch
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+#>- html-recursive info-recursive install-data-recursive \
+#>- install-dvi-recursive install-exec-recursive \
+#>- install-html-recursive install-info-recursive \
+#>- install-pdf-recursive install-ps-recursive install-recursive \
+#>- installcheck-recursive installdirs-recursive pdf-recursive \
+#>- ps-recursive uninstall-recursive
+#>+ 7
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CONF_FILES = @CONF_FILES@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+GMSGFMT = @GMSGFMT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_RPATH = @KDE_RPATH@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_RPATH = @X_RPATH@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+#>- bindir = @bindir@
+#>+ 2
+DEPDIR = .deps
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+tdeinitdir = @tdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+KDE_LANG = sv
+#>- SUBDIRS = $(AUTODIRS)
+#>+ 1
+SUBDIRS =.
+KDE_DOCS = AUTO
+KDE_MANS = AUTO
+#>- all: all-recursive
+#>+ 1
+all: docs-am all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+#>- @for dep in $?; do \
+#>- case '$(am__configure_deps)' in \
+#>- *$$dep*) \
+#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- && exit 0; \
+#>- exit 1;; \
+#>- esac; \
+#>- done; \
+#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile'; \
+#>- cd $(top_srcdir) && \
+#>- $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile
+#>+ 12
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile
+ cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/kdearch/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+#>- distdir: $(DISTFILES)
+#>+ 1
+distdir: distdir-nls $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+#>- uninstall: uninstall-recursive
+#>+ 1
+uninstall: uninstall-docs uninstall-nls uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-recursive
+#>+ 1
+clean: kde-rpo-clean clean-recursive
+
+#>- clean-am: clean-generic mostlyclean-am
+#>+ 1
+clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+#>- install-data-am:
+#>+ 1
+install-data-am: install-docs install-nls
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic ctags \
+ ctags-recursive distclean distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+ tags-recursive uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+#>+ 2
+KDE_DIST=index.docbook index.cache.bz2 whatsthis.png Makefile.in Makefile.am
+
+#>+ 24
+index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) index.docbook whatsthis.png
+ @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi
+
+docs-am: index.cache.bz2
+
+install-docs: docs-am install-nls
+ $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch
+ @if test -f index.cache.bz2; then \
+ echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \
+ $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \
+ elif test -f $(srcdir)/index.cache.bz2; then \
+ echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \
+ $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/; \
+ fi
+ -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/common
+ $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/common
+
+uninstall-docs:
+ -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch
+
+clean-docs:
+ -rm -f index.cache.bz2
+
+
+#>+ 13
+install-nls:
+ $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch
+ @for base in index.docbook whatsthis.png ; do \
+ echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/$$base ;\
+ $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/$$base ;\
+ done
+
+uninstall-nls:
+ for base in index.docbook whatsthis.png ; do \
+ rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kdearch/$$base ;\
+ done
+
+
+#>+ 5
+distdir-nls:
+ for file in index.docbook whatsthis.png ; do \
+ cp $(srcdir)/$$file $(distdir); \
+ done
+
+#>+ 15
+force-reedit:
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docs/tdevelop/kdearch/Makefile
+ cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/kdearch/Makefile.in
+
+
+#>+ 21
+clean-bcheck:
+ rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-recursive
+
+bcheck-am:
+ @for i in ; do \
+ if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+ echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+ echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+ echo "$$i"; \
+ if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+ rm -f $$i.bchecktest.cc; exit 1; \
+ fi ; \
+ echo "" >> $$i.bchecktest.cc.class; \
+ perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+ rm -f a.out; \
+ fi ; \
+ done
+
+
+#>+ 3
+final:
+ $(MAKE) all-am
+
+#>+ 3
+final-install:
+ $(MAKE) install-am
+
+#>+ 3
+no-final:
+ $(MAKE) all-am
+
+#>+ 3
+no-final-install:
+ $(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+ -rm -f *.rpo
+
+#>+ 3
+nmcheck:
+nmcheck-am: nmcheck
diff --git a/tde-i18n-sv/docs/tdevelop/kdearch/index.cache.bz2 b/tde-i18n-sv/docs/tdevelop/kdearch/index.cache.bz2
new file mode 100644
index 00000000000..8c0de175f33
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kdearch/index.cache.bz2
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/kdearch/index.docbook b/tde-i18n-sv/docs/tdevelop/kdearch/index.docbook
new file mode 100644
index 00000000000..86ecbccfda3
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kdearch/index.docbook
@@ -0,0 +1,3680 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY % addindex "INCLUDE">
+ <!ENTITY % Swedish "INCLUDE"
+> <!-- change language only here -->
+]>
+
+<book lang="&language;">
+
+<bookinfo>
+<title
+>Översikt över KDE:s arkitektur</title>
+
+<date
+></date>
+<releaseinfo
+></releaseinfo>
+
+<authorgroup>
+<author
+><firstname
+>Bernd</firstname
+> <surname
+>Gehrmann</surname
+> <affiliation
+><address
+><email
+>bernd@tdevelop.org</email
+></address
+></affiliation>
+</author>
+</authorgroup>
+
+<copyright>
+<year
+>2001</year>
+<year
+>2002</year>
+<holder
+>Bernd Gehrmann</holder>
+</copyright>
+
+<legalnotice
+>&FDLNotice;</legalnotice>
+
+<abstract>
+<para
+>Den här dokumentationen ger en översikt över KDE-utvecklingsmiljön.</para>
+</abstract>
+
+<keywordset>
+<keyword
+>KDE</keyword>
+<keyword
+>arkitektur</keyword>
+<keyword
+>utveckling</keyword>
+<keyword
+>programmering</keyword>
+</keywordset>
+
+</bookinfo>
+
+<chapter id="structure">
+<title
+>Biblioteksstruktur</title>
+
+<simplesect id="structure-byname">
+<title
+>Bibliotek ordnade efter namn</title>
+
+<variablelist>
+
+<varlistentry>
+<term
+><ulink url="kdeapi:tdecore/index.html"
+>tdecore</ulink
+></term>
+<listitem
+><para
+>Biblioteket tdecore är det grundläggande programramverket för alla KDE-baserade program. Det ger tillgång till konfigurationssystemet, hantering av kommandoraden, laddning och hantering av ikoner, vissa särskilda sorters interprocesskommunikation, filhantering och diverse andra verktyg. </para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><ulink url="kdeapi:tdeui/index.html"
+>tdeui</ulink
+></term>
+<listitem
+><para
+>Biblioteket <literal
+>tdeui</literal
+> tillhandahåller många grafiska komponenter och standarddialogrutor som Qt inte har eller som har fler funktioner än motsvarande i Qt. Det innehåller också flera grafiska komponenter som är delklasser av de i Qt, men är bättre integrerade med KDE-skrivbordet genom att de respekterar användarinställningar. </para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><ulink url="kdeapi:kio/index.html"
+>kio</ulink
+></term>
+<listitem
+><para
+>Biblioteket <literal
+>kio</literal
+> innehåller funktioner för asynkron, nätverkstransparent I/O och åtkomst till hantering av Mime-typer. Det tillhandahåller också KDE:s fildialogruta och dess hjälpklasser. </para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><ulink url="kdeapi:kjs/index.html"
+>kjs</ulink
+></term>
+<listitem
+><para
+>Biblioteket <literal
+>kjs</literal
+> tillhandahåller en implementering av Javaskript. </para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><ulink url="kdeapi:khtml/index.html"
+>khtml</ulink
+></term>
+<listitem
+><para
+>Biblioteket <literal
+>khtml</literal
+> innehåller KHTML-delen, en HTML-bläddringskomponent, DOM-gränssnitt och tolk, inklusive gränssnitt till Java och Javaskript. </para
+></listitem>
+</varlistentry>
+
+</variablelist>
+
+</simplesect>
+
+
+<simplesect id="structure-grouped">
+<title
+>Grupperade klasser</title>
+
+<para
+>Centralt programskelett: klasser som behövs av nästan alla program. </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara>
+<title
+><ulink url="kdeapi:tdecore/KApplication"
+>KApplication</ulink
+></title>
+<para
+>Initierar och styr ett KDE-program. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara>
+<title
+><ulink url="kdeapi:tdecore/KUniqueApplication"
+>KUniqueApplication</ulink
+></title>
+<para
+>Försäkrar att bara en instans av ett program kan köra samtidigt. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KAboutData"
+>KAboutData</ulink
+></title>
+<para
+>Innehåller information för dialogrutan Om. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KCmdLineArgs"
+>KCmdLineArgs</ulink
+></title>
+<para
+>Behandling av kommandoradsväljare. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Konfigurationsinställningar: åtkomst till KDE:s hierarkiska konfigurationsdatabas, globala inställningar och programresurser. </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KConfig"
+>KConfig</ulink
+></title>
+<para
+>Ger tillgång till KDE:s konfigurationsdatabas. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KSimpleConfig"
+>KSimpleConfig</ulink
+></title>
+<para
+>Åtkomst av enkla, icke-hierarkiska konfigurationsfiler. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KDesktopFile"
+>KDesktopFile</ulink
+></title>
+<para
+>Åtkomst till <literal
+>.desktop</literal
+>-filer. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KGlobalSettings"
+>KGlobalSettings</ulink
+></title>
+<para
+>Bekväm åtkomst till inställningar som inte är programspecifika. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Fil- och webbadresshantering: avkodning av webbadresser, tillfälliga filer, etc. </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KURL"
+>KURL</ulink
+></title>
+<para
+>Representerar och tolkar webbadresser. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KTempFile"
+>KTempFile</ulink
+></title>
+<para
+>Skapar unika filer för tillfällig data. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KSaveFile"
+>KSaveFile</ulink
+></title>
+<para
+>Tillåter att filer sparas odelbart. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Interprocesskommunikation: DCOP-hjälpklasser och start av underprocesser. </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KProcess"
+>KProcess</ulink
+></title>
+<para
+>Startar och styr underprocesser. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KShellProcess"
+>KShellProcess</ulink
+></title>
+<para
+>Startar underprocesser via ett skal. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdesu/PtyProcess"
+>PtyProcess</ulink
+></title>
+<para
+>Kommunikation med underprocesser via en pseudoterminal. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KIPC"
+>KIPC</ulink
+></title>
+<para
+>Enkel IPC-mekanism som använder X11-klientmeddelanden. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:dcop/DCOPClient"
+>DCOPClient</ulink
+></title>
+<para
+>DCOP-meddelanden. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KDCOPPropertyProxy"
+>KDCOPPropertyProxy</ulink
+></title>
+<para
+>En proxyklass som offentliggör Qt-egenskaper via DCOP. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KDCOPActionProxy"
+>KDCOPActionProxy</ulink
+></title>
+<para
+>En proxyklass som offentliggör ett DCOP-gränssnitt för åtgärder. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Verktygsklasser: minneshantering, reguljära uttryck, stränghantering, slumptal. </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KRegExp"
+>KRegExp</ulink
+></title>
+<para
+>Matchning av POSIX reguljära uttryck. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KStringHandler"
+>KStringHandler</ulink
+></title>
+<para
+>Ett överdådigt gränssnitt för stränghantering. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KZoneAllocator"
+>KZoneAllocator</ulink
+></title>
+<para
+>Effektiv minnestilldelning för stora grupper av små objekt. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KRandomSequence"
+>KRandomSequence</ulink
+></title>
+<para
+>Skapa pseudoslumptal. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Snabbtangenter: klasser som hjälper till att skapa överensstämmande tangentbindningar över hela skrivbordet. </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KAccel"
+>KAccel</ulink
+></title>
+<para
+>Samling av snabbtangenter. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KStdAccel"
+>KStdAccel</ulink
+></title>
+<para
+>Lätt åtkomst till de vanliga snabbtangenterna. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KGlobalAccel"
+></ulink
+></title>
+<para
+>Samling av snabbtangenter som gäller för hela systemet. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Bildbehandling: ikonladdning och -hantering. </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KIconLoader"
+>KIconLoader</ulink
+></title>
+<para
+>Laddar ikoner som överensstämmer med teman. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KIconTheme"
+>KIconTheme</ulink
+></title>
+<para
+>Hjälpklasser för KIconLoader. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KPixmap"
+>KPixmap</ulink
+></title>
+<para
+>En pixmapp-klass med utökade gittermöjligheter. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KPixmapEffect"
+>KPixmapEffect</ulink
+></title>
+<para
+>Pixmappeffekter som toning och mönster. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KPixmapIO"
+>KPixmapIO</ulink
+></title>
+<para
+>Snabb konvertering mellan <classname
+>QImage</classname
+> och <classname
+>QPixmap</classname
+>. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Drag och släpp: dra objekt för färger och webbadresser. </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KURLDrag"
+>KURLDrag</ulink
+></title>
+<para
+>Dragobjekt för webbadresser. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KColorDrag"
+>KColorDrag</ulink
+></title>
+<para
+>Dragobjekt för färger. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KMultipleDrag"
+>KMultipleDrag</ulink
+></title>
+<para
+>Tillåter att dragobjekt skapas från flera andra. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Automatisk komplettering </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KCompletion"
+>KCompletion</ulink
+></title>
+<para
+>Generell automatisk komplettering av strängar. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kio/KURLCompletion"
+>KURLCompletion</ulink
+></title>
+<para
+>Automatisk komplettering av webbadresser. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kio/KShellCompletion"
+>KShellCompletion</ulink
+></title>
+<para
+>Automatisk komplettering för körbara program. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Grafiska komponenter: klasser för listvyer, linjaler, färgval, etc. </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KListView"
+>KListView</ulink
+></title>
+<para
+>En version av <classname
+>QListView</classname
+> som följer KDE:s systeminställningar. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KListView"
+>KListBox</ulink
+></title>
+<para
+>En version av <classname
+>QListBox</classname
+> som följer KDE:s systeminställningar. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KListView"
+>KIconView</ulink
+></title>
+<para
+>En version av <classname
+>QIconView</classname
+> som följer KDE:s systeminställningar. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KListView"
+>KLineEdit</ulink
+></title>
+<para
+>En version av <classname
+>QLineEdit</classname
+> med stöd för komplettering. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KComboBox"
+>KComboBox</ulink
+></title>
+<para
+>En version av <classname
+>QComboBox</classname
+> med stöd för komplettering. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KFontCombo"
+>KFontCombo</ulink
+></title>
+<para
+>En kombinationsruta för att välja teckensnitt. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KColorCombo"
+>KColorCombo</ulink
+></title>
+<para
+>En kombinationsruta för att välja färger. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KColorButton"
+>KColorButton</ulink
+></title>
+<para
+>En knapp för att välja färger. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KURLCombo"
+>KURLCombo</ulink
+></title>
+<para
+>En kombinationsruta för att välja filnamn och webbadresser. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kfile/KURLRequester"
+>KURLRequester</ulink
+></title>
+<para
+>En radeditor för att välja filnamn och webbadresser. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KRuler"
+>KRuler</ulink
+></title>
+<para
+>En linjalkomponent. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink
+url="kdeapi:tdeui/KAnimWidget"
+>KAnimWidget</ulink
+></title>
+<para
+>Animeringar. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KNumInput"
+>KNumInput</ulink
+></title>
+<para
+>En komponent för att mata in tal. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KPasswordEdit"
+>KPasswordEdit</ulink
+></title>
+<para
+>En komponent för att mata in lösenord. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Dialogrutor: dialogrutor med fullständig funktion för val av filer, färger och teckensnitt. </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kfile/KFileDialog"
+>KFileDialog</ulink
+></title>
+<para
+>En dialogruta för val av filer. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KColorDialog"
+>KColorDialog</ulink
+></title>
+<para
+>En dialogruta för val av färger. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KFontDialog"
+>KFontDialog</ulink
+></title>
+<para
+>En dialogruta för val av teckensnitt. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kfile/KIconDialog"
+>KIconDialog</ulink
+></title>
+<para
+>En dialogruta för val av ikoner. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KKeyDialog"
+>KKeyDialog</ulink
+></title>
+<para
+>En dialogruta för att redigera tangentbordsbindningar. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KEditToolBar"
+>KEditToolBar</ulink
+></title>
+<para
+>En dialogruta för att redigera verktygsrader. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KTipDialog"
+>KTipDialog</ulink
+></title>
+<para
+>En dialogruta med dagens tips. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KAboutDialog"
+>KAboutDialog</ulink
+></title>
+<para
+>En dialogruta om ett program. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KLineEditDlg"
+>KLineEditDlg</ulink
+></title>
+<para
+>En enkel dialogruta för att mata in text. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kfile/KURLRequesterDlg"
+>KURLRequesterDlg</ulink
+></title>
+<para
+>En enkel dialogruta för att mata in webbadresser. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KMessageBox"
+>KMessageBox</ulink
+></title>
+<para
+>En dialogruta för att meddela fel och varningar. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KPasswordDialog"
+>KPasswordDialog</ulink
+></title>
+<para
+>En dialogruta för att mata in lösenord. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Åtgärder och grafiskt XML-gränssnitt </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KAction"
+>KAction</ulink
+></title>
+<para
+>En abstraktion av en åtgärd som kan anslutas till menyrader och verktygsrader. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KActionCollection"
+>KActionCollection</ulink
+></title>
+<para
+>En samling åtgärder. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdeui/KXMLGUIClient"
+>KXMLGUIClient</ulink
+></title>
+<para
+>Ett fragment av ett grafiskt gränssnitt som består av en åtgärd och ett DOM-träd som motsvarar dess plats i det grafiska gränssnittet. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kparts/KPartManager"
+>KPartManager</ulink
+></title>
+<para
+>Hanterar aktivering av klienter till det grafiska XML-gränssnittet. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+<para
+>Insticksprogram och komponenter </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KLibrary"
+>KLibrary</ulink
+></title>
+<para
+>Representerar ett dynamiskt laddat bibliotek. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KLibrary"
+>KLibLoader</ulink
+></title>
+<para
+>Laddning av delade bibliotek. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:tdecore/KLibFactory"
+>KLibFactory</ulink
+></title>
+<para
+>Tillverkning av objekt för Insticksprogram. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kio/KServiceType"
+>KServiceType</ulink
+></title>
+<para
+>Representerar en tjänsttyp. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kio/KService"
+>KService</ulink
+></title>
+<para
+>Representerar en tjänst. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kio/KMimeType"
+>KMimeType</ulink
+></title>
+<para
+>Representerar en Mime-typ. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kio/KServiceTypeProfile"
+>KServiceTypeProfile</ulink
+></title>
+<para
+>Användarinställningar för tilldelningar av Mime-typer. </para>
+</formalpara
+></listitem>
+
+<listitem
+><formalpara
+><title
+><ulink url="kdeapi:kio/KServiceTypeProfile"
+>KTrader</ulink
+></title>
+<para
+>Förfrågningar om tjänster. </para>
+</formalpara
+></listitem>
+
+</itemizedlist>
+
+</simplesect>
+
+</chapter>
+
+
+
+<chapter id="graphics">
+<title
+>Grafik</title>
+
+<sect1 id="graphics-qpainter">
+<title
+>Lågnivågrafik med QPainter.</title>
+
+<simplesect id="qpainter-rendering">
+<title
+>Uppritning med QPainter</title>
+
+<para
+>Qt:s lågnivåritmodell är baserad på de möjligheter som erbjuds av X11 och andra fönstersystem där en version av Qt finns. Men den utökar också dem genom att implementera ytterligare funktioner som godtyckliga affina omvandlingar för text och pixmappar. </para>
+
+<para
+>Den centrala grafiska klassen för att rita tvådimensionellt med Qt är <ulink url="kdeapi:qt/QPainter"
+>QPainter</ulink
+>. Den kan rita på en <ulink url="kdeapi:qt/QPaintDevice"
+>QPaintDevice</ulink
+>. Det finns tre möjliga ritenheter implementerade: En är <ulink url="kdeapi:qt/QWidget"
+>QWidget</ulink
+>, som representerar en grafisk komponent på skärmen. Den andra är <ulink url="kdeapi:qt/QPrinter"
+>QPrinter</ulink
+>, som representerar en skrivare, och producerar Postskript-utmatning. Den tredje är klassen <ulink url="kdeapi:qt/QPicture"
+>QPicture</ulink
+>, som spelar in ritkommandon och kan spara dem till disk, och sedan spela upp dem. Ett möjligt lagringsformat för ritkommandon är W3C-standarden SVG. </para>
+
+<para
+>Alltså är det möjligt att återanvända uppritningskoden som du använder för att visa en grafisk komponent för utskrift, med stöd för samma funktioner. Naturligtvis används koden i praktiken i ett något annorlunda sammanhang. Rita på en grafisk komponent görs nästan enbart i metoden paintEvent() i en komponentklass. </para>
+
+<programlisting
+>void MinKomponent::paintEvent()
+{
+ QPainter p(this);
+ // Ställ in
+ // Använd
+}
+</programlisting>
+
+<para
+>Vid ritning på en skrivare, måste du försäkra dig om att använda QPrinter::newPage() för att avsluta en sida, och börja på en ny: något som inte är relevant för att rita grafiska komponenter. Vid utskrift vill du kanske också använda <ulink url="kdeapi:qt/QPaintDeviceMetrics"
+>enhetsmått</ulink
+> för att beräkna koordinater. </para>
+
+</simplesect>
+
+
+<simplesect id="qpainter-transformations">
+<title
+>Omvandlingar</title>
+
+<para
+>Normalt när QPainter används, ritar den i det naturliga koordinatsystemet som används av enheten. Det betyder att om du ritar en linje med längden 10 enheter, ritas den som en horisontell linje på skärmen med längden 10 bildpunkter. Dock kan QPainter använda godtyckliga affina omvandlingar innan former och kurvor verkligen ritas upp. En affin omvandling överför x- och y-koordinater linjärt till x' och y' enligt: </para>
+
+<mediaobject>
+<imageobject
+><imagedata fileref="affine-general.png"/></imageobject>
+</mediaobject>
+
+<para
+>QPainter::setWorldMatrix() kan användas för att ange den här 3x3 matrisen i ekvationen, som har typen <ulink url="kdeapi:qt/QWMatrix"
+>QWMatrix</ulink
+>. Normalt är detta identitetsmatrisen, dvs. m11 och m22 är ett, och övriga värden är noll. Det finns i grunden tre olika grupper av omvandlingar: </para>
+
+<itemizedlist>
+
+<listitem
+><formalpara>
+<title
+>Förflyttningar</title>
+<para
+>Dessa flyttar ett objekts alla punkter med ett fast värde i någon riktning. En förflyttningsmatris kan erhållas genom att anropa metoden m.translate(dx, dy) med en QWMatrix. Det motsvarar matrisen: </para>
+</formalpara>
+
+<mediaobject>
+<imageobject
+><imagedata fileref="affine-translate.png"/></imageobject>
+</mediaobject>
+
+</listitem>
+
+<listitem
+><formalpara>
+<title
+>Skalning</title>
+<para
+>Dessa förstorar eller förminskar ett objekts koordinater, och gör det större eller mindre utan att förvränga det. En skalningsomvandling kan göras för en QWMatrix genom att anropa m.scale(sx, sy). Det motsvarar matrisen: </para>
+</formalpara>
+
+<mediaobject>
+<imageobject
+><imagedata fileref="affine-scale.png"/></imageobject>
+</mediaobject>
+
+<para
+>Genom att ge en av parametrarna ett negativt värde, kan man åstadkomma spegling av koordinatsystemet. </para>
+
+</listitem>
+
+<listitem
+><formalpara>
+<title
+>Skjuvning</title>
+<para
+>En förvrängning av koordinatsystemet med två parametrar. En skjuvningsomvandling kan göras genom att anropa m.shear(sh, sv), vilket motsvarar matrisen: </para>
+</formalpara>
+
+<mediaobject>
+ <imageobject
+><imagedata fileref="affine-shear.png"/></imageobject>
+</mediaobject>
+
+</listitem>
+
+<listitem
+><formalpara>
+<title
+>Rotation</title>
+<para
+>Detta roterar ett objekt. En rotationsomvandling kan göras genom att anropa m.rotate(alfa). Observera att vinkeln måste anges i grader, inte som en matematisk vinkel! Motsvarande matris är: </para>
+</formalpara>
+
+<mediaobject>
+<imageobject
+><imagedata fileref="affine-rotate.png"/></imageobject>
+</mediaobject>
+
+<para
+>Observera att rotation är ekvivalent med en kombination av skalning och skjuvning. </para>
+
+</listitem>
+
+</itemizedlist>
+
+<para
+>Här är några bilder som visar effekten av de grundläggande omvandlingarna för vår maskot: </para>
+
+<informaltable frame="none">
+<tgroup cols="3">
+<tbody>
+<row>
+<entry
+><mediaobject>
+ <imageobject
+><imagedata fileref="konqi-normal.png"/></imageobject>
+</mediaobject
+></entry>
+<entry
+><mediaobject>
+ <imageobject
+><imagedata fileref="konqi-rotated.png"/></imageobject>
+</mediaobject
+></entry>
+<entry
+><mediaobject>
+ <imageobject
+><imagedata fileref="konqi-sheared.png"/></imageobject>
+</mediaobject
+></entry>
+<entry
+><mediaobject>
+ <imageobject
+><imagedata fileref="konqi-mirrored.png"/></imageobject>
+</mediaobject
+></entry>
+</row>
+<row>
+<entry
+>a) Normal</entry>
+<entry
+>b) Roterad 30 grader</entry>
+<entry
+>c) Skjuvad med 0,4</entry>
+<entry
+>d) Speglad</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+
+<para
+>Omvandlingar kan kombineras genom att multiplicera grundläggande matriser. Observera att matrisoperationer inte i allmänhet är kommutativa, och därför beror den kombinerade effekten av en sammansättning på ordningen som matriserna multipliceras med. </para>
+
+</simplesect>
+
+
+<simplesect id="qpainter-strokeattributes">
+<title
+>Ange streckegenskaper</title>
+
+<para
+>Uppritning av linjer, kurvor och polygonkanter kan ändras genom att ange en särskild penna med QPainter::setPen(). Argumentet till den här funktionen är ett <ulink url="kdeapi:qt/QPen"
+>QPen</ulink
+>-objekt. Egenskaperna som lagras i det är en stil, en färg, en sammanfogningsstil och en ändstil. </para>
+
+<para
+>Pennstilen är en medlem av uppräkningstypen <ulink url="kdeapi:qt/Qt#PenStyle-enum"
+>Qt::PenStyle</ulink
+>. och kan ha något av följande värden: </para>
+
+<mediaobject>
+ <imageobject
+><imagedata fileref="penstyles.png"/></imageobject>
+</mediaobject>
+
+<para
+>Sammanfogningsstilen är en medlem av uppräkningstypen <ulink url="kdeapi:qt/Qt#PenJoinStyle-enum"
+>Qt::PenJoinStyle</ulink
+>. Den anger hur förbindelsen mellan flera linjer som sätts samman ritas. Den kan ha något av följande värden: </para>
+
+<informaltable frame="none">
+<tgroup cols="3">
+<tbody>
+<row>
+<entry
+><mediaobject>
+ <imageobject
+><imagedata fileref="joinmiter.png"/></imageobject>
+</mediaobject
+></entry>
+<entry
+><mediaobject>
+ <imageobject
+><imagedata fileref="joinbevel.png"/></imageobject>
+</mediaobject
+></entry>
+<entry
+><mediaobject>
+ <imageobject
+><imagedata fileref="joinround.png"/></imageobject>
+</mediaobject
+></entry>
+</row>
+<row>
+<entry
+>a) MiterJoin</entry>
+<entry
+>c) BevelJoin</entry>
+<entry
+>b) RoundJoin</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+
+<para
+>Ändstilen är en medlem av uppräkningstypen <ulink url="kdeapi:qt/Qt#PenCapStyle-enum"
+>Qt::PenCapStyle</ulink
+> och anger hur linjernas ändpunkter ritas. Den antar något värde från följande tabell: </para>
+
+<informaltable frame="none">
+<tgroup cols="3">
+<tbody>
+<row>
+<entry
+><mediaobject>
+ <imageobject
+><imagedata fileref="capflat.png"/></imageobject>
+</mediaobject
+></entry>
+<entry
+><mediaobject>
+ <imageobject
+><imagedata fileref="capsquare.png"/></imageobject>
+</mediaobject
+></entry>
+<entry
+><mediaobject>
+ <imageobject
+><imagedata fileref="capround.png"/></imageobject>
+</mediaobject
+></entry>
+</row>
+<row>
+<entry
+>a) FlatCap</entry>
+<entry
+>b) SquareCap</entry>
+<entry
+>c) RoundCap</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+
+</simplesect>
+
+
+<simplesect id="qpainter-fillattributes">
+<title
+>Ange fyllnadsegenskaper</title>
+
+<para
+>Fyllnadsstilen för polygoner, cirklar eller rektanglar kan ändras genom att ange en särskild borste med QPainter::setBrush(). Den här funktionens argument är ett <ulink url="kdeapi:qt/QBrush"
+>QBrush</ulink
+>-objekt. Borstar kan skapas på fyra olika sätt: </para>
+
+<itemizedlist>
+<listitem>
+<para
+>QBrush::QBrush(): detta skapar en borste som inte fyller i former.</para>
+</listitem>
+<listitem>
+<para
+>QBrush::QBrush(BrushStyle): detta skapar en svart borste, med ett av de fördefinierade mönstren som visas nedan.</para>
+</listitem>
+<listitem>
+<para
+>QBrush::QBrush(const QColor &amp;, BrushStyle): detta skapar en färgad borste, med ett av de fördefinierade mönstren som visas nedan.</para>
+</listitem>
+<listitem>
+<para
+>QBrush::QBrush(const QColor &amp;, const QPixmap): detta skapar en färgad borste, med det egna mönstret som anges som andra parameter.</para>
+</listitem>
+</itemizedlist>
+
+<para
+>En standardborststil från uppräkningstypen <ulink url="kdeapi:qt/Qt#BrushStyle-enum"
+>Qt::BrushStyle</ulink
+>. Här är en bild av alla fördefinierade mönster: </para>
+
+<mediaobject>
+ <imageobject
+><imagedata fileref="brushstyles.png"/></imageobject>
+</mediaobject>
+
+<para
+>Ytterligare ett sätt att anpassa en borstes beteende är att använda funktionen QPainter::setBrushOrigin(). </para>
+
+</simplesect>
+
+
+<simplesect id="qpainter-color">
+<title
+>Färg</title>
+
+<para
+>Färger har betydelse både när kurvor ritas, och när former fylls i. Färger representeras av klassen <ulink url="kdeapi:qt/QColor"
+>QColor</ulink
+> i Qt. Qt stöder inte avancerade grafikfunktioner som ICC-färgprofiler och färgkorrektion. Färger skapas oftast genom att ange deras röda, gröna och bläa komponenter, eftersom RGB-modellen är sättet som bildpunkter sätts samman på en bildskärm. </para>
+
+<para
+>Det är också möjligt att använda färgton, färgmättnad och värde. Den här HSV-representationen är den som används i GTK:s färgdialogruta, t.ex. i GIMP. Där motsvarar färgtonen en vinkel i färghjulet, medan färgmättnaden motsvarar avståndet från cirkelns mitt. Värdet väljs med ett särskilt skjutreglage. </para>
+
+</simplesect>
+
+
+<simplesect id="qpainter-paintsettings">
+<title
+>Övriga inställningar</title>
+
+<para
+>Normalt när du ritar på en ritenhet, så ersätter bildpunkterna de som tidigare fanns där. Det betyder om du fyller ett visst område med röd färg, och sedan fyller samma område med blå färg, så är bara den blåa färgen synlig. Qt:s bildmodell tillåter inte genomskinlighet, dvs. ett sätt att blanda förgrunden som ritas med bakgrunden. Det finns dock ett enkelt sätt att kombinera bakgrund och förgrund med Booleska operationer. Metoden QPainter::setRasterOp() anger operationen som används, som kommer från uppräkningstypen <ulink url="kdeapi:qt/Qt#RasterOp-enum"
+>RasterOp</ulink
+>. </para>
+
+<para
+>Standardvärdet är CopyROP, som ignorerar bakgrunden. Ett annat populärt val är XorROP. Om du ritar en svart linje med den operationen på en färgad bild, så inverteras området som täcks. Den här effekten används till exempel för att skapa gummibandsmarkeringar i bildbehandlingsprogram, som är kända under namnet "vandrande myror". </para>
+
+</simplesect>
+
+
+<simplesect id="qpainter-primitives">
+<title
+>Rita grafiska primitiver</title>
+
+<para
+>I det följande listar vi de grundläggande grafiska elementen som stöds av QPainter. De flesta av dem finns i flera överlastade versioner som har olika antal argument. Metoder som hanterar rektanglar, har till exempel oftast en <ulink url="kdeapi:qt/QRect"
+>QRect</ulink
+> som argument, eller en uppsättning med fyra heltal. </para>
+
+<itemizedlist>
+<listitem>
+<para
+>Rita en ensam punkt: drawPoint().</para>
+</listitem>
+<listitem>
+<para
+>Rita linjer: drawLine(), drawLineSegments() och drawPolyLine().</para>
+</listitem>
+<listitem>
+<para
+>Rita och fylla i rektanglar: drawRect(), drawRoundRect(), fillRect() och eraseRect().</para>
+</listitem>
+<listitem>
+<para
+>Rita och fylla i cirklar, ellipser och delar av dem: drawEllipse(), drawArc(), drawPie och drawChord().</para>
+</listitem>
+<listitem>
+<para
+>Rita och fylla i generella polygoner: drawPolygon().</para>
+</listitem>
+<listitem>
+<para
+>Rita Bezierkurvor: drawQuadBezier() [drawCubicBezier i Qt 3.0].</para>
+</listitem>
+</itemizedlist>
+
+</simplesect>
+
+
+<simplesect id="qpainter-pixmaps">
+<title
+>Rita pixmappar och bilder</title>
+
+<para
+>Qt tillhandahåller två mycket olika klasser för att representera bilder. </para>
+
+<para
+><ulink url="kdeapi:qt/QPixmap"
+>QPixmap</ulink
+> motsvarar direkt pixmappsobjekt i X11. En pixmapp är ett objekt på serversidan och kan, med ett modernt grafikkort, till och med lagras direkt i kortets minne. Det gör det <emphasis
+>mycket</emphasis
+> effektivt att överföra en pixmapp till skärmen. En pixmapp fungerar också som en motsvarighet till grafiska komponenter utanför skärmen. QPixmap-klassen är en delklass till QPaintDevice, så det går att rita på den med en QPainter. Elementära ritoperationer accelereras ofta av modern grafik. Därför är ett vanligt användningsmönster att använda en pixmapp för dubbelbuffring. Detta betyder att istället för att rita direkt på en grafisk komponent, ritar man på ett tillfälligt pixmappsobjekt och använder funktionen <ulink url="kdeapi:qt/QPaintDevice#bitBlt-1"
+>bitBlt</ulink
+> för att överföra det till komponenten. För komplexa omritningar, hjälper detta till att undvika flimmer. </para>
+
+<para
+>I motsats till detta, finns <ulink url="kdeapi:qt/QImage"
+>QImage</ulink
+>-objekt på klientsidan. Deras huvuduppgift är att ge direkt åtkomst till bildpunkterna i bilden. Det gör dem användbara för bildhantering, och saker som att ladda och spara till disk (Metoden load() för QPixmap använder QImage som ett mellansteg). Å andra sidan, så blir uppritning av en bild på en grafisk komponent en ganska krävande åtgärd, eftersom det innebär en överföring till X-servern, vilket kan ta en viss tid, särskilt för stora bilder och fjärrservrar. Beroende på färgdjupet, kan konvertering från QImage till QPixmap också kräva användning av gitter. </para>
+
+</simplesect>
+
+
+<simplesect id="qpainter-drawingtext">
+<title
+>Rita text</title>
+
+<para
+>Text kan ritas med en av de överlastade varianterna av metoden QPainter::drawText(). De ritar en QString, antingen vid en given punkt eller inne i en given rektangel, med teckensnittet som ställts in med QPainter::setFont(). Det finns också en parameter som tar en ELLER-kombination av vissa flaggor från uppräkningstyperna <ulink url="kdeapi:qt/Qt#AlignmentFlags-enum"
+>Qt::AlignmentFlags</ulink
+> och <ulink url="kdeapi:qt/Qt#TextFlags-enum"
+>Qt::TextFlags</ulink
+>. </para>
+
+<para
+>Med början i version 3.0, hanterar Qt fullständig textlayout också för språk som skrivs från höger till vänster. </para>
+
+<para
+>Ett mer avancerat sätt att visa text med taggar, är klassen <ulink url="kdeapi:qt/QSimpleRichText"
+>QSimpleRichText</ulink
+>. Objekt från klassen kan skapas med ett textstycke som använder en delmängd av HTML-taggarna, som är ganska omfattande och till och med erbjuder tabeller. Textstilen kan anpassas genom att använda <ulink url="kdeapi/qt/QStyleSheet"
+>QStyleSheet</ulink
+> (taggarnas dokumentation finns också här). Så fort textobjektet har skapats, kan det ritas upp på en grafisk komponent eller en annan ritenhet med metoden QSimpleRichText::draw(). </para>
+
+</simplesect>
+
+</sect1>
+
+
+<sect1 id="graphics-qcanvas">
+<title
+>Strukturerad grafik med QCanvas</title>
+
+<para
+>QPainter erbjuder en kraftfull ritmodell för att rita på grafikska komponenter och pixmappar. Dock kan den vara omständlig att använda. Varje gång komponenten tar emot en rithändelse, måste den analysera QPaintEvent::region() eller QPaintEvent::rect() för det som måste ritas om. Därefter måste den ställa in en QPainter, och rita alla objekt som överlappar det området. Tänk dig till exempel ett vektorritprogram som tillåter att objekt som polygoner, cirklar och grupper av dem att dras omkring. Varje gång objekten flyttas lite grand, aktiverar komponentens mushändelsehantering en rithändelse för hela området som täcks av objektens gamla plats och deras nya plats. Att räkna ut nödvändiga omritningar, och att göra dem på ett effektivt sätt, kan vara svårt, och kan också vara i konflikt med programkodens objektorienterade struktur. </para>
+
+<para
+>Som alternativ innehåller Qt klassen <ulink url="kdeapi:qt/QCanvas"
+>QCanvas</ulink
+>, där man lägger till grafiska objekt, som polygoner, text eller pixmappar. Man kan också skapa ytterligare objekt genom att skapa en delklass av <ulink url="kdeapi:qt/QCanvasItem"
+>QCanvasItem</ulink
+> eller någon av dess mer specialiserade delklasser. En duk kan visas på skärmen genom en eller flera komponenter från klassen <ulink url="kdeapi:qt/QCanvas"
+>QCanvasView</ulink
+>, som man måste skapa en delklass av för att hantera interaktion med användaren. Qt tar hand om all omritning av objekt i vyn, vare sig de orsakas av att komponenten visas, nya objekt skapas eller ändras, eller andra orsaker. Genom att använda dubbelbuffring, kan detta göras på ett effektivt och flimmerfritt sätt. </para>
+
+<para
+>Objekt på duken kan överlappa varandra. I detta fall, så beror vilken som syns på z-ordningen, som kan tilldelas med QCanvasItem::setZ(). Objekt kan också göras synliga eller osynliga. Man kan också tillhandahålla en bakgrund som ska ritas "bakom" alla objekt, och en förgrund. För att associera mushändelser med objekt på duken, finns metoden QCanvas::collisions(), som returnerar en lista med objekt som överlappar med en given punkt. Här visar vi en skärmbild av en dukvy i arbete: </para>
+
+<mediaobject>
+<imageobject
+><imagedata fileref="canvas.png"/></imageobject>
+</mediaobject>
+
+<para
+>Här ritas rutmönstret upp i bakgrunden. Dessutom finns ett QCanvasText-objekt och en violett QCanvasPolygon. Fjärilen är en QCanvasPixmap. Den har genomskinliga områden, så du kan se underliggande objekt genom den. </para>
+
+<para
+>En handledning om hur QCanvas används för att skriva spel baserade på småfigurer finns <ulink url="http://zez.org/article/articleview/2/1/"
+>här</ulink
+>. </para>
+
+</sect1>
+
+
+<sect1 id="graphics-qglwidget">
+<title
+>3D-grafik med OpenGL</title>
+
+<simplesect id="qglwidget-lowlevel">
+<title
+>Lågnivågränssnitt</title>
+
+<para
+>De-facto standarden för att rita upp 3D-grafik nu för tiden är <ulink url="http://www.opengl.org"
+>OpenGL</ulink
+>. Implementeringar av standarden levereras med Microsoft Windows, Mac OS X och XFree86, och de stöder ofta funktioner för hårdvaruacceleration som erbjuds av moderna grafikkort. OpenGL själv hanterar bara uppritning på ett angivet område i rambuffern genom ett <emphasis
+>GL-sammanhang</emphasis
+>, och har ingen interaktion med verktygslådan eller miljön. </para>
+
+<para
+>Qt erbjuder den grafiska komponenten <ulink url="kdeapi:qt/QGLWidget"
+>QGLWidget</ulink
+>, som kapslar in ett fönster med tillhörande GL-sammanhang. I grunden används det genom att skapa en delklass av det och implementera om några metoder. </para>
+
+<itemizedlist>
+
+<listitem
+><para
+>Istället för att implementera om paintEvent(), och använda QPainter för att rita komponentens innehåll, överskrider man paintGL() och använder GL-kommandon för att rita upp en scen. QGLWidget tar hand om att göra sitt GL-sammanhang det aktuella innan paintGL() anropas, och tömmer det efteråt. </para
+></listitem>
+
+<listitem
+><para
+>Den virtuella metoden initializeGL() anropas en gång innan den första gången innan resizeGL() eller paintGL() anropas. Det kan användas för att skapa visningslistor för objekt, och göra alla initieringar. </para
+></listitem>
+
+<listitem
+><para
+>Istället för att implementera om resizeEvent(), överskrider man resizeGL(). Detta kan användas för att ställa in vyområdet på ett lämpligt sätt. </para
+></listitem>
+
+<listitem
+><para
+>Istället för att anropa update() när scenens tillstånd har ändrats, till exempel om du animerar det med ett tidur, ska man anropa updateGL(). Då aktiveras en omritning. </para
+></listitem>
+
+</itemizedlist>
+
+<para
+>I allmänhet beter sig QGLWidget som vilken annan grafisk komponent som helst, dvs. man kan till exempel hantera mushändelser som vanligt, ändra storlek på komponenten och kombinera den med andra i en layout. </para>
+
+<mediaobject>
+<imageobject
+><imagedata fileref="opengl.png"/></imageobject>
+</mediaobject>
+
+<para
+>Qt innehåller några exempel på användning av QGLWidget i <literal
+>demo</literal
+>-exemplen. En samling handledningar finns <ulink url="http://www.libsdl.org/opengl/intro.html"
+>här</ulink
+>, och mer information samt en OpenGL-referens finns på <ulink url="http://www.opengl.org"
+>OpenGL:s hemsida</ulink
+>. </para>
+
+</simplesect>
+
+
+<simplesect id="qglwidget-highlevel">
+<title
+>Högnivågränssnitt</title>
+
+<para
+>OpenGL är ett gränssnitt på ganska låg nivå för att rita 3D-grafik. På samma sätt som QCanvas ger programmeraren ett gränssnitt på högre nivå som hanterar objekt och deras egenskaper, finns det också gränssnitt på högre nivå för 3D-grafik. Ett av de mest populära är Open Inventor. Ursprungligen var det en teknologi som utvecklades av SGI, men idag finns också en implementering med öppen källkod, <ulink url="http://www.coin3d.org"
+>Coin</ulink
+>, som åtföljs av en verktygsanpassning till Qt, som heter SoQt. </para>
+
+<para
+>Det grundläggande konceptet i Open Inventor är en <emphasis
+>scen</emphasis
+>. En scen kan laddas från disk, och sparas med ett särskilt format, nära besläktat med <ulink url="http://www.vrml.org"
+>VRML</ulink
+>. En scen består av en samling objekt som kallas <emphasis
+>noder</emphasis
+>. Inventor tillhandahåller redan en omfattande samling med återanvändbara noder, som kuber, cylindrar och rutnät. Dessutom finns ljuskällor, material, kameror, etc. Noder representeras av C++ klasser, och kan kombineras och delklasser kan skapas. </para>
+
+<para
+>En introduktion till Inventor finns <ulink url="http://www.motifzone.com/tmd/articles/OpenInventor/OpenInventor.html"
+>här</ulink
+> (i allmänhet kan du ersätta alla SoXt som omnämns i artikeln med SoQt). </para>
+
+</simplesect>
+
+</sect1>
+
+</chapter>
+
+
+
+<chapter id="userinterface">
+<title
+>Användargränssnitt</title>
+
+<sect1 id="userinterface-actionpattern">
+<title
+>Åtgärdsmönstret</title>
+
+<para
+></para>
+
+</sect1>
+
+
+<sect1 id="userinterface-xmlgui">
+<title
+>Definiera menyer och verktygsrader i XML</title>
+
+<simplesect id="xmlgui-intro">
+<title
+>Inledning</title>
+
+<para
+>Medan <link linkend="userinterface-actionpattern"
+>åtgärdsmönster</link
+> tillåter att åtgärder som aktiveras av användaren kapslas in i ett objekt, som kan "anslutas" någonstans i menyraderna eller verktygsraderna, löser det inte ensamt problemet med att skapa själva menyerna. I synnerhet måste du bygga alla sammanhangsberoende menyer i C++ kod, och uttryckligen infoga åtgärderna i en viss ordning, med hänsyn taget till stilguiden för standardåtgärder. Det gör det rätt svårt att låta användaren anpassa menyerna eller ändra snabbtangenter så att de passar hans behov, utan att ändra källkoden. </para>
+
+<para
+>Det här problemet löses med en samling klasser som kallas <literal
+>grafiskt XML-gränssnitt</literal
+>. I grunden skiljer de åtgärderna (kodade i C++) från deras utseende i menyrader och verktygsrader (kodade i XML). Utan att ändra någon källkod, kan menyer enkelt anpassas genom att justera en XML-fil. Dessutom hjälper det till att försäkra att standardåtgärder (som <menuchoice
+><guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Öppna</guimenuitem
+></menuchoice
+> eller <menuchoice
+><guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Om</guimenuitem
+></menuchoice
+>) visas på platserna som föreslås av stilguiden. Grafiska XML-gränssnitt är särskilt viktiga för modulära program, där alternativen i menyraderna kan komma från många olika insticksprogram eller delar. </para>
+
+<para
+>KDE:s klass för toppnivåfönster, <ulink url="kdeapi:tdeui/KMainWindow.html"
+>KMainWindow</ulink
+>, ärver <ulink url="kdeapi:tdeui/KXMLGUIClient.html"
+>KXMLGUIClient</ulink
+>, och stöder därför grafiska XML-gränssnitt från början. Alla åtgärder som skapas inne i det måste ha klientens <literal
+>actionCollection()</literal
+> som förälder. Ett anrop till <literal
+> createGUI()</literal
+> bygger sedan hela uppsättningen menyer och verktygsrader som definieras av programmets XML-fil (vanligtvis med ändelsen <literal
+>ui.rc</literal
+>). </para>
+
+</simplesect>
+
+
+<simplesect id="xmlgui-kviewexample">
+<title
+>Ett exempel: Menyn i Kview</title>
+
+<para
+>I det följande använder vi KDE:s bildvisare <application
+>Kview</application
+> som exempel. Den har en <literal
+>ui.rc</literal
+>-fil som heter <filename
+>kviewui.rc</filename
+>, som installeras med ett fragment från <filename
+>Makefile.am</filename
+> </para>
+
+<programlisting
+>rcdir = $(kde_datadir)/kview
+rc_DATA = kviewui.rc
+</programlisting>
+
+<para
+>Här är ett utdrag ur filen <filename
+>kviewui.rc</filename
+>. För enkelhetens skull, visar vi bara definitionen för menyn <guimenu
+>View</guimenu
+>. </para>
+
+<programlisting
+>&lt;!DOCTYPE kpartgui&gt;
+&lt;kpartgui name="kview"&gt;
+ &lt;MenuBar&gt;
+ &lt;Menu name="view" &gt;
+ &lt;Action name="zoom50" /&gt;
+ &lt;Action name="zoom100" /&gt;
+ &lt;Action name="zoom200" /&gt;
+ &lt;Action name="zoomMaxpect" /&gt;
+ &lt;Separator/&gt;
+ &lt;Action name="fullscreen" /&gt;
+ &lt;/Menu&gt;
+ &lt;/MenuBar&gt;
+&lt;/kpartgui&gt;
+</programlisting>
+
+<para
+>Motsvarande del av att skapa detta i C++ är: </para>
+
+<programlisting
+>KStdAction::zoomIn ( this, SLOT(slotZoomIn()), actionCollection() );
+ KStdAction::zoomOut ( this, SLOT(slotZoomOut()), actionCollection() );
+ KStdAction::zoom ( this, SLOT(slotZoom()), actionCollection() );
+ new KAction ( i18n("&amp;Half size"), ALT+Key_0,
+ this, SLOT(slotHalfSize()),
+ actionCollection(), "zoom50" );
+ new KAction ( i18n("&amp;Normal size"), ALT+Key_1,
+ this, SLOT(slotDoubleSize()),
+ actionCollection(), "zoom100" );
+ new KAction ( i18n("&amp;Double size"), ALT+Key_2,
+ this, SLOT(slotDoubleSize()),
+ actionCollection(), "zoom200" );
+ new KAction ( i18n("&amp;Fill Screen"), ALT+Key_3,
+ this, SLOT(slotFillScreen()),
+ actionCollection(), "zoomMaxpect" );
+ new KAction ( i18n("Fullscreen &amp;Mode"), CTRL+SHIFT+Key_F,
+ this, SLOT(slotFullScreen()),
+ actionCollection(), "fullscreen" );
+</programlisting>
+
+<para
+>Menyn <guimenu
+>View</guimenu
+> som skapas av den här definitionen av det grafiska gränssnittet ser ut som visas av den här skärmbilden: </para>
+
+<mediaobject>
+<imageobject
+><imagedata fileref="kview-menu.png"/></imageobject>
+</mediaobject>
+
+<para
+>XML-filen börjar med en dokumenttypdeklaration. DTD:n för kpartgui finns i tdelibs-källkoden i <filename
+>tdeui/kpartgui.dtd</filename
+>. Det yttersta elementet i filen innehåller programmets instansnamn som en egenskap. Det kan också innehålla ett versionsnummer på formen "version=2". Det är användbart när du ger ut nya versioner av ett program med ändrad menystruktur, t.ex. med flera funktioner. Om du räknar upp versionsnumret i filen <literal
+>ui.rc</literal
+>, ser KDE till att alla anpassade versioner av filen slängs och att den nya filen används istället. </para>
+
+<para
+>Nästa rad, <literal
+>&lt;MenuBar&gt;</literal
+>, innehåller en deklaration av en menyrad. Du kan också infoga hur många <literal
+>&lt;ToolBar&gt;</literal
+>-deklarationer som helst, för att skapa några verktygsrader. Menyn innehåller en undermeny, med namnet "view". Det namnet är redan fördefinierat, och därför skulle den översatta versionen av ordet "View" kunna visas. Om du deklarerar undermenyer, måste du uttryckligen lägga till rubriken. <application
+>Kview</application
+> har till exempel en undermeny med rubriken "Image", som deklareras enligt följande: </para>
+
+<programlisting
+>&lt;Menu name="image" &gt;
+ &lt;text&gt;&amp;amp;Image&lt;/text&gt;
+ ...
+&lt;/Menu&gt;
+</programlisting>
+
+<para
+>I KDE:s automatiska byggramverk, plockas sådana rubriker automatiskt ut och placeras i programmets <ulink url="tde-i18n-howto.html"
+><literal
+>.po</literal
+></ulink
+>-fil, så att det hanteras av översättare. Observera att du måste skriva markeringen av snabbtangenten "&amp;" på en form som följer XML-syntaxen "&amp;amp;". </para>
+
+<para
+>Låt oss återvända till exemplet. <application
+>Kview</application
+>s meny <guimenu
+>Visa</guimenu
+> innehåller ett antal egna åtgärder <literal
+>zoom50</literal
+>, <literal
+>zoom100</literal
+>, <literal
+>zoom200</literal
+>, <literal
+>zoomMaxpect</literal
+> och <literal
+>fullscreen</literal
+>, deklarerade med elementet <literal
+>&lt;Action&gt;</literal
+>. Skiljelinjen i skärmbilderna motsvarar elementet <literal
+>&lt;Separator&gt;</literal
+>. </para>
+
+<para
+>Du märker att vissa menyalternativ inte har ett motsvarande element i XML-filen. De är <emphasis
+>standardåtgärder</emphasis
+>. Standardåtgärder skapas av klassen <ulink url="kdeapi:tdeui/KStdAction.html"
+>KStdAction</ulink
+>. När du skapar sådana åtgärder i ditt program (som i C++ exemplet ovan), infogas de automatiskt på en föreskriven plats, och möjligen med en ikon och en snabbtangent. Du kan slå upp de här platserna i filen <filename
+>tdeui/ui_standards.rc</filename
+> i tdelibs-källkoden. </para>
+
+</simplesect>
+
+
+<simplesect id="xmlgui-konqexample">
+<title
+>Ett exempel: Verktygsrader i Konqueror</title>
+
+<para
+>För beskrivningen av verktygsrader, byter vi till <application
+>Konquerors</application
+> definition av grafiskt gränssnitt. Det här utdraget definierar platsraden, som innehåller inmatningsfältet för webbadresser. </para>
+
+<programlisting
+>&lt;ToolBar name="locationToolBar" fullWidth="true" newline="true" &gt;
+ &lt;text&gt;Location Toolbar&lt;/text&gt;
+ &lt;Action name="clear_location" /&gt;
+ &lt;Action name="location_label" /&gt;
+ &lt;Action name="toolbar_url_combo" /&gt;
+ &lt;Action name="go_url" /&gt;
+&lt;/ToolBar&gt;
+</programlisting>
+
+<para
+>Det första vi märker är att det finns många fler egenskaper än för menyrader. De omfattar: </para>
+
+<itemizedlist>
+
+<listitem
+><para
+><literal
+>fullWidth</literal
+>: Talar om för det grafiska XML-gränssnittet att verktygsraden har samma bredd som toppnivåfönstret. Om detta är "false", upptar verktygsraden bara så mycket plats som nödvändigt, och ytterligare verktygsrader placeras på samma rad. </para
+></listitem>
+
+<listitem
+><para
+><literal
+>newline</literal
+>: Det här hör ihop med ovanstående alternativ. Om newline är "true", så placeras verktygsraden på en ny rad. Annars kan den placeras i en rad tillsammans med den föregående verktygsraden. </para
+></listitem>
+
+<listitem
+><para
+><literal
+>noEdit</literal
+>: Normalt kan verktygsrader anpassas av användaren, t.ex. med <menuchoice
+><guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Anpassa verktygsrader</guimenuitem
+></menuchoice
+> i <application
+>Konqueror</application
+>. Sätts alternativet till "true", markeras verktygsraden så att den inte går att redigera. Det är viktigt för verktygsrader som fylls med objekt när programmet kör, t.ex. <application
+>Konqueror</application
+>s bokmärkesverktygsrad. </para
+></listitem>
+
+<listitem
+><para
+><literal
+>iconText</literal
+>: Talar om för det grafiska XML-gränssnittet att visa åtgärdens text intill ikonen. Normalt visas texten bara som ett verktygstips när musmarkören hålls över ikonen en stund. Möjliga värden för egenskapen är "icononly" (visar bara ikonen), "textonly" (visar bara texten), "icontextright" (visar texten till höger om ikonen) och "icontextbottom" (visar texten under ikonen). </para
+></listitem>
+
+
+<listitem
+><para
+><literal
+>hidden</literal
+>: Om det här är "true", så visas inte verktygsraden från början, och måste aktiveras av något menyalternativ. </para
+></listitem>
+
+
+<listitem
+><para
+><literal
+>position</literal
+>: Standardvärdet för den här egenskapen är "top", vilket betyder att verktygsraden placeras under menyraden. För program med många verktyg, som grafikprogram, kan det vara intressant att ersätta det här med "left" (vänster), "right" (höger) eller "bottom" (under). </para
+></listitem>
+
+</itemizedlist>
+
+</simplesect>
+
+
+<simplesect id="xmlgui-dynamical">
+<title
+>Dynamiska menyer</title>
+
+<para
+>XML kan naturligtvis bara innehålla en statisk beskrivning av ett användargränssnitt. Ofta finns det menyer som ändras under körning. <application
+>Konqueror</application
+>s meny <guimenu
+>Plats</guimenu
+> innehåller till exempel en uppsättning alternativ <guimenuitem
+>Öppna med ...</guimenuitem
+>, med program som kan ladda en fil med en given Mime-typ. Varje gång dokumentet som visas ändras, uppdateras listan med menyalternativ. Det grafiska XML-gränssnittet är förberett för att hantera sådana fall med begreppet <emphasis
+>åtgärdslistor</emphasis
+>. En åtgärdslista deklareras som ett objekt i XML-filen, men består av flera åtgärder som ansluts till menyn när programmet kör. Ovanstående exempel implementeras med följande deklaration i <application
+>Konqueror</application
+>s XML-fil: </para>
+
+<programlisting
+>&lt;Menu name="file"&gt;
+ &lt;text&gt;&amp;amp;Location&lt;/text&gt;
+ ...
+ &lt;ActionList name="openwith"&gt;
+ ...
+&lt;/Menu&gt;
+</programlisting>
+
+<para
+>Funktionen <function
+>KXMLGUIClient::plugActionList()</function
+> används sedan för att lägga till åtgärder som ska visas, medan funktionen <function
+>KXMLGuiClient::unplugActionList()</function
+> tar bort alla anslutna åtgärder. Rutinen som är ansvarig för att göra uppdateringarna ser ut på följande sätt: </para>
+
+<programlisting
+>void MainWindow::updateOpenWithActions()
+{
+ unplugActionList("openwith");
+ openWithActions.clear();
+ for ( /* Snurra för relevanta tjänster */ ) {
+ KAction *action = new KAction( ...);
+ openWithActions.append(action);
+ }
+ plugActionList("openwith", openWithActions);
+}
+</programlisting>
+
+<para
+>Observera att i motsats till statiska åtgärder, så skapas <emphasis
+>inte</emphasis
+> de här med åtgärdssamlingen som förälder, och du ansvarar själv att de tas bort. Det enklaste sättet att åstadkomma det är genom att använda <literal
+>openWithActions.setAutoDelete(true)</literal
+> i exemplet ovan. </para>
+
+</simplesect>
+
+
+<simplesect id="xmlgui-contextmenus">
+<title
+>Sammanhangsberoende menyer</title>
+
+<para
+>Exemplen ovan innehåller bara klasser där ett huvudfönsters menyrad och verktygsrader skapas. I de fallen är processen som skapar behållarna helt dold för dig inne i anropet av funktionen <function
+>createGUI()</function
+> (utom om du har egna behållare). Det finns dock fall då du vill skapa andra behållare och befolka dem med grafiska gränssnittsdefinitioner från XML-filen. Ett sådant exempel är sammanhangsberoende menyer. För att få en pekare till en sammanhangsberoende meny, måste du fråga klientens tillverkare efter den: </para>
+
+<programlisting
+>void MainWindow::popupRequested()
+{
+ QWidget *w = factory()->container("context_popup", this);
+ QPopupMenu *popup = static_cast&lt;QPopupMenu *&gt;(w);
+ popup->exec(QCursor::pos());
+}
+</programlisting>
+
+<para
+>Metoden <function
+>KXMLGUIFactory::container()</function
+> som används ovan, ser efter om den hittar en behållare i XML-filen med det angivna namnet. Alltså kan en möjlig definition se ut på följande sätt: </para>
+
+<programlisting
+>...
+&lt;Menu name="context_popup"&gt;
+ &lt;Action name="file_add"/&gt;
+ &lt;Action name="file_remove"/&gt;
+&lt;/Menu&gt;
+...
+</programlisting>
+
+</simplesect>
+
+</sect1>
+
+
+<sect1 id="help">
+<title
+>Tillhandahålla inbyggd hjälp</title>
+
+<para
+>Att göra ett program lätt och intuitivt att använda omfattar en stor mängd funktioner, som ofta kallas inbyggd hjälp. Inbyggd hjälp har flera, delvis motstridiga, mål: å ena sidan ska den ge användaren svar på frågan "Hur kan jag utföra en viss uppgift?", å andra sidan ska den hjälpa användaren utforska programmet och hitta funktioner som han inte ännu känner till. Det är viktigt att inse att det här bara kan åstadkommas genom att erbjuda flera hjälpnivåer: </para>
+
+<itemizedlist>
+
+<listitem
+><para
+>Verktygstips är små etiketter som dyker upp över gränssnittselement när musen blir kvar där en längre stund. De är särskilt viktiga för verktygsrader, där ikonerna inte alltid räcker till för att förklara syftet med en knapp. </para
+></listitem>
+
+<listitem
+><para
+>"Vad är det här?" hjälp är ofta en längre och mer utförlig förklaring av en komponent eller menyalternativ. Den är också knepigare att använda. I dialogrutor kan den visas på två olika sätt: antingen genom att trycka på <keycombo
+><keycap
+>Skift</keycap
+> <keycap
+>F1</keycap
+></keycombo
+>, eller genom att klicka på frågetecknet i namnlisten (stöd för det här beror på fönsterhanteraren). Muspekaren ändras då till en pil med ett frågetecken, och ett hjälpfönster visas när ett element i användargränssnittet klickas. "Vad är det här?" hjälp för menyer aktiveras oftast med en knapp i verktygsraden som innehåller en pil och ett frågetecken. </para
+></listitem>
+
+<listitem
+><para
+>Problemet med den här ansatsen är att användaren inte kan se om en grafisk komponent tillhandahåller hjälp eller inte. När användaren aktiverar knappen med frågetecken och inte får något hjälpfönster vid klick på ett element i användargränssnittet, blir han mycket snart frustrerad. </para>
+
+<para
+>Fördelen med "Vad är det här?" hjälpfönster som de erbjuds av Qt och KDE, är att de kan innehålla <ulink url="kdeapi:qt/QStyleSheet"
+> formaterad text</ulink
+>, dvs. de kan innehålla olika teckensnitt, text med fetstil och kursiv stil, och till och med bilder och tabeller. </para>
+
+<para
+>Ett exempel på "Vad är det här?" hjälp: </para>
+
+<mediaobject>
+<imageobject
+><imagedata fileref="whatsthis.png"/></imageobject>
+</mediaobject>
+
+</listitem>
+
+<listitem
+><para
+>Till sist, ska alla program ha en handbok. En handbok visas normalt i <application
+>Hjälpcentralen</application
+> genom att använda menyn <guimenu
+>Hjälp</guimenu
+>. Det betyder att ett helt nytt program dyker upp och avleder användaren från arbetet. Följaktligen ska det bara vara nödvändigt att rådfråga handboken om andra funktioner, som verktygstips och vad är det här hjälp, inte räcker till. Naturligvis har en handbok fördelen att den inte förklarar enskilda isolerade aspekter av användargränssnittet. Den kan istället förklara vissa av programmets aspekter i ett större sammanhang. Handböcker för KDE skrivs med användning av <ulink url="http://i18n.kde.org"
+>DocBook</ulink
+>-taggspråket. </para
+></listitem>
+
+</itemizedlist>
+
+<para
+>Från programmerarens synvinkel, erbjuder Qt ett enkelt gränssnitt för inbyggd hjälp. För att tilldela ett verktygstips till en grafisk komponent, använd klassen <ulink url="kdeapi:qt/QToolTip"
+>QToolTip</ulink
+>. </para>
+
+<programlisting
+>QToolTip::add(w, i18n("This widget does something."))
+</programlisting>
+
+<para
+>Om menyraderna och verktygsraderna skapas som <ulink url="actionpattern.html"
+>åtgärdsmönster</ulink
+>, hämtas strängen som används som verktygstips från det första argumentet i konstruktorn <ulink url="kdeapi:tdeui/KAction.html"
+>KAction</ulink
+>. </para>
+
+<programlisting
+>action = new KAction(i18n("&amp;Delete"), "editdelete",
+ SHIFT+Key_Delete, actionCollection(), "del")
+</programlisting>
+
+<para
+>Här är det också möjligt att tilldela en text som visas i statusraden när motsvarande menyalternativ markeras: </para>
+
+<programlisting
+>action->setStatusText(i18n("Deletes the marked file"))
+</programlisting>
+
+<para
+>Programmeringsgränssnittet för "Vad är det här?" är mycket likt. Använd följande kod i dialogrutor: </para>
+
+<programlisting
+>QWhatsThis::add(w, i18n("&lt;qt&gt;This demonstrates &lt;b&gt;Qt&lt;/b&gt;'s"
+ " rich text engine.&lt;ul&gt;"
+ "&lt;li&gt;Foo&lt;/li&gt;"
+ "&lt;li&gt;Bar&lt;/li&gt;"
+ "&lt;/ul&gt;&lt;/qt&gt;"))
+</programlisting>
+
+<para
+>För menyalternativ, använd </para>
+
+<programlisting
+>action->setWhatsThis(i18n("Deletes the marked file"))
+</programlisting>
+
+<para
+>Start av <application
+>Hjälpcentralen</application
+> är inkapslat i klassen <ulink url="kdeapi:tdecore/KApplication"
+>KApplication</ulink
+>. För att visa handboken för programmet, använd bara </para>
+
+<programlisting
+>kapp->invokeHelp()
+</programlisting>
+
+<para
+>Det här visar första sidan med innehållsförteckningen. När du bara vill visa ett visst avsnitt av handboken, kan du ge ytterligare ett argument till <function
+>invokeHelp()</function
+>, som avgör ankaret som bläddraren hoppar till. </para>
+
+</sect1>
+
+</chapter>
+
+
+
+<chapter id="components">
+<title
+>Komponenter och tjänster</title>
+
+<sect1 id="components-services">
+<title
+>KDE-tjänster</title>
+
+<simplesect id="services-whatarekdeservices">
+<title
+>Vad är KDE-tjänster?</title>
+
+<para
+>Begreppet <emphasis
+>tjänst</emphasis
+> är ett central idé i KDE:s modulära arkitektur. Det finns ingen strikt teknisk implementering kopplat till benämningen: tjänster kan vara insticksprogram i form av delade bibliotek, eller program som styrs via <ulink url="dcop.html"
+>DCOP</ulink
+>. Genom att göra anspråk på att vara av en viss <emphasis
+>tjänsttyp</emphasis
+>, lovar en tjänst att implementera vissa programmeringsgränssnitt eller funktioner. Med C++ språkbruk, kan man föreställa sig en tjänsttyp som en abstrakt klass, och en tjänst som en implementering av gränssnittet. </para>
+
+<para
+>Fördelen med den här uppdelningen är uppenbar: Ett program som utnyttjar en tjänsttyp behöver inte känna till möjliga implementeringar av den. Det använder bara programmeringsgränssnittet som hör ihop med tjänsttypen. På detta sätt kan tjänsten som används ändras utan att påverka programmet. Dessutom kan användaren anpassa vilka tjänster som han föredrar för vissa funktioner. </para>
+
+<para
+>Några exempel: </para>
+
+<itemizedlist>
+
+<listitem
+><para
+>HTML-uppritningskomponenten som används i <application
+>Konqueror</application
+> är en inbäddad komponent som implementerar tjänsttypen <literal
+>KParts/ReadOnlyPart</literal
+> och <literal
+>Browser/View</literal
+>. </para
+></listitem>
+<listitem
+><para
+>I senaste versionen av <application
+>KDevelop</application
+>, är största delen av funktionerna paketerade i insticksprogram med tjänsttypen <literal
+>KDevelop/Part</literal
+>. Vid start, laddas alla tjänster av den här typen, så att du kan utöka den integrerade utvecklingsmiljön på ett mycket smidigt sätt. </para
+></listitem>
+<listitem
+><para
+><application
+>Konqueror</application
+> kan visa miniatyrbilder av bilder, HTML-sidor, PDF- och textfiler, om det aktiveras. Den här förmågan kan utökas. Om du vill visa förhandsgranskningsbilder av egna datafiler med en viss Mime-typ, kan du implementera en tjänst med tjänsttypen <classname
+>ThumbCreator</classname
+>. </para
+></listitem>
+
+</itemizedlist>
+
+<para
+>Naturligtvis karaktäriseras en tjänst inte bara av tjänsttypen som den implementerar, utan också av några <emphasis
+>egenskaper</emphasis
+>. Till exempel så gör inte en ThumbCreator bara anspråk på att implementera C++ klassen med typen <classname
+>ThumbCreator</classname
+>, den har också en lista med Mime-typer som den är ansvarig för. På samma sätt har KDevelop-delar programspråket de stöder som en egenskap. När ett program begär en tjänsttyp, kan den också ange begränsningar för tjänstens egenskaper. I exemplet ovan, när KDevelop laddar insticksprogram för ett Java-projekt, frågar det bara efter insticksprogram som har egenskapen Java som programspråk. KDE innehåller en fullständig CORBA-liknande <emphasis
+>handlare</emphasis
+>, med ett komplext frågespråk, för detta syfte. </para>
+
+</simplesect>
+
+
+<simplesect id="services-definingservicetypes">
+<title
+>Definiera tjänsttyper</title>
+
+<para
+>Nya tjänsttyper läggs till genom att installera en beskrivning av dem i katalogen <filename
+>KDEDIR/share/servicetypes</filename
+>. I det automatiska byggramverket, kan det göras med detta fragment från <filename
+>Makefile.am</filename
+>: </para>
+
+<programlisting
+>kde_servicetypesdir_DATA = tdeveloppart.desktop
+EXTRA_DIST = $(kde_servicetypesdir_DATA)
+</programlisting>
+
+<para
+>Definitionen <filename
+>tdeveloppart.desktop</filename
+> för en del till <application
+>KDevelop</application
+> ser ut som följer: </para>
+
+<programlisting
+>[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KDevelop/Part
+Name=KDevelop Part
+
+[PropertyDef::X-KDevelop-Scope]
+Type=QString
+
+[PropertyDef::X-KDevelop-ProgrammingLanguages]
+Type=QStringList
+
+[PropertyDef::X-KDevelop-Args]
+Type=QString
+</programlisting>
+
+<para
+>Förutom de vanliga posterna, förevisar det här exemplet hur man anger att en tjänst har vissa egenskaper. Varje definition av en egenskap motsvarar en grupp <literal
+>[PropertyDef::name]</literal
+> i konfigurationsfilen. I gruppen, anger posten <literal
+>Type</literal
+> egenskapens typ. Möjliga typer är allt som kan lagras i en <ulink url="kdeapi:qt/QVariant"
+>QVariant</ulink
+>. </para>
+
+</simplesect>
+
+
+<simplesect id="services-defininglibraryservices">
+<title
+>Definiera delade bibliotekstjänster</title>
+
+<para
+>Tjänstdefinitioner lagras i katalogen <filename
+>KDEDIR/share/services</filename
+>: </para>
+
+<programlisting
+>kde_servicesdir_DATA = kdevdoxygen.desktop
+EXTRA_DIST = $(kde_servicesdir_DATA)
+</programlisting>
+
+<para
+>Innehållet i följande exempelfil, <filename
+>kdevdoxygen.desktop</filename
+>, anger insticksprogrammet <literal
+>KDevDoxygen</literal
+> med tjänsttypen <literal
+>KDevelop/Part</literal
+>: </para>
+
+<programlisting
+>[Desktop Entry]
+Type=Service
+Comment=Doxygen
+Name=KDevDoxygen
+ServiceTypes=KDevelop/Part
+X-KDE-Library=libkdevdoxygen
+X-KDevelop-ProgrammingLanguages=C,C++,Java
+X-KDevelop-Scope=Project
+</programlisting>
+
+<para
+>Förutom de vanliga deklarationerna, är en viktig post <literal
+>X-KDE-Library</literal
+>. Den innehåller namnet på libtool-biblioteket (utan filändelsen <literal
+>.la</literal
+>). Det fastlägger också namnet på den exporterade symbolen i biblioteket som returnerar objekttillverkaren (med det inledande prefixet <literal
+>init_</literal
+>). I ovanstående exempel, måste biblioteket innehålla följande funktion: </para>
+
+<programlisting
+>extern "C" {
+ void *init_libkdevdoxygen()
+ {
+ return new DoxygenFactory;
+ }
+};
+</programlisting>
+
+<para
+>Typen för tillverkningsklassen <classname
+>DoxygenFactory</classname
+> beror på den specifika tjänsttyp som tjänsten implementerar. I vårt exempel med ett KDevelop-insticksprogram, måste tillverkaren vara en <classname
+>KDevFactory</classname
+> (som ärver <classname
+>KLibFactory</classname
+>). Vanligare exempel är <ulink url="kdeapi:kparts/KParts::Factory"
+>KParts::Factory</ulink
+> som antas skapa objekten <ulink url="kdeapi:kparts/KParts::ReadOnlyPart"
+>KParts::ReadOnlyPart</ulink
+> eller i de flesta fall det generella <ulink url="kdeapi:tdecore/KLibFactory"
+>KLibFactory</ulink
+>. </para>
+
+</simplesect>
+
+
+<simplesect id="services-usinglibraryservices">
+<title
+>Använda delade bibliotekstjänster</title>
+
+<para
+>För att kunna använda en delad bibliotekstjänst i ett program, måste du skaffa ett <ulink url="kdeapi:kio/KService.html"
+>KService</ulink
+>-objekt som representerar den. Det här beskrivs i <ulink url="mime.html"
+>avsnittet om Mime-typer</ulink
+> (och i ett avsnitt om handlaren som återstår att skriva :-) </para>
+
+<para
+>Med objektet <classname
+>KService</classname
+> tillgängligt, kan du mycket lätt ladda biblioteket och få en pekare till dess tillverkningsobjekt. </para>
+
+<programlisting
+>KService *service = ...
+QString libName = QFile::encodeName(service->library());
+KLibFactory *factory = KLibLoader::self()->factory(libName);
+if (!factory) {
+ QString name = service->name();
+ QString errorMessage = KLibLoader::self()->lastErrorMessage();
+ KMessageBox::error(0, i18n("There was an error loading service %1.\n"
+ "The diagnostics from libtool is:\n%2")
+ .arg(name).arg(errorMessage);
+}
+</programlisting>
+
+<para
+>Från det ögonblicket, beror fortsättningen återigen på tjänsttypen. För generella insticksprogram, skapar man objekt med metoden <ulink url="kdeapi:tdecore/KLibFactory.html#ref3"
+>KLibFactory::create()</ulink
+>. Med KParts, måste tillverkningspekaren konverteras till det mer specifika KParts::Factory, och dess metod create() måste användas: </para>
+
+<programlisting
+>if (factory->inherits("KParts::Factory")) {
+ KParts::Factory *partFactory = static_cast&lt;KParts::Factory*&gt;(factory);
+ QObject *obj = partFactory->createPart(parentWidget, widgetName,
+ parent, name, "KParts::ReadOnlyPart");
+ ...
+} else {
+ cout &lt;&lt; "Tjänsten implementerar inte rätt tillverkare" &lt;&lt; endl;
+}
+</programlisting>
+
+</simplesect>
+
+
+<simplesect id="services-definingdcopservices">
+<title
+>Definiera DCOP-tjänster</title>
+
+<para
+>En DCOP-tjänst implementeras oftast som ett program som startas när det behövs. Det går därefter in i en snurra och lyssnar efter DCOP-anslutningar. Programmet kan vara interaktivt, men det kan också köra som en demon i bakgrunden under hela eller delar av sin livstid, utan att användaren märker det. Ett exempel på en sådan demon är <literal
+>kio_uiserver</literal
+>, som implementerar växelverkan med användaren som förloppsdialogrutor för KIO-biblioteket. Fördelen med en sådan central demon är att t.ex. nerladdningsförloppet för flera olika filer kan visas i ett fönster, även om nerladdningarna startades från olika program. </para>
+
+<para
+>En DCOP-tjänst definieras på annat sätt än en tjänst i ett delat bibliotek. Naturligtvis anger den inte ett bibliotek, utan istället ett körbart program. Dessutom anger inte en DCOP-tjänst raden med tjänsttyp, eftersom den startas med namn. Den innehåller ytterligare två rader som ytterligare egenskaper: </para>
+
+<para
+><literal
+>X-DCOP-ServiceType</literal
+> anger hur tjänsten startas. Värdet <literal
+>Unique</literal
+> (unik) anger att tjänsten inte får startas mer än en gång. Det betyder att om du försöker starta tjänsten (t.ex. via <ulink url="kdeapi:tdecore/KApplication.html#startServiceByName"
+> KApplication::startServiceByName()</ulink
+>, kontrollerar KDE om den redan har registrerats i DCOP, och använder tjänsten som kör. Om den inte redan är registrerad, startar KDE den och väntar till den har registrerats. Därför kan du omedelbart skicka DCOP-anrop till tjänsten. I detta fall, ska tjänsten implementeras som <ulink url="kdeapi:tdecore/KUniqueApplication.html"
+>KUniqueApplication</ulink
+>. </para>
+
+<para
+>Värdet <literal
+>Multi</literal
+> för <literal
+>X-DCOP-ServiceType</literal
+> anger att flera instanser av tjänsten kan existera samtidigt, så varje försök att starta tjänsten skapar en ny process. Som en sista möjlighet kan värdet <literal
+>None</literal
+> (ingen) användas. I detta fall, väntar inte start av tjänsten på att den har registrerats i DCOP. </para>
+
+<para
+><literal
+>X-KDE-StartupNotify</literal
+> ska normalt anges som "false". Annars visar aktivitetsfältet en startbekräftelse, eller, beroende på användarinställningarna, så ändras markören. </para>
+
+<para
+>Här är definitionen av <literal
+>kio_uiserver</literal
+>: </para>
+
+<programlisting
+>[Desktop Entry]
+Type=Service
+Name=kio_uiserver
+Exec=kio_uiserver
+X-DCOP-ServiceType=Unique
+X-KDE-StartupNotify=false
+</programlisting>
+
+</simplesect>
+
+
+<simplesect id="services-usingdcopservices">
+<title
+>Använda DCOP-tjänster</title>
+
+<para
+>En DCOP-tjänst startas med en av flera metoder i klassen KApplication: </para>
+
+<programlisting
+>DCOPClient *client = kapp->dcopClient();
+client->attach();
+if (!client->isApplicationRegistered("kio_uiserver")) {
+ QString error;
+ if (KApplication::startServiceByName("kio_uiserver", QStringList(), &amp;error))
+ cout &lt;&lt; "Start av KIO-server misslyckades med meddelandet " &lt;&lt; error &lt;&lt; endl;
+}
+...
+QByteArray data, replyData;
+QCString replyType;
+QDataStream arg(data, IO_WriteOnly);
+arg &lt;&lt; true;
+if (!client->call("kio_uiserver", "UIServer", "setListMode(bool)",
+ data, replyType, replyData))
+ cout &lt;&lt; "Anrop till kio_uiserver misslyckades" &lt;&lt; endl;
+...
+</programlisting>
+
+<para
+>Observera att exemplet med ett DCOP-anrop som ges här använder uttrycklig sammansättning av argument. Ofta vill man istället använda en prototyp som skapas av dcopidl2cpp, eftersom det är mycket enklare, och mindre felbenäget. </para>
+
+<para
+>I exemplet som ges här, startas tjänsten "med namn", dvs. första argumentet till <function
+>KApplication::startServiceByName() </function
+> är namnet, som det anges på raden <literal
+>Name</literal
+> i desktop-filen. Ett alternativ är att använda <function
+>KApplication::startServiceByDesktopName()</function
+>, som använder namnet på desktop-filen som argument, dvs. i det här fallet <literal
+>"kio_uiserver.desktop"</literal
+>. </para>
+
+<para
+>Alla dessa anrop har en lista med webbadresser som andra argument, vilket ges till tjänsten på kommandoraden. Det tredje argumentet är en pekare till en <classname
+>QString</classname
+>. Om starten av tjänsten misslyckas, tilldelas det här argumentet det översatta felmeddelandet. </para>
+
+</simplesect>
+
+</sect1>
+
+
+<sect1 id="components-mime">
+<title
+>Mime-typer</title>
+
+<simplesect id="mime-whataremimetypes">
+<title
+>Vad är Mime-typer?</title>
+
+<para
+>Mime-typer används för att beskriva typ av innehåll för filer eller datafragment. Ursprungligen infördes de för att tillåta att bilder eller ljudfiler, etc. kunde skickas med e-post (Mime betyder "Multipurpose Internet Mail Extensions"). Senare användes systemet också av webbläsare för att avgöra hur data som skickades av en webbserver skulle visas för användaren. En HTML-sida har till exempel Mime-typen "text/html", och en Postskript-fil "application/postscript". I KDE används den här idén på många skilda platser: </para>
+
+<itemizedlist>
+
+<listitem
+><para
+>I <application
+>Konqueror</application
+>s ikonvy, representeras filer av ikoner. Varje Mime-typ har en viss ikon som den hör ihop med, som visas här. </para
+></listitem>
+
+<listitem
+><para
+>När man klickar på en filikon eller ett filnamn i <application
+>Konqueror</application
+>, så visas antingen filen i en inbäddad vy, eller så startas ett program som hör ihop med filtypen. </para
+></listitem>
+
+<listitem
+><para
+>När du drar och släpper någon data från ett program till ett annat (eller inom samma program), kan målet välja att bara acceptera vissa datatyper. Dessutom hanteras bilddata på annat sätt än textdata. </para
+></listitem>
+
+<listitem
+><para
+>Data på klippbordet har en Mime-typ. Traditionellt hanterade X-program bara pixmappar eller text, men med Qt finns det ingen begränsning av datatypen. </para
+></listitem>
+
+</itemizedlist>
+
+<para
+>Det är klart från ovanstående exempel, att Mime-hantering är en komplex sak. Först måste en tilldelning av filnamn till Mime-typer göras. KDE går ytterligare ett steg, och låter till och med filinnehåll tilldelas till Mime-typer, i de fall då filnamnet inte är tillgängligt. Därefter måste Mime-typer tilldelas till program eller bibliotek som kan visa eller redigera en fil av en viss typ, eller skapa en miniatyrbild av den. </para>
+
+<para
+>Det finns en mängd olika programmeringsgränssnitt för att räkna ut Mime-typen för data eller filer. I allmänhet måste man göra en avvägning mellan hastighet och tillförlitlighet. Man kan hitta en filtyp genom att bara titta på filnamnet (i de flesta fallen filändelsen). Filen <filename
+>foo.jpg</filename
+> är till exempel normalt "image/jpeg". I de fall där filändelsen har tagits bort är det här inte säkert, och man måste verkligen titta i filens innehåll. Det är förstås långsammare, särskilt för filer som först måste laddas ner via HTTP. Den innehållsbaserade metoden använder filen <filename
+>KDEDIR/share/mimelnk/magic</filename
+>, och är därför svår att utöka. Men i allmänhet kan information om Mime-typer lätt göras tillgängligt för systemet, genom att installera en <literal
+>.desktop</literal
+>-fil, och den blir effektivt och bekvämt tillgänglig via KDE-biblioteken. </para>
+
+</simplesect>
+
+
+<simplesect id="mime-definingmimetypes">
+<title
+>Definiera Mime-typer</title>
+
+<para
+>Låt oss definiera typen <literal
+>"application/x-foo"</literal
+>, för vårt nya program <application
+>foobar</application
+>. För att göra det, måste filen <filename
+>foo.desktop</filename
+> skrivas, och installeras i <filename
+>KDEDIR/share/mimelnk/application</filename
+>. (Det är den vanliga platsen, som kan variera mellan distributioner). Det här kan göras genom att lägga till följande till <filename
+>Makefile.am</filename
+>: </para>
+
+<programlisting
+>mimedir = $(kde_mimedir)/application
+mime_DATA = foo.desktop
+EXTRA_DIST = $(mime_DATA)
+</programlisting>
+
+<para
+>Filen <filename
+>foo.desktop</filename
+> ska se ut som följer: </para>
+
+<programlisting
+>[Desktop Entry]
+Type=MimeType
+MimeType=application/x-foo
+Icon=fooicon
+Patterns=*.foo;
+DefaultApp=foobar
+Comment=Foo Data File
+Comment[sv]=Foo-datafil
+</programlisting>
+
+<para
+>Posten <literal
+>"Comment"</literal
+> är avsedd att översättas. Eftersom <filename
+>.desktop</filename
+>-filen anger en ikon, bör du också installera en ikon <filename
+>fooicon.png</filename
+>, som representerar filen, t.ex. i <application
+>Konqueror</application
+>. </para>
+
+<para
+>I KDE-biblioteken motsvarar en sådan typdefinition en instans av klassen <ulink url="kdeapi:kio/KMimeType.html"
+>KMimeType</ulink
+>. Använd det som i följande exempel: </para>
+
+<programlisting
+>KMimeType::Ptr type = KMimeType::mimeType("application/x-foo");
+cout &lt;&lt; "Typ: " &lt;&lt; type->name() &lt; endl;
+cout &lt;&lt; "Ikon: " &lt;&lt; type->icon() &lt; endl;
+cout &lt;&lt; "Kommentar: " &lt;&lt; type->icon() &lt; endl;
+QStringList patterns = type->patterns();
+QStringList::ConstIterator it;
+for (it = patterns.begin(); it != patterns.end(); ++it)
+ cout &lt;&lt; "Mönster: " &lt;&lt; (*it) &lt;&lt; endl;
+</programlisting>
+
+</simplesect>
+
+
+<simplesect id="mime-determiningmimetypes">
+<title
+>Avgöra Mime-typ för data</title>
+
+<para
+>Det snabba sättet att avgöra filtypen är <function
+>KMimeType::findByURL()</function
+>. Det tittar efter webbadressen och avgör i de flesta fall typen från filändelsen. Med vissa protokoll (t.ex. http, man, info), används inte den mekanismen. CGI-skript på webbservrar som skrivs i Perl, har till exempel ofta ändelsen <literal
+>.pl</literal
+>, som skulle ange typen <literal
+>"text/x-perl"</literal
+>. Dock är filen som levereras av servern utmatning från skriptet, som normalt är HTML. I sådana fall, returnerar <function
+>KMimeType::findByURL()</function
+> Mime-typen <literal
+>"application/octet-stream"</literal
+> (tillgänglig via <function
+>KMimeType::defaultMimeType()</function
+>), som anger att den misslyckades med att ta reda på typen. </para>
+
+<programlisting
+>KMimeType::Ptr type = KMimeType::findByURL("/home/bernd/foobar.jpg");
+if (type->name() == KMimeType::defaultMimeType())
+ cout &lt;&lt; "Kunde inte avgöra typen" &lt;&lt; endl;
+else
+ cout &lt;&lt; "Typ: " &lt;&lt; type->name() &lt;&lt; endl;
+</programlisting>
+
+<para
+>(den här metoden har några fler argument, men dessa är inte dokumenterade, så glöm helt enkelt bort dem.) </para>
+
+<para
+>Man kan vilja ta reda på en Mime-typ från filens innehåll i stället för filnamnet. Det är tillförlitligare, men också långsammare, eftersom det kräver att en del av filen läses. Det görs med klassen <ulink url="kdeapi:kio/KMimeMagic.html"
+>KMimeMagic</ulink
+>, som har annorlunda felhantering: </para>
+
+<programlisting
+>KMimeMagicResult *result = KMimeMagic::self()->findFileType("/home/bernd/foobar.jpg");
+if (!result || !result->isValid())
+ cout &lt;&lt; "Kunde inte avgöra typen" &lt;&lt; endl;
+else
+ cout &lt;&lt; "Typ: " &lt;&lt; result->mimeType() &lt;&lt; endl;
+</programlisting>
+
+<para
+>Med en variant av den här funktionen, kan du också avgöra typen för ett minnesblock. Det används till exempel av <application
+>Kate</application
+> för att räkna ut färgläggningsläget: </para>
+
+<programlisting
+>QByteArray array;
+...
+KMimeMagicResult *result = KMimeMagic::self()->findBufferType(array);
+if (!result || !result->isValid())
+ cout &lt;&lt; "Kunde inte avgöra typen" &lt;&lt; endl;
+else
+ cout &lt;&lt; "Typ: " &lt;&lt; result->mimeType() &lt;&lt; endl;
+</programlisting>
+
+<para
+>Till och med KMimeMagic kan förstås bara avgöra filtypen från innehållet i en lokal fil. För fjärrfiler, finns ytterligare en möjlighet: </para>
+
+<programlisting
+>KURL url("http://developer.kde.org/favicon.ico");
+QString type = KIO::NetAccess::mimetype(url);
+if (type == KMimeType::defaultMimeType())
+ cout &lt;&lt; "Kunde inte avgöra typen" &lt;&lt; endl;
+else
+ cout &lt;&lt; "Typ: " &lt;&lt; type &lt;&lt; endl;
+</programlisting>
+
+<para
+>Det här startar ett KIO-jobb för att ladda ner en del av filen, och kontrollera detta. Observera att den här funktionen kanske är riktigt långsam och blockerar programmet. Normalt vill man bara använda det om <function
+>KMimeType::findByURL()</function
+> returnerade <literal
+>"application/octet-stream"</literal
+>. </para>
+
+<para
+>Å andra sidan, om du inte vill blockera programmet, kan du också uttryckligen starta KIO-jobbet och ansluta till några av dess signaler: </para>
+
+<programlisting
+>void FooClass::findType()
+{
+ KURL url("http://developer.kde.org/favicon.ico");
+ KIO::MimetypeJob *job = KIO::mimetype(url);
+ connect( job, SIGNAL(result(KIO::Job*)),
+ this, SLOT(mimeResult(KIO::Job*)) );
+}
+
+void FooClass::mimeResult(KIO::Job *job)
+{
+ if (job->error())
+ job->showErrorDialog();
+ else
+ cout &lt;&lt; "Mime type: " &lt;&lt; ((KIO::MimetypeJob *)job)->mimetype() &lt;&lt; endl;
+}
+</programlisting>
+
+</simplesect>
+
+
+<simplesect id="mime-mappingmimetypes">
+<title
+>Tilldela en Mime-typ till ett program eller tjänst</title>
+
+<para
+>När ett program installeras, installerar det en <literal
+>.desktop</literal
+>-fil, som innehåller en lista med MIME-typer som programmet kan ladda. På samma sätt gör komponenter, som en KPart, den här informationen tillgänglig med sina <literal
+>.desktop</literal
+>-tjänstfiler. Alltså finns i allmänhet flera program och komponenter som kan behandla en given MIME-typ. Du kan skaffa en sådan lista från klassen <classname
+>KServiceTypeProfile</classname
+>: </para>
+
+<programlisting
+>KService::OfferList offers = KServiceTypeProfile::offers("text/html", "Application");
+KService::OfferList::ConstIterator it;
+for (it = offers.begin(); it != offers.end(); ++it) {
+ KService::Ptr service = (*it);
+ cout &lt;&lt; "Namn: " &lt;&lt; service->name() &lt;&lt; endl;
+}
+</programlisting>
+
+<para
+>Returvärdet från funktionen är en lista med tjänsterbjudanden. Ett <classname
+>KServiceOffer</classname
+>-objekt paketerar en KService::Ptr, tillsammans med ett rangordningsnummer. Listan som returneras av <function
+>KServiceTypeProfile::offers()</function
+> är ordnad enligt vad användaren föredrar. Användaren kan ändra detta genom att anropa <command
+>"keditfiletype text/html"</command
+> eller välja <guimenuitem
+>Redigera filtyp</guimenuitem
+> i <application
+>Konqueror</application
+>s sammanhangsberoende meny för en HTML-fil. </para>
+
+<para
+>I exemplet ovan, begärdes en lista med erbjudanden för programmen som stöder <literal
+>text/html</literal
+>. Det omfattar, bland annat, HTML-editorer som <application
+>Quanta Plus</application
+>. Du kan också ersätta det andra argumentet <literal
+>"Application"</literal
+> med <literal
+>"KParts::ReadOnlyPart"</literal
+>. I det fallet, får du en lista med inbäddbara komponenter för att presentera HTML-innehåll, till exempel KHTML. </para>
+
+<para
+>I de flesta fall är du inte intresserad av listan med alla erbjudanden om tjänster för en kombination av Mime-typ och tjänsttyp. Det finns en bekvämlighetsfunktion som bara ger dig tjänsterbjudandet som föredras högst: </para>
+
+<programlisting
+>KService::Ptr offer = KServiceTypeProfile::preferredService("text/html", "Application");
+if (offer)
+ cout &lt;&lt; "Namn: " &lt;&lt; service->name() &lt;&lt; endl;
+else
+ cout &lt;&lt; "Ingen lämplig tjänst hittades" &lt;&lt; endl;
+</programlisting>
+
+<para
+>För ännu mer komplicerade förfrågningar, finns det en fullständig CORBA-liknande <ulink url="kdeapi:kio/KTrader.html"
+>handlare</ulink
+>. </para>
+
+<para
+>För att köra en programtjänst med några webbadresser, använd <ulink url="kdeapi:kio/KRun.html"
+>KRun</ulink
+>: </para>
+
+<programlisting
+>KURL::List urlList;
+urlList &lt;&lt; "http://www.ietf.org/rfc/rfc1341.txt?number=1341";
+urlList &lt;&lt; "http://www.ietf.org/rfc/rfc2046.txt?number=2046";
+KRun::run(offer.service(), urlList);
+</programlisting>
+
+</simplesect>
+
+
+<simplesect id="mime-misc">
+<title
+>Diverse</title>
+
+<para
+>I det här avsnittet listar vi några av de programmeringsgränssnitt som på något sätt hör ihop med den föregående beskrivningen. </para>
+
+<para
+>Hämta en ikon för en webbadress. Det här tittar efter webbadressens typ, och returnerar motsvarande ikon. </para>
+
+<programlisting
+>KURL url("ftp://ftp.kde.org/pub/incoming/wibble.c");
+QString icon = KMimeType::iconForURL(url);
+</programlisting>
+
+<para
+>Kör en webbadress. Det här tittar efter webbadressens typ, och startar tillhörande program till typen som användaren föredrar. </para>
+
+<programlisting
+>KURL url("http://dot.kde.org");
+new KRun(url);
+</programlisting>
+
+</simplesect>
+
+</sect1>
+
+
+<sect1 id="nettransparency">
+<title
+>Nätverkstransparens</title>
+
+<simplesect id="nettransparency-intro">
+<title
+>Inledning</title>
+
+<para
+>Under Internetåldern är det ytterst viktigt att skrivbordsprogram kan komma åt resurser via Internet: De ska kunna ladda ner filer från en webbserver, skriva filer till en FTP-server eller läsa e-post från en e-postserver. Ofta kallas möjligheten att komma åt filer oberoende av plats för <emphasis
+>nätverkstransparens</emphasis
+>. </para>
+
+<para
+>I det förflutna implementerades olika ansatser för att nå målet. Det gamla NFS-filsystemet är ett försök att implementera nätverkstransparens på POSIX-gränssnittsnivå. Medan denna ansats fungerar riktigt bra i lokala, tätt kopplade nätverk, skalas det inte för resurser med otillförlitlig och möjligen långsam åtkomst. Här är <emphasis
+>asynkronism</emphasis
+> viktig. Medan du väntar på att webbläsaren ska ladda ner en sida, ska inte användargränssnittet blockeras. Dessutom ska inte siduppritningen börja när hela sidan är tillgänglig, utan den ska uppdateras regelbundet medan data anländer. </para>
+
+<para
+>I KDE-biblioteken implementeras nätverkstransparens med KIO-programmeringsgränssnittet. Det centrala begreppet i arkitekturen är ett I/O-<emphasis
+>jobb</emphasis
+>. Ett jobb kan kopiera filer, ta bort filer och liknande saker. Så fort ett jobb har startats, fungerar det i bakgrunden och blockerar inte programmet. All kommunikation från jobbet tillbaka till programmet, som att leverera data eller förloppsinformation, görs integrerat i Qt:s händelsesnurra. </para>
+
+<para
+>Bakgrundsoperationer åstadkoms genom att starta <emphasis
+>I/O-slavar</emphasis
+> för att utföra vissa uppgifter. I/O-slavar startas som separata processer, och kommunikation sker via Unix domänuttag. På detta sätt behövs inget flertrådssystem, och instabila slavar kan inte krascha programmet som använder dem. </para>
+
+<para
+>Filplatser uttrycks med webbadresser som har en omfattande användning. Men i KDE, utökar webbadresser inte bara området med tillgängliga filer utanför det lokala filsystemet. De går också i motsatt riktning, t.ex. kan man bläddra i tar-arkiv. Det åstadkoms genom att nästla webbadresser. En fil i ett tar-arkiv på en HTTP-server skulle kunna ha webbadressen: </para>
+
+<programlisting
+>http://www-com.physik.hu-berlin.de/~bernd/article.tgz#tar:/paper.tex
+</programlisting>
+
+</simplesect>
+
+
+<simplesect id="nettransparency-usingkio">
+<title
+>Använda KIO</title>
+
+<para
+>I de flesta fall skapas jobb genom att anropa funktioner i KIO-namnrymden. Dessa funktioner har en eller två webbadresser som argument, och möjligen också andra nödvändiga parametrar. När jobbet är avslutat, skickar det signalen <literal
+>result(KIO::Job*)</literal
+>. Efter signalen har skickats, tar jobbet bort sig självt. Därför ser ett typiskt användarfall ut så här: </para>
+
+<programlisting
+>void FooClass::makeDirectory()
+{
+ SimpleJob *job = KIO::mkdir(KURL("file:/home/bernd/kiodir"));
+ connect( job, SIGNAL(result(KIO::Job*)),
+ this, SLOT(mkdirResult(KIO::Job*)) );
+}
+
+void FooClass::mkdirResult(KIO::Job *job)
+{
+ if (job->error())
+ job->showErrorDialog();
+ else
+ cout &lt;&lt; "mkdir gick bra" &lt;&lt; endl;
+}
+</programlisting>
+
+<para
+>Beroende på jobbtypen, kan du också ansluta till andra signaler. </para>
+
+<para
+>Här är en översikt av de möjliga funktionerna: </para>
+
+<variablelist>
+
+<varlistentry
+><term
+>KIO::mkdir(const KURL &amp;url, int permission)</term>
+<listitem
+><para
+>Skapar en katalog, valfritt med vissa rättigheter. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::rmdir(const KURL &amp;url)</term>
+<listitem
+><para
+>Tar bort en katalog. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::chmod(const KURL &amp;url, int permissions)</term>
+<listitem
+><para
+>Ändrar rättigheter för en fil. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::rename(const KURL &amp;src, const KURL &amp;dest, bool overwrite)</term>
+<listitem
+><para
+>Byter namn på en fil. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::symlink(const QString &amp;target, const KURL &amp;dest, bool overwrite, bool showProgressInfo)</term>
+<listitem
+><para
+>Skapar en symbolisk länk. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::stat(const KURL &amp;url, bool showProgressInfo)</term>
+<listitem
+><para
+>Hittar viss information om filen, som storlek, ändringstid och rättigheter. Informationen kan hämtas från KIO::StatJob::statResult() efter jobbet har avslutats. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::get(const KURL &amp;url, bool reload, bool showProgressInfo)</term>
+<listitem
+><para
+>Överför data från en webbadress. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::put(const KURL &amp;url, int permissions, bool overwrite, bool resume, bool showProgressInfo)</term>
+<listitem
+><para
+>Överför data till en webbadress. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::http_post(const KURL &amp;url, const QByteArray &amp;data, bool showProgressInfo)</term>
+<listitem
+><para
+>Sänder data. Särskild för HTTP. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::mimetype(const KURL &amp;url, bool showProgressInfo)</term>
+<listitem
+><para
+>Försöker hitta webbadressens Mime-typ. Typen kan hämtas från KIO::MimetypeJob::mimetype() efter jobbet har avslutats. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::file_copy(const KURL &amp;src, const KURL &amp;dest, int permissions, bool overwrite, bool resume, bool showProgressInfo)</term>
+<listitem
+><para
+>Kopierar en ensam fil. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::file_move(const KURL &amp;src, const KURL &amp;dest, int permissions, bool overwrite, bool resume, bool showProgressInfo)</term>
+<listitem
+><para
+>Byter namn på eller flyttar en ensam fil. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::file_delete(const KURL &amp;url, bool showProgressInfo)</term>
+<listitem
+><para
+>Tar bort en ensam fil </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::listDir(const KURL &amp;url, bool showProgressInfo)</term>
+<listitem
+><para
+>Listar innehållet i en katalog. Varje gång några nya poster blir kända, skickas signalen KIO::ListJob::entries(). </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::listRecursive(const KURL &amp;url, bool showProgressInfo)</term>
+<listitem
+><para
+>Liknar funktionen listDir(), men den här är rekursiv. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::copy(const KURL &amp;src, const KURL &amp;dest, bool showProgressInfo)</term>
+<listitem
+><para
+>Kopierar en fil eller katalog. Kataloger kopieras rekursivt. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::move(const KURL &amp;src, const KURL &amp;dest, bool showProgressInfo)</term>
+<listitem
+><para
+>Flyttar eller byter namn på en fil eller katalog. </para
+></listitem>
+</varlistentry>
+
+<varlistentry
+><term
+>KIO::del(const KURL &amp;src, bool shred, bool showProgressInfo)</term>
+<listitem
+><para
+>Tar bort en fil eller katalog. </para
+></listitem>
+</varlistentry>
+
+</variablelist>
+
+</simplesect>
+
+
+<simplesect id="nettransparency-direntries">
+<title
+>Katalogposter</title>
+
+<para
+>Båda jobben KIO::stat() och KIO::listDir() returnerar sina resultat med typerna UDSEntry och UDSEntryList. Den senare är definierad som QValueList&lt;UDSEntry&gt;. Akronymen UDS betyder "Universal directory service" (Allmän katalogtjänst). Principen bakom detta är att katalogposten bara innehåller information som en I/O-slav kan tillhandahålla, inte mer. Till exempel tillhandahåller inte HTTP-slaven någon information om åtkomsträttigheter eller ägare av filer. Istället är en UDSEntry en lista med UDSAtoms. Varje objekt tillhandahåller viss information. Den består av en typ som lagras i m_uds, och antingen ett heltalsvärde i m_long, eller ett strängvärde i m_str, beroende på typen. </para>
+
+<para
+>Följande typer är för närvarande definierade: </para>
+
+<itemizedlist>
+
+<listitem
+><para
+>UDS_SIZE (heltal) - Filens storlek. </para
+></listitem>
+
+<listitem
+><para
+>UDS_USER (sträng) - Användaren som äger filen. </para
+></listitem>
+
+<listitem
+><para
+>UDS_GROUP (sträng): Grupp som äger filen. </para
+></listitem>
+
+<listitem
+><para
+>UDS_NAME (sträng): Filnamnet. </para
+></listitem>
+
+<listitem
+><para
+>UDS_ACCESS (heltal) - Filens rättigheter, som t.ex. lagras av C-biblioteksfunktionen stat() i fältet st_mode. </para
+></listitem>
+
+<listitem
+><para
+>UDS_FILE_TYPE (heltal): Filtypen, som t.ex. lagras av stat() i fältet st_mode. Därför kan du använda vanliga makron från C-biblioteket, som S_ISDIR, för att kontrollera värdet. Observera att data som tillhandahålls av I/O-slavar motsvarar stat(), inte lstat(), dvs. i fallet med symboliska länkar, så är filtypen här typen på filen som länken pekar ut, inte själva länken. </para
+></listitem>
+
+<listitem
+><para
+>UDS_LINK_DEST (sträng): I fallet med en symbolisk länk, namnet på filen som pekas ut. </para
+></listitem>
+
+<listitem
+><para
+>UDS_MODIFICATION_TIME (heltal) - Tiden (med typen time_t) då filen sist ändrades, som t.ex. lagras av stat() i fältet st_mtime. </para
+></listitem>
+
+<listitem
+><para
+>UDS_ACCESS_TIME (heltal) - Tiden då filen sist användes, som t.ex. lagras av stat() i fältet st_atime. </para
+></listitem>
+
+<listitem
+><para
+>UDS_CREATION_TIME (heltal) - Tiden då filen skapades, som t.ex. lagras av stat() i fältet st_ctime. </para
+></listitem>
+
+<listitem
+><para
+>UDS_URL (sträng) - Tillhandahåller en fils webbadress, om den inte helt enkelt är sammanslagningen av katalogwebbadressen och filnamnet. </para
+></listitem>
+
+<listitem
+><para
+>UDS_MIME_TYPE (sträng): Filens Mime-typ </para
+></listitem>
+
+<listitem
+><para
+>UDS_GUESSED_MIME_TYPE (sträng): Mime-typ för filen som gissats av slaven. Skillnaden mot föregående typ är att den som tillhandahålls här inte ska betraktas som tillförlitlig (eftersom att avgöra den på ett tillförlitligt sätt skulle vara för dyrt). Klassen KRun kontrollerar till exempel uttryckligen Mime-typen, om den inte har tillförlitlig information. </para
+></listitem>
+
+</itemizedlist>
+
+<para
+>Även om sättet att lagra information om filer i en <classname
+>UDSEntry</classname
+> är flexibelt och praktiskt ur en I/O-slavs synvinkel, är det rörigt att använda för den somskriver programmet. För att till exempel ta reda på Mime-typen för filen, måste du snurra igenom hela innehållet och kontrollera om <literal
+>m_uds</literal
+> är <literal
+>UDS_MIME_TYPE</literal
+>. Som tur är, finns ett programmeringsgränssnitt som är mycket enklare att använda: klassen <classname
+>KFileItem</classname
+>. </para>
+
+</simplesect>
+
+
+<simplesect id="nettransparency-syncuse">
+<title
+>Synkron användning</title>
+
+<para
+>Ofta är det KIO:s asynkrona programmeringsgränssnitt för komplext att använda, och därför är inte implementering av fullständig asynkronism prioriterat. I ett program som till exempel bara kan hantera en dokumentfil åt gången, finns det ändå inte mycket som kan göras medan programmet laddar ner en fil. I dessa enkla fall, finns ett mycket enklare programmeringsgränssnitt, i form av ett antal statiska funktioner i KIO::NetAccess. För att till exempel kopiera en fil, använd: </para>
+
+<programlisting
+>KURL source, target;
+source = ...;
+target = ...
+KIO::NetAccess::copy(source, target);
+</programlisting>
+
+<para
+>Funktionen returnerar efter hela kopieringsprocessen har avslutats. Ändå så tillhandahåller den här metoden en förloppsdialogruta, och den försäkrar att programmet behandlar omritningshändelser. </para>
+
+<para
+>En särskilt intressant kombination av funktioner är <function
+>download()</function
+> tillsammans med <function
+>removeTempFile()</function
+>. Den första laddar ner en fil från en given webbadress, och lagrar den i en tillfällig fil med ett unikt namn. Namnet lagras som det andra argumentet. <emphasis
+>Om</emphasis
+> webbadressen är lokal, laddas inte filen ner, utan istället sätts det andra argumentet till det lokala filnamnet. Funktionen <function
+>removeTempFile()</function
+> tar bort filen som anges av argumentet, om filen skapades av den föregående nerladdningen. Om det inte är fallet, gör den ingenting. På så sätt får man ett mycket enkelt kodfragment för att ladda filer, oberoende av deras plats: </para>
+
+<programlisting
+>KURL url;
+url = ...;
+QString tempFile;
+if (KIO::NetAccess::download(url, tempFile) {
+ // ladda filen med namnet tempFile
+ KIO::NetAccess::removeTempFile(tempFile);
+}
+</programlisting>
+
+</simplesect>
+
+
+<simplesect id="nettransparency-metadata">
+<title
+>Metadata</title>
+
+<para
+>Som märks ovan, är gränssnittet för I/O-jobb ganska abstrakt och hanterar inte något utbyte av information mellan program och I/O-slav som är protokollspecifikt. Det är inte alltid lämpligt. Man kan till exempel ge vissa parametrar till HTTP-slaven för att styra dess cachebeteende eller skicka en mängd kakor tillsammans med begäran. För detta behov har ett koncept med metadata införts. När ett jobb skapas, kan man anpassa det genom att lägga till metadata till det. Varje metadataobjekt består av ett par med nyckel och värde. För att till exempel förhindra HTTP-slaven från att ladda en webbsida från cachen, kan du använda: </para>
+
+<programlisting
+>void FooClass::reloadPage()
+{
+ KURL url("http://www.tdevelop.org/index.html");
+ KIO::TransferJob *job = KIO::get(url, true, false);
+ job->addMetaData("cache", "reload");
+ ...
+}
+</programlisting>
+
+<para
+>Samma teknik används åt andra hållet, dvs. för kommunikation från slaven till programmet. Metoden <function
+>Job::queryMetaData()</function
+> frågar efter värdet på en viss nyckel som levereras av slaven. För HTTP-slaven, är ett sådant exempel nyckeln <literal
+>"modified"</literal
+> (ändrad), som innehåller datumet då webbsidan sist ändrades (i form av en sträng). Ett exempel på hur det kan användas är följande: </para>
+
+<programlisting
+>void FooClass::printModifiedDate()
+{
+ KURL url("http://developer.kde.org/documentation/kde2arch/index.html");
+ KIO::TransferJob *job = KIO::get(url, true, false);
+ connect( job, SIGNAL(result(KIO::Job*)),
+ this, SLOT(transferResult(KIO::Job*)) );
+}
+
+void FooClass::transferResult(KIO::Job *job)
+{
+ QString mimetype;
+ if (job->error())
+ job->showErrorDialog();
+ else {
+ KIO::TransferJob *transferJob = (KIO::TransferJob*) job;
+ QString modified = transferJob->queryMetaData("modified");
+ cout &lt;&lt; "Senaste ändring: " &lt;&lt; modified &lt;&lt; endl;
+}
+</programlisting>
+
+</simplesect>
+
+
+<simplesect id="nettransparency-scheduling">
+<title
+>Schemaläggning</title>
+
+<para
+>När KIO-programmeringsgränssnittet används, behöver du oftast inte hantera detaljerna med att starta I/O-slavar och kommunicera med dem. Det normala användningsfallet är att starta ett jobb med några parametrar, och hantera signalerna som jobbet skickar. </para>
+
+<para
+>Bakom ridån är scenariot mycket mer komplicerat. När du skapar ett jobb, läggs det i en kö. När programmet går tillbaka till händelsesnurran, tilldelar KIO slavprocesser för jobben i kön. För det första jobbet som startas, är detta trivialt: en I/O-slav för lämpligt protokoll startas. Efter jobbet (som en nerladdning från en HTTP-server) har avslutats, tas det dock inte omedelbart bort. Istället läggs det i en grupp med lediga slavar och tas bort efter en viss tid utan aktivitet (för närvarande tre minuter). Om en ny begäran för samma värddator och protokoll anländer, återanvänds slaven. Den uppenbara fördelen är att vid en serie jobb med samma värddator, sparar man in kostnaden för att skapa nya processer, och möjligen också att genomgå en behörighetskontroll. </para>
+
+<para
+>Naturligtvis är återanvändning bara möjlig när den befintliga slaven redan har avslutat sitt tidigare jobb. Om en ny begäran anländer medan en befintlig slavprocess fortfarande kör, måste en ny process startas och användas. Med användningen i exemplen ovan av programmeringsgränssnittet, finns det ingen begränsning för att skapa nya slavprocesser: om man startar en serie nerladdningar av 20 olika filer i rad, skapar KIO 20 slavprocesser. Den här metoden att tilldela slavar till jobb kallas <emphasis
+>direkt</emphasis
+>. Det är inte alltid den mest lämpliga metoden, eftersom den kan behöva mycket minne och ge hög last både på klient- och serverdatorn. </para>
+
+<para
+>Så det finns ett annat sätt. Man kan <emphasis
+>schemalägga</emphasis
+> jobb. Om man gör det, skapas bara ett begränsat antal (för närvarande tre) slavprocesser för ett protokoll. Om du skapar fler jobb än så, läggs de i en kö och processas när en slavprocess blir ledig. Det görs på följande sätt: </para>
+
+<programlisting
+>KURL url("http://developer.kde.org/documentation/kde2arch/index.html");
+KIO::TransferJob *job = KIO::get(url, true, false);
+KIO::Scheduler::scheduleJob(job);
+</programlisting>
+
+<para
+>En tredje möjlighet är <emphasis
+>anslutningsorienterat</emphasis
+>. Till exempel för IMAP-slaven, är det inte vettigt att starta flera processer för samma server. Bara en IMAP-anslutning åt gången får upprätthållas. I detta fall måste programmet uttryckligen hantera slavbegreppet. Det måste tilldela en slav för en viss anslutning och sedan tilldela alla jobb som ska gå genom samma anslutning till samma slav. Det kan återigen enkelt åstadkommas genom att använda KIO::Scheduler: </para>
+
+<programlisting
+>KURL baseUrl("imap://bernd@albert.physik.hu-berlin.de");
+KIO::Slave *slave = KIO::Scheduler::getConnectedSlave(baseUrl);
+
+KIO::TransferJob *job1 = KIO::get(KURL(baseUrl, "/INBOX;UID=79374"));
+KIO::Scheduler::assignJobToSlave(slave, job1);
+
+KIO::TransferJob *job2 = KIO::get(KURL(baseUrl, "/INBOX;UID=86793"));
+KIO::Scheduler::assignJobToSlave(slave, job2);
+
+...
+
+KIO::Scheduler::disconnectSlave(slave);
+</programlisting>
+
+<para
+>Du kan bara koppla ner slaven efter alla jobb som tilldelats den garanterat har avslutats. </para>
+
+</simplesect>
+
+
+<simplesect id="nettransparency-definingslaves">
+<title
+>Definiera en I/O-slav</title>
+
+<para
+>I det följande beskriver vi hur du kan lägga till en ny I/O-slav i systemet. På liknande sätt som tjänster, annonseras I/O-slavar för systemet genom att installera en liten konfigurationsfil. Följande fragment av Makefile.am installerar FTP-protokollet: </para>
+
+<programlisting
+>protocoldir = $(kde_servicesdir)
+protocol_DATA = ftp.protocol
+EXTRA_DIST = $(mime_DATA)
+</programlisting>
+
+<para
+>Innehållet i filen ftp.protocol är följande: </para>
+
+<programlisting
+>[Protocol]
+exec=kio_ftp
+protocol=ftp
+input=none
+output=filesystem
+listing=Name,Type,Size,Date,Access,Owner,Group,Link,
+reading=true
+writing=true
+makedir=true
+deleting=true
+Icon=ftp
+</programlisting>
+
+<para
+>Posten <literal
+>"protocol"</literal
+> anger vilket protokoll som slaven ansvarar för. <literal
+>"exec"</literal
+> är (i motsats mot vad man naivt kan förvänta sig) namnet på biblioteket som implementerar slaven. När det är meningen att slaven ska starta, startas programmet <command
+>"tdeinit"</command
+>, som i sin tur laddar biblioteket i sitt adressrum. I praktiken kan du betrakta slaven som kör som en separat process, även om den är implementerad som ett bibliotek. Fördelen med den här mekanismen är att den sparar mycket minne, och reducerar tiden som behövs för länkning under körning. </para>
+
+<para
+>Raderna "input" och "output" används inte för närvarande. </para>
+
+<para
+>Återstående rader i filen <literal
+>.protocol</literal
+> anger vilka förmågor slaven har. I allmänhet är de funktioner som slaven måste implementera mycket enklare än de funktioner som KIO-programmeringsgränssnittet tillhandahåller programmet. Orsaken till detta är att komplexa jobb schemaläggs som en följd av deljobb. För att till exempel lista en katalog rekursivt, startas ett jobb för toppnivåkatalogen. För varje underkatalog som rapporteras tillbaka, startas nya underjobb. Schemaläggning i KIO försäkrar att inte för många jobb är aktiva samtidigt. På liknande sätt, för att kopiera en fil med ett protokoll som inte stöder kopiering direkt (som <literal
+>FTP</literal
+>-protokollet), kan KIO läsa källfilen och sedan skriva data till destinationsfilen. För att detta ska fungera, måste <literal
+>.protocol</literal
+> annonsera åtgärderna som slaven stöder. </para>
+
+<para
+>Eftersom slavar laddas som delade bibliotek, men utgör fullständiga program, ser deras kodramverk något annorlunda ut jämfört med normala delade biblioteksinsticksprogram. Funktionen som anropas för att starta slaven kallas <function
+>kdemain()</function
+>. Den här funktionen gör en del initieringar, och hoppar sedan till en händelsesnurra och väntar på begäran från programmet som använder den. Det här ser ut som följer: </para>
+
+<programlisting
+>extern "C" { int kdemain(int argc, char **argv); }
+
+int kdemain(int argc, char **argv)
+{
+ KLocale::setMainCatalogue("tdelibs");
+ KInstance instance("kio_ftp");
+ (void) KGlobal::locale();
+
+ if (argc != 4) {
+ fprintf(stderr, "Usage: kio_ftp protocol "
+ "domain-socket1 domain-socket2\n");
+ exit(-1);
+ }
+
+ FtpSlave slave(argv[2], argv[3]);
+ slave.dispatchLoop();
+ return 0;
+}
+</programlisting>
+
+</simplesect>
+
+
+<simplesect id="nettransparency-implementingslaves">
+<title
+>Implementera en I/O-slav</title>
+
+<para
+>Slavar implementeras som delklasser till <classname
+>KIO::SlaveBase</classname
+> (FtpSlave i exemplet ovan). På så sätt motsvarar åtgärderna i <literal
+>.protocol</literal
+> vissa virtuella funktioner i <classname
+>KIO::SlaveBase</classname
+> som implementeringen av slaven måste implementera om. Här är en lista med möjliga åtgärder och motsvarande virtuella funktioner: </para>
+
+<variablelist>
+
+<varlistentry
+><term
+>läsa: Läser data från en webbadress</term>
+<listitem
+><para
+>void get(const KURL &amp;url)</para
+></listitem
+></varlistentry>
+
+<varlistentry
+><term
+>skriva: Skriver data till en webbadress och skapar filen om den inte ännu finns.</term>
+<listitem
+><para
+>void put(const KURL &amp;url, int permissions, bool overwrite, bool resume)</para
+></listitem
+></varlistentry>
+
+<varlistentry
+><term
+>flytta: Byter namn på en fil.</term>
+<listitem
+><para
+>void rename(const KURL &amp;src, const KURL &amp;dest, bool overwrite)</para
+></listitem
+></varlistentry>
+
+<varlistentry
+><term
+>ta bort: Tar bort en fil eller katalog.</term>
+<listitem
+><para
+>void del(const KURL &amp;url, bool isFile)</para
+></listitem
+></varlistentry>
+
+<varlistentry
+><term
+>lista: Listar innehållet i en katalog.</term>
+<listitem
+><para
+>void listDir(const KURL &amp;url)</para
+></listitem
+></varlistentry>
+
+<varlistentry
+><term
+>skapa katalog: Skapar en katalog.</term>
+<listitem
+><para
+>void mkdir(const KURL &amp;url, int permissions)</para
+></listitem
+></varlistentry>
+
+</variablelist>
+
+<para
+>Dessutom finns det funktioner som kan implementeras om, och inte listas i filen <literal
+>.protocol</literal
+>. För dessa åtgärder, avgör KIO automatiskt om de stöds eller inte (dvs. standardimplementationen returnerar ett fel). </para>
+
+<variablelist>
+
+<varlistentry
+><term
+>Levererar information om en fil, liknar C-funktionen stat().</term>
+<listitem
+><para
+>void stat(const KURL &amp;url)</para
+></listitem
+></varlistentry>
+
+<varlistentry
+><term
+>Ändrar åtkomsträttigheter för en fil.</term>
+<listitem
+><para
+>void chmod(const KURL &amp;url, int permissions)</para
+></listitem
+></varlistentry>
+
+<varlistentry
+><term
+>Avgör Mime-typ för en fil.</term>
+<listitem
+><para
+>void mimetype(const KURL &amp;url)</para
+></listitem
+></varlistentry>
+
+<varlistentry
+><term
+>Kopierar en fil.</term>
+<listitem
+><para
+>copy(const KURL &amp;url, const KURL &amp;dest, int permissions, bool overwrite)</para
+></listitem
+></varlistentry>
+
+<varlistentry
+><term
+>Skapar en symbolisk länk.</term>
+<listitem
+><para
+>void symlink(const QString &amp;target, const KURL &amp;dest, bool overwrite)</para
+></listitem
+></varlistentry>
+
+</variablelist>
+
+<para
+>Alla dessa implementationer ska sluta med ett av två anrop: Om åtgärden lyckades, ska de anropa <literal
+>finished()</literal
+>. Om ett fel uppstod, ska de anropa <literal
+>error()</literal
+> med en felkod som första argument och en sträng som andra. Möjliga felkoder listats som uppräkningstypen <type
+>KIO::Error</type
+>. Det andra argumentet är oftast webbadressen i fråga. Den används t.ex. i <function
+>KIO::Job::showErrorDialog()</function
+> för att parametrisera felmeddelandet som är läsbart av användaren. </para>
+
+<para
+>För slavar som motsvarar nätverksprotokoll, kan det vara intressant att implementera om metoden <function
+>SlaveBase::setHost()</function
+>. Den anropas för att tala om för slavprocessen om värddator och port, och användarnamn och lösenord att använda för inloggning. I allmänhet kan metadata som anges av programmet hämtas med <function
+>SlaveBase::metaData()</function
+>. Du kan kontrollera om metadata med en viss nyckel finns med <function
+>SlaveBase::hasMetaData()</function
+>. </para>
+
+</simplesect>
+
+
+<simplesect id="nettransparency-communication">
+<title
+>Kommunicera tillbaka till programmet</title>
+
+<para
+>Diverse åtgärder som implementeras i en slav, behöver något sätt att skicka tillbaka data till programmet som använder slavprocessen. </para>
+
+<itemizedlist>
+
+<listitem
+><para
+><function
+>get()</function
+> skickar datablock. Det görs med <function
+>data()</function
+>, som använder argumentet <classname
+>QByteArray</classname
+>. Du behöver förstås inte skicka all data på en gång. Om du skickar en stor fil, anropa <function
+>data()</function
+> med mindre datablock, så att programmet kan behandla dem. Anropa <function
+>finished()</function
+> när överföringen är klar. </para
+></listitem>
+
+<listitem
+><para
+><function
+>listDir()</function
+> rapporterar information om posterna i en katalog. Anropa <function
+>listEntries()</function
+> med en <classname
+>KIO::UDSEntryList</classname
+> som argument, för detta syfte. På motsvarande sätt som <function
+>data()</function
+>, kan du anropa den flera gånger. När du är klar, anropa <function
+>listEntry()</function
+> med andra argumentet satt till true. Du kan också anropa <function
+>totalSize()</function
+> för att rapportera totalt antal katalogposter, om det är känt. </para
+></listitem>
+
+<listitem
+><para
+><function
+>stat()</function
+> rapporterar information om en fil, som storlek, Mime-typ, etc. Sådan information paketeras i en <classname
+>KIO::UDSEntry</classname
+>, som beskrivs nedan. Använd <function
+>statEntry()</function
+> för att skicka ett sådant objekt till programmet. </para
+></listitem>
+
+<listitem
+><para
+><function
+>mimetype()</function
+> anropar <function
+>mimeType()</function
+> med ett strängargument. </para
+></listitem>
+
+<listitem
+><para
+><function
+>get()</function
+> och <function
+>copy()</function
+> kan vilja tillhandahålla förloppsinformation. Det görs med metoderna <function
+>totalSize()</function
+>, <function
+>processedSize()</function
+> och <function
+>speed()</function
+>. Den totala storleken och behandlade storleken rapporteras som byte, och hastigheten som byte per sekund. </para
+></listitem>
+
+<listitem
+><para
+>Du kan skicka godtyckliga nyckel/värdepar av metadata med <function
+>setMetaData()</function
+>. </para
+></listitem>
+
+</itemizedlist>
+
+</simplesect>
+
+
+<simplesect id="nettransparency-interacting">
+<title
+>Kommunikation med användaren</title>
+
+<para
+>Ibland måste en slav kommunicera med användaren. Exempel kan vara informativa meddelanden, dialogrutor för behörighetskontroll och bekräftelsedialogrutor när en fil håller på att skrivas över. </para>
+
+<itemizedlist>
+
+<listitem
+><para
+><function
+>infoMessage()</function
+>: Det här är för informativ återmatning, som meddelandet "Hämtar data från &lt;värddator&gt;" från HTTP-slaven, som ofta visas i programmets statusrad. På programsidan, motsvarar metoden signalen <function
+>KIO::Job::infoMessage()</function
+>. </para
+></listitem>
+
+<listitem
+><para
+><function
+>warning()</function
+>: Visar en varning i en meddelanderuta med <function
+>KMessageBox::information()</function
+>. Om en meddelanderuta fortfarande visas från ett tidigare anrop av warning() från samma underprocess, händer ingenting. </para
+></listitem>
+
+<listitem
+><para
+><function
+>messageBox()</function
+>: Den här är utförligare än den tidigare metoden. Den tillåter att en meddelanderuta med text och rubrik och några knappar visas. Se uppräkningstypen <type
+>SlaveBase::MessageBoxType</type
+> som referens. </para
+></listitem>
+
+<listitem
+><para
+><function
+>openPassDlg()</function
+>: Visar en dialogruta för att mata in användarnamn och lösenord. </para
+></listitem>
+
+</itemizedlist>
+
+</simplesect>
+
+</sect1>
+
+</chapter>
+
+
+
+<appendix id="misc">
+<title
+>Licenser</title>
+
+&underFDL;
+&underGPL;
+
+</appendix>
+
+</book>
diff --git a/tde-i18n-sv/docs/tdevelop/kdearch/whatsthis.png b/tde-i18n-sv/docs/tdevelop/kdearch/whatsthis.png
new file mode 100644
index 00000000000..63acf27ba41
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/kdearch/whatsthis.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.am b/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.am
new file mode 100644
index 00000000000..9e41d9df652
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.am
@@ -0,0 +1,4 @@
+KDE_LANG = sv
+SUBDIRS = $(AUTODIRS)
+KDE_DOCS = AUTO
+KDE_MANS = AUTO
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.in b/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.in
new file mode 100644
index 00000000000..797c30d933e
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/Makefile.in
@@ -0,0 +1,635 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 483858 $
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = docs/tdevelop/tdevelop
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+#>- html-recursive info-recursive install-data-recursive \
+#>- install-dvi-recursive install-exec-recursive \
+#>- install-html-recursive install-info-recursive \
+#>- install-pdf-recursive install-ps-recursive install-recursive \
+#>- installcheck-recursive installdirs-recursive pdf-recursive \
+#>- ps-recursive uninstall-recursive
+#>+ 7
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CONF_FILES = @CONF_FILES@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+GMSGFMT = @GMSGFMT@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_RPATH = @KDE_RPATH@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_RPATH = @X_RPATH@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+#>- bindir = @bindir@
+#>+ 2
+DEPDIR = .deps
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+tdeinitdir = @tdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+KDE_LANG = sv
+#>- SUBDIRS = $(AUTODIRS)
+#>+ 1
+SUBDIRS =.
+KDE_DOCS = AUTO
+KDE_MANS = AUTO
+#>- all: all-recursive
+#>+ 1
+all: docs-am all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+#>- @for dep in $?; do \
+#>- case '$(am__configure_deps)' in \
+#>- *$$dep*) \
+#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- && exit 0; \
+#>- exit 1;; \
+#>- esac; \
+#>- done; \
+#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile'; \
+#>- cd $(top_srcdir) && \
+#>- $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile
+#>+ 12
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile
+ cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/tdevelop/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+#>- distdir: $(DISTFILES)
+#>+ 1
+distdir: distdir-nls $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+#>- uninstall: uninstall-recursive
+#>+ 1
+uninstall: uninstall-docs uninstall-nls uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-recursive
+#>+ 1
+clean: kde-rpo-clean clean-recursive
+
+#>- clean-am: clean-generic mostlyclean-am
+#>+ 1
+clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+#>- install-data-am:
+#>+ 1
+install-data-am: install-docs install-nls
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic ctags \
+ ctags-recursive distclean distclean-generic distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
+ tags-recursive uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+#>+ 2
+KDE_DIST=configure-docu-general.png SF-other.png file-list-session-default.png configure-adddialog.png split-workspace.png build-configurations.png unixdev.docbook tdevelop-install.docbook raw-project-warning.png problem-report-all-todos.png app-files.docbook tdevelop-ideal-mode-0.png file-browsers.docbook create-new-project-cvs.png configure-select.png configure-doctree-general.png createnewproject.png index.docbook tdevelop-mdi-mode.png run-button.png tutorial-hello-options.png build-menu-automake.png configure-doctree-TOC.png applicationwizard.docbook configure-doctree-bookmark.png getting-started.docbook plugin-tools.docbook empty-ide.png file-list-close-selected.png project-management.docbook create-new-project.png configure-project-cppoptions.png configure-general.png tdevelop-toplevel-mode.png documents-contents.png tdevelop-scripting.docbook cvs.docbook editor-ctags-menu.png setup.docbook configure-project-configure.png tutorial-new-project.png doctree-reduced.png credits.docbook configure-docu-toc.png automake-manager.png tdevelop-ideal-mode.png documentation.docbook automakemanager.png commands.docbook split-windows.png configure-docu-edit.png problem-report-marks.png build-commands.png app-uimodes-examples.docbook editor-find-menu.png configure-editor.png index.cache.bz2 configure-project-run.png folded-tabs.png configure-docu-dox.png configure-docu-devhelp.png tdevelop-tabbed-mode.png editor-search-doc.png configure-doctree-textsearch.png app-menu.docbook SF-indent.png select-user-interface.png file-list-session-create.png doctree-add-bookmark.png configure-snippets.png kdcop_browsing.png configure-docu-chm.png editor-ctags-regenerate.png survey-manual.docbook editing.docbook app-misc-info.docbook doctreeview.png importdirectory.png split-source-header-navigate.png app-changelog.docbook nutshell.docbook SF-general.png find-in-files.png project-advanced.docbook edit-doctree-TOC-entry.png adv-build-management.docbook build-menu.png automake-target-popup.png tutorial-hello-new.png problem-report-todo.png configure-project-doc.png configure-project-buildconfig.png configure-file-selector.png filetree.png automake-file-popup.png script_location.png configure-doctree-DevHelp.png configure-file-templates.png Makefile.in class-browsers.docbook classview.png configure-docu-custom.png configure-project-cpp.png doctree.png configure-adddialog-qt.png configure-project-make.png file-selector.png select-user-interface-0.png automake-subproject-popup.png tdevelop-survey.docbook debugger.docbook documents-search.png createnewprojectoptions.png editor-switch-header.png editor-ctags-lookup.png open-recent-project.png Makefile.am split-source-header.png configure-adddialog-baselibs.png
+
+#>+ 24
+index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) documents-search.png configure-general.png problem-report-marks.png app-uimodes-examples.docbook createnewprojectoptions.png editing.docbook SF-indent.png split-source-header.png automake-target-popup.png configure-select.png edit-doctree-TOC-entry.png automake-file-popup.png build-menu-automake.png doctree-reduced.png configure-project-make.png commands.docbook documentation.docbook tutorial-hello-options.png file-list-close-selected.png tdevelop-mdi-mode.png open-recent-project.png create-new-project-cvs.png configure-docu-toc.png editor-find-menu.png configure-file-templates.png file-browsers.docbook tdevelop-tabbed-mode.png script_location.png configure-adddialog-qt.png tdevelop-install.docbook file-list-session-default.png build-menu.png folded-tabs.png debugger.docbook select-user-interface-0.png editor-ctags-lookup.png filetree.png create-new-project.png split-windows.png configure-docu-edit.png raw-project-warning.png tutorial-hello-new.png configure-project-run.png run-button.png select-user-interface.png applicationwizard.docbook configure-project-cppoptions.png editor-ctags-regenerate.png index.docbook doctree-add-bookmark.png configure-doctree-textsearch.png tutorial-new-project.png tdevelop-ideal-mode-0.png editor-switch-header.png app-files.docbook editor-ctags-menu.png kdcop_browsing.png configure-doctree-TOC.png createnewproject.png configure-editor.png configure-doctree-DevHelp.png editor-search-doc.png app-menu.docbook project-management.docbook SF-other.png cvs.docbook adv-build-management.docbook credits.docbook configure-doctree-general.png tdevelop-survey.docbook empty-ide.png find-in-files.png tdevelop-ideal-mode.png configure-snippets.png problem-report-todo.png configure-adddialog-baselibs.png configure-docu-custom.png tdevelop-scripting.docbook configure-project-doc.png configure-docu-chm.png unixdev.docbook configure-docu-devhelp.png configure-docu-general.png survey-manual.docbook configure-adddialog.png SF-general.png configure-file-selector.png classview.png nutshell.docbook build-commands.png project-advanced.docbook configure-project-configure.png file-list-session-create.png plugin-tools.docbook build-configurations.png doctree.png class-browsers.docbook app-changelog.docbook importdirectory.png getting-started.docbook tdevelop-toplevel-mode.png automake-manager.png app-misc-info.docbook problem-report-all-todos.png configure-doctree-bookmark.png setup.docbook split-source-header-navigate.png file-selector.png automakemanager.png configure-project-buildconfig.png configure-docu-dox.png documents-contents.png automake-subproject-popup.png doctreeview.png configure-project-cpp.png split-workspace.png
+ @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi
+
+docs-am: index.cache.bz2
+
+install-docs: docs-am install-nls
+ $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop
+ @if test -f index.cache.bz2; then \
+ echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/; \
+ $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/; \
+ elif test -f $(srcdir)/index.cache.bz2; then \
+ echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/; \
+ $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/; \
+ fi
+ -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/common
+ $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/common
+
+uninstall-docs:
+ -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop
+
+clean-docs:
+ -rm -f index.cache.bz2
+
+
+#>+ 13
+install-nls:
+ $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop
+ @for base in documents-search.png configure-general.png problem-report-marks.png app-uimodes-examples.docbook createnewprojectoptions.png editing.docbook SF-indent.png split-source-header.png automake-target-popup.png configure-select.png edit-doctree-TOC-entry.png automake-file-popup.png build-menu-automake.png doctree-reduced.png configure-project-make.png commands.docbook documentation.docbook tutorial-hello-options.png file-list-close-selected.png tdevelop-mdi-mode.png open-recent-project.png create-new-project-cvs.png configure-docu-toc.png editor-find-menu.png configure-file-templates.png file-browsers.docbook tdevelop-tabbed-mode.png script_location.png configure-adddialog-qt.png tdevelop-install.docbook file-list-session-default.png build-menu.png folded-tabs.png debugger.docbook select-user-interface-0.png editor-ctags-lookup.png filetree.png create-new-project.png split-windows.png configure-docu-edit.png raw-project-warning.png tutorial-hello-new.png configure-project-run.png run-button.png select-user-interface.png applicationwizard.docbook configure-project-cppoptions.png editor-ctags-regenerate.png index.docbook doctree-add-bookmark.png configure-doctree-textsearch.png tutorial-new-project.png tdevelop-ideal-mode-0.png editor-switch-header.png app-files.docbook editor-ctags-menu.png kdcop_browsing.png configure-doctree-TOC.png createnewproject.png configure-editor.png configure-doctree-DevHelp.png editor-search-doc.png app-menu.docbook project-management.docbook SF-other.png cvs.docbook adv-build-management.docbook credits.docbook configure-doctree-general.png tdevelop-survey.docbook empty-ide.png find-in-files.png tdevelop-ideal-mode.png configure-snippets.png problem-report-todo.png configure-adddialog-baselibs.png configure-docu-custom.png tdevelop-scripting.docbook configure-project-doc.png configure-docu-chm.png unixdev.docbook configure-docu-devhelp.png configure-docu-general.png survey-manual.docbook configure-adddialog.png SF-general.png configure-file-selector.png classview.png nutshell.docbook build-commands.png project-advanced.docbook configure-project-configure.png file-list-session-create.png plugin-tools.docbook build-configurations.png doctree.png class-browsers.docbook app-changelog.docbook importdirectory.png getting-started.docbook tdevelop-toplevel-mode.png automake-manager.png app-misc-info.docbook problem-report-all-todos.png configure-doctree-bookmark.png setup.docbook split-source-header-navigate.png file-selector.png automakemanager.png configure-project-buildconfig.png configure-docu-dox.png documents-contents.png automake-subproject-popup.png doctreeview.png configure-project-cpp.png split-workspace.png ; do \
+ echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\
+ $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\
+ done
+
+uninstall-nls:
+ for base in documents-search.png configure-general.png problem-report-marks.png app-uimodes-examples.docbook createnewprojectoptions.png editing.docbook SF-indent.png split-source-header.png automake-target-popup.png configure-select.png edit-doctree-TOC-entry.png automake-file-popup.png build-menu-automake.png doctree-reduced.png configure-project-make.png commands.docbook documentation.docbook tutorial-hello-options.png file-list-close-selected.png tdevelop-mdi-mode.png open-recent-project.png create-new-project-cvs.png configure-docu-toc.png editor-find-menu.png configure-file-templates.png file-browsers.docbook tdevelop-tabbed-mode.png script_location.png configure-adddialog-qt.png tdevelop-install.docbook file-list-session-default.png build-menu.png folded-tabs.png debugger.docbook select-user-interface-0.png editor-ctags-lookup.png filetree.png create-new-project.png split-windows.png configure-docu-edit.png raw-project-warning.png tutorial-hello-new.png configure-project-run.png run-button.png select-user-interface.png applicationwizard.docbook configure-project-cppoptions.png editor-ctags-regenerate.png index.docbook doctree-add-bookmark.png configure-doctree-textsearch.png tutorial-new-project.png tdevelop-ideal-mode-0.png editor-switch-header.png app-files.docbook editor-ctags-menu.png kdcop_browsing.png configure-doctree-TOC.png createnewproject.png configure-editor.png configure-doctree-DevHelp.png editor-search-doc.png app-menu.docbook project-management.docbook SF-other.png cvs.docbook adv-build-management.docbook credits.docbook configure-doctree-general.png tdevelop-survey.docbook empty-ide.png find-in-files.png tdevelop-ideal-mode.png configure-snippets.png problem-report-todo.png configure-adddialog-baselibs.png configure-docu-custom.png tdevelop-scripting.docbook configure-project-doc.png configure-docu-chm.png unixdev.docbook configure-docu-devhelp.png configure-docu-general.png survey-manual.docbook configure-adddialog.png SF-general.png configure-file-selector.png classview.png nutshell.docbook build-commands.png project-advanced.docbook configure-project-configure.png file-list-session-create.png plugin-tools.docbook build-configurations.png doctree.png class-browsers.docbook app-changelog.docbook importdirectory.png getting-started.docbook tdevelop-toplevel-mode.png automake-manager.png app-misc-info.docbook problem-report-all-todos.png configure-doctree-bookmark.png setup.docbook split-source-header-navigate.png file-selector.png automakemanager.png configure-project-buildconfig.png configure-docu-dox.png documents-contents.png automake-subproject-popup.png doctreeview.png configure-project-cpp.png split-workspace.png ; do \
+ rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdevelop/$$base ;\
+ done
+
+
+#>+ 5
+distdir-nls:
+ for file in documents-search.png configure-general.png problem-report-marks.png app-uimodes-examples.docbook createnewprojectoptions.png editing.docbook SF-indent.png split-source-header.png automake-target-popup.png configure-select.png edit-doctree-TOC-entry.png automake-file-popup.png build-menu-automake.png doctree-reduced.png configure-project-make.png commands.docbook documentation.docbook tutorial-hello-options.png file-list-close-selected.png tdevelop-mdi-mode.png open-recent-project.png create-new-project-cvs.png configure-docu-toc.png editor-find-menu.png configure-file-templates.png file-browsers.docbook tdevelop-tabbed-mode.png script_location.png configure-adddialog-qt.png tdevelop-install.docbook file-list-session-default.png build-menu.png folded-tabs.png debugger.docbook select-user-interface-0.png editor-ctags-lookup.png filetree.png create-new-project.png split-windows.png configure-docu-edit.png raw-project-warning.png tutorial-hello-new.png configure-project-run.png run-button.png select-user-interface.png applicationwizard.docbook configure-project-cppoptions.png editor-ctags-regenerate.png index.docbook doctree-add-bookmark.png configure-doctree-textsearch.png tutorial-new-project.png tdevelop-ideal-mode-0.png editor-switch-header.png app-files.docbook editor-ctags-menu.png kdcop_browsing.png configure-doctree-TOC.png createnewproject.png configure-editor.png configure-doctree-DevHelp.png editor-search-doc.png app-menu.docbook project-management.docbook SF-other.png cvs.docbook adv-build-management.docbook credits.docbook configure-doctree-general.png tdevelop-survey.docbook empty-ide.png find-in-files.png tdevelop-ideal-mode.png configure-snippets.png problem-report-todo.png configure-adddialog-baselibs.png configure-docu-custom.png tdevelop-scripting.docbook configure-project-doc.png configure-docu-chm.png unixdev.docbook configure-docu-devhelp.png configure-docu-general.png survey-manual.docbook configure-adddialog.png SF-general.png configure-file-selector.png classview.png nutshell.docbook build-commands.png project-advanced.docbook configure-project-configure.png file-list-session-create.png plugin-tools.docbook build-configurations.png doctree.png class-browsers.docbook app-changelog.docbook importdirectory.png getting-started.docbook tdevelop-toplevel-mode.png automake-manager.png app-misc-info.docbook problem-report-all-todos.png configure-doctree-bookmark.png setup.docbook split-source-header-navigate.png file-selector.png automakemanager.png configure-project-buildconfig.png configure-docu-dox.png documents-contents.png automake-subproject-popup.png doctreeview.png configure-project-cpp.png split-workspace.png ; do \
+ cp $(srcdir)/$$file $(distdir); \
+ done
+
+#>+ 15
+force-reedit:
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docs/tdevelop/tdevelop/Makefile
+ cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdevelop/tdevelop/Makefile.in
+
+
+#>+ 21
+clean-bcheck:
+ rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-recursive
+
+bcheck-am:
+ @for i in ; do \
+ if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+ echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+ echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+ echo "$$i"; \
+ if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+ rm -f $$i.bchecktest.cc; exit 1; \
+ fi ; \
+ echo "" >> $$i.bchecktest.cc.class; \
+ perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+ rm -f a.out; \
+ fi ; \
+ done
+
+
+#>+ 3
+final:
+ $(MAKE) all-am
+
+#>+ 3
+final-install:
+ $(MAKE) install-am
+
+#>+ 3
+no-final:
+ $(MAKE) all-am
+
+#>+ 3
+no-final-install:
+ $(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+ -rm -f *.rpo
+
+#>+ 3
+nmcheck:
+nmcheck-am: nmcheck
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/SF-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-general.png
new file mode 100644
index 00000000000..f4a133b00ef
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-general.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png
new file mode 100644
index 00000000000..dfa3aff2032
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png
new file mode 100644
index 00000000000..d330427aaeb
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/adv-build-management.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/adv-build-management.docbook
new file mode 100644
index 00000000000..eb9016aef31
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/adv-build-management.docbook
@@ -0,0 +1,172 @@
+<chapter id="adv-build-management">
+<title
+>Avancerad bygghantering</title>
+<indexterm zone="adv-build-management"
+><primary
+>&automake;</primary
+></indexterm>
+
+<sect1 id="buildconfigurations">
+<title
+>Flera bygginställningar</title>
+<indexterm zone="buildconfigurations"
+><primary
+>bygginställningar</primary
+><secondary
+>flera</secondary
+></indexterm>
+
+<para
+>(...ännu inte skrivet...) </para>
+
+</sect1
+> <!-- buildconfigurations -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="crosscompiling">
+<title
+>Korskompilering</title>
+<indexterm zone="crosscompiling"
+><primary
+>korskompilera</primary
+></indexterm>
+<indexterm zone="crosscompiling"
+><primary
+>kompilera</primary
+><secondary
+>kors</secondary
+></indexterm>
+<indexterm zone="crosscompiling"
+><primary
+><option
+>--host</option
+></primary
+></indexterm>
+
+<para
+>Om du har lämpliga korskompilatorer tillgängliga, kan du kompilera dina program för processorer och operativsystem som skiljer sig från systemet där &tdevelop; och kompilatorn kör. &GNU;-kompilatorn, &gcc;, kan konfigureras och kompileras som en korskompilator om du kompilerar den själv. Rådfråga <ulink url="info://gcc/Cross-Compiler"
+>GCC infosidorna</ulink
+> för mer information. Vissa Linux-distributioner tillhandahåller också binärpaket. </para>
+
+<para
+>Ett automake-baserat paket kan lätt korskompileras genom att ange väljaren <option
+>--host</option
+> till configure-skriptet och ställa in miljövariablerna <envar
+>CC</envar
+> och <envar
+>CXX</envar
+> till motsvarande korskompilatorer. Ofta vill du byta mellan en korskompilerad version av programmet, och en som kompilerats för utvecklingssystemet. För att göra det, är det en fördel att använda möjligheten i &tdevelop; att skapa flera byggkonfigurationer, som förklaras under <xref linkend="buildconfigurations"/>. När du har skapat en ny byggkonfiguration för korskompilering i dialogrutan <menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Projektalternativ...</guimenuitem
+></menuchoice
+>, lägg till väljaren </para>
+
+<screen
+><option
+>--host=</option
+><replaceable
+>plattform</replaceable
+></screen>
+
+<para
+>till configure-väljarna. Värdet <replaceable
+>plattform</replaceable
+> är en kombination av formen </para>
+
+<programlisting
+>cpu-tillverkare-operativsystem</programlisting>
+<para
+>eller</para>
+<programlisting
+>cpu-tillverkare-kärna-operativsystem</programlisting>
+
+<para
+>För många kombinationer kan du använda en kortform, till exempel <wordasword
+>i386-linux</wordasword
+> eller <wordasword
+>arm-elf</wordasword
+>. </para>
+
+</sect1
+> <!-- crosscompiling -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="qtembedded">
+<title
+>Qt/Embedded</title>
+<indexterm zone="qtembedded"
+><primary
+>inbäddad</primary
+><secondary
+>Qt</secondary
+></indexterm>
+<indexterm zone="qtembedded"
+><primary
+>Qt/Embedded</primary
+></indexterm>
+<indexterm zone="qtembedded"
+><primary
+>Qtopia</primary
+></indexterm>
+<indexterm zone="qtembedded"
+><primary
+>rambuffer</primary
+></indexterm>
+
+<para
+>&qte; är en version av &Qt;-biblioteket som inte använder X-window systemet, utan ritar direkt i rambuffern på Linuxsystem. Den är därför intressant för inbäddade system som har hårda begränsningar för minnesanvändningen i hela systemet. Dess programmeringsgränssnitt överensstämmer fullständigt med X11-versionen. </para>
+
+<para
+>Att utveckla ett program för &qte; med &tdevelop; skiljer sig inte mycket från att utveckla ett program för X11-versionen av &Qt;. I själva verket kan du använda samma grundkod för båda versionerna. Om du använder projekthantering med autoprojekt, kan du byta till den inbäddade versionen genom att skicka väljaren <option
+>--enable-embedded</option
+> till configure-skriptet. Du kan ställa in det i dialogrutan <menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Projektinställningar...</guimenuitem
+></menuchoice
+> under <guilabel
+>Inställning av configure</guilabel
+>. Med väljaren <option
+>--with-qt-dir=KATALOG</option
+>, kan du ställa in katalogen där &qte; är installerad. </para>
+
+<para
+>Efter att ha konfigurerat och kompilerat programmet med dessa väljare, länkas det med biblioteket <filename
+>libqpe.so</filename
+>. Den här versionen av programmet kör inte normalt när du använder X11. För att prova den, kör den med hjälp av programmet <application
+>qvfb</application
+> (Qt:s virtuella rambuffer). Det görs genom att starta <application
+>qvfb</application
+> och därefter starta programmet med </para>
+
+<screen
+><command>
+program <option
+>-qws</option
+> <option
+>-display QVFb:0</option>
+</command
+></screen>
+
+<para
+>När du har en version av programmet som fungerar, vill du naturligtvis använda den på målprocessorn. Det kan troligen vara bekvämt att kunna skapa flera byggkonfigurationer, som förklaras ovan, så att du snabbt kan byta mellan versionen som kör på utvecklingssystemet och versionen som kör på målsystemet. </para>
+
+<para
+>Program för &qte; kör normalt som enkla program på enheten de är konstruerade för. Trolltech stöder också Qtopia, som är en samling program för personlig information, webbläsning och diverse andra områden som fungerar tillsammans på ett konsekvent sätt. Det är till exempel standardomgivningen på Sharp Zaurus. Du kan skriva program som passar in i denna omgivning genom att använda Qtopias utvecklingsmiljö (SDK). Det medför att ditt program måste vara en delklass till <classname
+>QPEApplication</classname
+> och det måste länkas med biblioteket <filename
+>libqpe.so</filename
+>. Om du utvecklar programmet med projekthanteringen autoprojekt, måste du lägga till <option
+>--enable-qtopia</option
+> till konfigurationsväljarna. </para>
+
+</sect1
+> <!-- qtembedded -->
+
+</chapter
+> <!-- adv-build-management -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/app-changelog.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/app-changelog.docbook
new file mode 100644
index 00000000000..75eaac393cc
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/app-changelog.docbook
@@ -0,0 +1,89 @@
+<appendix id="app-changelog">
+<title
+>Ändringar</title>
+<sect1 id="changes">
+<title
+>Ändringar i dokumentet</title>
+
+<itemizedlist>
+ <listitem>
+ <para
+>2003-01-03 Bernd Gehrmann, Caleb Tennis <itemizedlist>
+ <listitem>
+ <para
+>ursprunglig layout av handbok</para>
+ </listitem>
+ <listitem>
+ <para
+>disposition för innehållet i många kapitel</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
+
+ <listitem>
+ <para
+>2004-08-01 Bernd Pol, Ian Wadham <itemizedlist>
+ <listitem>
+ <para
+>handboken något omorganiserad</para>
+ </listitem>
+ <listitem>
+ <para
+>några saknade kapitel skrivna</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para
+>2005-05-02 Volker Paul &mdash; Många ändringar, inklusive: <itemizedlist>
+ <listitem>
+ <para
+>delad i en fil per kapitel och appendix</para>
+ </listitem>
+ <listitem>
+ <para
+>tillägg av kommandoreferens sorterad enligt meny (beskrivningar ännu inte fullständiga)</para>
+ </listitem>
+ <listitem>
+ <para
+>handledning för programguiden i getting-started.docbook</para>
+ </listitem>
+ <listitem>
+ <para
+>omorganisering av kapitel, inspirerad av Konquerors handbok</para>
+ </listitem>
+ <listitem>
+ <para
+>flyttade Installation, Utveckling på Unix, <quote
+>I korthet</quote
+> till appendix</para>
+ </listitem>
+ <listitem>
+ <para
+>skrev om appendix om insticksprogram, inklusive generering av insticksprogramlista med listplugins.sh</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para
+>Fortfarande långt ifrån komplett, men ett litet steg framåt.</para>
+ </listitem>
+
+ <listitem>
+ <para
+>2006-05-20 Bernd Pol &mdash; Fyllde i några flera hål med <quote
+>ännu inte skrivet</quote
+>:</para>
+ </listitem>
+
+</itemizedlist>
+
+</sect1
+> <!-- changes -->
+</appendix
+> <!-- app-changelog -->
+
+<!-- ====================================================================== -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/app-files.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/app-files.docbook
new file mode 100644
index 00000000000..90555765bda
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/app-files.docbook
@@ -0,0 +1,1684 @@
+<appendix id="app-files">
+<!-- LWatts (2005-04-30): A lot of this might be better as variable lists, -->
+<!-- but it's not that big a deal. Something to be done only when there's -->
+<!-- a lot of textual changes needed here (e.g., maybe never ) -->
+
+<appendixinfo>
+ <authorgroup>
+ <author
+><firstname
+>Bernd</firstname
+><surname
+>Pol</surname
+></author>
+ <!-- ROLES_OF_TRANSLATORS -->
+ </authorgroup>
+</appendixinfo>
+
+<title
+>Inställningsfiler som används av &tdevelop;</title>
+
+<para
+>&tdevelop; använder en uppsättning inställningsfiler som är fördelade bland flera kataloger. Det finns två huvudgrupper med inställningsfiler att skilja på: </para>
+<simplelist>
+ <member
+><link linkend="app-files-default"
+>&tdevelop; standardinställningar</link
+>: Filer som ställdes in när &tdevelop; installerades. </member>
+ <member
+><link linkend="app-files-user"
+>Användarorienterade inställningar</link
+>: Filer som innehåller användarändringar av standardvärden samt inställningar som gjorts av själva &tdevelop;-programmet och dess insticksprogram. </member>
+</simplelist>
+
+<sect1 id="app-files-default">
+<title
+>&tdevelop; standardinställningar</title>
+
+<para
+>Vid installation skriver &tdevelop; några standardinformationsfiler i inställnings- och konfigurationssyfte till underkataloger i installationskatalogen <filename class="directory"
+>$<envar
+>KDEDIR</envar
+></filename
+> (oftast något som liknar <filename class="directory"
+>/opt/kde</filename
+>, <filename class="directory"
+>/usr/local/kde</filename
+> eller en annan användardefinierad installationskatalog, se <link linkend="tdevelop-install"
+>Installera &tdevelop;</link
+>). </para>
+
+<sect2 id="app-files-default-config">
+<title
+>Standard &tdevelop;-inställningar</title>
+
+<para
+>Det finns bara en &tdevelop;-specifik standardinställningsfil i katalogen <filename class="directory"
+>$<envar
+>KDEDIR</envar
+>/share/config</filename
+>: </para>
+<variablelist>
+ <varlistentry>
+ <term
+><filename
+>tdeveloprc</filename
+></term>
+ <listitem
+><para
+>Filen innehåller de grundläggande inställningarna som &tdevelop; behöver för att starta. Den kopieras till användarens katalog <filename class="directory"
+>$<envar
+>KDEHOME</envar
+>/share/config</filename
+> när &tdevelop; inte hittar filen <filename
+>tdeveloprc</filename
+> där vid start. </para
+></listitem>
+ </varlistentry>
+</variablelist>
+
+</sect2
+> <!-- app-files-default-config -->
+
+<sect2 id="app-files-default-apps">
+<title
+>Programspecifika standardvärden</title>
+
+<para
+>De flesta &tdevelop; funktioner tillhandahålls av delprogram. De är egentligen program som är särskilt konstruerade att köra i &tdevelop;s ramverk (se översikten i appendix <link linkend="plugin-tools"
+>Insticksverktyg</link
+>). Varje delprogram har sin egen uppsättning med inställningsfiler vars standardvärden lagras i flera underkataloger i installationskatalogen <filename class="directory"
+>$<envar
+>KDEDIR</envar
+>/share/apps/</filename
+>. </para>
+
+<para
+>Det finns en hel mängd underkataloger för standardinställningar i <filename class="directory"
+>$<envar
+>KDEDIR</envar
+>/share/apps/</filename
+> med namn som börjar med bokstavsföljden <filename
+>kdev</filename
+>. De flesta av dem är bara till för &tdevelop;s interna användning. De kan vara avsiktligt grupperade för läsbarhet som: <simplelist>
+ <member
+><link linkend="app-files-default-apps-stdalone"
+>Fristående program</link
+></member>
+ <member
+><link linkend="app-files-default-apps-task"
+>Aktivitetsspecifika delprogram</link
+></member>
+ <member
+><link linkend="app-files-default-apps-project"
+>Delprogram för att skapa projekt</link
+></member>
+ <member
+><link linkend="app-files-default-apps-lang"
+>Språkspecifika delprogram</link
+></member>
+</simplelist>
+</para>
+
+<itemizedlist>
+ <listitem id="app-files-default-apps-stdalone"
+><itemizedlist>
+ <title
+>Fristående program</title>
+ <listitem>
+ <para
+><filename class="directory"
+>tdevelop/</filename
+>: Innehåller filer för att anpassa &tdevelop;s integrerade utvecklingsmiljö.</para>
+ <itemizedlist>
+ <listitem
+><para
+><filename class="directory"
+>licenses/</filename
+>: Innehåller diverse licenstexter.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>pics/</filename
+>: Innehåller bildfilerna som används av startskärmarna i &tdevelop;, &tdevelop; assistent och &tdevelop; designer.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>profiles/</filename
+>: Innehåller standardprofilinställningar för insticksprogram. (För närvarande finns det bara en profil <filename
+>tiny</filename
+>, som definierar en minimal uppsättning aktiva insticksprogram i &tdevelop;.)</para
+></listitem>
+ <listitem
+><para
+><filename
+>eventsrc</filename
+>: Innehåller en mängd lokaliseringssträngar för <quote
+>Processen lyckades</quote
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>tdevelopui.rc</filename
+>: Tillhandahåller de grundläggande menyalternativen och verktygsradsikonerna som &tdevelop; använder.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevhtml_partui.rc</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Skriv ut...</guimenuitem
+> i menyn <guimenu
+>Arkiv</guimenu
+>, alternativet <guimenuitem
+>Kopiera</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+>, och pilarna <guilabel
+>Tillbaka</guilabel
+> och <guilabel
+>Framåt</guilabel
+> i verktygsraden <guilabel
+>Bläddra</guilabel
+> vid bläddring i en HTML-fil från insticksprogrammet <guilabel
+>Dokumentation</guilabel
+>.</para
+></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevassistant/</filename
+>: Tillhandahåller menyer och verktygsrader för den fristående dokumentationsbläddraren, &tdevelop; assistent.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevdesigner/</filename
+> och <filename class="directory"
+>kdevdesignerpart/</filename
+>: Tillhandahåller menyer och verktygsrader i det fristående programmet för konstruktion av användargränssnitt, &tdevelop; designer.</para
+></listitem>
+ </itemizedlist
+></listitem>
+
+ <listitem
+><itemizedlist id="app-files-default-apps-task">
+ <title
+>Aktivitetsspecifika delprogram</title>
+ <listitem id="app-files-default-abbrev">
+ <para
+><filename class="directory"
+>kdevabbrev/</filename
+>: Innehåller filer som används av insticksprogrammet <guilabel
+>Expansion av förkortningar</guilabel
+>:</para>
+ <itemizedlist>
+ <listitem
+><para
+><filename class="directory"
+>sources/</filename
+>: Innehåller definitionsfiler av nyckelord som används av kommandot <guilabel
+>Expandera text</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>templates/</filename
+>: Innehåller definitionsfiler för mallar som används av kommandot <guilabel
+>Expandera förkortningar</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevabbrev.rc</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Expandera text</guimenuitem
+> och <guimenuitem
+>Expandera förkortning</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+>.</para
+></listitem>
+</itemizedlist>
+ </listitem>
+ <listitem id="app-files-default-appwizard">
+ <para
+><filename class="directory"
+>kdevappwizard/</filename
+>: Innehåller filer som används av delprogrammet Programguide:</para>
+ <itemizedlist>
+ <listitem
+><para
+><filename class="directory"
+>importfiles/</filename
+>: Innehåller <filename
+>.tdevelop</filename
+>-projektfiler som styr initieringen av ett nytt projekt.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>imports/</filename
+>: Innehåller mallar för att skapa projektspecifika <filename
+>.desktop</filename
+>-filer.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>template-common/</filename
+>: Innehåller diverse filer som ofta ingår i projektets källkataloger.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>templates/</filename
+>: Innehåller inställningsfiler som beskriver informationen som ska ingå i ett givet projekts källkatalog.</para
+></listitem>
+ <listitem
+><para
+><filename
+>*.png</filename
+>: Förhandsgranskningsbilder av projekt som används av programguiden.</para
+></listitem>
+ <listitem
+><para
+><filename
+>*.tar.gz</filename
+>: komprimerade arkiv som innehåller källkodsfiler som ska ingå i en nyskapad projektkatalog.</para
+></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevastyle/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Formatera om källkod</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevautoproject/</filename
+>: Tillhandahåller de flesta alternativen för menyn <guimenu
+>Bygg</guimenu
+> och verktygsraden <guilabel
+>Bygg</guilabel
+> (&tdevelop;).</para
+></listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevclassview/</filename
+>: Innehåller filer som används av projektinsticksprogrammet <guilabel
+>Klassvisning</guilabel
+>:</para>
+ <itemizedlist>
+ <listitem
+><para
+><filename class="directory"
+>pics/</filename
+>: Innehåller ikonerna som används i klassvisningsträdet <guilabel
+>Klasser</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevclassview.tc</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Arvdiagram för klasser</guimenuitem
+> i menyn <guimenu
+>Projekt</guimenu
+> samt kombinationsrutan för klassnavigering i <guilabel
+>Bläddringsverktygsraden</guilabel
+>.</para
+></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevcloser/</filename
+>: Tillhandahåller stängningsalternativen i menyn <guimenu
+>Fönster</guimenu
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevctags/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Ctags</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+> för projektinsticksprogrammet <guilabel
+>Ctags-gränssnitt</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevcvsservice/</filename
+>: Tillhandahåller ikonen som används av fliken <guilabel
+>CVS-tjänst</guilabel
+> och ett kort skalskript för att lägga till en ny post i &cvs;-arkivet, som båda används av projektinsticksprogrammet <guilabel
+>Integrering av CVS</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevdebugger/</filename
+>: Tillhandahåller menyalternativen under <guimenu
+>Avlusa</guimenu
+> för projektinsticksprogrammet <guilabel
+>Gränssnitt för avlusare</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevdiff/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Visning av skillnader</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevdistpart/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Distribution och publicering</guimenuitem
+> i menyn <guimenu
+>Projekt</guimenu
+> för projektinsticksprogrammet <guilabel
+>Stöd för slutpaketering</guilabel
+>.</para
+></listitem>
+ <listitem id="app-files-default-kdevdoc">
+ <para
+><filename class="directory"
+>kdevdocumentation/</filename
+>: Innehåller filer som används av insticksprogrammet <guilabel
+>Dokumentation</guilabel
+>:</para>
+ <itemizedlist>
+ <listitem
+><para
+><filename class="directory"
+>en/</filename
+> och <filename class="directory"
+>pics/</filename
+>: Innehåller filer som används av sökverktyget <application
+>htdig</application
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>tocs/</filename
+>: Innehåller innehållsbeskrivningsfiler för &tdevelop;s standarddokumentation (se beskrivningen i <link linkend="toc-file-structure"
+>Grundstruktur för &tdevelop; innehållsförteckningsfiler</link
+>).</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevpart_documentation.rc</filename
+>: Tillhandahåller sökrelaterade alternativ i menyn <guimenu
+>Hjälp</guimenu
+>.</para
+></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevdoxygen/</filename
+>: Tillhandahåller menyalternativ för projektinsticksprogrammet <guilabel
+>Doxygen-stöd</guilabel
+>.</para
+></listitem>
+ <listitem id="app-files-default-filecreate">
+ <para
+><filename class="directory"
+>kdevfilecreate/</filename
+>: Innehåller filer som används av <guilabel
+>Guide för ny fil</guilabel
+>: <itemizedlist>
+ <listitem
+><para
+><filename class="directory"
+>file-templates/</filename
+>: Tillhandahåller det ursprungliga textinnehållet som ska infogas i en ny källkodsfil av en given typ.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevpart_filecreate.rc</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Ny</guimenuitem
+> i menyn <guimenu
+>Arkiv</guimenu
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>template-info.xml</filename
+>: Innehåller beskrivningar av de tillgängliga filtyperna som ska visas i verktygsvyn <guilabel
+>Ny fil</guilabel
+>.</para
+></listitem>
+ </itemizedlist>
+ </para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevfilter/</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Kör kommando...</guimenuitem
+> och <guimenuitem
+>Filtrera markering genom kommando...</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+> som används av insticksprogrammet <guilabel
+>Skalfiltrering och infogning</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevfullscreen/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Fullskärmsläge</guimenuitem
+> i menyn <guimenu
+>Visa</guimenu
+> och motsvarande ikon i verktygsraden.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevgrepview/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Sök i filer</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+> som används av insticksprogrammet <guilabel
+>Gränssnitt till grep</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevhistory/</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Tillbaka</guimenuitem
+> och <guimenuitem
+>Framåt</guimenuitem
+> i menyn <guimenu
+>Visa</guimenu
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevjavadebugger/</filename
+>: Tillhandahåller menyn <guimenu
+>Avlusa Java</guimenu
+> för att avlusa ett &Java;-program.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevoutputviews/</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Nästa fel</guimenuitem
+> och <guimenuitem
+>Föregående fel</guimenuitem
+> i menyn <guimenu
+>Visa</guimenu
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevpartexplorer/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Delutforskare</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+> som används av insticksprogrammet <guilabel
+>Delutforskningsverktyg</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevquickopen/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Snabböppna fil...</guimenuitem
+> i menyn <guimenu
+>Arkiv</guimenu
+> samt alternativen <guimenuitem
+>Snabböppna klass...</guimenuitem
+> och <guimenuitem
+>Snabböppna metod</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+> som används av projektinsticksprogrammet <guilabel
+>Snabböppna</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevregexptest/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Avlusa reguljärt uttryck...</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+> som används av insticksprogrammet <guilabel
+>Test av reguljära uttryck</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevreplace/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Sök-välj-ersätt...</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+> som används av insticksprogrammet <guilabel
+>Ersättning</guilabel
+>.</para
+></listitem>
+ <listitem id="app-files-default-tips"
+><para
+><filename class="directory"
+>kdevtipofday/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Dagens tips</guimenuitem
+> i menyn <guimenu
+>Hjälp</guimenu
+> samt HTML-filen som innehåller tillgängliga tips.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevtools/</filename
+>: Styr de olika menyalternativen som skapas av inställningarna <guimenu
+>Menyn Verktyg</guimenu
+> och <guilabel
+>Externa verktyg</guilabel
+> som tillhandahålls av insticksprogrammet <guilabel
+>Tillägg i verktygsmenyn</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevvalgrind/</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Valgrind kontroll av minnesläckor</guimenuitem
+> och <guimenuitem
+>Profilera med Kcachegrind</guimenuitem
+> i menyn <guimenu
+>Avlusa</guimenu
+> som används av insticksprogrammet <guilabel
+>Valgrind-gränssnitt</guilabel
+>.</para
+></listitem>
+ </itemizedlist
+></listitem>
+
+ <listitem
+><itemizedlist id="app-files-default-apps-project">
+ <title
+>Delprogram för att skapa projekt</title>
+ <listitem
+><para
+><filename class="directory"
+>kdevadaproject/</filename
+>: Tillhandahåller alternativ för menyn <guimenu
+>Bygg</guimenu
+> och motsvarande ikoner i verktygsraden för att bygga ett Ada-program.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevantproject/</filename
+>: Tillhandahåller alternativ för menyn <guimenu
+>Bygg</guimenu
+> när skapa projekt med Ant används.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevautoproject/</filename
+>: Tillhandahåller alternativ för menyn <guimenu
+>Bygg</guimenu
+> och motsvarande ikoner i verktygsraden vid arbete med &automake; projektgenerering baserat på &GNU;-verktygen. Tillhandahåller dessutom alternativen <guimenuitem
+>Lägg till översättning...</guimenuitem
+> och <guimenuitem
+>Bygginställning</guimenuitem
+> i menyn <guimenu
+>Projekt</guimenu
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevcustomproject/</filename
+>: Tillhandahåller alternativ för menyn <guimenu
+>Bygg</guimenu
+> och motsvarande ikoner i verktygsraden när projektet är baserat på en egen Makefile.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevgenericproject/</filename
+>: Innehåller menydefinitioner för en experimentell generell projektgenerering. För närvarande (version 3.1.0) oanvänd.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevhaskellproject/</filename
+> Tillhandahåller alternativ för menyn <guimenu
+>Bygg</guimenu
+> och motsvarande ikoner i verktygsraden för att bygga ett Haskell-program.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevpascalproject/</filename
+> Tillhandahåller alternativ för menyn <guimenu
+>Bygg</guimenu
+> och motsvarande ikoner i verktygsraden för att bygga ett Pascal-program.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevtrollproject/</filename
+> Tillhandahåller alternativ för menyn <guimenu
+>Bygg</guimenu
+> och motsvarande ikoner i verktygsraden för att bygga ett projekt med användning av &Qt; QMake projekthanteraren.</para
+></listitem>
+ </itemizedlist
+></listitem>
+
+ <listitem
+><itemizedlist id="app-files-default-apps-lang">
+ <title
+>Språkspecifika delprogram</title>
+ <listitem
+><para
+><filename class="directory"
+>kdevadasupport/</filename
+>: Tillhandahåller alternativ i menyn <guimenu
+>Verktyg</guimenu
+> och motsvarande ikoner i verktygsraden som behövs för att utveckla Ada-program.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevbashsupport/</filename
+>: Tillhandahåller alternativ i menyn <guimenu
+>Bygg</guimenu
+> och motsvarande ikoner i verktygsraden som behövs för att utveckla Bash-skript.</para
+></listitem>
+ <listitem id="app-files-default-apps-lang-cpp">
+ <para
+><filename class="directory"
+>kdevcppsupport/</filename
+>: Innehåller filer som används av programguiden för att bygga C++ program:</para>
+ <itemizedlist>
+ <listitem
+><para
+><filename class="directory"
+>newclass/</filename
+>: Innehåller deklarations- och källkodsmallar som programguiden bygger motsvarande källkodsfiler.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>subclassing/</filename
+>: Innehåller mallar som programguiden använder för att skapa ursprungliga klassdeklarationer och klassdefinitioner i källkodsfilerna.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>templates</filename
+>: Innehåller mallar som programguiden använder för att skapa standardhuvud och mallfiler för källkod som används av &nfwizard;. </para
+></listitem>
+ <listitem
+><para
+><filename
+>configuration</filename
+>: Mall för att lägga till makron.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevcppsupport.rc</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Komplettera text</guimenuitem
+> och <guimenuitem
+>Skapa medlem</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+>, alternativet <guimenuitem
+>Byt till deklaration/implementering</guimenuitem
+> för menyn <guimenu
+>Visa</guimenu
+>, och alternativet <guimenuitem
+>Ny klass</guimenuitem
+> för menyn <guimenu
+>Projekt</guimenu
+> samt ikonen <guiicon
+>Ny klass</guiicon
+> för <guilabel
+>Bläddringsverktygsraden</guilabel
+>.</para
+></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevfortransupport/</filename
+>: Tillhandahåller alternativ i menyn <guimenu
+>Bygg</guimenu
+> som behövs för att utveckla Fortran-program.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevhaskellsupport/</filename
+>: Tillhandahåller alternativ i menyn <guimenu
+>Bygg</guimenu
+> och motsvarande ikoner i verktygsraden som behövs för att utveckla Haskell-program.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevjavasupport/</filename
+>: Innehåller gränssnittsdefinitionerna som behövs för att utveckla &Java;-program.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevpascalsupport/</filename
+>: Innehåller gränssnittsdefinitionerna som behövs för att utveckla Pascal-program.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevperlsupport/</filename
+>: Tillhandahåller alternativ i menyerna <guimenu
+>Bygg</guimenu
+> och <guimenu
+>Hjälp</guimenu
+> som behövs för att utveckla Perl-skript.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevphpsupport/</filename
+>: Innehåller gränssnittsdefinitioner och PHP-definitioner som behövs för att utveckla PHP-skript.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevpythonsupport/</filename
+>: Tillhandahåller alternativ i menyerna <guimenu
+>Bygg</guimenu
+> och <guimenu
+>Hjälp</guimenu
+> samt motsvarande ikoner i verktygsraden som behövs för att utveckla Python-skript.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevrubysupport/</filename
+>: Tillhandahåller alternativ i menyn <guimenu
+>Bygg</guimenu
+> och motsvarande ikoner i verktygsraden som behövs för att utveckla Ruby-skript.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevscriptproject/</filename
+>: Tillhandahåller gränssnittsdefinitionerna som behövs för att utveckla egna projekt. För närvarande (version 3.1.0) oanvänd.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>kdevsqlsupport/</filename
+>: Tillhandahåller gränssnittsdefinitionerna som behövs för att utveckla SQL-projekt. För närvarande (version 3.1.0) oanvänd.</para
+></listitem>
+ </itemizedlist
+></listitem>
+
+</itemizedlist>
+
+</sect2
+> <!-- app-files-default-apps -->
+
+</sect1
+> <!-- app-files-default -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="app-files-user">
+<title
+>Användarorienterade inställningar</title>
+
+<para
+>All information om användardefinierade inställningar finns i två underkataloger i <filename class="directory"
+>$<envar
+>KDEHOME</envar
+></filename
+>, nämligen: <simplelist>
+ <member
+><link linkend="app-files-user-apps"
+>Programspecifika inställningar</link
+> i katalogen <filename class="directory"
+>$<envar
+>KDEHOME</envar
+>/share/apps/</filename
+>, och</member>
+ <member
+><link linkend="app-files-user-config"
+>Resursinställningsfiler</link
+> i katalogen <filename class="directory"
+>$<envar
+>KDEHOME</envar
+>/share/config/</filename
+>.</member>
+</simplelist>
+</para>
+
+<sect2 id="app-files-user-apps">
+<title
+>Programspecifika inställningar</title>
+
+<para
+>Alla användarens ändringar av <link linkend="app-files-default"
+>standardinställningar i &tdevelop;</link
+> samt användarspecifika inställningar som inte lagras i någon av <link linkend="app-files-user-config"
+>resursinställningsfilerna</link
+> finns i underkatalogerna <filename
+>kdev...</filename
+> i katalogen <filename class="directory"
+>$<envar
+>KDEHOME</envar
+>/share/apps/</filename
+>. </para>
+<para
+>De flesta av dessa inställningsfiler används dock av diverse insticksprogram i &tdevelop; för att tillhandahålla någon specifik meny och/eller verktygsradsikon. Därför är de bara intressanta om något verkligen har gått fel i användargränssnittet. </para>
+<note
+><para
+>I det fallet du innehållet i katalogerna speglar det i de standardinställningarna, har &tdevelop; kopierat dem från <filename class="directory"
+>$<envar
+>KDEDIR</envar
+>/apps/</filename
+> till katalogen <filename class="directory"
+>$<envar
+>KDEHOME</envar
+>/apps/</filename
+> vid den första starten. Alla följande ändringar görs bara i kopiorna. Standardinställningarna förblir hur som helst orörda. </para
+></note>
+
+<itemizedlist>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevabbrev/</filename
+>: Innehåller filer som används av insticksprogrammet <guilabel
+>Expansion av förkortningar</guilabel
+>:</para>
+ <itemizedlist>
+ <listitem
+><para
+><filename class="directory"
+>sources/</filename
+>: För närvarande tom. &tdevelop; använder <link linkend="app-files-default-abbrev"
+>standarddefinitionsfiler för nyckelord</link
+> till kommandot <guilabel
+>Expandera text</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename class="directory"
+>templates/</filename
+>: Innehåller definitionsfiler ändrade av användaren för mallar som används av kommandot <guilabel
+>Expandera förkortningar</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevabbrev.rc</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Expandera text</guimenuitem
+> och <guimenuitem
+>Expandera förkortning</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+>.</para
+></listitem>
+ </itemizedlist
+>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevappwizard/</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Nytt projekt...</guimenuitem
+> och <guimenuitem
+>Importera befintligt projekt...</guimenuitem
+> i menyn <guimenu
+>Projekt</guimenu
+>. Programguiden använder <link linkend="app-files-default-appwizard"
+>standardinställningar</link
+> för den verkliga funktionen.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevastyle/</filename
+>: Tillhandahåller det verkliga alternativet <guimenuitem
+>Formatera om källkod</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevautoproject/</filename
+>: Tillhandahåller de verkliga alternativen i menyn <guimenu
+>Bygg</guimenu
+> och verktygsraden <guilabel
+>Bygg</guilabel
+> (KDevelop).</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevclassview/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Arvdiagram för klasser</guimenuitem
+> i menyn <guimenu
+>Projekt</guimenu
+> samt kombinationsrutan för klassnavigering i <guilabel
+>Bläddringsverktygsraden</guilabel
+> från projektinsticksprogrammet <guilabel
+>Klassvisning</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevcloser/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Stäng markerade fönster...</guimenuitem
+> i menyn <guimenu
+>Fönster</guimenu
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevcppsupport/</filename
+>: Innehåller de verkliga inställningarna som används av programguiden för att skapa C++ program. Programguiden använder den största delen av sina inställningar direkt från <link linkend="app-files-default-apps-lang-cpp"
+>katalogen med standardinställningar</link
+>. Titta där för mer detaljinformation.</para>
+ <itemizedlist>
+ <listitem>
+ <para
+><filename class="directory"
+>newclass/</filename
+>: Innehåller de verkliga deklarations- och källkodsmallar som programguiden använder för att bygga motsvarande källkodsfiler.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>pcs/</filename
+>: Innehåller databasfiler som &tdevelop; använder för att bygga den verkliga filen för bestående kodlagring (<filename
+>.pcs</filename
+>) för ett &kde; C++ projekt.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename
+>kdevcppsupport.rc</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Komplettera text</guimenuitem
+> och <guimenuitem
+>Skapa medlem</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+>, alternativet <guimenuitem
+>Byt till deklaration/implementering</guimenuitem
+> för menyn <guimenu
+>Visa</guimenu
+>, och alternativet <guimenuitem
+>Ny klass</guimenuitem
+> för menyn <guimenu
+>Projekt</guimenu
+> samt ikonen <guiicon
+>Ny klass</guiicon
+> för <guilabel
+>Bläddringsverktygsraden</guilabel
+>.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevctags/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Ctags</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+> för projektinsticksprogrammet <guilabel
+>Ctags-gränssnitt</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevdebugger/</filename
+>: Tillhandahåller menyalternativen under <guimenu
+>Avlusa</guimenu
+> för projektinsticksprogrammet <guilabel
+>Gränssnitt för avlusare</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevdiff/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Visning av skillnader</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevdocumentation/</filename
+>: Innehåller de verkliga filerna som används av insticksprogrammet <guilabel
+>Dokumentation</guilabel
+> förutom de <link linkend="app-files-default-kdevdoc"
+>standardinställningsfilerna</link
+>. Titta där för mer detaljinformation.</para>
+ <para
+>Katalogerna under <filename class="directory"
+>kdevdocumentation/</filename
+> innehåller i huvudsak bokhållningsinformation. De verkliga inställda dokumentationsfilerna finns i filerna <link linkend="app-files-user-config-doc"
+><quote
+><filename
+>doc...pluginrc</filename
+></quote
+></link
+> i katalogen <filename class="directory"
+>$<envar
+>KDEHOME</envar
+>/share/config/</filename
+>.</para>
+ <itemizedlist>
+ <listitem>
+ <para
+><filename class="directory"
+>bookmarks/</filename
+>: Underhåller posterna under fliken <guilabel
+>Bokmärken</guilabel
+> som används av insticksprogrammet <guilabel
+>Dokumentation</guilabel
+> i &tdevelop;.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>index/</filename
+>: Innehåller diverse cachefiler som &tdevelop; använder för att snabba upp indexerade sökningar i dokumentationen under fliken <guilabel
+>Index</guilabel
+> med insticksprogrammet <guilabel
+>Dokumentation</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>search/</filename
+>: Innehåller filer som används av sökverktyget <application
+>htdig</application
+> som hanterar sökanrop från fliken <guilabel
+>Sök</guilabel
+> i insticksprogrammet <guilabel
+>Dokumentation</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename
+>kdevpart_documentation.rc</filename
+>: Tillhandahåller sökrelaterade alternativ i menyn <guimenu
+>Hjälp</guimenu
+>.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevdoxygen/</filename
+>: Tillhandahåller menyalternativ för projektinsticksprogrammet <guilabel
+>Doxygen-stöd</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>tdevelop/</filename
+>: Innehåller några verkliga alternativ som &tdevelop; använder som grundläggande inställning:</para>
+ <itemizedlist>
+ <listitem
+><para
+><filename class="directory"
+>profiles/</filename
+>: Tillhandahåller de verkliga profilinställningarna för insticksprogram (från början finns det bara en profil <filename
+>FullIDE</filename
+> som definierar en fullständig uppsättning med aktiva insticksprogram i &tdevelop;.)</para
+></listitem>
+ <listitem
+><para
+><filename
+>tdevelopui.rc</filename
+>: Tillhandahåller de grundläggande menyalternativen och verktygsradsikonerna som &tdevelop; använder.</para
+></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevfilecreate/</filename
+>: Innehåller filer som används av <guilabel
+>Guide för ny fil</guilabel
+>:</para>
+ <itemizedlist>
+ <listitem
+><para
+><filename class="directory"
+>file-templates/</filename
+>: Tillhandahåller det verkliga textinnehållet som ska infogas i en ny källkodsfil av en given typ. Fler filmallar finns i katalogen med <link linkend="app-files-default-filecreate"
+>standardinställningsfiler</link
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevpart_filecreate.rc</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Ny</guimenuitem
+> i menyn <guimenu
+>Arkiv</guimenu
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>template-info.xml</filename
+>: Innehåller beskrivningar av de tillgängliga filtyperna som ska visas i verktygsvyn <guilabel
+>Ny fil</guilabel
+>.</para
+></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevfilter/</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Kör kommando...</guimenuitem
+> och <guimenuitem
+>Filtrera markering genom kommando...</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+> som används av insticksprogrammet <guilabel
+>Skalfiltrering och infogning</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevfullscreen/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Fullskärmsläge</guimenuitem
+> i menyn <guimenu
+>Visa</guimenu
+> och motsvarande ikon i verktygsraden.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevgrepview/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Sök i filer</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+> som används av insticksprogrammet <guilabel
+>Gränssnitt till grep</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevoutputviews/</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Nästa fel</guimenuitem
+> och <guimenuitem
+>Föregående fel</guimenuitem
+> i menyn <guimenu
+>Visa</guimenu
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevpartexplorer/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Delutforskare</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+> som används av insticksprogrammet <guilabel
+>Delutforskningsverktyg</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevquickopen/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Snabböppna fil...</guimenuitem
+> i menyn <guimenu
+>Arkiv</guimenu
+> samt alternativen <guimenuitem
+>Snabböppna klass...</guimenuitem
+> och <guimenuitem
+>Snabböppna metod</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+> som används av projektinsticksprogrammet <guilabel
+>Snabböppna</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevregexptest/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Avlusa reguljärt uttryck...</guimenuitem
+> i menyn <guimenu
+>Verktyg</guimenu
+> som används av insticksprogrammet <guilabel
+>Test av reguljära uttryck</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevreplace/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Sök-välj-ersätt...</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+> som används av insticksprogrammet <guilabel
+>Ersättning</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevtipofday/</filename
+>: Tillhandahåller alternativet <guimenuitem
+>Dagens tips</guimenuitem
+> i menyn <guimenu
+>Hjälp</guimenu
+>. HTML-filen som innehåller tillgängliga tips tillhandahålls bara som en <link linkend="app-files-default-tips"
+>standardinställningsfil</link
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevtools/</filename
+>: Styr de olika menyalternativen som skapas av inställningarna <guimenu
+>Menyn Verktyg</guimenu
+> och <guilabel
+>Externa verktyg</guilabel
+> som tillhandahålls av insticksprogrammet <guilabel
+>Tillägg i verktygsmenyn</guilabel
+>.</para>
+ </listitem>
+ <listitem>
+ <para
+><filename class="directory"
+>kdevvalgrind/</filename
+>: Tillhandahåller alternativen <guimenuitem
+>Valgrind kontroll av minnesläckor</guimenuitem
+> och <guimenuitem
+>Profilera med Kcachegrind</guimenuitem
+> i menyn <guimenu
+>Avlusa</guimenu
+> som används av insticksprogrammet <guilabel
+>Valgrind-gränssnitt</guilabel
+>.</para>
+ </listitem>
+</itemizedlist>
+
+</sect2
+> <!-- app-files-user-apps -->
+
+<sect2 id="app-files-user-config">
+<title
+>Resursinställningsfiler</title>
+
+<para
+>Det finns två grupper av &tdevelop; inställningsfiler i katalogen <filename class="directory"
+>$<envar
+>KDEHOME</envar
+>/share/config/</filename
+>, som åtskiljs av omgivande bokstavssekvenser: <simplelist>
+ <member
+><quote
+><filename
+>doc...pluginrc</filename
+></quote
+> anger <link linkend="app-files-user-config-doc"
+>filer som används av insticksprogrammet för dokumentations</link
+></member>
+ <member
+><quote
+><filename
+>kdev...rc</filename
+></quote
+> anger <link linkend="app-files-user-config-kdev"
+>inställningsfiler som används av &tdevelop;</link
+> själv och tillgängliga insticksprogram.</member>
+</simplelist>
+</para>
+
+<itemizedlist id="app-files-user-config-kdev">
+<title
+>Inställningsfiler som används av &tdevelop;</title>
+ <listitem>
+ <para
+><filename
+>kdevabbrevrc</filename
+>: Innehåller nuvarande tillstånd för inställningen <guilabel
+>Förkortningar</guilabel
+> som tillhandahålls av insticksprogrammet <guilabel
+>Expansion av förkortningar</guilabel
+>.</para>
+ <note
+><para
+>Det här lagrar om förkortningarna kommer att användas eller inte. De verkliga definitionerna av nya förkortningar hamnar i filen <filename
+>$<envar
+>KDEHOME</envar
+>/share/apps/kdevabbrev/templates/templates</filename
+>.</para
+></note>
+ </listitem>
+ <listitem>
+ <para
+><filename
+>kdevassistantrc</filename
+>: Innehåller vissa specifika inställningstillstånd för den fristående dokumentationsbläddraren &tdevelop; assistent.</para>
+ <note
+><para
+>De flesta vanliga inställningar delas med filen för &tdevelop;s integrerade utvecklingsmiljö <filename
+>tdeveloprc</filename
+>.</para
+></note>
+ </listitem>
+ <listitem
+><para
+><filename
+>kdevassistantuimode4rc</filename
+>: Innehåller nuvarande inställningstillstånd för flerfönsterläge (dockningspositioner, etc.) för den fristående dokumentationsbläddraren &tdevelop; assistent.</para
+></listitem>
+ <listitem>
+ <para
+><filename
+>kdevclassviewrc</filename
+>: Innehåller inställningarna för <guilabel
+>Visningsläge</guilabel
+> för klassbläddrarfliken <guilabel
+>Klasser</guilabel
+> som tillhandahålls av projektinsticksprogrammet <guilabel
+>Klassvisning</guilabel
+>.</para>
+ <note
+><para
+>Det här är en global inställning, även om insticksprogrammet <guilabel
+>Klassvisning</guilabel
+> kan vara inaktiverad för varje projekt. Alla ändringar av inställningen uppdateras globalt så fort det aktuella projektet stängs, och påverkar därför alla följande projekt som laddas.</para
+></note>
+ </listitem>
+ <listitem
+><para
+><filename
+>kdevcppsupportrc</filename
+>: Innehåller vissa inställningar som används för att skapa CPP-källkodsfiler. I synnerhet hittar du inställningarna som gjorts i inställningsdialogrutan <guilabel
+>Skapa ny klass i C++</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevdocumentationrc</filename
+>: Innehåller verkliga inställningar som insticksprogrammet <guilabel
+>Dokumentation</guilabel
+> använder.</para
+></listitem>
+ <listitem
+><para
+><filename
+>tdeveloprc</filename
+>: Innehåller globala inställningar som den integrerade utvecklingsmiljön &tdevelop; och den fristående dokumentationsbläddraren &tdevelop; assistent använder.</para
+></listitem>
+ <listitem
+><para
+><filename
+>tdevelopuimode4rc</filename
+>: Innehåller nuvarande inställningstillstånd för flerfönsterläge (dockningspositioner, etc.) för den integrerade utvecklingsmiljön &tdevelop;.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevfileselectorrc</filename
+>: Innehåller verkliga inställningar som insticksprogrammet <guilabel
+>Filväljare</guilabel
+> använder.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevfileviewrc</filename
+>: Innehåller verkliga inställningar av filnamnsfärger som projektinsticksprogrammet <guilabel
+>Integrering av CVS (Cervisia)</guilabel
+> använder för visning.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevfilterrc</filename
+>: Innehåller verkliga inställningar som insticksprogrammet <guilabel
+>Skalfiltrering och infogning</guilabel
+> använder.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevgrepviewrc</filename
+>: Innehåller verkliga inställningar som insticksprogrammet <guilabel
+>Gränssnitt till grep</guilabel
+> använder.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevsnippetrc</filename
+>: Innehåller verkliga inställningar som insticksprogrammet <guilabel
+>Kodsnuttar</guilabel
+> använder.</para
+></listitem>
+ <listitem
+><para
+><filename
+>kdevtoolsrc</filename
+>: Innehåller verkliga inställningar som insticksprogrammet <guilabel
+>Tillägg i verktygsmenyn</guilabel
+> använder.</para
+></listitem>
+</itemizedlist>
+
+<itemizedlist id="app-files-user-config-doc">
+<title
+>Inställningsfiler som används av insticksprogrammet för dokumentation</title>
+ <listitem
+><para
+><filename
+>docchmpluginrc</filename
+>: Innehåller information om de verkliga &Microsoft; CHM-hjälpfilerna som de definieras på inställningssidan <guilabel
+>CHM-dokumentationssamling</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>doccustompluginrc</filename
+>: Innehåller information om alla egna dokumentationsfiler som de definieras på inställningssidan <guilabel
+>Egen dokumentationssamling</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>docdevhelppluginrc</filename
+>: Innehåller information om de verkliga GNOME 2 DevHelp-dokumentationsfiler som de definieras på inställningssidan <guilabel
+>DevHelp-dokumentationssamling</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>docdoxygenpluginrc</filename
+>: Innehåller information om de verkliga dokumentationen av programmeringsgränssnittet skapade av Doxygen som de definieras på inställningssidan <guilabel
+>Doxygen-dokumentationssamling</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>dockdevtocpluginrc</filename
+>: Innehåller information om de verkliga strukturerade KDevelop innehållsdokumentationsfilerna som de definieras på inställningssidan <guilabel
+>KDevelop innehållsdokumentationssamling</guilabel
+>.</para
+></listitem>
+ <listitem
+><para
+><filename
+>docqtpluginrc</filename
+>: Innehåller information om de Qt-dokumentationsfilerna som verkligen ingår på inställningssidan <guilabel
+>Qt-dokumentationssamling</guilabel
+>.</para
+></listitem>
+</itemizedlist>
+
+</sect2
+> <!-- app-files-user-config -->
+
+</sect1
+> <!-- app-files-user -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="app-files-project">
+<title
+>Projektberoende inställningar</title>
+
+<para
+>De flesta projektberoende inställningarna bevaras i &tdevelop;s projektinställningsfiler <filename
+>&lt;projektnamn&gt;.tdevelop</filename
+> och <filename
+>&lt;projektnamn&gt;.kdevses</filename
+> istället för i separata filer som andra, mer globala, konfigurationsinställningar. I korthet är de här filerna avsedda för: </para>
+<simplelist>
+ <member
+><filename
+>&lt;projektnamn&gt;.tdevelop</filename
+>: Global projektinställningsinformation.</member>
+ <member
+><filename
+>&lt;projektnamn&gt;.kdevses</filename
+>: Inställningsinformation som behövs för att återställa det specifika beteendet hos sessionen som kör.</member>
+</simplelist>
+<para
+>Båda filerna är kodade med &XML;. De kan visas och ändras (med försiktighet) i vilken texteditor som helst. </para>
+
+<sect2>
+<title
+>Bestående kodlagringsfiler</title>
+
+<para
+>Det finns en tredje projektberoende inställningsfil, filen för lagringen av bestående kod <filename
+>&lt;projektnamn&gt;.tdevelop.pcs</filename
+>. Det är en binärkodad fil som innehåller en tolkningscache i huvudsak för att snabba upp laddningssekvensen för projektet. Dessutom innehåller den här bestående kodlagringen information som används av funktionen för <guilabel
+>kodkomplettering</guilabel
+> i &tdevelop;. </para>
+
+<note
+><para
+>Ytterligare filer för bestående kodlagring kan ställas in under fliken <guilabel
+>Kodkomplettering</guilabel
+> på den <guilabel
+>C++ specifika</guilabel
+> projektinställningssidan. Information om dessa ytterligare <filename
+>.pcs</filename
+>-filer lagras globalt i katalogen <filename class="directory"
+>$<envar
+>KDEHOME</envar
+>/share/apps/kdevcppsupport/pcs/</filename
+>. </para
+></note>
+</sect2>
+
+</sect1
+> <!-- app-files-project -->
+
+</appendix
+> <!-- app-files -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/app-menu.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/app-menu.docbook
new file mode 100644
index 00000000000..aabccc06794
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/app-menu.docbook
@@ -0,0 +1,72 @@
+<appendix id="app-menus">
+
+<appendixinfo>
+ <authorgroup>
+ <author
+><firstname
+>Bernd</firstname
+><surname
+>Pol</surname
+></author>
+ <!-- ROLES_OF_TRANSLATORS -->
+ </authorgroup>
+</appendixinfo>
+
+<title
+>Översikt över menyer och verktygsrader</title>
+
+<para
+>(... ännu inte skrivet ...) </para>
+
+<sect1 id="app-menus-menu">
+<title
+>Menyer</title>
+
+<para
+>(... ännu inte skrivet ...) </para>
+
+<sect2 id="app-menus-menu-common">
+<title
+>Vanligt tillgängliga menyer</title>
+
+<para
+>(... ännu inte skrivet ...) </para>
+
+</sect2
+> <!-- app-menus-menu-common -->
+
+<sect2 id="app-menus-menu-project">
+<title
+>Projektspecifika menyer</title>
+
+<para
+>(... ännu inte skrivet ...) </para>
+
+</sect2
+> <!-- app-menus-menu-project -->
+
+<sect2 id="app-menus-menu-specific">
+<title
+>Menyer specifika för insticksverktyg</title>
+
+<para
+>(... ännu inte skrivet ...) </para>
+
+</sect2
+> <!-- app-menus-menu-specific -->
+
+</sect1
+> <!-- app-menus-menu -->
+
+<sect1 id="app-menus-tool">
+<title
+>Verktygsrader</title>
+
+<para
+>(... ännu inte skrivet ...) </para>
+
+</sect1
+> <!-- app-menus-tool -->
+
+</appendix
+> <!-- app-menus -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/app-misc-info.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/app-misc-info.docbook
new file mode 100644
index 00000000000..e7e476cefb6
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/app-misc-info.docbook
@@ -0,0 +1,28 @@
+<appendix id="app-misc-info">
+<title
+>Ytterligare information</title>
+<sect1 id="gettinginformation">
+<title
+>Hämta information</title>
+<para
+>(...ännu inte skrivet...) </para>
+</sect1
+> <!-- gettinginformation -->
+
+<sect1 id="app-reporting-bugs">
+<title
+>Rapportera fel</title>
+<para
+>(...ännu inte skrivet...) </para>
+</sect1
+> <!-- app-reporting-bugs -->
+
+<sect1 id="app-licensing">
+<title
+>Licenser</title>
+&underFDL; &underGPL; </sect1
+> <!-- app-licensing -->
+</appendix
+> <!-- app-misc-info -->
+
+<!-- ====================================================================== -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/app-uimodes-examples.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/app-uimodes-examples.docbook
new file mode 100644
index 00000000000..9f0863a6257
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/app-uimodes-examples.docbook
@@ -0,0 +1,174 @@
+<appendix id="app-uimodes-examples">
+<title
+>Exempel på lägen i användargränssnittet för &tdevelop;</title>
+
+<sect1 id="ideal-desc">
+<title
+>IDEA-fönsterläge</title>
+
+<para
+>Klicka <link linkend="uimodes-survey"
+>här</link
+> för att återgå till översikten över lägen. </para>
+
+<screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="tdevelop-ideal-mode.png" format="PNG"/>
+ </imageobject>
+ <textobject
+><phrase
+>Skärmbild</phrase
+></textobject>
+ <caption
+><para
+>&tdevelop; IDEA-fönsterläge</para
+></caption>
+ </mediaobject>
+</screenshot>
+
+<para
+>Klicka <link linkend="uimodes-survey"
+>här</link
+> för att återgå till översikten över lägen. </para>
+
+<screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="tdevelop-ideal-mode-0.png" format="PNG"/>
+ </imageobject>
+ <textobject
+><phrase
+>Skärmbild</phrase
+></textobject>
+ <caption
+><para
+>&tdevelop; IDEA-fönsterläge, stängda flikar</para
+></caption>
+ </mediaobject>
+</screenshot>
+
+<para
+>Det här skärmbildsexemplet visar en av de huvudsakliga fördelarna med IDEA-läge, att det finns en maximal arbetsyta tillgänglig. Ändå är alla verktygsvyer lätt tillgängliga genom att klicka på motsvarande flik. </para>
+<para
+>Du behöver troligen en viss tid innan du har vant dig vid ikonerna i flikraden. Om du är vilse, placera bara musen över en flik och vänta några sekunder. En beskrivning i form av ett kort verktygstips dyker då upp. På skärmbilden visas verktygstipset <quote
+>Hantering av automake</quote
+> som exempel. Det beskriver den nedre fliken i högra flikraden. </para>
+
+<para
+>Klicka <link linkend="uimodes-survey"
+>här</link
+> för att återgå till översikten över lägen. </para>
+
+</sect1
+> <!-- ideal-desc -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="mdi-desc">
+<title
+>Underramsläge</title>
+
+<para
+>Klicka <link linkend="uimodes-survey"
+>här</link
+> för att återgå till översikten över lägen. </para>
+
+<screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="tdevelop-mdi-mode.png" format="PNG"/>
+ </imageobject>
+ <textobject
+><phrase
+>Skärmbild</phrase
+></textobject>
+ <caption
+><para
+>&tdevelop; underramsläge</para
+></caption>
+ </mediaobject>
+</screenshot>
+
+<para
+>Klicka <link linkend="uimodes-survey"
+>här</link
+> för att återgå till översikten över lägen. </para>
+
+</sect1
+> <!-- mdi-desc -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="tabbed-desc">
+<title
+>Fliksidläge</title>
+
+<para
+>Klicka <link linkend="uimodes-survey"
+>här</link
+> för att återgå till översikten över lägen. </para>
+
+<screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="tdevelop-tabbed-mode.png" format="PNG"/>
+ </imageobject>
+ <textobject
+><phrase
+>Skärmbild</phrase
+></textobject>
+ <caption
+><para
+>&tdevelop; fliksidläge</para
+></caption>
+ </mediaobject>
+</screenshot>
+
+<para
+>Klicka <link linkend="uimodes-survey"
+>här</link
+> för att återgå till översikten över lägen. </para>
+
+</sect1
+> <!-- tabbed-desc -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="toplevel-desc">
+<title
+>Toppnivåläge</title>
+
+<para
+>Klicka <link linkend="uimodes-survey"
+>här</link
+> för att återgå till översikten över lägen. </para>
+
+<screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="tdevelop-toplevel-mode.png" format="PNG"/>
+ </imageobject>
+ <textobject
+><phrase
+>Skärmbild</phrase
+></textobject>
+ <caption
+><para
+>&tdevelop; toppnivåläge</para
+></caption>
+ </mediaobject>
+</screenshot>
+
+<para
+>Klicka <link linkend="uimodes-survey"
+>här</link
+> för att återgå till översikten över lägen. </para>
+
+</sect1
+> <!-- toplevel-desc -->
+
+</appendix
+> <!-- app-uimodes-examples -->
+
+<!-- ====================================================================== -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/applicationwizard.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/applicationwizard.docbook
new file mode 100644
index 00000000000..779dacfdf7b
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/applicationwizard.docbook
@@ -0,0 +1,1382 @@
+<chapter id="applicationwizard">
+
+<chapterinfo>
+ <authorgroup>
+ <author
+><firstname
+>Bernd</firstname
+><surname
+>Pol</surname
+></author>
+ <!-- ROLES_OF_TRANSLATORS -->
+ </authorgroup>
+</chapterinfo>
+
+<title
+>Komma igång: Programguiden</title>
+<!-- FIXME (bp, 2006-06-18) This is a misnomer. It should be something like -->
+<!-- Working With Projects -->
+<!-- featuring the application manager as part of the New Projects section. -->
+
+<indexterm zone="applicationwizard">
+ <primary
+>Programguiden</primary
+></indexterm>
+
+<para
+>Arbete med att utveckla programvara i &tdevelop; organiseras i <emphasis
+>projekt</emphasis
+>. Ett sådant projekt håller samman allt som hör till en fullständig programmeringsuppgift: källkodsfiler, ytterligare datafiler, alla hanteringsfunktioner som behövs som byggsystemet samt åtkomst till alla komponenter och ytterligare verktyg som behövs för att få programmet klart att köras. </para>
+<para
+>Att organisera utvecklingsarbetet i projekt låter dig enkelt byta mellan befintliga övergripande uppgifter. Det här riktigt bekvämt om du till exempel arbetar med flera program samtidigt, vilket ofta är fallet. Tala om för &tdevelop; att öppna projektet du vill arbeta med, och du kan fortsätta i miljön precis där du tidigare lämnade den. </para>
+
+<sect1 id="new-projects">
+<title
+>Nya projekt</title>
+
+<!-- TODO (bp, 2006-06-18) This whole section must be completely rewritten. -->
+<!-- There is no need for a tutorial habit anymore. -->
+
+<indexterm zone="new-projects">
+ <primary
+>projekt</primary>
+ <secondary
+>nytt</secondary
+></indexterm>
+
+<para
+>Så fort du vill starta ett nytt programmeringsprojekt, behöver en hel del formella inställningsprocedurer göras. En startstruktur för kataloger måste skapas, nya deklarationsfiler och källkodsfiler måste skapas, byggsystemet måste initieras, etc. </para>
+<para
+>&tdevelop; tillhandahåller ett enkelt sätt att starta ett nytt programmeringsprojekt: <emphasis
+>programguiden</emphasis
+>. Du hittar programguiden via menyalternativet <menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Nytt projekt</guimenuitem
+></menuchoice
+>. </para>
+<para
+>Det behövs bara ett fåtal steg för att skapa ett nytt programmeringsprojekt med programguiden: </para>
+<orderedlist>
+ <listitem
+><para
+><link linkend="new-projects-start-type"
+>Välj programspråk</link
+> du vill använda, och typ av program som du vill skapa från en uppsättning fördefinierade mallar. </para
+></listitem>
+ <listitem
+><para
+><link linkend="new-projects-start-general"
+>Tillhandahåll en del allmän information</link
+> som programnamn, katalog där programmet ska byggas, etc. </para
+></listitem>
+ <listitem
+><para
+>Bestäm om du vill använda ett <link linkend="new-projects-start-cvs"
+>versionskontrollsystem</link
+>, som t.ex. CVS, och tillhandahåll nödvändig information som behövs. </para
+></listitem>
+ <listitem
+><para
+>Ställ in några mallar för <link linkend="new-projects-start-templates"
+>ursprunglig deklarationsfil och källkodsfil</link
+> (om nödvändigt). </para
+></listitem>
+ <listitem
+><para
+>Tala till sist om för programguiden att <link linkend="new-projects-start-build"
+>skapa alla nya saker</link
+>, katalogstruktur, startmallar för deklarationsfiler och källkodsfiler, och hanteringsverktyg som ett startskelett för att bygga programmet, etc. </para
+></listitem>
+</orderedlist>
+<para
+>Voil&agrave;, det är allt. Programguiden har nu gett dig en första fungerade uppsättning programfiler, där du enkelt kan börja arbeta. </para>
+<para
+>Låt oss nu ta en mer detaljerad titt på allt detta... </para>
+
+<sect2 id="new-projects-start">
+<title
+>Inledande steg</title>
+
+<indexterm zone="new-projects-start">
+ <primary
+>dialogruta</primary>
+ <secondary
+>skapa nytt projekt</secondary
+></indexterm>
+<indexterm zone="new-projects-start">
+ <primary
+>projekt</primary>
+ <secondary
+>skapa nytt projekt</secondary>
+ <tertiary
+>dialogruta</tertiary
+></indexterm>
+<indexterm zone="new-projects-start">
+ <primary
+>projekt</primary>
+ <secondary
+>mallar</secondary
+></indexterm>
+<indexterm zone="new-projects-start">
+ <primary
+>mallar</primary>
+ <secondary
+>projekt</secondary
+></indexterm>
+
+<para
+>För att skapa ett nytt projekt i &tdevelop;, välj <guimenuitem
+>Nytt projekt</guimenuitem
+> i menyn <guimenu
+>Projekt</guimenu
+>. Du ska då se guiden för att skapa nytt projekt, som visas nedan: </para>
+
+<screenshot id="screenshot-newprojectwizard">
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="create-new-project.png" format="PNG"/>
+ </imageobject>
+ <caption
+><para
+>Inledande dialogruta för att skapa ett nytt projekt </para
+></caption>
+ </mediaobject>
+</screenshot>
+
+<para
+>Som du kan se, är dialogrutan uppdelad i en övre och undre del. I den övre delen kan du bestämma dig för programspråk och programtyp. Den under delen innehåller en del allmän information. </para>
+
+<sect3 id="new-projects-start-type">
+<title
+>Välj programspråk och programtyp</title>
+
+<indexterm zone="new-projects-start-type">
+ <primary
+>projekt</primary>
+ <secondary
+>programtyp</secondary
+></indexterm>
+<indexterm zone="new-projects-start-type">
+ <primary
+>projekt</primary>
+ <secondary
+>programspråk</secondary
+></indexterm>
+<indexterm zone="new-projects-start-type">
+ <primary
+>projekt</primary>
+ <secondary
+>språk</secondary
+></indexterm>
+<indexterm zone="new-projects-start-type">
+ <primary
+>språk</primary
+></indexterm>
+<indexterm zone="new-projects-start-type">
+ <primary
+>programspråk</primary
+></indexterm>
+<indexterm zone="new-projects-start-type">
+ <primary
+>program</primary>
+ <secondary
+>typ</secondary
+></indexterm>
+
+<para
+>Du gör dina val på vänstersidan längst upp i dialogrutan. När den visas finns en lista med kataloger, var och en med namnet på ett programspråk, som till exempel: </para>
+
+<itemizedlist>
+ <listitem
+><para
+>Ada <indexterm>
+ <primary
+>Ada</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>C <indexterm>
+ <primary
+>C</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>C++ <indexterm>
+ <primary
+>C++</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>Databas (SQL-projekt) <indexterm>
+ <primary
+>SQL</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ <indexterm>
+ <primary
+>Databas</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>Fortran <indexterm>
+ <primary
+>Fortran</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>Haskell <indexterm>
+ <primary
+>Haskell</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>Java <indexterm>
+ <primary
+>Java</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>PHP <indexterm>
+ <primary
+>PHP</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>Pascal <indexterm>
+ <primary
+>Pascal</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>Perl <indexterm>
+ <primary
+>Perl</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>Python <indexterm>
+ <primary
+>Python</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>Ruby <indexterm>
+ <primary
+>Ruby</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+ <listitem
+><para
+>Skal (Skript för skalet Bash) <indexterm>
+ <primary
+>Bash</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ <indexterm>
+ <primary
+>skal</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+ </para
+></listitem>
+</itemizedlist>
+
+<para
+>För att precisera, innehåller katalogerna i själva verket inte riktiga programmeringsverktyg. De leder till fördefinierade <emphasis
+>mallar</emphasis
+> som du kan använda som utgångspunkt för utveckling i ett språk. För att få en idé om vad som erbjuds, öppna bara en katalog i taget. Det finns en följd underkataloger i vissa, men bara en eller flera enkla beteckningar i andra. Underkatalogerna du ser organiserar de tillgängliga mallarna enligt vissa uppgifter, de enkla beteckningarna namnger mallar som du kan välja. </para>
+<para
+>Här kan vi inte i detalj gå in på vilka uppgifter varje mall tillhandahåller, men det är enkelt att ta reda på. Så fort du markerar en mallbeteckning, visas viss information i fälten till höger. I det nedre fältet ser du en <emphasis
+>kort beskrivning</emphasis
+> om vad mallen är avsedd att göra. I fältet ovanför visas en bild, om tillgänglig, med hur programmet som mallen producerar ser ut om du kompilerar och kör det utan ändring. Oftast är det en <emphasis
+>skärmbild</emphasis
+> av huvudfönstret som programmet visar. </para>
+<para
+>Välj mallen som bäst passar målen för ditt program som startpunkt. Skriv därefter in information om allmänna egenskaper i de nedre fälten, som visas i nästa kapitel. </para>
+
+<formalpara>
+<title
+>Välja ett projekthanteringssystem</title>
+<para
+>Varje mall är kopplad till ett särskilt <link linkend="makesystems"
+>projekthanteringssystem</link
+>. För närvarande finns det inget direkt sätt att helt fritt välja ett sådant projekthanteringssystem. Du måste hitta en mall som passar dina behov, eller ändra projektet på motsvarande sätt efter det har skapats. </para>
+</formalpara>
+
+</sect3
+> <!-- new-projects-start-type -->
+
+<sect3 id="new-projects-start-general">
+<title
+>Ange allmän information</title>
+
+<indexterm zone="new-projects-start-general">
+ <primary
+>projekt</primary>
+ <secondary
+>egenskaper</secondary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>egenskaper</primary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>program</primary>
+ <secondary
+>namn</secondary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>namn</primary>
+ <secondary
+>program</secondary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>projekt</primary>
+ <secondary
+>katalog</secondary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>katalog</primary>
+ <secondary
+>projekt</secondary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>sökväg</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>projekt</primary>
+ <secondary
+>upphovsman</secondary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>projekt</primary>
+ <secondary
+>e-post</secondary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>upphovsman</primary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>e-post</primary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>projekt</primary>
+ <secondary
+>main.cpp</secondary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>main.cpp</primary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>projekt</primary>
+ <secondary
+>licens</secondary
+></indexterm>
+<indexterm zone="new-projects-start-general">
+ <primary
+>iicens</primary
+></indexterm>
+
+<para
+>Den undre delen av sidan <guilabel
+>Allmänt</guilabel
+> i dialogrutan <guilabel
+>Skapa nytt projekt</guilabel
+> är ett inramat fält som heter <guilabel
+>Egenskaper</guilabel
+>. Du måste tillhandahålla en del allmän information om projektet här, så att programguiden vet hur den ursprungliga strukturen ska byggas. </para>
+<formalpara>
+<title
+>Programnamn</title>
+<para
+>Ditt program behöver förstås ett namn. Skriv in det i det övre fältet under <guilabel
+>Egenskaper</guilabel
+>, som heter <guilabel
+>Programnamn</guilabel
+>. Vi använder <guilabel
+>Mitt_program</guilabel
+> som exempel. </para>
+</formalpara>
+<para
+>När du gör det, märker du att programguiden vägrar att acceptera specialtecken av något slag. De enda tecken som accepteras är: <itemizedlist>
+ <listitem
+><para
+>små och stora bokstäver</para
+></listitem>
+ <listitem
+><para
+>siffror</para
+></listitem>
+ <listitem
+><para
+>tecknet understreck</para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>En framträdande orsak till begränsningen är att programguiden kommer att använda programnamnet som <emphasis
+>bas för vissa klassnamn</emphasis
+> som den skapar när den bygger upp projektet från början. Alltså måste projektets namn följa reglerna för programspråket som används. </para>
+<formalpara>
+<title
+>Projektkatalogen</title>
+<para
+>Den andra utmärkande orsaken för begränsningen ser du på nedersta raden i området <guilabel
+>Egenskaper</guilabel
+>. Den heter <guilabel
+>Slutgiltig plats</guilabel
+>, och visar katalogen där programguiden skapar programmet. </para>
+</formalpara>
+<para
+>När du skriver in programmets namn märker du att programguiden repeterar det du skriver in längst ner på raden <guilabel
+>Slutgiltig plats</guilabel
+>, men bara med små bokstäver. </para>
+<para
+>Alltså måste du välja namn på det nya programmet med försiktighet. Om du slutar med en katalog som redan används, låter inte programguiden dig fortsätta till nästa steg, genom att behålla knappen <guibutton
+>Nästa &gt;</guibutton
+> inaktiv (grå). Den <emphasis
+>varnar</emphasis
+> dig också genom att lägga till <quote
+>(fil eller katalog finns redan)</quote
+> sist på raden <guilabel
+>Slutgiltig plats</guilabel
+>. </para>
+
+<formalpara>
+<title
+>Startsökväg</title>
+<para
+>Det finns två sätt att välja en annan sökväg till det nya programmet. En är att använda ett annat namn. Det är dock inte alltid möjligt (t.ex. skapar du kanske en ny version av ett befintligt program). Som ett alternativ kan du välja en annan sökväg till programkatalogen. </para>
+</formalpara>
+<para
+>Det görs i den andra radens inmatningsfält under <guilabel
+>Egenskaper</guilabel
+>, som heter <guilabel
+>Plats</guilabel
+>. Det du skriver in här är <emphasis
+>överliggande sökväg</emphasis
+> för det nya programmets utvecklingskatalog. Programguiden lägger till programnamnet sist i sökvägen när det nya projektet skapas. Resultatet visas på raden <guilabel
+>Slutgiltig plats</guilabel
+> för att bättre visa vad som händer. </para>
+<para
+>Programguiden kopierar ett <emphasis
+>startvärde</emphasis
+> till fältet <guilabel
+>Plats</guilabel
+> från början. Det hämtas från det du har valt under fältet <guilabel
+>Standardprojektkatalog</guilabel
+> under den <link linkend="setup-general"
+>allmänna inställningen</link
+>. I vårt fall har vi ställt in &tdevelop; att använda <filename class="directory"
+>/home/utveckling/projekt/</filename
+> som ursprunglig sökväg för nya projekt. </para>
+<para
+>Ändra innehållet i fältet <guilabel
+>Plats</guilabel
+>, så att utvecklingskatalogen för programmet som visas på raden <guilabel
+>Slutgiltig plats</guilabel
+> är unik. </para>
+<!--TODO add tab description Project Options -->
+<note
+><para
+>Försäkra dig om att sökvägen du skriver in i fältet <guilabel
+>Plats</guilabel
+> redan finns. Annars kommer du inte att kunna fortsätta till nästa steg. Programguiden <emphasis
+>varnar</emphasis
+> dig om sökvägar som inte finns, genom att lägga till <quote
+>(ogiltig)</quote
+> sist på raden <guilabel
+>Slutgiltig plats</guilabel
+>. </para
+></note>
+
+<screenshot id="screenshot-createnewprojectoptions">
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="createnewprojectoptions.png" format="PNG"/>
+ </imageobject>
+ <caption
+><para
+>Ställa in ett nytt projekt för CVS </para
+></caption>
+ </mediaobject>
+</screenshot>
+
+<formalpara>
+<title
+>Personlig information</title>
+<para
+>Fälten som följer är inte så kritiska. Ange bara ditt namn (dvs. namnet på personen som är ansvarig för programmet) i fältet <guilabel
+>Upphovsman</guilabel
+>, och en giltig e-postadress i fältet <guilabel
+>E-post</guilabel
+>, så att användare kan ge dig återmatning om programmet. </para>
+</formalpara>
+
+<note>
+<orderedlist>
+ <listitem
+><para
+>Programguiden fyller i fälten med vissa förvalda värden, som tas från e-postinställningarna i KDE:s inställningscentral. Om de förvalda värdena i fälten <guilabel
+>Upphovsman</guilabel
+> och <guilabel
+>E-post</guilabel
+> under <guilabel
+>Skapa nytt projekt</guilabel
+> inte passar, bör du kontrollera e-postinställningarna i KDE:s inställningscentral. </para
+></listitem>
+ <listitem
+><para
+>Programguiden sammanställer informationen till startprogrammallar om de finns. För &kde; C++ program, hittar du den till exempel i början av källkodsfilen <filename
+>main.cpp</filename
+>. </para
+></listitem>
+ <listitem
+><para
+>Fältet <guilabel
+>E-post</guilabel
+> är det <emphasis
+>valfria</emphasis
+> bland fälten, vilket beror på att alla utvecklare kanske inte har tillgång till Internet. Du kan lämna fältet tomt om du vill, och ändå fortsätta. </para
+></listitem>
+</orderedlist>
+</note>
+
+<formalpara>
+<title
+>Versions- och licensinformation</title>
+<para
+>Skriv till sist in startversion för det nya programmet i fältet <guilabel
+>Version</guilabel
+>, och välj licensen du vill ska gälla för ditt program i kombinationsrutan <guilabel
+>Licens</guilabel
+>. </para>
+</formalpara>
+
+<para
+>Om du väljer en programtyp där programguiden tillhandahåller gemensamma källkodstextmallar (t.ex. C/C++), bör du titta på licensinformationstexten på tredje sidan i dialogrutan <guilabel
+>Skapa nytt projekt</guilabel
+> (se kapitlet <link linkend="new-projects-start-templates"
+>Ange mallar för deklarationer och källkod</link
+> nedan). </para>
+<para
+>Om du valde <quote
+>Egen</quote
+> i kombinationsrutan <guilabel
+>Licens</guilabel
+> måste du själv tillhandahålla en licenstext. </para>
+
+<note
+><para
+>Både version och licensinformation kommer också att infogas i startmallarna på ett lämpligt format som tillhandahålls av programtypen du väljer. </para
+></note>
+
+<para
+>När du har skrivit in all den här informationen på ett riktigt sätt, tryck på knappen <guibutton
+>Nästa &gt;</guibutton
+> för att fortsätta, som visas i följande kapitel. </para>
+</sect3
+> <!-- new-projects-start-general -->
+
+</sect2
+> <!-- new-projects-start -->
+
+<sect2 id="new-projects-start-cvs">
+<title
+>Ange information om versionssystem</title>
+
+<indexterm zone="new-projects-start-cvs">
+ <primary
+>CVS</primary>
+ <secondary
+>nytt projekt</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs">
+ <primary
+>projekt</primary>
+ <secondary
+>CVS</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs">
+ <primary
+>databas</primary>
+ <secondary
+>CVS</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs">
+ <primary
+>version</primary>
+ <secondary
+>databas</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs">
+ <primary
+>version</primary>
+ <secondary
+>CVS</secondary
+></indexterm>
+
+<para
+>I det andra steget, leder programguiden dig till sidan <guilabel
+>Versionskontrollsystem</guilabel
+>, där du kan bestämma vilket versionskontrollsystem du vill använda. </para>
+
+<note
+><para
+>Den här beskrivningen koncentreras endast på behoven för att skapa projekt. För mer information om &CVS;, se kapitlet <link linkend="cvs"
+>Använda &CVS;</link
+> nedan. </para
+></note>
+
+<formalpara>
+<title
+>Inget versionskontrollsystem önskas</title>
+<para
+>Från början är <quote
+>Inget</quote
+> valt i kombinationsrutan <guilabel
+>Versionskontrollsystem</guilabel
+>, och sidan är för övrigt tom. Om du inte vill använda ett versionskontrollsystem, klicka bara på knappen <guibutton
+>Nästa &gt;</guibutton
+> för att fortsätta. </para>
+</formalpara>
+
+<formalpara>
+<title
+>Använda &CVS;</title>
+<para
+>Annars måste du välja versionskontrollsystemet som du vill använda i kombinationsrutan <guilabel
+>Versionskontrollsystem</guilabel
+>. Vi använder <quote
+>&cvs;</quote
+> i vårt exempel. Om du väljer det, visar programguiden sidan igen, men nu innehåller den ett antal fält som du måste fylla i. </para>
+</formalpara>
+
+<screenshot id="screenshot-newproject-cvs">
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="create-new-project-cvs.png" format="PNG"/>
+ </imageobject>
+ <caption
+><para
+>Ställa in ett nytt projekt för CVS </para
+></caption>
+ </mediaobject>
+</screenshot>
+
+<para
+>Ett versionskontrollsystem som &CVS; (vilket betyder <quote
+>Concurrent Versions System</quote
+>) lagrar kopior av valda projektfiler i någon sorts databas. Om du använder &CVS;, kan du bland annat ladda upp (<quote
+>arkivera</quote
+>) filerna eller ladda ner dem till din projektkatalog (<quote
+>checka ut</quote
+>, eller <quote
+>uppdatera</quote
+>). Det särskilda med detta är att filerna i versionsdatabasen lagras på ett strukturerat sätt, vilket gör att du alltid kan återgå till ett tidigare utvecklingssteg om du behöver. &CVS; tillåter också flera utvecklare att ganska enkelt samarbeta i ett stort projekt (som &tdevelop;), utan att störa varandras arbete. </para>
+
+<indexterm zone="new-projects-start-cvs-root">
+ <primary
+>CVS</primary>
+ <secondary
+>rot</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-root">
+ <primary
+>rot</primary>
+ <secondary
+>CVS</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-root">
+ <primary
+>CVS</primary>
+ <secondary
+>lokal</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-root">
+ <primary
+>CVS</primary>
+ <secondary
+>fjärr</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-root">
+ <primary
+>lokal CVS</primary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-root">
+ <primary
+>:local:</primary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-root">
+ <primary
+>CVS</primary>
+ <secondary
+>:local:</secondary
+></indexterm>
+
+<formalpara id="new-projects-start-cvs-root">
+<title
+>&CVS;-rot</title>
+<para
+>&CVS; måste <emphasis
+>hantera</emphasis
+> versionsdatabasen som det har med dina projektfiler. För att åstadkomma det har det en del speciell databasinformation i en egen katalog, som kallas <emphasis
+>&CVS;-roten</emphasis
+>. Det första steget för att ställa in &CVS; för det nya projektet, är alltså att tala om för &tdevelop; var roten finns. </para>
+</formalpara>
+
+<para
+><emphasis
+>Lokal &CVS;-rot.</emphasis
+> Det finns två grundläggande möjligheter. Antingen vill du använda en <emphasis
+>lokal</emphasis
+> &CVS;-databas, eller använder du en databas som finns på en <emphasis
+>fjärrserver</emphasis
+>. Om du utvecklar på egen hand, kan du vilja använda &CVS;-databasen som ett sorts säkerhetskopieringssystem på din egen dator. Oftast skapas den i din hemkatalog och ges namnet <filename
+>cvsroot</filename
+>. Det kan se ut på följande sätt: </para>
+<para
+><userinput
+><filename class="directory"
+>/home/utveckling/cvsroot</filename
+></userinput
+> (där <filename
+>devel</filename
+> helt enkelt anger användaren <quote
+>utveckling</quote
+>, bara som ett exempel) </para>
+
+<note
+><para
+>I själva verket är det här en förkortad form. Mer fullständigt ska den lokala &CVS;-roten adresseras med prefixet <computeroutput
+>:local:</computeroutput
+>. Den förkortade formen tillåts bara i fallen då filnamnet börjar med ett snedstreck (<computeroutput
+>/</computeroutput
+>). Det fullständiga namnet på vår lokala &CVS;-rot i exemplet skulle exakt se ut som: <filename class="directory"
+>:local:/home/utveckling/cvsroot</filename
+>. </para
+></note>
+
+<para
+>Skriv in namnet på &CVS;-rotkatalogen som systemet har ställts in för i fältet <guilabel
+>CVS-rot</guilabel
+>. I princip kan du välja vilket namn som helst, och till och med använda flera &CVS;-databaser, men det är lämpligt att behålla &CVS;-roten när den väl har ställts in. </para>
+<para
+><emphasis
+>Initiera en ny &CVS;-rot</emphasis
+>. Om det inte finns en &CVS;-root, ännu kan &tdevelop; ställa in &CVS;-systemet att skapa ett åt dig i den givna katalogen. Markera bara kryssrutan <guilabel
+>Initiera rot</guilabel
+> under fältet <guilabel
+>CVS-rot</guilabel
+>. </para>
+<note
+><para
+>Som sagt, <emphasis
+>beordrar</emphasis
+> bara &tdevelop; &CVS;-systemet att initiera en ny &CVS;-rot. Det gör ingenting själv med katalogen. Som tur är, är &CVS; smart nog att kontrollera om &CVS;-rotkatalogen redan finns. Därför gör det ingen skada om du skulle ha markerat <guilabel
+>Initiera rot</guilabel
+> för en befintlig &CVS;-rotkatalog. </para
+></note>
+
+<para
+><emphasis
+>Fjärr &CVS;-rot.</emphasis
+> Det finns tillfällen då &CVS;-databasen ska finnas på en fjärrserver, särskilt när flera utvecklare arbetar med samma projekt. Då måste du skriva in &CVS;-rotens webbadress till servern i fältet <guilabel
+>CVS-rot</guilabel
+>. Om du till exempel vill komma åt &kde;:s &CVS;-server: </para>
+<para
+><userinput
+><filename class="directory"
+>:pserver:<replaceable
+>min_inloggning</replaceable
+>@cvs.kde.org:/home/kde</filename
+></userinput
+> (där <replaceable
+>min_inloggning</replaceable
+> anger inloggningsnamnet som är inställt i ditt &kde; &CVS;-konto) </para>
+
+<indexterm zone="new-projects-start-cvs-remote">
+ <primary
+>Fjärr-CVS</primary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-remote">
+ <primary
+>:pserver:</primary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-remote">
+ <primary
+>:ext:</primary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-remote">
+ <primary
+>CVS</primary>
+ <secondary
+>:local:</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-remote">
+ <primary
+>CVS</primary>
+ <secondary
+>:pserver:</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-remote">
+ <primary
+>CVS</primary>
+ <secondary
+>:ext:</secondary
+></indexterm>
+
+<formalpara id="new-projects-start-cvs-remote">
+<title
+>Servertyper för fjärr-&CVS;</title>
+<para
+>Det finns i huvudsak två fjärrservertyper för &CVS; med bred användning: <emphasis
+>pserver</emphasis
+> som använder ett lösenordssäkrat okrypterat protokoll, och <emphasis
+>ext</emphasis
+>-servern som använder krypterad dataöverföring via rsh eller ssh. De skiljs åt av webbadressprefixet de använder: </para>
+</formalpara>
+<para>
+<filename
+>:pserver:</filename>
+</para>
+<para
+>för den okrypterade typen <quote
+>lösenordsskyddad server</quote
+>, och </para>
+<para>
+<filename
+>:ext:</filename>
+</para>
+<para
+>för en servertyp krypterad med rsh eller ssh. Till exempel </para>
+<para>
+<userinput
+><filename class="directory"
+>:ext:<replaceable
+>min_inloggning</replaceable
+>@cvs.cervisia.sourceforge.net:/cvsroot/cervisia</filename
+></userinput>
+</para>
+<para
+>kommer åt &CVS;-roten för det brett använda &CVS;-hanteringsverktyget <application
+>Cervisia</application
+> på servern SourceForge. </para>
+<para
+>Om du vill använda en krypterad server via rsh eller ssh för att komma åt &CVS;, måste du tala om för &tdevelop; vilket krypteringsprotokoll som ska användas. Skriv bara in <userinput
+>rsh</userinput
+> eller <userinput
+>ssh</userinput
+> i fältet <guilabel
+>CVS_RSH</guilabel
+> på sidan <guilabel
+>Versionskontrollsystem</guilabel
+> i <guilabel
+>Skapa nytt projekt</guilabel
+>. </para>
+
+<note
+><para
+>Det finns ett problem om du använder en krypterad server för &CVS; inne i &tdevelop;. Se kapitlet <link linkend="cvs"
+>Använda &CVS;</link
+> för detaljinformation. </para
+></note>
+
+<indexterm zone="new-projects-start-cvs-repository">
+ <primary
+>CVS</primary>
+ <secondary
+>arkiv</secondary
+></indexterm>
+<indexterm zone="new-projects-start-cvs-repository">
+ <primary
+>arkiv</primary>
+ <secondary
+>CVS</secondary
+></indexterm>
+
+<formalpara id="new-projects-start-cvs-repository">
+<title
+>&CVS;-arkivet</title>
+<para
+>Hittills har du talat om för &tdevelop; var &CVS;-roten finns, som hanterar versionsdatabasen och hur den ska kommas åt. Nu måste du tala om för &tdevelop; vilket namn du vill att &CVS; ska använda för att spara dina projektfiler i databasen. Ett sådan ställe där projektfilerna lagras i &CVS;, kallas ett <emphasis
+>arkiv</emphasis
+>. </para>
+</formalpara>
+<para
+>I princip kan du använda vilket namn som helst för projektfilernas &CVS;-arkiv, så länge det uppfyller specifikationerna för att namnge en fil. Oftast använder ändå de flesta utvecklare själva programmets namn. &CVS; bygger en katalog med namnet under &CVS;-roten, därför hittas det enklare om du behåller programnamnet för det. </para>
+<para
+>Skriv bara in arkivnamnet som du vill använda i fältet <guilabel
+>CVS-arkiv</guilabel
+> på sidan <guilabel
+>Versionskontrollsystem</guilabel
+> under <guilabel
+>Skapa nytt projekt</guilabel
+>. I vårt exempel är det <userinput
+>Mitt_program</userinput
+>. </para>
+
+<warning
+><para
+><emphasis
+>Försäkra dig om att inte använda ett arkiv som redan finns!</emphasis
+>. &CVS;-systemet varnar inte för duplicerade filer, utan skyfflar in allting som inte producerar en formell konflikt. Du ställer till allting! </para
+></warning>
+
+<formalpara>
+<title
+>Återstående fält</title>
+<para
+>Det återstår inte mycket arbete. Programguiden har redan ställt in återstående fält åt dig. Mer detaljerat: </para>
+</formalpara>
+<para
+>Fältet <guilabel
+>Leverantörstagg</guilabel
+> används endast av kompatibilitetsskäl. Du kan behålla standardvärdet <quote
+>leverantör</quote
+> som programguiden skrivit in här. </para>
+<para
+>Fältet <guilabel
+>Meddelande</guilabel
+> gör det möjligt att skriva in en kommentar om innehållet i &CVS; från början. Använd vilken text du vill, eller behåll bara standardvärdet <guilabel
+>nytt projekt</guilabel
+> som programguiden skrivit in. </para>
+<para
+><guilabel
+>Utgåvetagg</guilabel
+> innehåller namnet som används som tagg för det ursprungliga tillståndet för projektet. En sådan <emphasis
+>tagg</emphasis
+> namnger ett visst tillstånd i &CVS;-arkivet, som du senare kan använda för att komma åt det tillståndet för utvecklingen. (Se vidare i kapitlet <link linkend="cvs"
+>Använda &CVS;</link
+>.) </para>
+<para
+>Programguiden har skrivit in standardtaggen <quote
+>start</quote
+> här, som är ett värdigt förslag. Behåll det bara. </para>
+
+<note>
+<para
+>Om någon information om versionskontroll är fel, märker &tdevelop; det oftast inte förrän projektet skapas. Det är &CVS;-systemet som hittar felen när det försöker skapa arkivet. Därför måste du hålla ett öga på fönstret <guilabel
+>Meddelanden</guilabel
+> i &tdevelop; när projektet skapas under det sista inställningssteget. Om det var något fel med &CVS;, ser du oftast ett felmeddelande som det här: </para>
+
+<screen
+><computeroutput>
+* cd '/home/utveckling/test' &amp;&amp; cvs -d '/home/utveckling/min_cvsrot' \
+ import -m 'nytt projekt' '' 'leverantör' 'start' &amp;&amp;\
+ sh /opt/kde3/share/apps/kdevcvs/buildcvs.sh . '' \
+ '/home/utveckling/min_cvsrot'
+* cvs [import aborted]: /home/utveckling/min_cvsrot/CVSROOT: No such file or
+ directory
+* *** Exited with status: 1 ***
+</computeroutput
+></screen>
+
+<para
+>Om det här händer, måste du antingen ställa in &CVS; för hand (&tdevelop; ska ha lyckats initiera dina projektfiler vid detta tillfälle) eller ta bort projektkatalogen och börja om igen med <guimenuitem
+>Nytt projekt</guimenuitem
+> i menyn <guimenu
+>Projekt</guimenu
+>. </para>
+</note>
+
+<para
+>Efter du har skrivit in all informationrelaterad till &CVS;, klicka på knappen <guibutton
+>Nästa &gt;</guibutton
+> för att fortsätta. </para>
+
+<note
+><para
+>Om du vill rätta ett fel på föregående sida i <guilabel
+>Skapa nytt projekt</guilabel
+>, tryck bara på knappen <guibutton
+>&lt; Tillbaka</guibutton
+>. Programguiden kommer ihåg dina inställningar på nuvarande sida, så du kan enkelt fortsätta när du kommer tillbaka. </para
+></note>
+
+</sect2
+> <!-- new-projects-start-cvs -->
+
+<sect2 id="new-projects-start-templates">
+<title
+>Ange mallar för deklarationer och källkod</title>
+
+<para
+>Nästa steg tar dig till en serie sidor, där du kan ställa in vanlig information som du vill inkludera i dina källkods- och deklarationsfiler, om uppgiften i fråga tillåter. </para>
+<para
+>Både deklarationsmallar och källkodsmallar tillhandahålls för C och C++ program, var och en på sin egen sida. För andra språk kanske det bara finns källkodsmallar. I vissa fall ser du till och med att mallsidan är tom. </para>
+<para
+>Om sidan används, fyller programguiden i några vanliga kommentarer i sidhuvudet, som kan se ut så här för ett C++ baserat program: </para>
+
+<screen
+><computeroutput
+><literal>
+/***************************************************************************
+ * Copyright (C) 2003 by Ditt namn *
+ * du@du.se *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program 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 General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+</literal
+></computeroutput
+></screen>
+
+<para
+>Andra mallar tillhandahåller liknande information på ett format enligt definitionen av programspråket du vill använda. </para>
+<para
+>Som du kanske märkt, har programhanteringen redan fyllt i viss information som du angav på den fösta sidan <guilabel
+>Allmänt</guilabel
+> i dialogrutan <guilabel
+>Skapa nytt projekt</guilabel
+>, närmare bestämt innehållet i fälten <guilabel
+>Upphovsman</guilabel
+> och <guilabel
+>E-post</guilabel
+>. Riktig licensinformation har också infogats, enligt ditt val i kombinationsrutan <guilabel
+>Licens</guilabel
+>. </para>
+
+<sect3 id="new-projects-start-templates-edit">
+<title
+>Hur mallarna kan redigeras</title>
+
+<indexterm zone="new-projects-start-templates-edit">
+ <primary
+>mallar</primary>
+ <secondary
+>projekt</secondary>
+ <tertiary
+>redigera</tertiary
+></indexterm>
+<indexterm zone="new-projects-start-templates-edit">
+ <primary
+>projekt</primary>
+ <secondary
+>mallar</secondary>
+ <tertiary
+>redigera</tertiary
+></indexterm>
+
+<para
+>Mallarna som du ställer in i dialogrutan <guilabel
+>Skapa nytt projekt</guilabel
+> behandlas varje gång du talar om för &tdevelop; att skapa en ny källkodsfil och/eller deklarationsfil. Informationen som du anger här, inkluderas längst upp i ett dokumentationshuvud, innan koden börjar. </para>
+<para
+>Du är dock inte begränsad till ren text. &tdevelop; känner till flera variabler, som låter dig inkludera riktig information i filen. Programguiden använda i själva verket just några sådana variabler för att inkludera information om <guilabel
+>Upphovsman</guilabel
+>, <guilabel
+>E-post</guilabel
+> och <guilabel
+>Licens</guilabel
+> i den ursprungliga malltexten. </para>
+
+<variablelist>
+<varlistentry>
+<term
+>Infoga filinformation från &doxygen;</term>
+<listitem>
+<para
+>Om du till exempel vill att dokumentationen av programvarugränssnittet som &doxygen; skapar, ska visa ytterligare information om filens innehåll i listan med filnamn, kan du lägga till följande rader i källkodsfilens mall: </para>
+<screen
+><computeroutput>
+/**
+ * \file $MODULE$.cpp
+ * \brief (skriv en kort beskrivning här).
+ **/
+</computeroutput
+></screen>
+<para
+>Så fort du skapar en ny källkodsfil, ersätter &tdevelop; variabeln <computeroutput
+>$MODULE$</computeroutput
+> med namnet på den nyskapade filen. Om du till exempel skapar en ny C++ klass som heter <classname
+>EnEnkelTest</classname
+>, ser du följande rader i filen <filename
+>enenkeltest.cpp</filename
+>: </para>
+<screen
+><computeroutput>
+/**
+ * \file enenkeltest.cpp
+ * \brief (skriv en kort beskrivning här).
+ **/
+</computeroutput
+></screen>
+<para
+>Du måste fortfarande tillhandahålla den korta beskrivningen efter nyckelordet <quote
+>\brief</quote
+>, men en del av jobbet har redan gjorts automatiskt åt dig. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Textfilen med licensen</term>
+<listitem>
+<para
+>Som ett annat exempel skulle du kunna inkludera en explicit referens till licenstexten som du vill använda i mallen. Använd variabeln <varname
+>$LICENSEFILE$</varname
+> för detta, och lägg till exempel till följande rad: </para>
+
+<screen
+><computeroutput>
+// Se $LICENSEFILE$ för den fullständiga licenstexten.
+</computeroutput
+></screen>
+<para
+>Programguiden ersätter <varname
+>$LICENSEFILE$</varname
+> med namnet på filen där den fullständiga licenstexten finns, nämligen: </para>
+<screen
+><computeroutput>
+// Se COPYING för den fullständiga licenstexten.
+</computeroutput
+></screen>
+<para
+>för <acronym
+>GPL</acronym
+>-licensen, eller </para>
+<screen
+><computeroutput>
+// Se LICENSE.BSD för den fullständiga licenstexten.
+</computeroutput
+></screen>
+<para
+>om du bestämmer dig för att använda <acronym
+>BSD</acronym
+>-licens för programmet. </para>
+<para
+>Det finns förstås fler variabler som &tdevelop; känner till. Se avsnittet <link linkend="newfiles-edittemplates"
+>Redigera mallarna</link
+> i kapitlet <link linkend="editing"
+>Redigeringsverktyg</link
+> för att hitta vad som är möjligt. </para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+<note
+><para
+>Mallarna som du definierar här får ingen effekt förrän programguiden skapar det nya projektet. Du hittar informationen längst upp i filerna som du själv skapar under utvecklingsprocessen. När de ursprungliga filerna skapas, använder programguiden några fördefinierade standardmallar. Du måste anpassa de ursprungliga filerna till dina behov för hand. </para
+></note>
+
+</sect3
+> <!-- new-projects-start-templates-edit -->
+</sect2
+> <!-- new-projects-start-templates -->
+
+<sect2 id="new-projects-start-build">
+<title
+>Bygg de ursprungliga projektfilerna</title>
+
+<indexterm zone="new-projects-start-build">
+ <primary
+>projekt</primary>
+ <secondary
+>nytt</secondary>
+ <tertiary
+>bygg</tertiary
+></indexterm>
+<indexterm zone="new-projects-start-build">
+ <primary
+>projekt</primary>
+ <secondary
+>ursprunglig byggning</secondary
+></indexterm>
+
+<para
+>Nu är nästan allt klart. På den sista sidan i mallen, har knappen <guibutton
+>Nästa &gt;</guibutton
+> ändrats så att den nu lyder <guibutton
+>Slutför</guibutton
+>. </para>
+<para
+><emphasis
+>Tänk efter innan du klickar på den!</emphasis
+> Du har fortfarande möjlighet att granska allting genom att använda knappen <guibutton
+>&lt; Tillbaka</guibutton
+> upprepade gånger. Eftersom programguiden kommer ihåg all information du hittills matat in, kan det vara lämpligt att ta dig tid att titta tillbaka en gång till. Om du använder lokal &CVS;, glöm inte att kontrollera namnet på <emphasis
+>&CVS;-arkivet</emphasis
+> igen (det ska inte redan finnas någon underkatalog med det namnet i &CVS;-rotkatalogen. Om det gör det, försök med ett annat arkivnamn). </para>
+<para
+>Om du någon gång inte vill att det nya projektet ska byggas, avbryt dialogrutan <guilabel
+>Skapa nytt projekt</guilabel
+> med knappen <guibutton
+>Avbryt</guibutton
+>. Klicka annars på <guibutton
+>Slutför</guibutton
+>, och se i fönstret <guilabel
+>Meddelanden</guilabel
+> hur programguiden skapar projektet. </para>
+<para
+>Om du vill använda ett versionshanteringssystem (&CVS;), sker det i själva verket två genomgångar. Programguiden bygger först projektkatalogerna och anropar sedan &CVS;-programmet som återstartar fönstret <guilabel
+>Meddelanden</guilabel
+> med sitt eget innehåll. Om något fel uppstår i någon av genomgångarna, stannar processen och visar dig motsvarande felmeddelande i fönstret. </para>
+
+<note
+><para
+>I många fall, när det nya projektet har skapats på det här sättet, laddar &tdevelop; automatiskt källkodsfilen eller filerna för en eller fler av de grundläggande viktiga modulerna, så att du kan enkelt börja arbeta. (Vilka källkodsmoduler som visas, om några alls, beror dock på mallen som från början valdes i programguiden.) </para
+></note>
+
+<para
+>Glöm inte att kontrollera vad programguiden tillhandahåller från början. Du kanske till exempel vill ändra ursprunglig information i filhuvuden enligt dina egna mallar. Oftast hittar du dem i underkatalogen <filename class="directory"
+>templates</filename
+> i projektkatalogen. Några enkla kopieringsåtgärder räcker oftast. </para>
+<para
+>Därefter är det lämpligt att du <emphasis
+>kompilerar det ursprungliga projektet</emphasis
+> innan du försöker ändra någon kod. I de flesta fall ska den här första kompileringen vara möjlig. På så sätt kan du avgöra om projektet verkligen skapades enligt dina behov. Om det inte gjorde det, ta helt enkelt bort projektkatalogen (i den lokala &CVS;-roten också, om du använder en) och börja om. </para>
+
+<warning id="defaultbuild-warning"
+> <!-- ### remove this when "default" works again -->
+
+ <indexterm zone="defaultbuild-warning">
+ <primary
+>förvald bygginställning</primary>
+ <secondary
+>varning</secondary
+></indexterm>
+ <indexterm zone="defaultbuild-warning">
+ <primary
+>bygginställningar</primary>
+ <secondary
+>varning om förvald bygginställning</secondary
+></indexterm>
+ <indexterm zone="defaultbuild-warning">
+ <primary
+>varning</primary>
+ <secondary
+>förvald bygginställning</secondary
+></indexterm>
+
+ <para
+>Innan du kompilerar det nya projektet för första gången, ta en titt på <menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Bygginställning</guimenuitem
+></menuchoice
+>. Om det finns tre alternativ som visas: <guimenuitem
+>default</guimenuitem
+>, <guimenuitem
+>optimized</guimenuitem
+> och <guimenuitem
+>debug</guimenuitem
+>, med <guimenuitem
+>debug</guimenuitem
+> markerat, behåll det för all del, eller använd <guimenuitem
+>optimized</guimenuitem
+> istället. </para>
+ <para
+>På grund av vissa begränsningar i den nuvarande inställningen av autoconf och automake, ska du <emphasis
+>under inga omständigheter</emphasis
+> bygga med inställningen <guimenuitem
+>default</guimenuitem
+>. Det förstör vissa interna kataloginställningar, och gör att <command
+>configure</command
+> klagar när du senare försöker använda det med bygginställningarna <guimenuitem
+>optimized</guimenuitem
+> eller <guimenuitem
+>debug</guimenuitem
+>. </para>
+ <para
+>(Det här gäller bara för dessa flervalsmöjligheter. Om programtypen du valde bara tillhandahåller bygginställningen <guimenuitem
+>default</guimenuitem
+>, ska du förstås använda den.) </para>
+</warning>
+
+</sect2
+> <!-- new-projects-start-build -->
+
+</sect1
+> <!-- new-projects -->
+
+<sect1 id="projects-configure">
+<title
+>Konfigurera projekt</title>
+
+<para
+>(Ännu inte skrivet ...)</para>
+
+</sect1>
+
+</chapter
+> <!-- applicationwizard -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-file-popup.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-file-popup.png
new file mode 100644
index 00000000000..e6c505ba281
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-file-popup.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.png
new file mode 100644
index 00000000000..a0ccbd0caf4
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.png
new file mode 100644
index 00000000000..4779dc5636e
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.png
new file mode 100644
index 00000000000..82dd45a417b
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.png
new file mode 100644
index 00000000000..c6dcfafa354
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.png
new file mode 100644
index 00000000000..f00a120745b
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.png
new file mode 100644
index 00000000000..1cc8f1c1dbb
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.png
new file mode 100644
index 00000000000..6a3e0fb0667
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png
new file mode 100644
index 00000000000..2fcb3a1ed78
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/class-browsers.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/class-browsers.docbook
new file mode 100644
index 00000000000..d9521e3e78b
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/class-browsers.docbook
@@ -0,0 +1,89 @@
+<chapter id="class-browsers">
+<title
+>Klassbläddrarna</title>
+<indexterm zone="class-browsers"
+><primary
+>klassbläddrare</primary
+></indexterm>
+
+<para
+>Vid arbete med ett projekt i ett objektorienterat språk, läggs inte tonvikten på källkodsfilerna och deras namn, utan på klasserna och deras samband. För att hjälpa dig navigera bland definierade klasser och symboler, innehåller &tdevelop; diverse klassbläddrare som synliggör klasstrukturen på olika sätt. </para>
+
+<sect1 id="classview">
+<title
+>Klassvy</title>
+
+<para
+>Den här vyn visas till vänster i huvudfönstret och innehåller en linjär lista av alla klasser, variabler och funktioner i projektet. Den är konstruerad som en trädvy. Om du öppnar en klassnod genom att klicka på den, visas en lista med alla metoder och egenskaper som respektive klass har. </para>
+
+<figure id="screenshot-classview" float="1">
+<title
+>En skärmbild av klassbläddraren</title>
+<mediaobject>
+<imageobject
+><imagedata fileref="classview.png"/></imageobject>
+</mediaobject>
+</figure>
+
+<para
+>Klassvyn arbetar i två olika lägen. Normalt grupperas alla symboler i <quote
+>Klasser</quote
+>, <quote
+>Struct:ar</quote
+>, <quote
+>Funktioner</quote
+>, <quote
+>Variabler</quote
+> och <quote
+>Namnrymder</quote
+>. I den sammanhangsberoende menyn, kan du välja <guimenuitem
+>Lista enligt namnrymder</guimenuitem
+>. Med detta läge, visas namnrymdshierarkin, och symboler grupperas i respektive namnrymd där de definieras. Det här kan vara mer användbart i projekt som använder många (hierarkiska) namnrymder. Det är mindre användbart i projekt utan namnrymder. </para>
+
+<para
+>Du kan också ändra sättet som klassnamn visas. Normalt visas klassernas namn, utan namnrymden där de definieras. Det betyder att du inte omedelbart kan skilja på klasser med samma namn i olika namnrymder. Om du håller musen still ett ögonblick över ett namn, visas dock det fullständiga namnet som ett verktygstips. Du kan välja att alltid visa det fullständiga klassnamnet genom att välja <guimenuitem
+>Fullständig räckvidd för identifierare</guimenuitem
+> i den sammanhangsberoende menyn. </para>
+
+<para
+>Genom att klicka på en klass eller metod i en klassvy kommer du till dess definition. Du kan också hoppa till en metods deklaration genom att välja <guimenuitem
+>Gå till deklaration</guimenuitem
+> i den sammanhangsberoende menyn. I den sammanhangsberoende menyn för klasser finns också alternativen <guimenuitem
+>Lägg till metod...</guimenuitem
+> och <guimenuitem
+>Lägg till egenskap...</guimenuitem
+> De öppnar dialogrutor där du kan skapa nya metoder och variabeldeklarationer för den relevanta klassen, tillsammans med en tom implementering. </para>
+
+</sect1
+> <!-- classview -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="classtools">
+<title
+>Klassverktyg</title>
+
+<para
+>Klassverktygsdialogrutan aktiveras genom att högerklicka på en klass i klassvyn och välja <guimenuitem
+>Klassverktyg...</guimenuitem
+>. </para>
+
+</sect1
+> <!-- classtools -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="classhierarchy">
+<title
+>Klasshierarki</title>
+
+<para
+>(...ännu inte skrivet...) </para>
+
+</sect1
+> <!-- classhierarchy -->
+
+</chapter
+> <!-- class-browsers -->
+
+<!-- ====================================================================== -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/classview.png b/tde-i18n-sv/docs/tdevelop/tdevelop/classview.png
new file mode 100644
index 00000000000..fc3c8eed662
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/classview.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/commands.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/commands.docbook
new file mode 100644
index 00000000000..0b7d1315c84
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/commands.docbook
@@ -0,0 +1,2999 @@
+<chapter id="commands">
+
+<!-- TODO
+- CAUTION: Check everything against actual KDevelp behaviour. Do not rely on tool tips etc.
+- Summarize menu entries, like in getting-started.
+- Complete descriptions, e.g. from What's This.
+- Link to more detailed description, e.g. in plugin chapter.
+-->
+
+<chapterinfo>
+ <authorgroup>
+ <author
+><firstname
+>Volker</firstname
+> <surname
+>Paul</surname
+></author>
+ <othercredit role="translator"
+><firstname
+>Stefan</firstname
+> <surname
+>Asserhäll</surname
+><affiliation
+><address
+><email
+>stefan.asserhall@comhem.se</email
+></address
+></affiliation
+><contrib
+>Översättare</contrib
+></othercredit
+>
+ </authorgroup>
+
+ <date
+>2005-04-03</date>
+</chapterinfo>
+
+<title
+>Kommandoreferens</title>
+
+<note
+><para
+>Snabbtangenterna som visas i det här kapitlet är de förvalda. De kan ändras. </para
+></note>
+
+
+
+<sect1 id="menubar">
+<title
+>Menyraden</title
+> <para
+>Observera att vissa menyalternativ bara visas när de passar in. I synnerhet är vissa alternativ kopplade till funktioner i <link linkend="plugin-tools"
+>insticksprogram</link
+> som bara är tillgängliga när insticksprogrammet är aktiverat.</para>
+
+
+
+
+
+
+<!-- ======================= F I L E ============================= -->
+
+<sect2 id="menu-file">
+<title
+>Menyn <guimenu
+>Arkiv</guimenu
+></title>
+
+<variablelist>
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>N</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Ny</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Skapa en ny fil. Användaren blir tillfrågad om att välja katalog (förval är nuvarande projekts källkodskatalog) och skriva in ett filnamn. Filtypen kan väljas i en lista. Dessutom kan användaren välja om filen ska läggas till i projektet. Därefter frågar Hantering av automake vilket mål som den nya filen ska läggas till i. </para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>O</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Öppna</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Öppnar en befintlig fil med en enkel dialogruta.</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>O</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Öppna senaste</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visar en undermeny med filer som senast öppnades. Att välja en av dem gör att KDevelop öppnar filen. </para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Alt;&Ctrl;<keycap
+>O</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Snabböppna</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visar en lista med filer i det nuvarande projektets källkodskatalog. Användaren kan välja från listan eller skriva in ett filnamn. Filen öppnas därefter. </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>S</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Spara</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Sparar nuvarande fil.</para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>S</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Spara som...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Använder dialogrutan <guilabel
+>Spara som...</guilabel
+> för att låta dig spara en kopia med ett annat namn.</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Spara alla</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Sparar alla öppna filer.</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+><keycap
+>F5</keycap
+></shortcut
+> <guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Återställ</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Laddar om nuvarande fil för att visa ändringar gjorda av andra program. (Observera att sådana ändringar normalt detekteras automatiskt och användaren blir tillfrågad om filen ska laddas om.)</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Återställ alla</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Återställer alla ändringar i öppnade filer. Frågar om du vill spara ändringar så att återställningen kan avbrytas för varje ändrad fil. </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>P</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Skriv ut...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Skriv ut.</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Exportera</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Exportera </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>F4</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Stäng</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stänger nuvarande fil. </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Stäng alla</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stänger alla öppna filer. </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Stäng alla andra</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stänger alla filer utom den nuvarande. Mycket användbart om du öppnade många filer och vill koncentrera dig på den nuvarande. Utan det här skulle du behöva stänga alla och därefter öppna den nuvarande igen. </para>
+<para
+>Observera att det finns ett liknande kommando i menyn Fönster. </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>Q</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Arkiv</guimenu
+> <guimenuitem
+>Avsluta</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stäng KDevelop.</para
+></listitem>
+</varlistentry>
+
+</variablelist>
+
+</sect2>
+
+
+
+<!-- ======================= E D I T ============================= -->
+
+
+<sect2 id="menu-edit">
+<title
+>Menyn <guimenu
+>Redigera</guimenu
+></title>
+
+
+<variablelist>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>Z</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Ångra</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Ångra </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;&Shift;<keycap
+>Z</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Gör om</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Gör om </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>X</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Klipp ut</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Klipp ut </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>C</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Kopiera</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Kopiera </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>V</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Klistra in</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Klistra in </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>A</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Markera alla</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Markera alla </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+><keycombo action="simul"
+> &Ctrl;&Shift;<keycap
+>A</keycap
+></keycombo
+></shortcut
+><guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Avmarkera</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Avmarkera </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;&Shift;<keycap
+>B</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Blockmarkeringsläge</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Blockmarkeringsläge </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>Insert</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Överskrivningsläge</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Överskrivningsläge </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>F</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Sök</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Sök </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>F3</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Sök igen</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Sök igen </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Shift;<keycap
+>F3</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Sök föregående</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Sök föregående </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>R</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Ersätt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Ersätt </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>G</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Gå till rad</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Gå till rad </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Alt;&Ctrl;<keycap
+>F</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Sök i filer</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Sök i filer </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Shift;<keycap
+>R</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Sök-välj-ersätt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Sök-välj-ersätt </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Formatera om källkod</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Formatera om källkod </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>J</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Expandera text</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Expandera text </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>L</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Expandera förkortningar</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Expandera förkortningar </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>Mellanslag</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Komplettera text</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Komplettera text </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>F2</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Skapa medlem</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Skapa medlem </para
+></listitem>
+</varlistentry>
+
+
+</variablelist>
+
+</sect2>
+
+
+
+<!-- ======================= V I E W ============================= -->
+
+
+<sect2 id="menu-view">
+
+<title
+>Menyn <guimenu
+>Visa</guimenu
+></title>
+
+<variablelist>
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Visa</guimenu
+> <guimenuitem
+>Tillbaka</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Tillbaka </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Visa</guimenu
+> <guimenuitem
+>Framåt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Framåt </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>/</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Visa</guimenu
+> <guimenuitem
+>Byt till...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Byt till... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Alt;<keycap
+>C</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Visa</guimenu
+> <guimenuitem
+>Höj editor</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Höj editor </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>F4</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Visa</guimenu
+> <guimenuitem
+>Nästa fel</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Nästa fel </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Shift;<keycap
+>F4</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>View</guimenu
+> <guimenuitem
+>Föregående fel</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Föregående fel </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Shift;<keycap
+>F</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Visa</guimenu
+> <guimenuitem
+>Fullskärmsläge</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Fullskärmsläge </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>F12</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Visa</guimenu
+> <guimenuitem
+>Byt till deklaration/implementering</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Byt till deklaration/implementering </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Visa</guimenu
+> <guimenuitem
+>Verktygsvyer</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Verktygsvyer </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Visa</guimenu
+> <guimenuitem
+>Dockning av verktyg</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Dockning av verktyg </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>F7</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Visa</guimenu
+> <guimenuitem
+>Byt till kommandorad</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Byt till kommandorad </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Visa</guimenu
+> <guimenuitem
+>Schema</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Schema </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>F10</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Visa</guimenu
+> <guimenuitem
+>Dynamisk radbrytning</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Dynamisk radbrytning </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Visa</guimenu
+> <guimenuitem
+>Dynamiska radbrytningsmarkörer</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Dynamiska radbrytningsmarkörer </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Visa</guimenu
+> <guimenuitem
+>Visa/Dölj statisk radbrytningsmarkör</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visa/Dölj statisk radbrytningsmarkör </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>F6</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Visa</guimenu
+> <guimenuitem
+>Visa/Dölj ikonkant</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visa/Dölj ikonkant </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>F11</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Visa</guimenu
+> <guimenuitem
+>Visa/Dölj radnummer</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visa/Dölj radnummer </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Visa</guimenu
+> <guimenuitem
+>Visa/Dölj rullningslistmarkeringar</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visa/Dölj rullningslistmarkeringar </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>F9</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Visa</guimenu
+> <guimenuitem
+>Visa/Dölj vikmarkörer</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visa/Dölj vikmarkörer </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Visa</guimenu
+> <guimenuitem
+>Kodvikning</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Kodvikning </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Visa</guimenu
+> <guimenuitem
+>Ange kodning</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Ange kodning </para
+></listitem>
+</varlistentry>
+
+
+
+</variablelist>
+
+</sect2>
+
+
+
+
+<!-- ======================= P R O J E C T ============================= -->
+
+
+<sect2 id="menu-project">
+<title
+>Menyn <guimenu
+>Projekt</guimenu
+></title>
+
+<variablelist>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Nytt projekt...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Nytt projekt... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Öppna projekt...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Öppna projekt... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Öppna senaste projekt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Öppna senaste projekt </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Aktivt språk</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Aktivt språk </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Importera befintligt projekt...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Importera befintligt projekt... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Ny klass...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Ny klass... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Arvdiagram för klasser</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Arvdiagram för klasser </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Lägg till översättning...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Lägg till översättning... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Bygginställning</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Bygginställning </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Distribution och publicering</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Distribution och publicering </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Projektinställningar...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Projektinställningar... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Stäng projekt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stäng projekt </para
+></listitem>
+</varlistentry>
+
+
+
+
+</variablelist>
+
+</sect2>
+
+
+<!-- ======================= B U I L D ============================= -->
+
+
+<sect2 id="menu-build">
+<title
+>Menyn <guimenu
+>Projekt</guimenu
+></title>
+
+<variablelist>
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>F8</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Bygg projekt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Bygg projekt </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>F7</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Bygg aktivt mål</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Bygg aktivt mål </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Kompilera fil</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Kompilera fil </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Kör configure</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Kör configure </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Kör automake och besläktade program</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Kör automake och besläktade program </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Installera</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Installera </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Installera (som systemadministratör)</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Installera (som systemadministratör) </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Rensa projekt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Rensa projekt </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Dist-rensning</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Dist-rensning </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Shift;<keycap
+>F9</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Bygg meddelanden och samsortera</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Bygg meddelanden och samsortera </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Kör program</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Kör program </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Bygg dokumentation av programgränssnitt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Bygg dokumentation av programgränssnitt </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Rensa dokumentation av programgränssnitt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Rensa dokumentation av programgränssnitt </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+><keycap
+>Escape</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Bygg</guimenu
+> <guimenuitem
+>Stoppa</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stoppa </para
+></listitem>
+</varlistentry>
+
+
+
+
+</variablelist>
+
+</sect2>
+
+
+
+<!-- ======================= D E B U G ============================= -->
+
+
+<sect2 id="menu-debug">
+<title
+>Menyn <guimenu
+>Projekt</guimenu
+></title>
+
+<variablelist>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Starta</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Starta </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Stoppa</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stoppa </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Avbryt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Avbryt </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Kör till markör</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Kör till markör </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Stega förbi</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stega förbi </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Stega förbi instruktion</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stega förbi instruktion </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>stega in i</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stega in i </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Stega in i instruktion</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stega in i instruktion </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Stega ur</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stega ur </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Växla brytpunkt</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Växla brytpunkt </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Visare</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visare </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Undersök minnesdump...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Undersök minnesdump... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Anslut till process</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Anslut till process </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Valgrind kontroll av minnesläckor</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Valgrind kontroll av minnesläckor </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Profilera med Kcachegrind</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Profilera med Kcachegrind </para
+></listitem>
+</varlistentry>
+
+
+
+
+</variablelist>
+
+</sect2>
+
+
+
+
+
+<!-- ======================= B O O K M A R K S ============================= -->
+
+
+
+<sect2 id="menu-bookmarks">
+<title
+>Menyn <guimenu
+>Bokmärken</guimenu
+></title>
+
+<variablelist>
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>B</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Bokmärken</guimenu
+> <guimenuitem
+>Nytt bokmärke</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Lägg till nuvarande markering i dina bokmärken.</para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Bokmärke</guimenu
+> <guimenuitem
+>Rensa alla bokmärken</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Rensa alla bokmärken.</para
+></listitem>
+</varlistentry>
+</variablelist>
+
+</sect2>
+
+
+
+
+<!-- ======================= W I N D O W ============================= -->
+
+
+<sect2 id="menu-window">
+<title
+>Menyn <guimenu
+>Fönster</guimenu
+></title>
+
+<variablelist>
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Alt;<keycap
+>W</keycap
+></keycombo
+></shortcut
+> <guimenu
+>Fönster</guimenu
+> <guimenuitem
+>Stäng markerade fönster...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stäng markerade fönster...</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>F4</keycap
+></keycombo
+></shortcut
+> <guimenu
+>Fönster</guimenu
+> <guimenuitem
+>Stäng</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stäng</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Fönster</guimenu
+> <guimenuitem
+>Stäng alla</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stäng alla</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Fönster</guimenu
+> <guimenuitem
+>Stäng alla andra</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stäng alla andra</para
+></listitem>
+</varlistentry>
+
+
+</variablelist>
+
+</sect2>
+
+
+
+
+
+
+<!-- ======================= T O O L S ============================= -->
+
+
+<sect2 id="menu-tools">
+<title
+>Menyn <guimenu
+>Verktyg</guimenu
+></title>
+
+<variablelist>
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Skrivskyddat läge</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Skrivskyddat läge </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Filtyp</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Filtyp </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Färgläggning</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Färgläggning </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Radslut</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Radslut </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Stavning</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stavning </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>I</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>verktyg</guimenu
+> <guimenuitem
+>Indentera</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Indentera </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;&Shift;<keycap
+>I</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Avindentera</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Avindentera </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Rensa indentering</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Rensa indentering </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>Tab</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Justera</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Justera </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>D</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Kommentera</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Kommentera </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;&Shift;<keycap
+>D</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Avkommentera</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Avkommentera </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>U</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Stora bokstäver</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Stora bokstäver </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;&Shift;<keycap
+>U</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Små bokstäver</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Små bokstäver </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Alt;&Ctrl;<keycap
+>U</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Inledande stor bokstav</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Inledande stor bokstav </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>J</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Kombinera rader</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Kombinera rader </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Bryt rader mellan ord i dokumentet</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Bryt rader mellan ord i dokumentet </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>verktyg</guimenu
+> <guimenuitem
+>Visning av skillnader...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visning av skillnader... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Kör kommando...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Kör kommando... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Filtrera markering genom kommando...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Filtrerar markeringen genom ett externt kommando genom att använda <link linkend="KDevFilter"
+>filterinsticksprogrammet</link
+>. </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Avlusa reguljärt uttryck...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Avlusa reguljärt uttryck... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Delutforskare</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Delutforskare </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Alt;&Ctrl;<keycap
+>C</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Snabböppna klass...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Snabböppna klass... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Alt;&Ctrl;<keycap
+>M</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Snabböppna metod...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Snabböppna metod... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Alt;&Ctrl;<keycap
+>P</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Förhandsgranska utmatning från Doxygen</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Förhandsgranska utmatning från Doxygen </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;&Shift;<keycap
+>S</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Dokumentera nuvarande funktion</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Dokumentera nuvarande funktion </para
+></listitem>
+</varlistentry>
+
+
+
+</variablelist>
+
+</sect2>
+
+
+
+
+<!-- ======================= S E T T I N G S ============================= -->
+
+
+<sect2 id="menu-settings">
+<title
+>Menyn <guimenu
+>Inställningar</guimenu
+></title>
+
+
+<variablelist>
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Ctrl;<keycap
+>M</keycap
+></keycombo
+></shortcut
+> <guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Visa/Dölj menyrad</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visa/Dölj menyraden.</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Verktygsrader</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Öppnar en undermeny där du kan välja att visa eller dölja de olika verktygsraderna.</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Visa statusrad</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visa statusraden.</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Anpassa genvägar...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Anpassa genvägar... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Anpassa verktygsrader...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Anpassa verktygsrader... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Anpassa meddelanden...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Anpassa meddelanden... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Anpassa editor...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Anpassa editor... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Anpassa KDevelop...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Anpassa KDevelop... </para
+></listitem>
+</varlistentry>
+
+
+
+
+</variablelist>
+
+</sect2>
+
+
+<!-- ======================= H E L P ============================= -->
+
+
+<sect2 id="menu-help">
+<title
+>Menyn <guimenu
+>Hjälp</guimenu
+></title>
+
+<variablelist>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Handbok KDevelop</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visa det här dokumentet.</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Shift;<keycap
+>F1</keycap
+></keycombo
+></shortcut
+> <guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Vad är det här?</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Ritar ett frågetecken (?) intill muspekaren. Att klicka på ett objekt i ett fönster som knappen <guiicon
+>Stoppa</guiicon
+> visar då en kortfattad förklaring. </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Dagens tips</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Dagens tips </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Alt;&Ctrl;<keycap
+>I</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Titta i dokumentationsindex...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Titta i dokumentationsindex... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><shortcut
+> <keycombo action="simul"
+>&Alt;&Ctrl;<keycap
+>S</keycap
+></keycombo
+> </shortcut
+> <guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Sök i dokumentationen...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Sök i dokumentationen... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Manualsida...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Manualsida... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Infosida...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Infosida... </para
+></listitem>
+</varlistentry>
+
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Rapportera fel...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Rapportera fel.</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Om KDevelop...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visa en del kortfattad information om KDevelops versionsnummer, upphovsmän och licensavtal.</para
+></listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><menuchoice
+><guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Om KDE...</guimenuitem
+> </menuchoice
+></term>
+<listitem
+><para
+>Visa en del information om versionen av &kde; som du kör.</para
+></listitem>
+</varlistentry>
+
+</variablelist>
+
+</sect2>
+
+
+
+</sect1>
+
+
+
+
+</chapter>
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-baselibs.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-baselibs.png
new file mode 100644
index 00000000000..511d4107164
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-baselibs.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.png
new file mode 100644
index 00000000000..07c90c66939
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.png
new file mode 100644
index 00000000000..7650239150d
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.png
new file mode 100644
index 00000000000..2e8ec3ceb32
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.png
new file mode 100644
index 00000000000..e428fc78624
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.png
new file mode 100644
index 00000000000..2ed9038841f
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.png
new file mode 100644
index 00000000000..950ff5e149e
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.png
new file mode 100644
index 00000000000..7b812ad190f
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.png
new file mode 100644
index 00000000000..cdcafbab93e
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.png
new file mode 100644
index 00000000000..9a9de749c1f
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.png
new file mode 100644
index 00000000000..c2879557c9b
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.png
new file mode 100644
index 00000000000..9fbc1333b73
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.png
new file mode 100644
index 00000000000..11b96d68335
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.png
new file mode 100644
index 00000000000..276f4aa0ced
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.png
new file mode 100644
index 00000000000..d69e3b86342
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.png
new file mode 100644
index 00000000000..8e4dbf58fbd
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.png
new file mode 100644
index 00000000000..11bf8a13cdd
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.png
new file mode 100644
index 00000000000..e6995d59733
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.png
new file mode 100644
index 00000000000..22ddc00a476
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.png
new file mode 100644
index 00000000000..b87fa3dc8be
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.png
new file mode 100644
index 00000000000..77b00151ead
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.png
new file mode 100644
index 00000000000..f453567a72d
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.png
new file mode 100644
index 00000000000..93ce153fba1
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.png
new file mode 100644
index 00000000000..cf7db0e5ecd
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.png
new file mode 100644
index 00000000000..8bc13ad7d04
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.png
new file mode 100644
index 00000000000..472fe4d7a90
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.png
new file mode 100644
index 00000000000..ca10b601476
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.png
new file mode 100644
index 00000000000..2b10fb218e6
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project-cvs.png b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project-cvs.png
new file mode 100644
index 00000000000..0749ebe08d0
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project-cvs.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.png b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.png
new file mode 100644
index 00000000000..4ba1a42e814
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.png b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.png
new file mode 100644
index 00000000000..2f816121312
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.png b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.png
new file mode 100644
index 00000000000..4c03ecf91bc
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/credits.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/credits.docbook
new file mode 100644
index 00000000000..c714a018a89
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/credits.docbook
@@ -0,0 +1,40 @@
+<chapter id="credits">
+<title
+>Tack till</title>
+
+<sect1 id="credits-contributions">
+<title
+>Bidragsgivare</title>
+
+<para>
+<itemizedlist>
+ <listitem
+><para
+>Det ursprungliga innehållet i den här handboken är skrivet av Bernd Gehrmann <email
+>bernd@tdevelop.org</email
+> och Caleb Tennis <email
+>caleb@aei-tech.com</email
+>. </para
+></listitem>
+ <listitem
+><para
+>Kapitlen <link linkend="automake-manager-summary"
+>Sammanfattning av Hantering av automake</link
+> och <link linkend="automake-manager-operation"
+>Användning av Hantering av automake</link
+> är skrivna av Ian Wadham, <email
+>ianw@netspace.net.au</email
+>). </para
+></listitem>
+</itemizedlist>
+</para>
+
+</sect1
+> <!-- credits-contributions -->
+
+<!--CREDITS_FOR_TRANSLATORS-->
+
+</chapter
+> <!-- credits -->
+
+<!-- ====================================================================== -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/cvs.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/cvs.docbook
new file mode 100644
index 00000000000..6b9c6e8f259
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/cvs.docbook
@@ -0,0 +1,133 @@
+<chapter id="cvs">
+<title
+>Använda &CVS;</title>
+<indexterm zone="cvs"
+><primary
+>CVS</primary
+></indexterm>
+<indexterm zone="cvs"
+><primary
+>versionskontroll</primary
+></indexterm>
+
+<sect1 id="cvs-basics">
+<title
+>&CVS; grunder</title>
+
+<para
+>&CVS; är versionshanteringssystemet som många projekt med öppen källkod, inklusive &kde;, använder. Det lagrar all källkod på en centralt plats, som kallas <emphasis
+>arkivet</emphasis
+>. Utvecklare hämtar en aktuell version av projektet eller versioner av det vid godtyckliga tidpunkter, från arkivet. I motsats till vissa andra versionshanteringssystem, är det inte nödvändigt att <emphasis
+>låsa</emphasis
+> filer som man ska arbeta med. Alltså kan utveckling ske parallellt i stor utsträckning. </para>
+
+<para
+>Så fort en utvecklare är klar med en uppgift, <emphasis
+>arkiverar</emphasis
+> han sin kod (tillsammans med ett loggmeddelande). &CVS; tar hand om arbetet att sammanfoga ändringar som görs av flera utvecklare. Det kan förstås hända att utvecklare arbetar med samma kodavsnitt, vilket ger upphov till ändringar med konflikter (i praktiken inträffar detta sällan, och är ofta ett tecken på bristande kommunikation). I detta fall, förkastar &CVS; arkiveringen. En fil kan bara arkiveras efter alla konflikter har lösts upp. </para>
+
+<para
+>Hittills har de grundläggande funktionerna i &CVS;, som man oftast måste hantera, beskrivits. Men &CVS; erbjuder mycket mer: Man kan hantera flera grenar av ett projekt (t.ex. var &kde; 1.1.2 och &kde; 2 grenar i &kde;:s utvecklingsträd), sammanfoga ändringar från en gren till en annan, fråga efter skillnader mellan versioner och filers versionshistorik, etc. </para>
+
+<para
+>&CVS; implementeras som ett klient-serversystem. Som användare, sker all kommunikation med arkivet via kommandoradsprogrammet &cvs;. Gränssnitt på högre nivå är tillgängligt via program som <application
+>Cervisia</application
+> (<ulink url="http://cervisia.sf.net"
+> </ulink
+>) eller <application
+>TkCVS</application
+> (<ulink url="http://tkcvs.sf.net"
+></ulink
+>). Bara en liten del av &cvs; funktioner, som är viktiga under det dagliga arbetet, kan användas direkt i &tdevelop;. </para>
+
+<para
+>Grundläggande kunskap om användning av &CVS; förutsätts. I synnerhet bör du veta hur ett givet projekt hämtas från arkivet. Vi rekommenderar boken <citetitle pubwork="book"
+>Open Source Development With CVS</citetitle
+> av Karl Fogel, som kan spridas fritt (utom de icke-tekniska kapitlen). Se <ulink url="http://cvsbook.red-bean.com/cvsbook.html"
+></ulink
+>. </para>
+
+</sect1
+> <!-- cvs-basics -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="cvs-commands">
+<title
+>&CVS;-kommandon i &tdevelop;</title>
+
+<para
+>Följande alternativ är tillgängliga i filvyernas sammanhangsberoende menyer: </para>
+
+<variablelist>
+<varlistentry>
+<term
+>Lägg till i arkivet</term>
+<listitem>
+<para
+>Förbereder en fil för att läggas till i arkivet. Filen överförs till arkivet när du arkiverar den (eller katalogen som den finns i) nästa gång. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Ta bort från arkivet</term>
+<listitem>
+<para
+>Förbereder en fil för att tas bort från arkivet. Det här tar också bort filen från det lokala filsystemet, så använd funktionen med försiktighet! </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Uppdatera</term>
+<listitem>
+<para
+>Kör kommandot <command
+>cvs update</command
+> för att sammanfoga eventuella ändringar från andra användare till din arbetskatalog. När du använder menyalternativet för en katalog, sker uppdateringen normalt rekursivt, utom om du har stängt av det i inställningsfilen <filename
+>.cvsrc</filename
+>. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Arkivera</term>
+<listitem>
+<para
+>Kör <command
+>cvs commit</command
+> för att arkivera alla lokala ändringar i arkivet. Observera att du bör uppdatera innan du gör detta. Om en annan användare tidigare har arkiverat sina ändringar, kan &CVS; annars ge ett felmeddelande. </para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+<para
+>Alla kommandon startas som underprocesser av &tdevelop;, utan ytterligare kommandoradsväljare eller miljövariabler. Det här kan vara ett problem om anslutningen till &CVS;-servern går via en &ssh;-anslutning, och kräver att du skriver in ett lösenord varje gång du arkiverar eller uppdaterar. Det här är till exempel nödvändigt om projektets värd är <filename
+>sourceforge.net</filename
+>. Ett sätt att gå runt problemet beskrivs i vanliga frågor om CVS/SSH, som du hittar i SourceForge-dokumentationen. </para>
+
+</sect1
+> <!-- cvs-basics -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="cvs-behind">
+<title
+>Bakom ridån</title>
+
+<sect2 id="cvs-behind-workdir">
+<title
+>Vad &CVS; sparar i arbetskatalogen</title>
+
+<para
+>(...ännu inte skrivet...) </para>
+</sect2
+> <!-- cvs-behind-workdir -->
+
+</sect1
+> <!-- cvs-behind -->
+
+</chapter
+> <!-- cvs -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/debugger.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/debugger.docbook
new file mode 100644
index 00000000000..1bab415a692
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/debugger.docbook
@@ -0,0 +1,337 @@
+<chapter id="debugger">
+<title
+>Avlusargränssnittet</title>
+<indexterm zone="debugger"
+><primary
+>avlusare</primary
+></indexterm>
+
+<para
+>&tdevelop; innehåller en intern avlusare för C och C++, som är direkt integrerad med editorn. Tekniskt sett är den implementerad som ett gränssnitt som använder den flyttbara &GNU;-avlusaren <application
+>gdb</application
+> via en rörledning. Avlusaren kan startas på flera sätt: </para>
+
+<itemizedlist>
+<listitem>
+<para
+>Huvudprogrammet i projektet laddas i avlusaren med <menuchoice
+><guimenu
+>Avlusa</guimenu
+><guimenuitem
+>Starta</guimenuitem
+></menuchoice
+>. </para>
+</listitem>
+
+<listitem>
+<para
+>Genom att använda <menuchoice
+><guimenu
+>Avlusa</guimenu
+> <guimenuitem
+>Starta (annan)</guimenuitem
+> <guimenuitem
+>Undersök minnesdump</guimenuitem
+></menuchoice
+>, laddar du en minnesdump till minnet, som skapats av operativsystemets kärna när programmet kraschade. (Att skapa minnesdumpar kan vara avstängt på systemet, se <application
+>ulimit(1)</application
+>). Det här är användbart för en post-mortem analys av ett program. </para>
+</listitem>
+
+<listitem>
+<para
+>Du startar avlusaren för ett program som redan kör med <menuchoice
+><guimenu
+>Avlusa</guimenu
+><guimenuitem
+>Starta (annan)</guimenuitem
+> <guimenuitem
+>Anslut till process</guimenuitem
+></menuchoice
+>. En processlista visas där du kan välja processen som avlusaren ska överta. </para>
+</listitem>
+
+<listitem>
+<para
+>Observera att avlusning bara är möjlig om projektet har kompilerats med avlusningsinformation aktiverad. Den kan aktiveras i dialogrutan <guibutton
+>Kompilatorinställningar</guibutton
+>. När alternativet är aktiverat, skapar kompilatorn ytterligare information som låter avlusaren associera filnamn och radnummer med adresser i det körbara programmet. </para>
+</listitem>
+</itemizedlist>
+
+<para
+>Gränssnittet till avlusaren erbjuder flera vyer <quote
+>in i</quote
+> processen: </para>
+
+<para
+>Om du försöker avlusa ett projekt utan avlusningsinformation, får du meddelandet <computeroutput
+>Ingen källkod...</computeroutput
+> i statusraden. Om du försöker sätta brytpunkter, visas de som <computeroutput
+>Vilande (lägg till)</computeroutput
+> i brytpunktsfönstret (se nedan). </para>
+
+<variablelist>
+<varlistentry>
+<term
+>Variabler</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>bevakningsvariabler</primary
+></indexterm>
+<para
+>Det här fönstret visar värden för alla lokala variabler vid det nuvarande stället i programmet. Det täcker variablerna i kompilatorns anropsstack, dvs. funktionen där processen bröts, funktionen som anropade den här funktionen, och så vidare hela vägen till funktionen <function
+>main()</function
+>. </para>
+
+<para
+>En annan gren i variabelfönstret innehåller bevakningsvariabler. Du kan själv ställa in vilka variabler som syns här. Både lokala och globala variabler kan bevakas. Du kan antingen lägga till en variabel genom att klicka på knappen <guibutton
+>Lägg till</guibutton
+> eller trycka på returtangenten när posten <keycap
+>Bevaka</keycap
+> är markerad. Variablerna kan tas bort igen med den sammanhangsberoende menyn. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Aktiveringspoststack</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>aktiveringspost-stack</primary
+></indexterm>
+<para
+>(...ännu inte skrivet...) </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Brytpunkter</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>brytpunkter</primary
+></indexterm>
+<para
+>Fönstret låter dig se och behandla brytpunkterna. Kom ihåg att &tdevelop; använder <application
+>GDB</application
+>, så för att förstå &tdevelop;s avlusningsfunktioner fullständigt, måste du veta lite grand om <ulink url="http://www.gnu.org/software/gdb"
+>GDB</ulink
+>. </para>
+
+<para
+>Om du vill titta på källkoden, definieras brytpunkter i <filename
+>tdevelop/languages/cpp/debugger/breakpoint.h</filename
+>. </para>
+
+<para
+>I vänsterkanten har fönstret knappar för att:</para>
+
+<itemizedlist>
+<listitem
+><para
+>Lägga till en tom brytpunkt</para
+></listitem>
+<listitem
+><para
+>Redigera den markerade brytpunkten</para
+></listitem>
+ <listitem
+><para
+>Ta bort den markerade brytpunkten</para
+></listitem>
+<listitem
+><para
+>Ta bort alla brytpunkter</para
+></listitem>
+</itemizedlist>
+
+<para
+>Huvuddelen av fönstret är en tabell med sju kolumner. Varje rad i tabellen är en brytpunkt. Kolumnerna är:</para>
+
+<orderedlist>
+<listitem
+><para
+>Markeringskryssruta</para
+></listitem>
+<listitem
+><para
+>Typ: en av: Ogiltig, Fil:Rad, Bevakningspunkt, Adress, Funktion</para
+></listitem>
+<listitem
+><para
+>Status. Värdena är:</para>
+<itemizedlist>
+ <listitem
+><para
+>Aktiv</para
+></listitem>
+ <listitem
+><para
+>Inaktiverad: Varje brytpunkt kan <quote
+>aktiveras</quote
+> eller <quote
+>inaktiveras</quote
+>. Om den är inaktiverad har den ingen effekt på programmet till den aktiveras igen.</para
+></listitem>
+ <listitem
+><para
+>Vilande (lägg till): En brytpunkt är markerad så här om ingen avlusningsinformation är tillgänglig. Från GDB:s informationssida: <blockquote
+><para
+>Om en specificerad brytpunktsplats inte kan hittas, kan det bero på det faktum att platsen är i ett delat bibliotek som ännu inte har laddats. I ett sådant fall, kan du vilja att GDB skapar en speciell brytpunkt (känd som en <quote
+>vilande brytpunkt</quote
+>) som försöker lösa upp sig själv i framtiden när ett lämpligt delat bibliotek laddas.</para
+></blockquote
+> </para
+></listitem>
+</itemizedlist>
+</listitem>
+<listitem
+><para
+>Vilande (rensa)</para
+></listitem>
+<listitem
+><para
+>Vilande (ändra)</para
+></listitem>
+<listitem
+><para
+>Plats på formatet filnamn:radnummer</para
+></listitem>
+<listitem
+><para
+>Villkor</para
+></listitem>
+<listitem
+><para
+>Ignorera antal: Om det är ett tal <varname
+>ANTAL</varname
+> större än noll, stoppas inte programmets körning följande <varname
+>ANTAL</varname
+> gånger som brytpunkten nås, förutom att minska antalet att ignorera, utför <application
+>gdb</application
+> ingen åtgärd.</para
+></listitem>
+<listitem
+><para
+>Träffar: Räknar hur många gånger en brytpunkt har träffats.</para
+></listitem>
+</orderedlist>
+
+
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Visa assemblerkod</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>visa assemblerkod</primary
+></indexterm>
+<para
+>(...ännu inte skrivet...)</para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+
+<sect1 id="settingbreakpoints">
+<title
+>Ange brytpunkter</title>
+
+<para
+>(...ännu inte skrivet...) </para>
+
+</sect1
+> <!-- settingbreakpoints -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id ="debuggeroptions">
+<title
+>Alternativ</title>
+
+<variablelist>
+<varlistentry>
+<term
+>Visa behandlade namn</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>namnbehandling</primary
+></indexterm>
+<indexterm zone="debugger"
+><primary
+>behandling</primary
+><secondary
+>namn</secondary
+></indexterm>
+
+<para
+>Funktionsnamn i det körbara programmet är <quote
+>behandlade</quote
+> för C++, dvs. funktionsnamnet innehåller information om argumentens typer. Detta är nödvändigt för att stödja överlastade funktioner. Behandlingsalgoritmen är inte standardiserad, och skiljer sig till och med mellan olika versioner av &GNU;:s C++ kompilator. </para>
+
+<para
+>I assemblerkodfönstret visas normalt obehandlade namn, så funktionssignaturer liknar utseendet i källkoden, och är lätt läsbara. Alternativt, kan du välja att se behandlade namn. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Försök sätta brytpunkter när bibliotek laddas</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>lata brytpunkter</primary
+></indexterm>
+<indexterm zone="debugger"
+><primary
+>brytpunkter</primary
+><secondary
+>lat</secondary
+></indexterm>
+
+<para
+>Avlusarens bakgrundsprogram <application
+>gdb</application
+> tillåter inte att brytpunkter sätts i kod som inte för närvarande är laddad. I ett riktigt modulärt program, där kod ofta bara laddas vid behov som insticksprogram (med användning av C-bibliotekets funktion <function
+>dlopen(3)</function
+>), kan detta vara besvärande. Därför hanterar &tdevelop; själv stöd för brytpunkter i delade bibliotek. Om du aktiverar det här alternativet, kan du sätta brytpunkter i bibliotek som inte laddats. Därefter, så fort <application
+>gdb</application
+> talar om att ett bibliotek har laddats, försöker &tdevelop; sätta de vilande brytpunkterna. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Aktivera flytande verktygsrad</term>
+<listitem>
+<indexterm zone="debugger"
+><primary
+>avlusningsverktygsrad</primary
+></indexterm>
+<indexterm zone="debugger"
+><primary
+>verktygsrad</primary
+><secondary
+>avlusare</secondary
+></indexterm>
+
+<para
+>(...ännu inte skrivet...) </para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</sect1
+> <!-- debuggeroptions -->
+
+</chapter
+> <!-- debugger -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-add-bookmark.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-add-bookmark.png
new file mode 100644
index 00000000000..05a228c7bec
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-add-bookmark.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.png
new file mode 100644
index 00000000000..6cac57f4250
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png
new file mode 100644
index 00000000000..ca95dcdf26b
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png
new file mode 100644
index 00000000000..ed845ee2368
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/documentation.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/documentation.docbook
new file mode 100644
index 00000000000..01f9d21c4e9
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/documentation.docbook
@@ -0,0 +1,73 @@
+<chapter id="documentation">
+<title
+>Dokumentation</title>
+
+<para
+>Dokumentation är tyvärr en av de mest förbisedda delarna av programmering. Ändå så erbjuder riktigt upprättad och underhållen intern och extern dokumentation ytterst värdefull hjälp. </para>
+
+<para
+>Dokumentation har flera aspekter. Det finns <itemizedlist>
+ <listitem
+><para
+><emphasis
+>intern projektdokumentation</emphasis
+>, som i huvudsak består av <itemizedlist>
+ <listitem
+><para
+><emphasis
+>kommentarer</emphasis
+> i deklarationsfiler och källkodsfiler </para
+></listitem>
+ <listitem
+><para
+><emphasis
+>Intern dokumentation av programmeringsgränssnittet</emphasis
+> för projektet, som har skapats från programfilerna av särskilda verktyg, t.ex. &doxygen; </para
+></listitem>
+ </itemizedlist>
+ </para
+></listitem>
+ <listitem
+><para
+><emphasis
+>extern projektdokumentation</emphasis
+>, som bland annat består av <itemizedlist>
+ <listitem
+><para
+><emphasis
+>extern dokumentation av programmeringsgränssnitt</emphasis
+>, till exempel för gemensamma systembibliotek (&kde;, &Qt;, etc.) </para
+></listitem>
+ <listitem
+><para
+>all övrig dokumentation (manualer för programspråk, allmän systeminformation, handledningar och liknande) </para
+></listitem>
+ </itemizedlist>
+ </para
+></listitem>
+</itemizedlist>
+</para>
+<para
+>All denna dokumentation ska vara enkel att underhålla och lätt tillgänglig så fort du behöver den. &tdevelop; har stöd för just detta. </para>
+
+<!-- ### doc browser, notes on internal documentation, how to profit from Doxygen -->
+
+<sect1 id="docbrowser">
+<title
+>Dokumentationsbläddraren</title>
+
+
+<figure id="screenshot-doctreeview" float="1">
+<title
+>En skärmbild av dokumentationsträdet</title>
+<mediaobject>
+<imageobject
+><imagedata fileref="doctreeview.png"/></imageobject>
+</mediaobject>
+</figure>
+
+</sect1
+> <!-- docbrowser -->
+
+</chapter
+> <!-- documentation -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/documents-contents.png b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-contents.png
new file mode 100644
index 00000000000..23a5ad9dc00
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-contents.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.png b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.png
new file mode 100644
index 00000000000..82294d247da
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/edit-doctree-TOC-entry.png b/tde-i18n-sv/docs/tdevelop/tdevelop/edit-doctree-TOC-entry.png
new file mode 100644
index 00000000000..8966de34d21
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/edit-doctree-TOC-entry.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editing.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/editing.docbook
new file mode 100644
index 00000000000..fd82900c9a2
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editing.docbook
@@ -0,0 +1,612 @@
+<chapter id="editing">
+<title
+>Redigeringsverktyg</title>
+
+<sect1 id="editing-snippets">
+<title
+>Kodsnuttar</title>
+
+<itemizedlist>
+ <title
+>Funktioner (inledande översikt)</title>
+ <listitem
+><para
+>Delprogrammet för kodsnuttar lägger till en verktygsvy som normalt dockas till höger </para
+></listitem>
+ <listitem
+><para
+>Tillägg, redigering och borttagning av kodsnuttar är tillgängligt via en sammanhangsberoende meny. </para
+></listitem>
+ <listitem
+><para
+>Ett dubbelklick på en kodsnutt i listan infogar den i den aktiva vyn på markörens plats </para
+></listitem>
+ <listitem
+><para
+>Verktygstips visar innehållet i en kodsnutt </para
+></listitem>
+ <listitem
+><para
+>Kodsnuttar lagras i användarens hemkatalog, så varje användare kan ha sina egna kodsnuttar </para
+></listitem>
+ <listitem
+><para
+>Kodsnuttar kan innehålla variabler på formen $<varname
+>VARNAMN</varname
+>$. När kodsnutten används, frågas användaren efter ersättningsvärden för variablerna </para
+></listitem>
+</itemizedlist>
+</sect1
+> <!-- editing-snippets -->
+
+<sect1 id="keyboardmapping">
+<title
+>Tangentanvändning</title>
+<indexterm zone="keyboardmapping"
+><primary
+>tangentbindningar</primary
+></indexterm>
+
+<para
+>I det följande listar vi normala tangentbindningar för standardeditorn. Du kan anpassa dem som du vill (hur då?). </para>
+
+<informaltable>
+<tgroup cols="2">
+<tbody>
+
+<row
+><entry
+><para
+><keycap
+>Vänster </keycap
+></para
+></entry>
+<entry
+><para
+>Flyttar ett tecken åt vänster </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycap
+>Höger </keycap
+></para
+></entry>
+<entry
+><para
+>Flyttar ett tecken åt höger </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycombo
+>&Ctrl;<keycap
+> Vänster </keycap
+></keycombo
+></para
+></entry>
+<entry
+><para
+>Flyttar ett ord åt vänster </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycombo
+>&Ctrl;<keycap
+> Höger </keycap
+></keycombo
+></para
+></entry>
+<entry
+><para
+>Flyttar ett ord åt höger </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycap
+>Upp </keycap
+></para
+></entry>
+<entry
+><para
+>Flyttar upp en rad </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycap
+>Ner </keycap
+></para
+></entry>
+<entry
+><para
+>Flyttar ner en rad </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycap
+>Page Up </keycap
+></para
+></entry>
+<entry
+><para
+>Flyttar upp en sida </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycap
+>Page Down </keycap
+></para
+></entry>
+<entry
+><para
+>Flyttar ner en sida </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycombo
+>&Ctrl;<keycap
+> Page Up </keycap
+></keycombo
+></para
+></entry>
+<entry
+><para
+>Går till början av filen </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycombo
+>&Ctrl;<keycap
+> Page Down </keycap
+></keycombo
+></para
+></entry>
+<entry
+><para
+>Går till slutet av filen </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycap
+>Home </keycap
+></para
+></entry>
+<entry
+><para
+>Går till början av raden </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycap
+>End </keycap
+></para
+></entry>
+<entry
+><para
+>Går till slutet av raden </para
+></entry
+></row>
+
+</tbody>
+</tgroup>
+</informaltable>
+
+<para
+>För alla tangenter ovan, kan dessutom skifttangenten tryckas ner, för att markera text från markörens nuvarande position till den nya. </para>
+
+<informaltable>
+<tgroup cols="2">
+<tbody>
+
+<row
+><entry
+><para
+><keycap
+>Backsteg </keycap
+></para
+></entry>
+<entry
+><para
+>Tar bort ett tecken åt vänster </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycap
+>Delete </keycap
+></para
+></entry>
+<entry
+><para
+>Tar bort tecknet under markören </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycombo
+>&Ctrl;<keycap
+> C </keycap
+></keycombo
+></para
+></entry>
+<entry
+><para
+>Kopierar den markerade texten till klippbordet </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycombo
+>&Ctrl;<keycap
+> V </keycap
+></keycombo
+></para
+></entry>
+<entry
+><para
+>Klistrar in den markerade texten från klippbordet </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycombo
+>&Ctrl;<keycap
+> X </keycap
+></keycombo
+></para
+></entry>
+<entry
+><para
+>Tar bort den markerade texten och lägger den på klippbordet </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycombo
+>&Ctrl;<keycap
+> Z </keycap
+></keycombo
+></para
+></entry>
+<entry
+><para
+>Ångra </para
+></entry
+></row>
+
+<row
+><entry
+><para
+><keycombo
+>&Shift;&Ctrl;<keycap
+> Z </keycap
+></keycombo
+></para
+></entry>
+<entry
+><para
+>Gör om </para
+></entry
+></row>
+
+</tbody>
+</tgroup>
+</informaltable>
+
+</sect1
+> <!-- keyboardmapping -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="editing-reporter">
+<title
+>Problemrapporter</title>
+
+<para
+>(...ännu inte skrivet...) </para>
+</sect1
+> <!-- editing-reporter -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="searchinggrepping">
+<title
+>Sökning och flerfilssökning</title>
+<indexterm zone="searchinggrepping"
+><primary
+>sökning</primary
+></indexterm>
+<indexterm zone="searchinggrepping"
+><primary
+>hitta</primary
+></indexterm>
+
+<sect2 id="searching">
+<title
+>Söka efter text</title>
+
+<para
+><keycombo
+><keycap
+>Ctrl</keycap
+><keycap
+>F</keycap
+></keycombo
+>- Sök, <keycombo
+><keycap
+>Ctrl</keycap
+><keycap
+>R</keycap
+></keycombo
+>- Ersätt </para>
+
+</sect2
+> <!-- searching -->
+
+
+<sect2 id="isearch">
+<title
+>I-sök</title>
+<indexterm zone="isearch"
+><primary
+>i-sök</primary
+></indexterm>
+<indexterm zone="isearch"
+><primary
+>inkrementell sökning</primary
+></indexterm>
+<indexterm zone="isearch"
+><primary
+>sök</primary
+><secondary
+>inkrementell</secondary
+></indexterm>
+
+<para
+>Den vanliga sökningen med <menuchoice
+><guimenu
+>Redigera</guimenu
+><guimenuitem
+>Sök</guimenuitem
+></menuchoice
+> kräver att du anger hela sökbegreppet innan du startar. Oftast är det mycket snabbare att söka inkrementellt. Om du klickar på sökfältet som heter <guilabel
+>I-sök</guilabel
+> i verktygsraden, sker sökningen medan du skriver. Du kommer att märka att det önskade resultatet ofta redan hittas när du har skrivit in 3 eller 4 tecken. </para>
+
+</sect2
+> <!-- isearch -->
+
+
+<sect2 id="grep">
+<title
+>Flerfilsökning</title>
+<indexterm zone="grep"
+><primary
+>sök</primary
+><secondary
+>i filer</secondary
+></indexterm>
+
+<para
+>Båda sökmekanismerna som beskrivs ovan är begränsade till sökning i en källkodsfil. Ett ytterligare verktyg som låter dig söka igenom ett (möjligtvis stort) antal filer är tillgängligt via alternativet <guimenuitem
+>Sök i filer...</guimenuitem
+> i menyn <guimenu
+>Redigera</guimenu
+>. Det är i grunden ett gränssnitt för programmet &grep;(1). </para>
+
+<para
+>I dialogrutan kan du ange vilka filer som ska sökas i. Det finns ett antal jokertecken tillgängliga i en kombinationsruta. Genom att använda dem kan du enkelt begränsa sökmekanismen till exempel för deklarationsfiler. Dessutom kan du också ange en katalog där sökningen startas. Om du markerar rutan <guibutton
+>Rekursiv</guibutton
+>, går sökningen igenom alla kataloger i hierarkin under den angivna. </para>
+
+<para
+>Sökbegreppet är i grunden ett reguljärt uttryck som följer POSIX-syntax. Du kan till exempel använda begreppet <literal
+>"\&lt;K.*"</literal
+>, om du vill hitta alla ord som börjar med bokstaven K. Följande tecken tolkas på ett särskilt sätt: </para>
+
+<informaltable>
+<tgroup cols="2">
+<tbody>
+
+<row
+><entry>
+ <literal
+>.</literal>
+</entry
+><entry
+>Matchar alla tecken </entry
+></row>
+<row
+><entry>
+ <literal
+>^</literal>
+</entry
+><entry
+>Matchar början av en rad </entry
+></row>
+<row
+><entry>
+ <literal
+>$</literal>
+</entry
+><entry
+>Matchar slutet av en rad </entry
+></row>
+<row
+><entry>
+ <literal
+>\&lt;</literal>
+</entry
+><entry
+>Matchar början av ett ord </entry
+></row>
+<row
+><entry>
+ <literal
+>\&gt;</literal>
+</entry
+><entry
+>Matchar slutet av ett ord </entry
+></row>
+<row
+><entry>
+ <literal
+>?</literal>
+</entry
+><entry
+>Föregående objekt matchas mindre än en gång </entry
+></row>
+<row
+><entry>
+ <literal
+>*</literal>
+</entry
+><entry
+>Föregående objekt matchas noll eller flera gånger </entry
+></row>
+<row
+><entry>
+ <literal
+>+</literal>
+</entry
+><entry
+>Föregående objekt matchas en eller flera gånger </entry
+></row>
+<row
+><entry>
+ <literal
+>{n}</literal>
+</entry
+><entry
+>Föregående objekt matchas exakt n gånger </entry
+></row>
+<row
+><entry>
+ <literal
+>{n,}</literal>
+</entry
+><entry
+>Föregående objekt matchas n eller flera gånger </entry
+></row>
+<row
+><entry>
+ <literal
+>{,n}</literal>
+</entry
+><entry
+>Föregående objekt matchas mindre än n gånger </entry
+></row>
+<row
+><entry>
+ <literal
+>{n,m}</literal>
+</entry
+><entry
+>Föregående objekt matchas minst <literal
+>n</literal
+> gånger, men mindre än <literal
+>m</literal
+> gånger </entry
+></row>
+
+</tbody>
+</tgroup>
+</informaltable>
+
+<para
+>Bakåtreferenser till deluttryck inom parenteser är också tillgängliga med notationen <literal
+>\n</literal
+>. </para>
+
+<para
+>Som en särskild bonus för C++ programmerare, finns några sökmallar tillgängliga för typiska mönster. De låter dig till exempel söka efter alla anrop av medlemsfunktioner för ett visst objekt. </para>
+
+<para
+>När du väl har startat sökningen genom att klicka på knappen <guibutton
+>Sök</guibutton
+>, utförs den av en yttre, asynkron process. Alla objekt som hittas syns i vyn som heter <guilabel
+>Flerfilsökning</guilabel
+>. Därefter kan du hoppa till objekt som hittas genom att klicka på dem. Observera att grep söker igenom filerna som är lagrade i filsystemet. Om du har ändrade versioner av dem i editorn, kan du få felaktiga radnummer, eller vissa ogiltiga hittade objekt. Du kan undvika detta genom att spara alla filer innan. </para>
+
+</sect2
+> <!-- grep -->
+
+</sect1
+> <!-- searchinggrepping -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="code-completion">
+<title
+>Kodkomplettering</title>
+
+<para
+>(...ännu inte skrivet...) </para>
+</sect1
+> <!-- code-completion -->
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+<sect1 id="newfiles">
+<title
+>Skapa nya filer och klasser</title>
+
+<para
+>(...ännu inte skrivet...) </para>
+
+<sect2 id="newfiles-edittemplates">
+<title
+>Redigera mallarna</title>
+
+<para
+>(...ännu inte skrivet...) </para>
+</sect2
+> <!-- newfiles-edittemplates -->
+
+</sect1
+> <!-- newfiles -->
+
+</chapter
+> <!-- editing -->
+<!-- ====================================================================== -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-lookup.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-lookup.png
new file mode 100644
index 00000000000..51d3fdd9275
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-lookup.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.png
new file mode 100644
index 00000000000..db46b512e28
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.png
new file mode 100644
index 00000000000..8c0349868f0
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.png
new file mode 100644
index 00000000000..2bffdcf4ea9
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.png
new file mode 100644
index 00000000000..842d539a2b7
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.png
new file mode 100644
index 00000000000..6dcfe8238e1
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png b/tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png
new file mode 100644
index 00000000000..9ba69ae95c2
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-browsers.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/file-browsers.docbook
new file mode 100644
index 00000000000..4f223226be1
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/file-browsers.docbook
@@ -0,0 +1,67 @@
+<chapter id="file-browsers">
+<title
+>Filbläddrarna</title>
+
+<para
+>På vänstra sidan i huvudfönstret, kan &tdevelop; visa olika sorters listor och träd för att välja filer: </para>
+
+<variablelist>
+<varlistentry>
+<term
+>Filträd</term>
+<listitem>
+<para
+>Det visar en trädvy av filhierarkin under projektkatalogen. Om du klickar på en fil, laddas den i editorn. För filer som inte innehåller text, startar KDevelop ett program som kan hantera motsvarande MIME-typ. </para>
+
+<para
+>Filträdet uppdateras regelbundet så fort någonting ändras i filsystemet. Om du till exempel skapar nya filer eller kataloger (till och med utanför &tdevelop;), syns det omedelbart i fillistan. På Linux använder den här funktionen FAM-biblioteket. På andra operativsystem, eller via NFS, kontrolleras katalogerna som visas med korta intervall. </para>
+
+<para
+>Filträdet döljer filer som oftast inte är intressanta, som objektfiler. I <guimenuitem
+>Projektalternativ</guimenuitem
+> under <guibutton
+>Filvyer</guibutton
+>, kan du anpassa vilka mönster som används för att filtrera bort ointressanta filer (som en lista med jokertecken, åtskilda med kommatecken). </para>
+
+<para
+>Du kan dessutom välja att begränsa filträdet så att det bara visar filer som hör till projektet som för närvarande är laddat. Det kan ändras genom att klicka med höger musknapp på trädets rot. </para>
+
+<figure id="screenshot-filetree" float="1">
+<title
+>En skärmbild av filträdet</title>
+<mediaobject>
+<imageobject
+><imagedata fileref="filetree.png"/></imageobject>
+<textobject
+><phrase
+>En skärmbild av filträdet</phrase
+></textobject>
+</mediaobject>
+</figure>
+
+</listitem>
+</varlistentry>
+<varlistentry>
+<term
+>Filgrupper</term>
+<listitem>
+<para
+>Det här visar filerna som tillhör projektet, grupperade enligt filändelsen. Som i filträdet, kan du redigera en fil genom att klicka på den med vänster musknapp. </para>
+
+<para
+>Grupperna som visas i vyn kan ställas in under <guibutton
+>Filvyer</guibutton
+> i dialogrutan <guimenuitem
+>Projektinställningar</guimenuitem
+>. För att anpassa vyn enligt dina behov, är det viktigt att förstå hur filer tilldelas till grupperna. För varje fil, går &tdevelop; igenom grupperna uppifrån och ner. I varje grupp kontrolleras om filnamnet matchar ett av mönstren. Vid en träff, visas filen i gruppen och upprepningen avbryts. Detta klargör att mer generella mönster ska placeras under mer specifika. Till exempel ska en asterisk för gruppen <guilabel
+>Övriga</guilabel
+> vara det sista mönstret. </para>
+
+</listitem>
+</varlistentry>
+</variablelist>
+
+</chapter
+> <!-- file-browsers -->
+
+<!-- ====================================================================== -->
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-close-selected.png b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-close-selected.png
new file mode 100644
index 00000000000..ecc3bbb19af
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-close-selected.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-create.png b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-create.png
new file mode 100644
index 00000000000..21e6e09a77e
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-create.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-default.png b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-default.png
new file mode 100644
index 00000000000..c84d399a172
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-default.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.png b/tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.png
new file mode 100644
index 00000000000..61446fcbb3a
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png b/tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png
new file mode 100644
index 00000000000..92990d4f9a9
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.png b/tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.png
new file mode 100644
index 00000000000..fb975bce81d
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png b/tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png
new file mode 100644
index 00000000000..98d8b3d3617
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png
Binary files differ
diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/getting-started.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/getting-started.docbook
new file mode 100644
index 00000000000..96049034010
--- /dev/null
+++ b/tde-i18n-sv/docs/tdevelop/tdevelop/getting-started.docbook
@@ -0,0 +1,4098 @@
+
+<!--
+Please keep the formatting simple.
+Do not indent XML constructs.
+Keep lines at 80 characters length maximum.
+-->
+
+<chapter id="getting-started">
+
+<chapterinfo>
+<authorgroup>
+<author
+><firstname
+>Bernd</firstname
+><surname
+>Pol</surname
+></author>
+<othercredit role="translator"
+> <firstname
+>Stefan</firstname
+> <surname
+>Asserhäll</surname
+> <affiliation
+><address
+><email
+>stefan.asserhall@comhem.se</email
+></address
+></affiliation
+> <contrib
+>Översättare</contrib
+></othercredit
+>
+</authorgroup>
+</chapterinfo>
+
+<title
+>Komma igång med &tdevelop;: En guidad tur</title>
+
+<para
+>När du nu har installerat &tdevelop;s integrerade utvecklingsmiljö, hur ska du använda den på ett bra sätt? Eftersom det här är ett komplext program, kan inlärningskurvan vara något brant, särskilt om du inte redan är van vid den här sortens integrerade utvecklingsmiljö.</para>
+
+<para
+>Vi försöker att göra inlärningskurvan mindre brant genom att stegvis gå igenom hur ett enkelt KDE C++ program skapas. Därigenom tar vi en (översiktlig) titt på:</para>
+
+<simplelist>
+<member
+><link linkend="gettingstarted-overview"
+>En första titt: Elementen i användargränssnittet hos den integrerade utvecklingsmiljön &tdevelop;.</link
+></member>
+<member
+><link linkend="gettingstarted-configure"
+>Utföra vissa inledande inställningar.</link
+></member>
+<member
+><link linkend="gettingstarted-new"
+>Hur man skapar ett nytt projekt.</link>
+</member>
+<member
+><link linkend="gettingstarted-edit"
+>Några tips om hur man hanterar dokument.</link
+></member>
+<member
+><link linkend="gettingstarted-compile"
+>Hur man kompilerar programmet i projektet.</link
+></member>
+<member
+><link linkend="gettingstarted-extend"
+>Hur man lägger till klasser och andra saker i projektet.</link
+></member>
+<member
+><link linkend="gettingstarted-debug"
+>Vad man ska göra för att avlusa programmet.</link
+></member>
+<member
+><link linkend="gettingstarted-doc"
+>Några grundläggande verktyg för att bygga program eller användardokumentation.</link
+></member>
+<member
+><link linkend="gettingstarted-keys"
+>Sist men inte minst, snabbtangenter</link
+></member>
+</simplelist>
+
+<para
+>Innan vi börjar, måste ett viktigt begrepp klargöras.</para>
+
+<formalpara>
+<title
+>Vad kan man förvänta sig?</title>
+<para
+>Som sagt är &tdevelop; en <emphasis
+>integrerad utvecklingsmiljö</emphasis
+>. Det betyder väsentligen att &tdevelop; inte själv är ett utvecklingsverktyg, utan snarare ett grafiskt gränssnitt för att enkelt komma åt ett omfattande antal utvecklingsverktyg, där många i själva verket skulle kräva komplicerade tangentbordskommandon om de kördes i en textterminal.</para>
+</formalpara>
+
+<para
+>Även om &tdevelop; förenklar många av dessa programmeringsuppgifter, återstår ändå mycket av komplexiteten i denna uppsättning verktyg, vilket betyder att för en fullständig förståelse av den integrerade utvecklingsmiljön &tdevelop; måste du ändå begripa dig på verktygen som verkligen körs i bakgrunden.</para>
+
+<para
+>Därför kan vi inte lära dig hur man skapar programvara, utan snarare introducera några av de sätt &tdevelop; konstruerats för att förenkla denna process. Om du vill lära dig mer om vad en integrerad utvecklingsmiljö är avsedd för, kan du ta en titt på den historiska översikten <link linkend="unixdev"
+>Utveckling på &UNIX;</link
+>, i synnerhet kapitlet <link linkend="unixdev-ide"
+>Integration av koncept och verktyg</link
+>.</para>
+
+<note>
+<para
+>Följande beskrivning gäller normalfallet, där &tdevelop; startar med <guilabel
+>Förenklat IDEA-fönsterläge</guilabel
+>. Om du redan har bytt till ett annat användargränssnitt, kanske inte vissa objekt finns enligt beskrivningen, eller beter sig något annorlunda. Om du inte är säker på vilket användargränssnitt som &tdevelop; för närvarande använder, kontrollera i dialogrutan <menuchoice
+><guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Anpassa KDevelop...</guimenuitem
+> <guimenuitem
+>Användargränssnitt</guimenuitem
+></menuchoice
+>.</para>
+</note>
+
+<sect1 id="gettingstarted-overview">
+<title
+>Den allra första titten på &tdevelop;</title>
+
+<para
+>Här handlar det enbart om vad du ser när du först startar &tdevelop;. Du finner preliminär information om:</para>
+
+<simplelist>
+<member
+><link linkend="gettingstarted-overview-basic"
+>Vad är det som syns på ytan?</link
+></member>
+<member
+><link linkend="gettingstarted-overview-help"
+>Hur man får hjälp.</link
+></member>
+<member
+><link linkend="gettingstarted-overview-menu"
+>Vad finns i menyerna?</link
+></member>
+<member
+><link linkend="gettingstarted-overview-tools"
+>Vad är verktygsvyerna till för?</link
+></member>
+</simplelist>
+
+<sect2 id="gettingstarted-overview-basic">
+<title
+>På ytan</title>
+
+<para
+>När du startar &tdevelop; allra första gången ser du en skärm som liknar den här:</para>
+
+<screenshot>
+<mediaobject>
+<imageobject>
+<imagedata fileref="empty-ide.png" format="PNG"/>
+</imageobject>
+<caption>
+<para
+>Ursprunglig layout i &tdevelop;</para>
+<para
+>(I själva verket är &tdevelop;s ursprungliga fönster större, men elementen du ser är samma.)</para>
+</caption>
+</mediaobject>
+</screenshot>
+
+<formalpara>
+<title
+>Arbetsområde och verktygsflikar</title>
+<para
+>I det här ursprungliga fallet använder &tdevelop; det så kallade <link linkend="uimodes-survey"
+>IDEA-användargränssnittet</link
+>. Ett maximalt stort arbetsområde omges till vänster, under, och till höger av en serie knappar som fungerar på liknande sätt som flikarna på en skärm med flikar. Om du klickar på en av flikarna visas ett så kallat <emphasis
+>verktygsvyfönster</emphasis
+>, som låter dig arbeta med en speciell aktivitet.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Menyer och verktygsrader</title>
+<para
+>Längst upp finns den vanliga menyraden, följd av flera rader med verktygsrader, där vissa är tomma från början. De förses med knappar så fort ett projekt har öppnats för verkligt arbete.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Statusrad</title>
+<para
+>Till sist finns en statusrad längst ner i fönstret, som visar kortfattad information om flera aktiviteter.</para>
+</formalpara>
+</sect2>
+
+<sect2 id="gettingstarted-overview-help">
+<title
+>Hur man får hjälp</title>
+
+<para
+>Förutom menyn <guimenu
+>Hjälp</guimenu
+>, som erbjuder svar på specifika frågor, tillhandahåller statusraden och två olika sorters verktygstips en del snabbinformation.</para>
+
+<formalpara>
+<title
+>Vad gör det här menyalternativet?</title>
+<para
+>När du placerar muspekaren över ett menyalternativ, visas oftast kortfattad information i statusraden. Även om det i de flesta fall bara upprepar alternativets namn, tillhandahålls ibland ytterligare information om menyalternativets syfte.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Vad är det här objektets namn?</title>
+<para
+>För många objekt visas ett kort verktygstips med funktionsnamnet när du håller markören över det några sekunder. Det är användbart för snabb orientering i verktygsrader eller verktygsvyflikar i IDEA-läge, när den integrerade utvecklingsmiljön har ställts in att bara visa ikoner på dessa knappar.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Vad gör det här objektet?</title>
+<para
+>Mer information är tillgänglig genom utökad hjälp med verktygstips för många objekt i den integrerade utvecklingsmiljön. Välj <menuchoice
+><guimenu
+>Hjälp</guimenu
+> <guimenuitem
+>Vad är det här?</guimenuitem
+></menuchoice
+> eller tryck på <keycombo
+><keycap
+>&Shift;</keycap
+><keycap
+>F1</keycap
+></keycombo
+>, välj därefter objektet som du vill veta mer om med markören i form av ett frågetecken. Du kan också visa vilken meny som helst på detta sätt, och klicka på ett visst menyalternativ (både aktiva och inaktiva) för att se om mer information finns tillgänglig.</para>
+</formalpara>
+</sect2>
+
+<sect2 id="gettingstarted-overview-menu">
+<title
+>Vad finns i menyerna?</title>
+
+<para
+>Det finns tio menyer som kan väljas i menyraden. De flesta förses med alla alternativ när ett projekt väl har öppnats för verkligt arbete, medan andra kräver att att minst ett dokument är öppnat. I korthet tillåter de följande sorters åtgärder.</para>
+
+<note>
+<para
+>Det här är bara en översikt. För en detaljerad beskrivning av menyerna, se <link linkend="commands"
+>Kommandoreferensen</link
+>.</para>
+</note>
+
+<variablelist>
+<varlistentry>
+<term
+><guimenu
+>Arkiv</guimenu
+></term>
+<listitem>
+<formalpara>
+<title
+>Vanliga åtgärder</title>
+<para
+>Detta är ganska standardmässigt. Det tillåter att dokumentfiler skapas, öppnas, sparas, skrivs ut och stängs, samt att avsluta programmet &tdevelop; som vanligt.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Återställ alla</title>
+<para
+>Låter dig återställa alla senaste ändringar som ännu inte sparats, genom att ladda filen igen från disk. Det fungerar för alla filer du redigerar, inte bara de som ingår i ett projekt.</para>
+</formalpara>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><guimenu
+>Redigera</guimenu
+></term>
+<listitem>
+<para
+>Den här menyn är bara användbar om ett dokument är öppnat.</para>
+
+<formalpara>
+<title
+>Vanliga åtgärder</title>
+<para
+>Tillhandahåller de vanliga åtgärderna för att ångra, göra om och klippa ut, kopiera eller klistra in. Dessutom tillåter den att markera textblock på olika sätt.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Sök och ersätt</title>
+<para
+>Det finns två mycket kraftfull sökfunktioner tillgängliga, <menuchoice
+><guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Sök i filer</guimenuitem
+></menuchoice
+> och <menuchoice
+><guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Sök-välj-ersätt...</guimenuitem
+></menuchoice
+>. Förutom de vanliga sök- och ersättningsfunktionerna begränsade till det nuvarande dokumentet, kan du dessutom utföra globala sök- och ersättningsåtgärder på en gång.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Avancerad textredigering</title>
+<para
+>Det finns möjlighet att formatera om nuvarande dokument och att automatiskt komplettera delvis inskriven text på olika sätt.</para>
+</formalpara>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><guimenu
+>Visa</guimenu
+></term>
+<listitem>
+<para
+>Som menyn <guimenu
+>Redigera</guimenu
+>, är den här menyn bara användbar om ett projekt är öppet. I detta fall är (bland annat) följande alternativ tillgängliga:</para>
+
+<formalpara>
+<title
+>Navigeringshistorik</title>
+<para
+>Byt fram och tillbaka mellan dokumenten du tittat på, etc.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Felspårning</title>
+<para
+>Navigera till källkodsraderna för fel som stöttes på i den senaste kompilerings- eller byggprocessen.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Åtgärder som hör ihop med editorn</title>
+<para
+>Visa alternativ i menyn <guimenu
+>Visa</guimenu
+> styr utseendet och vyn för editorn du använder. När det gäller &kate;-programdelen (den inbäddade avancerade texteditorn) finns följande alternativ tillgängliga:</para>
+</formalpara>
+
+<itemizedlist>
+<listitem>
+<para
+>Styr radbrytningsbeteendet i dokumentfönstret.</para>
+</listitem>
+<listitem>
+<para
+>Visa eller dölj olika kolumner längs dokumentfönsterkanter: radnummer, ikoner och dessutom bokmärken i rullningslisten.</para>
+</listitem>
+<listitem>
+<para
+>Styr visning av ihopdragna (tillfälligt dolda) avsnitt i en källkodstext.</para>
+</listitem>
+</itemizedlist>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><guimenu
+>Projekt</guimenu
+></term>
+<listitem>
+<para
+>Allt arbete i &tdevelop; är baserat på <emphasis
+>projekt</emphasis
+>, som i grunden samlar källkodsfiler, bygghanteringsfiler och annan information i en projektkatalog. Med den här menyn bestämmer du vilket projekt som används, vilka egenskaper det har och några andra hanteringsalternativ. I synnerhet:</para>
+
+<formalpara>
+<title
+>Öppna ett projekt</title>
+<para
+>Tillåter att nya projekt skapas, befintliga öppnas och import av projekt från andra miljöer.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Projektalternativ</title>
+<para
+>Gör det möjligt att definiera en hel mängd olika projektegenskaper.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Klasshantering</title>
+<para
+>Lägg till nya klasser i projektet och gå igenom arvträdet för en klass.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Distribuera projekt</title>
+<para
+>Hjälper till att bygga paket för distribution av projektet.</para>
+</formalpara>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><guimenu
+>Bygg</guimenu
+></term>
+<listitem>
+<para
+>Den här menyn handlar helt och hållet om att kompilera och dokumentera projektet. Sålunda är den bara användbar när ett projekt verkligen är öppet. I detta fall tillhandahåller den följande alternativ:</para>
+
+<formalpara>
+<title
+>Kompilera, länka och köra</title>
+<para
+>Tillåter att hela projektet eller delar av det kompileras och länkas, samt kör programmet inifrån den integrerade utvecklingsmiljön.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Förberedande byggåtgärder</title>
+<para
+>Det här beror i själva verket på byggsystemet som du använder för projektet. I fallet med automake-projekt tillåter de att köra <filename
+>Makefile.cvs</filename
+> och <filename
+>configure</filename
+> enskilt. Det finns också möjlighet att ta bort skapade filer från projektet, på olika nivåer.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Installera programmet</title>
+<para
+>Tillåter att programmet installeras, både i lokala kataloger och i systemkataloger som bara är tillgängliga för systemadministratören.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Dokumentation av programmeringsgränssnittet</title>
+<para
+>Bygg eller ta bort dokumentation av projektets programmeringsgränssnitt baserad på doxygen, enligt definitionen i projektalternativen.</para>
+</formalpara>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><guimenu
+>Avlusa</guimenu
+></term>
+<listitem>
+<para
+>Även om menyn fylls i så fort ett projekt är aktivt, är den förstås bara användbar om själva projektet tidigare har kompilerats med avlusningsinformation (det ställs i huvudsak in under <menuchoice
+><guimenu
+>Projekt</guimenu
+> <guimenuitem
+>Projektinställningar...</guimenuitem
+></menuchoice
+>). I detta fall finns följande alternativ tillgängliga:</para>
+
+<formalpara>
+<title
+>Vanliga avlusningsåtgärder</title>
+<para
+>Den första delen i menyn <guimenu
+>Avlusa</guimenu
+> tillhandahåller ett grafiskt gränssnitt till GDB, &GNU;:s symboliska avlusare. Den gör det möjligt att starta och stoppa programmet i avlusaren och stega igenom det på olika sätt.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Brytpunkter</title>
+<para
+>&tdevelop; tillhandahåller flera möjligheter att ange brytpunkter i programmets källkod. Ett är genom användning av menyalternativet <guimenuitem
+>Växla brytpunkt</guimenuitem
+>.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Avancerad avlusning</title>
+<para
+>Andra alternativ i menyn <guimenu
+>Avlusa</guimenu
+> tillåter mer avancerad analys av programmet. Använd <keycombo
+>&Shift; <keycap
+>F1</keycap
+></keycombo
+> för att få mer information om deras syfte.</para>
+</formalpara>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><guimenu
+>Skript</guimenu
+></term>
+<listitem>
+<para
+>Du kan anropa diverse skript från menyn för att enklare åstadkomma långtråkiga ändringar av texten i editorfönstret som för närvarande används. Tillgängliga åtgärder beror dock på skriptet som väljes. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><guimenu
+>Fönster</guimenu
+></term>
+<listitem>
+<para
+>Det här är ganska standardmässigt. Du kan välja alla öppna dokumentfönster samt stänga ett eller flera dokumentfönster här. Du kan till och med välja en uppsättning dokumentfönster som ska stängas på en gång.</para>
+
+<para
+>Beroende på editorinsticksprogrammet du använder, kanske det också finns andra menyalternativ. Kate, det förvalda editorinsticksprogrammet, tillåter exempelvis också att editorfönstret delas horisontellt eller vertikalt.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><guimenu
+>Verktyg</guimenu
+></term>
+<listitem>
+<para
+>&tdevelop; är mycket anpassningsbart. Du kan välja din favoriteditor för dokument samt tillhandahålla externa och insticksverktyg för att utöka funktionerna i den grundläggande integrerade utvecklingsmiljön. Menyn <guimenu
+>Verktyg</guimenu
+> avspeglar de flesta av dessa inställningar.</para>
+
+<formalpara>
+<title
+>Avancerad redigering</title>
+<para
+>Den övre delen av menyalternativ i <guimenu
+>Verktyg</guimenu
+> tillhandahålls av editorinsticksprogrammet som används. Du kan välja din favoriteditor via <menuchoice
+><guimenu
+>Inställningar</guimenu
+> <guimenuitem
+>Anpassa KDevelop...</guimenuitem
+> <guilabel
+>Editor</guilabel
+></menuchoice
+>. Så fort en redigerbar dokumentfil väljes, tillhandahåller den övre delen av menyn <guimenu
+>Verktyg</guimenu
+> avancerade redigeringskommandon, specifika för editorn som används.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Hantering av webbsidor</title>
+<para
+>Om det aktiva dokumentfönstret innehåller en HTML-sida (som t.ex. visas från <guilabel
+>Dokumentation</guilabel
+>), visar <guimenu
+>Verktyg</guimenu
+> ytterligare menyalternativ som tillhandahåller olika sätt att hantera webbsidor.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Övriga verktyg</title>
+<para
+>Oftast finns det en mängd andra alternativ enligt de verktyg som för närvarande är tillgängliga. Använd <keycombo
+>&Shift;<keycap
+>F1</keycap
+></keycombo
+> för att få mer information om deras syfte.</para>
+</formalpara>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><guimenu
+>Inställningar</guimenu
+></term>
+<listitem>
+<para
+>Den här menyn låter dig visa och dölja menyraden, verktygsrader och statusraden. Dessutom kan du anpassa genvägar, verktygsrader, underrättelser, editorn och &tdevelop;s allmänna beteende.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+><guimenu
+>Hjälp</guimenu
+></term>
+<listitem>
+<para
+>Här kan du visa KDevelops handbok, slå upp begrepp i diverse dokumentationsfiler, visa manualsidor (det traditionella Unix manualformatet) och infosidor (GNU manualformatet). Dessutom kan du rapportera fel och få viss information om den nuvarande versionen av KDevelop och dess upphovsmän.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+
+<sect2 id="gettingstarted-overview-tools">
+<title
+>Vad är verktygsvyerna till för?</title>
+
+<para
+>Med användargränssnittet IDEA-fönsterläge omges arbetsytan av tre rader med knappar, så kallade <emphasis
+>verktygsvyflikar</emphasis
+>. De gör att man kan komma åt <emphasis
+>verktygsvyfönster</emphasis
+> som åstadkommer viktiga uppgifter under programvaruutvecklingen. Var och en av dessa tre rader verktygsvyer tjänar olika huvudsyften.</para>
+
+<itemizedlist>
+<listitem>
+<formalpara>
+<title
+>Vänster sida</title>
+<para
+>Ger möjlighet att komma åt verktyg för navigering och urval.</para>
+</formalpara>
+</listitem>
+
+<listitem>
+<formalpara>
+<title
+>Underkanten</title>
+<para
+>Vyerna visar meddelanden som skapas av olika verktyg.</para>
+</formalpara>
+</listitem>
+
+<listitem>
+<formalpara>
+<title
+>Höger sida</title>
+<para
+>Ger möjlighet att komma åt dokumentation och verktyg för källkodshantering.</para>
+</formalpara>
+</listitem>
+</itemizedlist>
+
+<para
+>Antal verktygsvyflikar som visas kommer att ändras när ett projekt väl har öppnats att arbeta med. Fler verktyg för att arbeta med projektet kommer då att vara tillgängliga. Det verkliga antalet verktygsvyer beror på de <link linkend="plugin-tools"
+>insticksverktyg</link
+> som för närvarande är tillgängliga i &tdevelop;. Du hittar mer om detta ämne i kapitlet <link linkend="setup"
+>Anpassa KDevelop</link
+>.</para>
+
+<para
+>För närvarande, när inget projekt är öppet, och det normala antalet insticksverktyg är laddade, finns följande verktygsvyer. Genom att klicka på en flik öppnas eller stängs verktygsvyns fönster.</para>
+
+<variablelist>
+<varlistentry>
+<term
+>Navigering och urval</term>
+<listitem>
+<formalpara>
+<title
+>Filväljare</title>
+<para
+>Tillhandahåller en ruta för att navigera i katalogträdet och välja filer att arbeta med precis som du gör i &konqueror;. Att klicka på en fil öppnar den i ett lämpligt redigeringsfönster på arbetsytan. Ett högerklick i filväljarens område gör att en meny för navigering och filhantering visas.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Fillista</title>
+<para
+>Listar filer som för närvarande är öppna. Att klicka på en fil väljer oftast dess redigeringsfönster på arbetsytan. Använd det för att snabbt navigera bland ett stort antal öppna filer. Dessutom ger vyn ett sätt att organisera öppna filer i olika <emphasis
+>sessioner</emphasis
+>. Det är särskilt användbart i mycket stora och komplexa projekt, för att hjälpa utvecklaren att koncentrera sig på olika uppgifter. Att högerklicka på en fil gör att en filhanteringsmeny dyker upp.</para>
+</formalpara>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Visning av meddelanden</term>
+<listitem>
+<formalpara>
+<title
+>Program</title>
+<para
+>Visar utmatningen från ett program som startas inifrån &tdevelop;.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Jämförelse</title>
+<para
+>Används för att visa innehållet i filer med programfixar. Visar utmatningen från verktyget för visning av skillnader, som startas från menyn <menuchoice
+><guimenu
+>Verktyg</guimenu
+> <guimenuitem
+>Visning av skillnader...</guimenuitem
+></menuchoice
+>.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Meddelanden</title>
+<para
+>Visar meddelanden som skapas av byggverktygen som anropas inifrån &tdevelop;, oftast från menyn <guimenu
+>Bygg</guimenu
+>.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Sök i filer</title>
+<para
+>Visar listan med objekt som hittas av den allmänna sökfunktionen som startas från menyn <menuchoice
+><guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Sök i filer...</guimenuitem
+></menuchoice
+>. Genom att klicka på en rad här, öppnar automatiskt filen på angiven position i ett redigeringsfönster.</para>
+</formalpara>
+
+<formalpara>
+<title
+>Ersätt</title>
+<para
+>Listar resultat av den allmänna sök- och ersättningsfunktionen som startas från menyn <menuchoice
+><guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Sök-välj-ersätt...</guimenuitem
+></menuchoice
+>. I den vyn kan du för varje hittat objekt bestämma dig för om du verkligen vill ersätta det eller inte.</para>
+</formalpara>
+<note>
+<para
+>Den allmänna sök- och ersättningsfunktionen är i själva verket bara tillgänglig efter ett projekt har laddats i &tdevelop;. Annars är verktyget i menyn <menuchoice
+><guimenu
+>Redigera</guimenu
+> <guimenuitem
+>Sök-välj-ersätt</guimenuitem
+></menuchoice
+> inte aktiverat.</para>
+</note>
+
+<formalpara>
+<title
+>Konsol</title>
+<para
+>Öppnar ett terminalemuleringsfönster som liknar <application
+>Konsole</application
+> i &kde; där du kan använda tangentbordskommandon med ett traditionellt &UNIX; kommandoradsgränssnitt.</para>
+</formalpara>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term
+>Dokumentation och källkodshantering</term>
+<listitem>
+<formalpara>
+<title
+>Dokumentation</title>
+<para
+>&tdevelop; ger tillgång till en mängd dokumentation via det här verktyget. Här kan du komma åt dokumentfiler, oftast direkt från en annan dator, på ett strukturerat sätt. Det finns flera sätt att direkt komma åt värdefull information från handböcker om &kde; och &Qt;.</para>
+</formalpara>
+
+<para
+>Se kapitlen <link linkend="documentation"
+>Dokumentation</link
+> och <link linkend="setup-docu"
+>Anpassa dokumentationen</link
+> för mer information.</para>
+
+<formalpara>
+<title
+>Kodsnuttar</title>
+<para
+>Verktyget låter dig lagra utvald text permanent för senare användning vid andra redigeringsomgångar. Det är ett mycket flexibelt verktyg, eftersom alla textsnuttar som lagras här kan innehålla en uppsättning variabler, som får sina verkliga värden när en sådan textsnutt infogas i någon annan text.</para>
+</formalpara>
+<para
+>Mer information om detta är tillgänglig i kapitlen <link linkend="editing-snippets"
+>Kodsnuttar</link
+> och <link linkend="setup-snippets"
+>Ställa in verktyget för kodsnuttar</link
+>.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</sect2>
+</sec