diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-03 11:05:10 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-12-03 11:05:10 -0600 |
commit | f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b (patch) | |
tree | 1f78ef53b206c6b4e4efc88c4849aa9f686a094d /tde-i18n-sv/docs/tdevelop | |
parent | 85ca18776aa487b06b9d5ab7459b8f837ba637f3 (diff) | |
download | tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.tar.gz tde-i18n-f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b.zip |
Second part of prior commit
Diffstat (limited to 'tde-i18n-sv/docs/tdevelop')
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 Binary files differnew file mode 100644 index 00000000000..a66c28512b1 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/appwizard.png 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 Binary files differnew file mode 100644 index 00000000000..8fe8eb3ef08 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/index.cache.bz2 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 <qapplication.h> +#include <qpushbutton.h> + +int main( int argc, char **argv ) +{ +QApplication a( argc, argv ); + +QPushButton hello( "Hello world!", 0 ); +hello.resize( 100, 30 ); + +a.setMainWidget( &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 <qapplication.h> +#include <qpushbutton.h> + +int main( int argc, char **argv ) +{ +QApplication a( argc, argv ); + +QPushButton hello( "Hello world!" , 0); +hello.resize( 100, 30 ); + +a.setMainWidget( &hello ); + +QObject::connect(&hello, SIGNAL( clicked() ), &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 (&hello, SIGNAL( clicked() ), &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 <kapplication.h> +#include <qpushbutton.h> + +int main( int argc, char **argv ) +{ +KApplication a( argc, argv ); + +QPushButton hello( "Hello world!", 0 ); +hello.resize( 100, 30 ); + +a.setTopWidget( &hello ); + +QObject::connect(&hello, SIGNAL( clicked() ), &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 && 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, &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 < 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&)), +20 this, SLOT(changeStatusbar(const QString&))); +21 connect(m_view, SIGNAL(signalChangeCaption(const QString&)), +22 this, SLOT(changeCaption(const QString&))); +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 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> +2 <kpartgui name="kscribble" version="1"> +3 <MenuBar> +4 <Menu name="custom" +><text +>C&ustom</text> +5 <Action name="custom_action" /> +6 </Menu> +7 </MenuBar> +8 </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 &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 & 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 & Associates</publishername +></publisher> +<isbn +>ISBN 0596000855</isbn> +</biblioentry> + +<biblioentry> +<title +>Gui Programming With Python : Using the Qt Toolkit</title> +<edition +>Bk&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 & 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 & 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 Binary files differnew file mode 100644 index 00000000000..b3c37cb7a89 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kde_app_devel/kscribblefiles.png 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 Binary files differnew file mode 100644 index 00000000000..8c0de175f33 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kdearch/index.cache.bz2 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 &, 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 &, 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 +><!DOCTYPE kpartgui> +<kpartgui name="kview"> + <MenuBar> + <Menu name="view" > + <Action name="zoom50" /> + <Action name="zoom100" /> + <Action name="zoom200" /> + <Action name="zoomMaxpect" /> + <Separator/> + <Action name="fullscreen" /> + </Menu> + </MenuBar> +</kpartgui> +</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("&Half size"), ALT+Key_0, + this, SLOT(slotHalfSize()), + actionCollection(), "zoom50" ); + new KAction ( i18n("&Normal size"), ALT+Key_1, + this, SLOT(slotDoubleSize()), + actionCollection(), "zoom100" ); + new KAction ( i18n("&Double size"), ALT+Key_2, + this, SLOT(slotDoubleSize()), + actionCollection(), "zoom200" ); + new KAction ( i18n("&Fill Screen"), ALT+Key_3, + this, SLOT(slotFillScreen()), + actionCollection(), "zoomMaxpect" ); + new KAction ( i18n("Fullscreen &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 +><MenuBar></literal +>, innehÃ¥ller en deklaration av en menyrad. Du kan ocksÃ¥ infoga hur mÃ¥nga <literal +><ToolBar></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 +><Menu name="image" > + <text>&amp;Image</text> + ... +</Menu> +</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 "&" pÃ¥ en form som följer XML-syntaxen "&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 +><Action></literal +>. Skiljelinjen i skärmbilderna motsvarar elementet <literal +><Separator></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 +><ToolBar name="locationToolBar" fullWidth="true" newline="true" > + <text>Location Toolbar</text> + <Action name="clear_location" /> + <Action name="location_label" /> + <Action name="toolbar_url_combo" /> + <Action name="go_url" /> +</ToolBar> +</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 +><Menu name="file"> + <text>&amp;Location</text> + ... + <ActionList name="openwith"> + ... +</Menu> +</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<QPopupMenu *>(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 +>... +<Menu name="context_popup"> + <Action name="file_add"/> + <Action name="file_remove"/> +</Menu> +... +</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("&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("<qt>This demonstrates <b>Qt</b>'s" + " rich text engine.<ul>" + "<li>Foo</li>" + "<li>Bar</li>" + "</ul></qt>")) +</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<KParts::Factory*>(factory); + QObject *obj = partFactory->createPart(parentWidget, widgetName, + parent, name, "KParts::ReadOnlyPart"); + ... +} else { + cout << "Tjänsten implementerar inte rätt tillverkare" << 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(), &error)) + cout << "Start av KIO-server misslyckades med meddelandet " << error << endl; +} +... +QByteArray data, replyData; +QCString replyType; +QDataStream arg(data, IO_WriteOnly); +arg << true; +if (!client->call("kio_uiserver", "UIServer", "setListMode(bool)", + data, replyType, replyData)) + cout << "Anrop till kio_uiserver misslyckades" << 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 << "Typ: " << type->name() < endl; +cout << "Ikon: " << type->icon() < endl; +cout << "Kommentar: " << type->icon() < endl; +QStringList patterns = type->patterns(); +QStringList::ConstIterator it; +for (it = patterns.begin(); it != patterns.end(); ++it) + cout << "Mönster: " << (*it) << 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 << "Kunde inte avgöra typen" << endl; +else + cout << "Typ: " << type->name() << 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 << "Kunde inte avgöra typen" << endl; +else + cout << "Typ: " << result->mimeType() << 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 << "Kunde inte avgöra typen" << endl; +else + cout << "Typ: " << result->mimeType() << 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 << "Kunde inte avgöra typen" << endl; +else + cout << "Typ: " << type << 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 << "Mime type: " << ((KIO::MimetypeJob *)job)->mimetype() << 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 << "Namn: " << service->name() << 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 << "Namn: " << service->name() << endl; +else + cout << "Ingen lämplig tjänst hittades" << 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 << "http://www.ietf.org/rfc/rfc1341.txt?number=1341"; +urlList << "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 << "mkdir gick bra" << 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 &url, int permission)</term> +<listitem +><para +>Skapar en katalog, valfritt med vissa rättigheter. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::rmdir(const KURL &url)</term> +<listitem +><para +>Tar bort en katalog. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::chmod(const KURL &url, int permissions)</term> +<listitem +><para +>Ändrar rättigheter för en fil. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::rename(const KURL &src, const KURL &dest, bool overwrite)</term> +<listitem +><para +>Byter namn pÃ¥ en fil. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::symlink(const QString &target, const KURL &dest, bool overwrite, bool showProgressInfo)</term> +<listitem +><para +>Skapar en symbolisk länk. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::stat(const KURL &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 &url, bool reload, bool showProgressInfo)</term> +<listitem +><para +>Överför data frÃ¥n en webbadress. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::put(const KURL &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 &url, const QByteArray &data, bool showProgressInfo)</term> +<listitem +><para +>Sänder data. Särskild för HTTP. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::mimetype(const KURL &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 &src, const KURL &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 &src, const KURL &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 &url, bool showProgressInfo)</term> +<listitem +><para +>Tar bort en ensam fil </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::listDir(const KURL &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 &url, bool showProgressInfo)</term> +<listitem +><para +>Liknar funktionen listDir(), men den här är rekursiv. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::copy(const KURL &src, const KURL &dest, bool showProgressInfo)</term> +<listitem +><para +>Kopierar en fil eller katalog. Kataloger kopieras rekursivt. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::move(const KURL &src, const KURL &dest, bool showProgressInfo)</term> +<listitem +><para +>Flyttar eller byter namn pÃ¥ en fil eller katalog. </para +></listitem> +</varlistentry> + +<varlistentry +><term +>KIO::del(const KURL &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<UDSEntry>. 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 << "Senaste ändring: " << modified << 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 &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 &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 &src, const KURL &dest, bool overwrite)</para +></listitem +></varlistentry> + +<varlistentry +><term +>ta bort: Tar bort en fil eller katalog.</term> +<listitem +><para +>void del(const KURL &url, bool isFile)</para +></listitem +></varlistentry> + +<varlistentry +><term +>lista: Listar innehÃ¥llet i en katalog.</term> +<listitem +><para +>void listDir(const KURL &url)</para +></listitem +></varlistentry> + +<varlistentry +><term +>skapa katalog: Skapar en katalog.</term> +<listitem +><para +>void mkdir(const KURL &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 &url)</para +></listitem +></varlistentry> + +<varlistentry +><term +>Ändrar Ã¥tkomsträttigheter för en fil.</term> +<listitem +><para +>void chmod(const KURL &url, int permissions)</para +></listitem +></varlistentry> + +<varlistentry +><term +>Avgör Mime-typ för en fil.</term> +<listitem +><para +>void mimetype(const KURL &url)</para +></listitem +></varlistentry> + +<varlistentry +><term +>Kopierar en fil.</term> +<listitem +><para +>copy(const KURL &url, const KURL &dest, int permissions, bool overwrite)</para +></listitem +></varlistentry> + +<varlistentry +><term +>Skapar en symbolisk länk.</term> +<listitem +><para +>void symlink(const QString &target, const KURL &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 <värddator>" 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 Binary files differnew file mode 100644 index 00000000000..63acf27ba41 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/kdearch/whatsthis.png 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 Binary files differnew file mode 100644 index 00000000000..f4a133b00ef --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-general.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png Binary files differnew file mode 100644 index 00000000000..dfa3aff2032 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-indent.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png Binary files differnew file mode 100644 index 00000000000..d330427aaeb --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/SF-other.png 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 — 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 — 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 +><projektnamn>.tdevelop</filename +> och <filename +><projektnamn>.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 +><projektnamn>.tdevelop</filename +>: Global projektinställningsinformation.</member> + <member +><filename +><projektnamn>.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 +><projektnamn>.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à, 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 ></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 ></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 ></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' && cvs -d '/home/utveckling/min_cvsrot' \ + import -m 'nytt projekt' '' 'leverantör' 'start' &&\ + 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 ></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 +>< 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 ></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 +>< 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 Binary files differnew file mode 100644 index 00000000000..e6c505ba281 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-file-popup.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.png Binary files differnew file mode 100644 index 00000000000..a0ccbd0caf4 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-manager.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.png Binary files differnew file mode 100644 index 00000000000..4779dc5636e --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-subproject-popup.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.png Binary files differnew file mode 100644 index 00000000000..82dd45a417b --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/automake-target-popup.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.png b/tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.png Binary files differnew file mode 100644 index 00000000000..c6dcfafa354 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/automakemanager.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.png Binary files differnew file mode 100644 index 00000000000..f00a120745b --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/build-commands.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.png Binary files differnew file mode 100644 index 00000000000..1cc8f1c1dbb --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/build-configurations.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.png Binary files differnew file mode 100644 index 00000000000..6a3e0fb0667 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu-automake.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png Binary files differnew file mode 100644 index 00000000000..2fcb3a1ed78 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/build-menu.png 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 Binary files differnew file mode 100644 index 00000000000..fc3c8eed662 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/classview.png 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 Binary files differnew file mode 100644 index 00000000000..511d4107164 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-baselibs.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.png Binary files differnew file mode 100644 index 00000000000..07c90c66939 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog-qt.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.png Binary files differnew file mode 100644 index 00000000000..7650239150d --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-adddialog.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.png Binary files differnew file mode 100644 index 00000000000..2e8ec3ceb32 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-DevHelp.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.png Binary files differnew file mode 100644 index 00000000000..e428fc78624 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-TOC.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.png Binary files differnew file mode 100644 index 00000000000..2ed9038841f --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-bookmark.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.png Binary files differnew file mode 100644 index 00000000000..950ff5e149e --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-general.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.png Binary files differnew file mode 100644 index 00000000000..7b812ad190f --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-doctree-textsearch.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.png Binary files differnew file mode 100644 index 00000000000..cdcafbab93e --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-chm.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.png Binary files differnew file mode 100644 index 00000000000..9a9de749c1f --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-custom.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.png Binary files differnew file mode 100644 index 00000000000..c2879557c9b --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-devhelp.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.png Binary files differnew file mode 100644 index 00000000000..9fbc1333b73 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-dox.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.png Binary files differnew file mode 100644 index 00000000000..11b96d68335 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-edit.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.png Binary files differnew file mode 100644 index 00000000000..276f4aa0ced --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-general.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.png Binary files differnew file mode 100644 index 00000000000..d69e3b86342 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-docu-toc.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.png Binary files differnew file mode 100644 index 00000000000..8e4dbf58fbd --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-editor.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.png Binary files differnew file mode 100644 index 00000000000..11bf8a13cdd --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-selector.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.png Binary files differnew file mode 100644 index 00000000000..e6995d59733 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-file-templates.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.png Binary files differnew file mode 100644 index 00000000000..22ddc00a476 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-general.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.png Binary files differnew file mode 100644 index 00000000000..b87fa3dc8be --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-buildconfig.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.png Binary files differnew file mode 100644 index 00000000000..77b00151ead --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-configure.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.png Binary files differnew file mode 100644 index 00000000000..f453567a72d --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cpp.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.png Binary files differnew file mode 100644 index 00000000000..93ce153fba1 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-cppoptions.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.png Binary files differnew file mode 100644 index 00000000000..cf7db0e5ecd --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-doc.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.png Binary files differnew file mode 100644 index 00000000000..8bc13ad7d04 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-make.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.png Binary files differnew file mode 100644 index 00000000000..472fe4d7a90 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-project-run.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.png Binary files differnew file mode 100644 index 00000000000..ca10b601476 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-select.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.png b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.png Binary files differnew file mode 100644 index 00000000000..2b10fb218e6 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/configure-snippets.png 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 Binary files differnew file mode 100644 index 00000000000..0749ebe08d0 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project-cvs.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.png b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.png Binary files differnew file mode 100644 index 00000000000..4ba1a42e814 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/create-new-project.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.png b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.png Binary files differnew file mode 100644 index 00000000000..2f816121312 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewproject.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.png b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.png Binary files differnew file mode 100644 index 00000000000..4c03ecf91bc --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/createnewprojectoptions.png 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 Binary files differnew file mode 100644 index 00000000000..05a228c7bec --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-add-bookmark.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.png Binary files differnew file mode 100644 index 00000000000..6cac57f4250 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree-reduced.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png Binary files differnew file mode 100644 index 00000000000..ca95dcdf26b --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/doctree.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png b/tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png Binary files differnew file mode 100644 index 00000000000..ed845ee2368 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/doctreeview.png 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 Binary files differnew file mode 100644 index 00000000000..23a5ad9dc00 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-contents.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.png b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.png Binary files differnew file mode 100644 index 00000000000..82294d247da --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/documents-search.png 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 Binary files differnew file mode 100644 index 00000000000..8966de34d21 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/edit-doctree-TOC-entry.png 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 +>"\<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 +>\<</literal> +</entry +><entry +>Matchar början av ett ord </entry +></row> +<row +><entry> + <literal +>\></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 Binary files differnew file mode 100644 index 00000000000..51d3fdd9275 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-lookup.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.png Binary files differnew file mode 100644 index 00000000000..db46b512e28 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-menu.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.png Binary files differnew file mode 100644 index 00000000000..8c0349868f0 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-ctags-regenerate.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.png Binary files differnew file mode 100644 index 00000000000..2bffdcf4ea9 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-find-menu.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.png Binary files differnew file mode 100644 index 00000000000..842d539a2b7 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-search-doc.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.png b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.png Binary files differnew file mode 100644 index 00000000000..6dcfe8238e1 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/editor-switch-header.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png b/tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png Binary files differnew file mode 100644 index 00000000000..9ba69ae95c2 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/empty-ide.png 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 Binary files differnew file mode 100644 index 00000000000..ecc3bbb19af --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-close-selected.png 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 Binary files differnew file mode 100644 index 00000000000..21e6e09a77e --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-create.png 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 Binary files differnew file mode 100644 index 00000000000..c84d399a172 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/file-list-session-default.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.png b/tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.png Binary files differnew file mode 100644 index 00000000000..61446fcbb3a --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/file-selector.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png b/tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png Binary files differnew file mode 100644 index 00000000000..92990d4f9a9 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/filetree.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.png b/tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.png Binary files differnew file mode 100644 index 00000000000..fb975bce81d --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/find-in-files.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png b/tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png Binary files differnew file mode 100644 index 00000000000..98d8b3d3617 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/folded-tabs.png 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> +</sect1> + +<sect1 id="gettingstarted-configure"> +<title +>NÃ¥gra inställningar</title> + +<para +>Innan vi pÃ¥börjar det första exempelprojektet pÃ¥ riktigt, bör vi anpassa &tdevelop;s beteende efter vÃ¥ra behov. Även om de flesta standardinställningarna redan är lämpliga, finns det nÃ¥gra ställen som det vore bra att ändra.</para> + +<note> +<para +>Om du vill veta mer om inställning av &tdevelop;, ta en titt pÃ¥ kapitlet <link linkend="setup" +>Anpassa KDevelop</link +>.</para> +</note> + +<sect2 id="gettingstarted-configure-general"> +<title +>NÃ¥gra allmänna inställningar</title> + +<para +>Klicka pÃ¥ menyn <menuchoice +><guimenu +>Inställningar</guimenu +> </menuchoice +> för att anpassa &tdevelop; och välj <menuchoice +><guimenuitem +>Anpassa KDevelop...</guimenuitem +></menuchoice +>. Dialogrutan <guilabel +>Anpassa KDevelop</guilabel +> dyker upp, och visar följande inställningssida, <guilabel +>Allmänt</guilabel +>, till höger.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-general.png" format="PNG"/> +</imageobject> +<caption> +<para +>Den allmänna inställningsdialogrutan i &tdevelop;</para> +</caption> +</mediaobject> +</screenshot> + +<para +>De flesta standardinställningarna är ok, men tvÃ¥ av inställningarna kanske du vill ändra.</para> + +<formalpara> +<title +>Standardprojektkatalog</title> +<para +>När &tdevelop; startas för första gÃ¥ngen är den troligen förinställd till din hemkatalog. De flesta föredrar dock en särskild projektkatalog för programvaruutveckling. Ändra textrutan till huvudkatalogen för utveckling som du föredrar. Du kan välja det i katalogträdet om du klickar pÃ¥ knappen <guilabel +>Öppna fildialog</guilabel +> markerad med en katalogikon, till höger om textrutan.</para> +</formalpara> + +<para +>I vÃ¥rt exempel antar vi (i brist pÃ¥ bättre) en användare som kallas <filename class="directory" +>utvecklare</filename +>. Ersätt därför alltid <quote +>utvecklare</quote +> med ditt användarnamn. VÃ¥r utvecklare utnyttjar huvudkatalogen <filename class="directory" +>/home/utvecklare/projekt</filename +> för själva utvecklingen. Ã…terigen, ersätt <filename class="directory" +>projekt</filename +> med namnet pÃ¥ din utvecklingskatalog. </para> + +<para +>&tdevelop; skapar normalt en egen underkatalog under huvudkatalogen för varje nytt projekt du skapar. Alla filer i ett projekt som till exempel heter <quote +>Hello</quote +> kommer i vÃ¥rt fall att placeras i katalogen <filename class="directory" +>/home/utvecklare/projekt/hello</filename +>.</para> + +<para +>Du kan förstÃ¥s tillfälligt överskrida dessa kataloginställningar om du behöver det. Se kapitlet <link linkend="applicationwizard" +>Programguide</link +> för mer information om det.</para> + +<formalpara> +<title +>Kompilatorutmatning</title> +<para +>SÃ¥ fort &tdevelop; kompilerar nÃ¥gon källkod, visas meddelanden frÃ¥n byggverktygen, som <application +>make</application +>, i fönstret <guilabel +>Meddelanden</guilabel +> längst ner pÃ¥ arbetsytan. Oftast är meddelandena överväldigande ordrika. För att fÃ¥ en bättre överblick av vad som händer, har &tdevelop; ett antal inbyggda sätt att förkorta meddelandena.</para> +</formalpara> + +<para +>Beroende pÃ¥ vilken version av &tdevelop; du använder, kan inställningen <guilabel +>Kompilatorutmatning</guilabel +> vara förinställd till <quote +>fullständig</quote +>, vilket gör att allt innehÃ¥ll i meddelanden visas i sin helhet. Du vill nog ändra det till den mycket mer praktiska inställningen <quote +>mycket kort</quote +>. Välj den helt enkelt i kombinationsrutan.</para> + +<caution> +<para +>Var medveten om att bara <emphasis +>den mest grundläggande</emphasis +> informationen visas i fönstret <guilabel +>Meddelanden</guilabel +> med denna inställning. Om fel skulle uppstÃ¥ när du bygger, behöver du troligen se mer av, om inte hela, meddelandetexten. Meddelandena är dock inte borta. Högerklicka bara i fönstret <guilabel +>Meddelanden</guilabel +> och välj t.ex. <quote +>Fullständig kompilatorutmatning</quote +> i den sammanhangsberoende menyn.</para> +</caution> +</sect2> + +<sect2 id="gettingstarted-configure-search"> +<title +>Initiera sökindex för dokumentation</title> + +<para +>Det finns en annan, inte sÃ¥ uppenbar, inställning som helst ska göras innan själva utvecklingsarbetet pÃ¥börjas. Det beror pÃ¥ att du regelbundet kommer att vilja göra sökningar i dokumentationen under utvecklingen. &tdevelop; kräver att ett antal sökindex skapas innan en sÃ¥dan sökÃ¥tgärd kan genomföras. LÃ¥t oss initiera dem innan vi utför de första stegen i det verkliga arbetet med &tdevelop;.</para> + +<para +>Öppna verktygsvyn <guilabel +>Dokumentation</guilabel +> pÃ¥ höger sida i &tdevelop;s huvudfönster. Öppna där dialogsidan <guilabel +>Sök</guilabel +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="documents-search.png" format="PNG"/> +</imageobject> +<caption +><para +>Var sökindex ska skapas.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Klicka nu pÃ¥ knappen <guibutton +>Uppdatera inställning</guibutton +> för att försäkra dig om att de grundläggande sökverktygen är riktigt inställda. En dialogruta ska dyka upp, som säger <quote +>Configuration file updated</quote +>. Klicka pÃ¥ <guibutton +>Ok</guibutton +> för att stänga den.</para> + +<para +>När det här är gjort, är &tdevelop; klar att tolka känd dokumentation och bygga nÃ¥gra användbara sökindex frÃ¥n den. Klicka pÃ¥ knappen <guibutton +>Uppdatera index</guibutton +> till höger. Nu dyker dialogrutan <guilabel +>Skapar sökindex</guilabel +> upp, och visar förloppet när index skapas.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-docu-indexgen.png" format="PNG"/> +</imageobject> +<caption +><para +>&tdevelop; skapar sökindex för dokumentation.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Det tar en viss tid beroende pÃ¥ dokumentationens storlek och datorns prestanda. Men till sist ändras knappen <guibutton +>Cancel</guibutton +> till <guibutton +>Ok</guibutton +>. Klicka bara pÃ¥ knappen för att fortsätta.</para> + +<note> +<itemizedlist> +<listitem> +<para +>Det bör normalt fungera direkt, men i vissa fall kanske inte programmet <application +>htdig</application +> som &tdevelop; använder för att utföra fulltextsökning kanske inte är riktigt inställt. Titta i kapitlet <link linkend="setup-docu-textsearch" +>Inställning av index för textsökning</link +> för mer hjälp i detta fall.</para> +</listitem> +<listitem> +<para +>För att kunna slÃ¥ upp specifik information om &kde;:s och &Qt;:s programmeringsgränssnitt, krävs att <emphasis +>KDELibs Apidocs</emphasis +> fanns när &tdevelop; installerades. Om du har problem med att skapa index eller utföra <link linkend="gettingstarted-edit-defs" +>exemplen med uppslagning av identifierare</link +> senare i kapitlet, försäkra dig om att dokumentationen finns och att &tdevelop; kan komma Ã¥t den. Se <link linkend="tdevelop-install" +>Installera KDevelop</link +> för mer information.</para> +</listitem> +</itemizedlist> +</note> +</sect2> +</sect1> + + +<sect1 id="gettingstarted-new"> +<title +>Starta ett nytt projekt</title> + +<para +>Nästan alla program bestÃ¥r av dussintals, hundratals eller till och med tusentals filer som mÃ¥ste hÃ¥llas strukturerade och möjliga att underhÃ¥lla. För att Ã¥stadkomma det, organiserar &tdevelop; utveckling av programvara i <emphasis +>projekt</emphasis +>. Därför är det första praktiska steget för att utvecklar programvara i &tdevelop; oftast att skapa ett nytt projekt.</para> + +<para +>Tursamt nog är det ganska lätt att Ã¥stadkomma det. &tdevelop; tillhandahÃ¥ller verktyget Programguide för att göra det. (Se kapitlet <link linkend="applicationwizard" +>Komma igÃ¥ng: Programguiden</link +> för mer information.)</para> + +<para +>Nu skapar vi ett enkelt &kde;-programprojekt för att Ã¥skÃ¥dliggöra hur enkelt det kan Ã¥stadkommas, och vilka filer och verktyg som &tdevelop; tillhandahÃ¥ller. Därigenom tar vi en snabbtitt pÃ¥:</para> + +<simplelist> +<member +><link linkend="gettingstarted-new-setup" +>Hur man skapar ett nytt projekt med hjälp av programguiden.</link +></member> +<member +><link linkend="gettingstarted-new-files" +>Vilka filer som programguiden skapade frÃ¥n början.</link +></member> +<member +><link linkend="gettingstarted-new-toolviews" +>Vad som gäller för de ytterligare verktygsvyer som visas ihop med projektet?</link +></member> +</simplelist> + +<sect2 id="gettingstarted-new-setup"> +<title +>Hur man skapar ett nytt projekt</title> + +<para +>LÃ¥t oss skapa ett ganska enkelt &kde;-projekt, <quote +>Hello World</quote +>. Utför bara följande steg:</para> + +<procedure> +<step> +<para +>Klicka pÃ¥ menyalternativet <menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +>Nytt projekt...</guimenuitem +></menuchoice +> för att starta programguiden.</para> +</step> + +<step> +<para +>Dialogrutan <guilabel +>Skapa nytt projekt</guilabel +> dyker upp. I fönstret längst upp till vänster, <guilabel +>Alla projekt</guilabel +>, finns ett antal programsprÃ¥k listade.</para> + +<substeps> +<step> +<para +>Vi vill bygga ett vanligt &kde;-program i C++. Klicka därför pÃ¥ knappen <guilabel +>+</guilabel +> till vänster om <guilabel +>C++</guilabel +> för att visa innehÃ¥llet.</para> +</step> + +<step> +<para +>En uppsättning möjliga programtyper visas. Vi ska bygga ett &kde;-program, och visa därför nästa undernivÃ¥ via knappen <guilabel +>+</guilabel +> intill <guilabel +>KDE</guilabel +>.</para> +</step> + +<step> +<para +>Nu erbjuds du ett antal möjliga <emphasis +>projektmallar</emphasis +>. GÃ¥ till början av listan och klicka pÃ¥ <guilabel +>Enkelt KDE-program</guilabel +>.</para> + +<para +>En förhandsgranskning och kort beskrivning av programmet som projektmallen kommer att skapa dyker upp i de tvÃ¥ fönstren till höger.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="tutorial-new-project.png" format="PNG"/> +</imageobject> +<caption> +<para +>Välja projektmallen <quote +>Hello World</quote +></para> +</caption> +</mediaobject +></screenshot> +</step> + +<step> +<para +>VÃ¥rt program behöver ett namn. Hitta rutan <guilabel +>Egenskaper</guilabel +> längst ner i dialogrutan och skriv in ett lämpligt namn i inmatningsfältet <guilabel +>Programnamn</guilabel +>.</para> + +<para +>Vi använder <quote +>Hello</quote +> i vÃ¥rt exempel, men du kan använda vad du vill, under förutsättning att namnet bara bestÃ¥r av bokstäver, siffror och understreck. Du kommer att märka att programguiden inte accepterar nÃ¥gra andra tecken.</para> +</step> + +<step> +<para +>Försäkra dig om att textrutan <guilabel +>Plats</guilabel +> under inmatningsfältet visar namnet pÃ¥ huvudkatalogen för projekt, som vi ställde in i kapitlet <link linkend="gettingstarted-configure" +>NÃ¥gra inställningar</link +> ovan. Om den inte gör det, skriv in ett lämpligt katalognamn eller välj ett i kataloglistan som tillhandahÃ¥lls av knappen med katalogikonen till höger.</para> + +<para +>Om allt gick bra, visar raden <guilabel +>Slutgiltig plats</guilabel +> katalogsökvägen som det nya projektet kommer att använda. Om suffixet <quote +>(ogiltig)</quote +> är tillagt, prova med ett annat namn pÃ¥ projektet och/eller försäkra dig om att huvudkatalogen för projekt i textrutan <guilabel +>Plats</guilabel +> verkligen finns och är skrivbar.</para> +</step> + +<step> +<para +>När allting väl är riktigt, aktiveras knappen <guibutton +>Nästa</guibutton +> pÃ¥ raden längst ner i dialogrutan. Klicka pÃ¥ den för att fortsätta.</para> +</step> +</substeps> +</step> + +<step> +<para +>Det för dig till dialogsidan <guilabel +>Projektinställningar</guilabel +>. Försäkra dig om att textrutorna <guilabel +>Upphovsman</guilabel +> och <guilabel +>E-post</guilabel +> är riktigt ifyllda. Oftast är de förinställda till de allmänna användarinställningarna i &kde; som anges i dialogrutan <guilabel +>Lösenord och användarkonto</guilabel +> i &kde;:s inställningscentral. Om de inte är det, ändra dem till värden som du föredrar för programmet.</para> + +<screenshot id="gettingstarted-new-setup-options"> +<mediaobject> +<imageobject> +<imagedata fileref="tutorial-hello-options.png" format="PNG"/> +</imageobject> +<caption> +<para +>Ange ditt namn och (valfritt) e-postaddress.</para> +</caption> +</mediaobject> +</screenshot> + +<note> +<para +>Du mÃ¥ste Ã¥tminstone ange namn för <guilabel +>Upphovsman</guilabel +>. Det krävs för inställning av programmets filer.</para> +</note> + +<para +>Om allt är riktigt, är knappen <guibutton +>Nästa</guibutton +> aktiverad. Klicka pÃ¥ den för att gÃ¥ vidare igen.</para> +</step> + +<step> +<para +>Följande dialogsidor, <guilabel +>Versionskontrollsystem</guilabel +>, <guilabel +>Mall för .h-filer</guilabel +> och <guilabel +>Mall för .cpp-filer</guilabel +>, är inte intressanta för tillfället. Hoppa över dem genom att klicka pÃ¥ knappen <guibutton +>Nästa</guibutton +>, och till sist knappen <guibutton +>Slutför</guibutton +>.</para> +</step> +</procedure> + +<para +>Det var allt! Programguiden tar över och skapar en uppsättning ursprungliga filer i katalogen <guilabel +>Slutgiltig plats</guilabel +> du tillhandahöll i steg 2c ovan.</para> + +<para +>När fasen att skapa filer är klar, öppnar &tdevelop; ett redigeringsfönster med implementeringsfilen för <emphasis +>programmets huvudfönster</emphasis +> (som är <filename +>hello.cpp</filename +> i vÃ¥rt exempel), sÃ¥ att du enkelt kan gÃ¥ vidare.</para> +</sect2> + +<sect2 id="gettingstarted-new-files"> +<title +>Ursprungliga projektfiler</title> + +<para +>Även om vÃ¥rt exempelprojekt Hello är ganska enkelt, skapade programguiden en hel mängd källkod och projekthanteringsfiler. Det enklaste sättet att lista dem är att öppna verktygsvyn <guilabel +>Filträd</guilabel +> längst ner till vänster. DÃ¥ visas en fillista som liknar den nedan.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="tutorial-hello-new.png" format="PNG"/> +</imageobject> +<caption> +<para +>Ursprungliga filer i projektet <quote +>Hello World</quote +></para> +</caption> +</mediaobject> +</screenshot> + +<para +>För att förevisa de huvudsakliga filerna som programguiden skapade, visar vi de flesta kataloggrenarna i verktygsvyn <guilabel +>Filträd</guilabel +> till vänster. Klicka bara pÃ¥ grenarnas namn i trädet för att se själv.</para> + +<para +>Dessutom, enbart i demonstrationssyfte, visar vi ocksÃ¥ de flesta grenarna i verktygsvyn <guilabel +>Hantering av automake</guilabel +> till höger, där nÃ¥gra av projektets källfiler ocksÃ¥ listas.</para> + +<sect3 id="gettingstarted-new-files-copyright"> +<title +>Anmärkningar om copyright</title> + +<para +>Alla program som uppfyller kraven enligt &GNU; mÃ¥ste ha en copyright. Det finns tvÃ¥ nivÃ¥er där copyright krävs, <emphasis +>i enskilda källkodsfiler</emphasis +> och <emphasis +>vid programkörning</emphasis +>. Programguiden har redan lagt till lämplig copyright- och licensinformation i projektfiler.</para> + +<formalpara> +<title +>Copyright pÃ¥ källkodsnivÃ¥</title> +<para +>Kommer du ihÃ¥g dialogsidan <link linkend="gettingstarted-new-setup-options" +> <guilabel +>Projektinställningar</guilabel +></link +> när det nya projektet skapades? Där var du tvungen att ange ditt (utvecklarens) namn och en valfri e-postadress. Titta nu längst upp i redigeringsfönstret <guilabel +>hello.cpp</guilabel +> som för närvarande visas pÃ¥ arbetsytan. Programguiden skrev in denna text längst upp i licenshuvudet för varje källkodsfil som skapades.</para> +</formalpara> + +<programlisting +>/*************************************************************************** + * Copyright (C) 2006 by Ditt Namn * + * ditt.namn@adress.se * + * * + * This program is free software; you can redistribute it and/or modify * +</programlisting> + +<para +>Du hittar exakt samma texthuvuden i varje källkodsfil som skapas inne i &tdevelop; (under förutsättning att du använder lämpliga inbyggda verktyg för att skapa filer). &tdevelop; kommer ihÃ¥g inställningarna i nÃ¥gra mallfiler som du hittar i katalogen <filename class="directory" +>templates</filename +>.</para> + +<formalpara> +<title +>Copyright när programmet körs</title> +<para +>När väl &kde;-programmet kör, kan användaren visa data <guilabel +>Om</guilabel +> programmet, oftast via menyn <guimenu +>Hjälp</guimenu +>. Programguiden tog ocksÃ¥ hand om det. Om du tar en titt i filen <filename +>main.cpp</filename +> hittar du en post som liknar den nedan.</para> +</formalpara> + +<programlisting +>int main(int argc, char **argv) +{ + KAboutData about("hello", I18N_NOOP("Hello"), version, description, + KAboutData::License_GPL, "(C) 2006 Ditt Namn", 0, 0, + "ditt.namn@adress.se"); + about.addAuthor( "Ditt Namn", 0, "ditt.namn@adress.se" ); +</programlisting> + +<para +>Det lägger till huvudutvecklarens namn (<quote +>Ditt Namn</quote +> i vÃ¥rt fall) och e-postadress pÃ¥ copyrightsidan <guilabel +>Om</guilabel +> när den visas, och dessutom ange namnet och adressen pÃ¥ sidan <guilabel +>Upphovsmän</guilabel +>.</para> + +<important> +<para +>SÃ¥ snart du gör betydande ändringar i ett befintligt projekt, försäkra dig om att skriva in ditt namn och e-postadress i copyrightmeddelandet för varje fil du ändrar, och även i copyrightmeddelandet som visas när programmet körs. Var inte tveksam. Du hjälper samfundet för öppen källkod betydligt om du gör det.</para> +</important> +</sect3> + +<sect3 id="gettingstarted-new-files-source"> +<title +>Ursprungliga källkodsfiler</title> + +<para +>Programguiden placerade källkodsfiler i underkatalogen <filename class="directory" +>src</filename +> i projektets katalog. Du hittar filerna <filename +>main.cpp</filename +>, <filename +>hello.h</filename +> och <filename +>hello.cpp</filename +> där, som du kanske förväntade dig.</para> + +<para +>Det finns ytterligare nÃ¥gra filer som du ofta hittar i ett typiskt &kde;-program, närmare bestämt:</para> + +<itemizedlist> +<listitem> +<para +><filename +>hello.desktop</filename +> innehÃ¥ller en del metadata som &tdevelop; använder för att hantera och starta programmet.</para> +</listitem> + +<listitem> +<para +><filename +>hi16-app-hello.png</filename +> och <filename +>hi32-app-hello.png</filename +> innehÃ¥ller nÃ¥gra ursprungliga standardikoner, som &tdevelop; använder för att visa programmet.</para> +</listitem> + +<listitem> +<para +>Till sist, innehÃ¥ller <filename +>helloui.rc</filename +> en beskrivning av programmets användargränssnitt, för närvarande menyerna som programmet tillhandahÃ¥ller.</para> +</listitem> +</itemizedlist> +</sect3> + +<sect3 id="gettingstarted-new-files-doc"> +<title +>Ursprunglig programdokumentation</title> + +<para +>I projektets underkatalog <filename class="directory" +>doc/en</filename +> hittar du filen <filename +>index.docbook</filename +>. Det är en standardmall som kan vara utgÃ¥ngspunkt för att börja skriva lämplig användardokumentation.</para> +</sect3> + +<sect3 id="gettingstarted-new-files-project"> +<title +>Projektfiler och andra filer</title> + +<para +>Du har säkert märkt att filerna vi hittills har introducerat anges med fetstil i verktygsvyn <guilabel +>Filträd</guilabel +>, medan de flesta andra filer inte gör det. Det illustrerar den väsentligt annorlunda användning dessa filer har. InnehÃ¥llet i filer som anges med fetstil pÃ¥verkar programmet direkt. Källkodsfiler skapar koden som ska köras, andra filer tillhandahÃ¥ller nödvändig data eller dokumentation. Filerna mÃ¥ste hanteras och behandlas av projektet under byggetapperna, och kallas därför <emphasis +>projektfiler</emphasis +>.</para> + +<para +>Om du tar en titt pÃ¥ det nedre fönstret i <guilabel +>Hantering av automake</guilabel +> till höger pÃ¥ arbetsytan ser du ocksÃ¥ alla projektfiler listade. Verktyget Hantering av automake använder denna kunskap för att ta hand om bygghantering, som vi inom kort kommer att se.</para> + +<para +>De andra filerna utan fetstil är mer av stödnatur. De tillhör flera särpräglade klasser, enligt följande:</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Bygghantering av projekt</title> +<para +>Dessa filer styr processer för kompilering, installation, skapade av dokumentation, etc. Om projektet använder &GNU; <application +>autotools</application +>, som vÃ¥rt exempel, hittar du filen <filename +>Makefile.am</filename +> i varje projektkatalog. De är en sorts grundläggande kärnfiler för att bygga projektet, som innehÃ¥ller styrkommandon, och som behandlas tillsammans med diverse <filename +>configure</filename +>-filer under byggetapperna. En sÃ¥dan byggprocess skapar slutligen <filename +>Makefile</filename +> i varje katalog. FrÃ¥n dessa bygger verktyget <application +>make</application +> slutligen programmets binärfiler.</para> +</formalpara> + +<para +><filename +>Makefile.am</filename +>-filerna mÃ¥ste underhÃ¥llas genom hela utvecklingsprocessen. Tursamt nog, befriar &tdevelop; dig frÃ¥n det mesta av denna börda med verkyget Hantering av automake, som i grunden är ett grafiskt gränssnitt för att underhÃ¥lla innehÃ¥llet i <filename +>Makefile.am</filename +>-filerna.</para> + +<para +>Andra filer som styr projektets byggprocess som för närvarande listas är <filename +>configure.in.in</filename +> och <filename +>subdirs</filename +> i projektets rotkatalog. De behandlas av nÃ¥gra av filerna i den &kde;-specifika administrationskatalogen <filename class="directory" +>admin</filename +> för att skapa fler filer av typen <filename +>configure</filename +> och <filename +>Makefile</filename +>, och slutligen programmets binärfiler.</para> +</listitem> + +<listitem> +<formalpara> +<title +>Administrationsfiler för &tdevelop;</title> +<para +>&tdevelop; behöver viss egen hanterings- och administrationsdata. Den är placerad i projektets rotkatalog, i vÃ¥rt exempel <filename +>hello.tdevelop</filename +>, <filename +>hello.tdevelop.pcs</filename +>, och <filename +>hello.kdevses</filename +>.</para> +</formalpara> + +<para +>Filen <filename +>xxx.tdevelop</filename +> (där <quote +>xxx</quote +> anger projektnamnet) är särskilt viktig. Den är <emphasis +>huvudsaklig projektfil</emphasis +> i KDevelop 3, och behövs om du senare vill ladda projektet i den integrerade utvecklingsmiljön.</para> + +<warning> +<para +>Försök aldrig ändra, byta namn eller ta bort nÃ¥gon av administrationsfilerna i &tdevelop; själv. Den integrerade utvecklingsmiljön fungerar sannolikt inte pÃ¥ rätt sätt för ditt projekt efterÃ¥t.</para> +</warning> +</listitem> + +<listitem> +<formalpara> +<title +>Filer för projektbeskrivning enligt GNU</title> +<para +>NÃ¥gra filer i projektets rotkatalog krävs för alla program som uppfyller kraven enligt &GNU;. De är <filename +>AUTHORS</filename +>, <filename +>ChangeLog</filename +>, <filename +>INSTALL</filename +>, <filename +>COPYING</filename +> (som innehÃ¥ller GNU GENERAL PUBLIC LICENSE), <filename +>INSTALL</filename +>, <filename +>NEWS</filename +>, <filename +>README</filename +> och <filename +>TODO</filename +>.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Andra filer</title> +<para +>NÃ¥gra andra filer som ännu inte nämnts är:</para> +</formalpara> + +<itemizedlist> +<listitem> +<para +><filename +>Doxyfile</filename +> styr hur den projektspecifika dokumentationen av det interna programmeringsgränssnittet skapas.</para> +</listitem> + +<listitem> +<para +>Katalogen <filename class="directory" +>templates</filename +> innehÃ¥ller filmallar som den integrerade utvecklingsmiljön använder som grund när nya källkodsfiler skapas. Du kan redigera mallarna när som helst. Det nya innehÃ¥llet syns i nästa källkodsfil av motsvarande typ som du skapar.</para> + +<para +>Du kanske vill justera asteriskerna till höger pÃ¥ raderna med copyright som programguiden infogade i mallfilerna för <filename +>cpp</filename +> och <filename +>h</filename +>, sÃ¥ att källkodsfilerna som skapas med dem ser mindre aviga ut.</para> +</listitem> + +<listitem> +<para +>Katalogen <filename class="directory" +>po</filename +> används i översättningssyfte. Den är väsentligen en del av projektfilerna (innehÃ¥ller <filename +>Makefile.am</filename +>), men kommer i huvudsak att användas vid behandling av översättningar. Den är dock inte sÃ¥ intressant för programutvecklaren.</para> +</listitem> + +<listitem> +<para +>Till sist krävs katalogen <filename class="directory" +>admin</filename +> särskilt av &kde;-baserade program. Den tillhandahÃ¥ller en mängd filer som är nödvändiga för att underhÃ¥lla programmets källkod och binärfiler sÃ¥ att de kan integreras pÃ¥ ett riktigt sätt i &kde;-miljön.</para> +</listitem> +</itemizedlist> + +</listitem> +</itemizedlist> +</sect3> +</sect2> + +<sect2 id="gettingstarted-new-toolviews"> +<title +>Ytterligare verktygsvyer</title> + +<para +>Som du märkte visades flera ytterligare verktygsvyer sÃ¥ fort programguiden var klar med det nya projektet. De är bara vettiga under utveckling av projektet, och erbjuder i korthet följande funktioner:</para> + +<note> +<para +>Vilka verktygsvyer som verkligen syns beror pÃ¥ insticksprogrammen som för närvarande är laddade i &tdevelop;. Det finns sätt att styra det. Se kapitlet <link linkend="setup-plugins" +>Insticksverktyg</link +> för instruktioner.</para> +</note> + +<sect3 id="gettingstarted-new-toolviews-left"> +<title +>Navigerings- och urvalsverktyg (vänster sida)</title> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Bokmärken</title> +<para +>Du kan markera vilken rad som helst i en textfil för att snabbt komma tillbaka till positionen varifrÃ¥n som helst. &tdevelop; kommer ihÃ¥g alla sÃ¥dana <emphasis +>bokmärken</emphasis +>, även om du senare stänger redigeringsfönstret. Verktygsvyn <guilabel +>Bokmärken</guilabel +> listar alla bokmärken enligt filnamn och radnummer. Du behöver bara klicka pÃ¥ en sÃ¥dan post för att öppna motsvarande redigeringsfönster och placera markören pÃ¥ angiven rad.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Klasser</title> +<para +>Listar klasser, metoder, etc. kända i projektet. Att klicka pÃ¥ en post öppnar lämplig deklarationsfil eller källkodsfil i ett redigeringsfönster och placerar markören pÃ¥ respektive deklaration eller definition.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Filgrupper</title> +<para +>Sorterar projektets filer i diverse grupper enligt användningsomrÃ¥de, t.ex. Sources (källkod), User Interface (användargränssnitt), Icons (ikoner), Translations (översättningar) och Others (övriga).</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Variabler</title> +<para +>Används av avlusningsverktyget för att visa, utvärdera och bevaka variabler när avlusaren körs.</para> +</formalpara> +</listitem> +</itemizedlist> +</sect3> + +<sect3 id="gettingstarted-new-toolviews-bottom"> +<title +>Meddelanden (längst ner)</title> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Valgrind</title> +<para +><application +>Valgrind</application +> är ett analysverktyg för program som körs. Verktygsvyn listar resultatet av en sÃ¥dan analyskörning. Det används till exempel för att hitta minnesläckor.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Säkerhetsproblem</title> +<para +>Det finns ett insticksverktyg i &tdevelop; för <guilabel +>säkerhetskontroll</guilabel +>. Det analyserar källkodsfilen som för närvarande redigeras, för att hitta flera vanliga säkerhetsproblem som kan uppstÃ¥ i programmet och underrättar användaren om dem i verktygsvyns fönster.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Brytpunkter</title> +<para +>Verktygsvyn möjliggör att explicit sätta, ta bort och hantera brytpunkter för avlusaren i programmets källkodsfiler. Den används i samband med avlusning.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Ctags</title> +<para +>Gör det möjligt att skapa databaser med index av identifierare med det populära programmet <application +>Ctags</application +>. Databasen med taggar kan därefter användas frÃ¥n verktygsvyns fönster för att slÃ¥ upp alla identifierare som behövs i projektets källkod. Genom att klicka pÃ¥ en rad med ett sÃ¥dant funnet objekt, öppnar ett redigeringsfönster och placerar markören pÃ¥ motsvarande identifierar i fönstret.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Problem</title> +<para +>&tdevelop; hÃ¥ller reda pÃ¥ vanliga programmeringsproblem i källkodsfilen som för närvarande redigeras, och underrättar användaren om dem i verktygsvyns fönster.</para> +</formalpara> +</listitem> +</itemizedlist> +</sect3> + +<sect3 id="gettingstarted-new-toolviews-right"> +<title +>Källkodshantering (höger sida)</title> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Hantering av automake</title> +<para +>Verktyget Hantering av automake är egentligen ett grafiskt gränssnitt för att hantera innehÃ¥llet i <filename +>Makefile.am</filename +>-filer i varje projektkatalog. Verktygsvyn använder tvÃ¥ fönster för att styra arbetet. Det övre fönstret speglar en del av projektets underkataloger, närmare bestämt de som explicit innehÃ¥ller <emphasis +>projektfiler</emphasis +>. Varje underkatalog av denna typ mÃ¥ste innehÃ¥lla en <filename +>Makefile.am</filename +>-fil, och kallas ett <emphasis +>delprojekt</emphasis +> i samband med Hantering av automake.</para> +</formalpara> + +<para +>Genom att klicka pÃ¥ ett delprojekt öppnas en lämplig vy av delprojektets projektfiler i det undre fönstret. Filerna som listas här är grupperade enligt sin funktion i <filename +>Makefile.am</filename +> för detta delprojekt.</para> + +<para +>Hantering av automake är ett mycket kraftfullt verktyg för att hantera projektet och dess delprojekt, samt de roller projektfiler spelar när programmet byggs. Vi tar en snabbtitt pÃ¥ nÃ¥gra viktigare delar <link linkend="gettingstarted-extend-automake" +>nedan</link +>. Se kapitlet <link linkend="project-management" +>Bygga och projekthantering</link +> för en utförligare beskrivning.</para> +</listitem> +</itemizedlist> +</sect3> +</sect2> +</sect1> + + +<sect1 id="gettingstarted-edit"> +<title +>NÃ¥gra tips om hur man hanterar dokument</title> + +<para +>I vÃ¥rt exempelprojekt lämnade programguiden filen <filename +>hello.cpp</filename +> öppen i ett redigeringsfönster, sÃ¥ att du omedelbart kan börja arbeta med den. Vi förutsätter att du har god kunskap om hur man använder en editor, sÃ¥ vi säger inte sÃ¥ mycket om det här. Det finns dock ett antal praktiska funktioner i &tdevelop; för att hantera redigeringsfönster med flikar och dokumenten du arbetar med. Vi ger en kortfattad beskrivning av nÃ¥gra, närmare bestämt:</para> + +<simplelist> +<member +><link linkend="gettingstarted-edit-headers" +>Hur man enkelt byter mellan deklarationsfiler och implementeringsfiler.</link +></member> +<member +><link linkend="gettingstarted-edit-defs" +>Hur man snabbt kommer Ã¥t deklarationer och definitioner.</link +></member> +<member +><link linkend="gettingstarted-edit-arrange" +>Hur man arrangerar om redigeringsfönster efter aktuellt behov.</link +></member> +<member +><link linkend="gettingstarted-edit-problems" +>Hur man hÃ¥ller ett öga pÃ¥ vanliga problem.</link +></member> +</simplelist> + +<sect2 id="gettingstarted-edit-headers"> +<title +>Byta mellan deklarationsfiler och implementeringsfiler</title> + +<para +>&tdevelop; tillhandahÃ¥ller ett snabbt och enkelt sätt att byta frÃ¥n en given implementeringsfil (<filename +>.cpp</filename +>) till motsvarande deklarationsfil (<filename +>.h</filename +>) och vice versa. Högerklicka bara pÃ¥ redigeringsfönstret du vill byta. En meny som liknar den följande dyker upp.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-switch-header.png" format="PNG"/> +</imageobject> +<caption +><para +>Hur man byter mellan implementeringsfiler och deklarationsfiler.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Leta rätt pÃ¥ alternativet <guimenuitem +>Byt till deklaration/implementation</guimenuitem +> och välj det. &tdevelop; slÃ¥r upp motsvarande deklarationsfil eller implementeringsfil och öppnar den i ett annat redigeringsfönster. I vÃ¥rt exempel, om du högerklickade i källkoden <filename +>hello.cpp</filename +>, visas filen <filename +>hello.h</filename +> och markören placeras där.</para> + +<para +>Det finns mer än sÃ¥. Om du högerklickar inne i en klassimplementeringstext, placerar &tdevelop; markören pÃ¥ motsvarande deklarationsrad i deklarationsfilen. Det omvända fallet, ett högerklick pÃ¥ en deklarationsrad, tar dig till motsvarande klassimplementering.</para> + +<para +>Om redigeringsfönstret med filen att byta till redan finns, aktiverar &tdevelop; förstÃ¥s det och placerar markören i det om det behövs.</para> +</sect2> + +<sect2 id="gettingstarted-edit-defs"> +<title +>Hur man kommer Ã¥t deklarationer och definitioner</title> + +<para +>Men ifall du arbetar med en källkodsfil och vill slÃ¥ upp deklarationen eller definitionen av en identifierare du just hittade i den? Jo, det kan Ã¥stadkommas lika lätt. Det enda du egentligen mÃ¥ste göra är att högerklicka pÃ¥ identifieraren ifrÃ¥ga.</para> + +<para +>Det finns dock tvÃ¥ olika fall att ta hänsyn till, nämligen:</para> +<simplelist> +<member +><link linkend="gettingstarted-edit-defs-external" +>Komma Ã¥t externt definierade identifierare</link +>, och</member> +<member +><link linkend="gettingstarted-edit-defs-project" +>hantera projektinterna textobjekt</link +>.</member> +</simplelist> + +<sect3 id="gettingstarted-edit-defs-external"> +<title +>Externa deklarationer och definitioner</title> + +<para +>Det vanligaste fallet är att du vill slÃ¥ upp en identifierare som definierats utanför projektet. I &kde;-projekt är sÃ¥dana identiferare troligen dokumenterade i olika &kde;- eller &Qt;-bibliotek. Om &kde; och &tdevelop; är riktigt installerade, kan &tdevelop; komma Ã¥t sÃ¥dan sÃ¥ kallad dokumentation av programmeringsgränssnitt, och kunna söka efter identifierare av denna typ.</para> + +<para +>LÃ¥t oss titta pÃ¥ ett exempel. Leta rätt pÃ¥ följande rader i redigeringsfönstret <filename +>hello.cpp</filename +>.</para> + +<programlisting +>Hello::Hello() + : KMainWindow( 0, "Hello" ) +{ +</programlisting> + +<para +>Högerklicka pÃ¥ <classname +>KMainWindow</classname +>. En meny dyker upp. Välj där alternativet <guimenuitem +>Sök i dokumentationen: KMainWindow</guimenuitem +> och släpp musknappen. Nu öppnas verktygsvyn <guilabel +>Dokumentation</guilabel +>, med värdet <classname +>KMainWindow</classname +> som sökbegrepp pÃ¥ sidan <guilabel +>Sök</guilabel +>. Därefter öppnas ett annat redigeringsfönster pÃ¥ arbetsytan som visar KDE:s referenssida i programmeringsgränssnittet för klassen <classname +>KMainWindow</classname +>.</para> + +<para +>Allt detta ser ut som följer. (Vi öppnade med avsikt redan sidan <guilabel +>Dokumentation</guilabel +> <guilabel +>Sök</guilabel +> för att Ã¥skÃ¥dliggöra resultatet av menyvalet.)</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-search-doc.png" format="PNG"/> +</imageobject> +<caption +><para +>Hur man slÃ¥r upp en externt dokumenterad identifierare.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Du kan lika väl välja <guimenuitem +>Sök efter dokumentation: KMainWindow</guimenuitem +>. I detta fall visas sidan <guilabel +>Sökning</guilabel +> i verktygsvyn <guilabel +>Dokumentation</guilabel +>, som oftast tillhandahÃ¥ller ett urval sidor som innehÃ¥ller sökbegreppet. (I vÃ¥rt exempel är det troligen klasserna <classname +>KMainWindow</classname +> och <classname +>KMainWindowInterface</classname +>.) Välj den du är intresserad av sÃ¥ visas motsvarande dokumentation i ett redigeringsfönster.</para> + +<note> +<para +>Om det inte fungerade, finns det förmodligen inget dokumentindex ännu. Initierade du indexet enligt <link linkend="gettingstarted-configure-search" +>ovan</link +>? Om inte, gör det först, och kom sedan tillbaka hit för ett nytt försök.</para> +</note> +</sect3> + +<sect3 id="gettingstarted-edit-defs-project"> +<title +>Projektinterna deklarationer och definitioner</title> + +<para +>SÃ¥dana sökfunktioner i extern dokumentation har dock sina begränsningar. Man kan förstÃ¥s inte slÃ¥ upp en extern identifierare om den bara definieras och används inne i det aktuella projektet. Men det finns hjälp för det. &tdevelop; kan använda index skapade av programmet <application +>Ctags</application +> för att söka i projektets källkod.</para> + +<para +>Innan vi kan använda det i vÃ¥rt eget exempelprojekt Hello, mÃ¥ste vi först skapa ett lämpligt index. Det görs i verktygsvyn <guilabel +>Ctags</guilabel +> längst ner pÃ¥ arbetsytan.</para> + +<para +>När du klickar pÃ¥ fliken <guibutton +>Ctags</guibutton +> öppnas en dialogruta där du hittar följande text i nedre högra hörnet:</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-ctags-regenerate.png" format="PNG"/> +</imageobject> +<caption +><para +>Bygg ett Ctags-index med knappen <guibutton +>Skapa om</guibutton +>.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Klicka pÃ¥ knappen <guibutton +>Skapa om</guibutton +> och vänta nÃ¥gra sekunder. DÃ¥ ersätts <guilabel +>Ingen Ctags-databas hittades</guilabel +> med dagens datum. Nu är du redo att slÃ¥ upp nÃ¥gra identifierare i projektets källkod.</para> + +<tip> +<para +>Datumet intill knappen <guilabel +>Skapa om</guilabel +> finns där för att pÃ¥minna dig om index som möjligtvis kan vara för gamla. SÃ¥ fort du uppenbarligen inte kan slÃ¥ upp en identifierare i projektet, fundera pÃ¥ att skapa om indexet. I stora projekt kan det ta en avsevärd tid, men du bör ta för vana att skapa om indexet regelbundet efter större ändringar i källkodsfiler.</para> +</tip> + +<para +>Det finns flera möjligheter att slÃ¥ upp en identifierare i projektets källkod.</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Använd verktygsvyn Ctags</title> +<para +>Det är enkelt. Börja bara skriva namnet pÃ¥ identifieraren som du är intresserad av i inmatningsfältet <guilabel +>Uppslagning</guilabel +> längst ner till vänster. &tdevelop; försöker komplettera ordet du har skrivit sÃ¥ lÃ¥ngt, och visa alla förekomster av identifierare som inleds med teckenföljden.</para> +</formalpara> + +<para +>Om du till exempel vill veta om identifieraren <quote +>Hello</quote +> används i vÃ¥rt exempelprojekt, skriv in "H" i inmatningsfältet <guilabel +>Uppslagning</guilabel +>. &tdevelop; börjar omedelbart arbeta och visar ett liknande resultat:</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-ctags-lookup.png" format="PNG"/> +</imageobject> +<caption +><para +>Hur en identifierare slÃ¥s upp i verktygsvyn <guilabel +>Ctags</guilabel +>.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Om du klickar pÃ¥ en av de listade posterna, öppnar &tdevelop; ett redigeringsfönster med filen och placerar markören pÃ¥ lämplig plats.</para> +</listitem> + +<listitem> +<formalpara> +<title +>Använda en sammanhangsberoende meny i en källkodsfil</title> +<para +>Det är bekvämt om du arbetar med en viss källkodsfil. Antag att du studerar filen <filename +>main.cpp</filename +> i vÃ¥rt exempelprojekt Hello. Där hittar du följande rad:</para> +</formalpara> +<programlisting +>Hello *mainWin = 0; +</programlisting> +<para +>Du undrar kanske vad <quote +>Hello</quote +> användes för i programmet. För att ta reda pÃ¥ det, högerklicka helt enkelt pÃ¥ identifieraren Hello. En meny dyker upp som svar pÃ¥ högerklicket, med följande rader nära slutet.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-ctags-menu.png" format="PNG"/> +</imageobject> +<caption +><para +>Hämta <application +>Ctags</application +>-information om en av projektets interna identifierare.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Klicka pÃ¥ det du är intresserad av, lÃ¥t oss säga <guilabel +>Ctags - GÃ¥ till definition: Hello</guilabel +>, sÃ¥ visar &tdevelop; omedelbart redigeringsfönstret <filename +>hello.cpp</filename +> och placerar markören precis framför klassdefinitionen:</para> +<programlisting +>Hello::Hello() + : KMainWindow( 0, "Hello" ) +{ +</programlisting> +</listitem> + +<listitem> +<formalpara> +<title +>Gör en allmän sökning</title> +<para +>Det är särskilt användbart om du vill slÃ¥ upp godtycklig text i projektets källkod. Det finns tvÃ¥ möjligheter att starta en allmän sökning inne i &tdevelop;.</para> +</formalpara> +<itemizedlist> +<listitem> +<para +>Starta en allmän sökning med menyalternativet <menuchoice +><guimenu +>Redigera</guimenu +> <guimenuitem +>Sök i filer...</guimenuitem +></menuchoice +>. Eller</para> +</listitem> +<listitem> +<para +>Direkt använda den sammanhangsberoende menyn med ett högerklick av musen i redigeringsfönstret.</para> +</listitem> +</itemizedlist> + +<para +>Vi Ã¥skÃ¥dliggör den andra möjligheten i exempelprojektet Hello. Slutresultatet av menyanropet är i stort sett likadant. LÃ¥t oss anta att du studerar källkodsfilen <filename +>hello.cpp</filename +> och har placerat markören pÃ¥ den första förekomsten av Hello i den. Nu undrar du var ordet <quote +>Hello</quote +> användes i projektets källkod, och hur mÃ¥nga förekomster det finns. Det är ett typiskt fall dÃ¥ &tdevelop;s allmänna sökfunktion bör användas.</para> + +<para +>Medan du nu fortfarande hÃ¥ller pekaren nÃ¥gonstans över <quote +>Hello</quote +> i källtexten, klicka med höger musknapp. Den vid det här laget välkända sammanhangsberoende menyn dyker upp, där du ska välja alternativet <guilabel +>Flerfilsökning: Hello</guilabel +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="editor-find-menu.png" format="PNG"/> +</imageobject> +<caption +><para +>Initiera en allmän sökning inifrÃ¥n ett redigeringsfönster.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Det gör att följande dialogruta <guilabel +>Sök i filer</guilabel +> dyker upp (exakt samma som om du använt menyn<menuchoice +><guimenu +>Redigera</guimenu +> <guimenuitem +>Sök i filer...</guimenuitem +></menuchoice +>).</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="find-in-files.png" format="PNG"/> +</imageobject> +<caption +><para +>Ett flexibelt grafiskt gränssnitt för att utföra allmänna sökningar i projektet.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Som du märker är det ett mycket flexibelt verktyg för att starta sökningar med <application +>find</application +> och <application +>grep</application +> i hela projektet. Vi gÃ¥r inte in pÃ¥ fler detaljer här, men du kan experimentera pÃ¥ egen hand. För ögonblicket, ska <quote +>Hello</quote +> redan vara markerat i fältet <guilabel +>Mönster</guilabel +>. Om det inte är det, skriv bara in det, och klicka därefter pÃ¥ knappen <guibutton +>Sök</guibutton +> längst ner till höger.</para> + +<para +>Nu öppnas verktygsvyn <guilabel +>Sök i filer</guilabel +> längst ner, och visar filnamn och rader för alla förekomster av <quote +>Hello</quote +> i vÃ¥rt exempelprojekt. Som vanligt, om du klickar pÃ¥ en rad, gÃ¥r &tdevelop; till den exakta platsen i ett redigeringsfönster pÃ¥ arbetsytan.</para> + +<para +>Det finns tvÃ¥ särskilt intressanta rader i verktygsvyns fönster.</para> +<itemizedlist> +<listitem> +<para +>Längst upp hittar du kommandosekvenserna som &tdevelop; i själva verket använde för att utföra sökningen. Det är användbart för att noggrannare styra sökningens resultat.</para> +</listitem> + +<listitem> +<para +>Längst ner anges antal förekomster som hittas när en sökning utförs. I vÃ¥rt exempel ska det vara <quote +>*** 11 träffar hittades ***</quote +>.</para> +</listitem> +</itemizedlist> + +<para +>&tdevelop; kommer ihÃ¥g sökresultatet under hela sessionen som kör. Om du startar en ny allmän sökning, visas dess resultat med ett annat flikfönster i verktygsvyn <guilabel +>Sök i filer</guilabel +>.</para> +</listitem> +</itemizedlist> +</sect3> +</sect2> + +<sect2 id="gettingstarted-edit-arrange"> +<title +>Arrangera redigeringsfönster</title> + +<para +>När du arbetar med stora komplexa projekt rÃ¥kar du ofta ut för att ha en hel mängd flikar med redigeringsfönster i flikraden. Det gör det nödvändigt att ha särskilda funktioner för att rensa, ordna och gruppera alla redigeringsflikarna. &tdevelop; tillhandahÃ¥ller flera sätt att göra det. Vi tar en snabbtitt pÃ¥ nÃ¥gra av dem.</para> +<simplelist> +<member +><link linkend="gettingstarted-edit-arrange-clean" +>Hur man tar bort flikar som inte behövs.</link +></member> +<member +><link linkend="gettingstarted-edit-arrange-tabs" +>Hur man arrangerar om flikarna.</link +></member> +<member +><link linkend="gettingstarted-edit-arrange-split" +>Hur man visar flera filer samtidigt pÃ¥ arbetsytan.</link +></member> +<member +><link +linkend="gettingstarted-edit-arrange-sourceheader" +>Hur man redigerar C++ källkodsfiler och deklarationsfiler samtidigt</link +></member> +<member +><link linkend="gettingstarted-edit-arrange-group" +>Hur man grupperar källkodsfiler i utvecklingssessioner.</link +></member> +</simplelist> + +<sect3 id="gettingstarted-edit-arrange-clean"> +<title +>Städa upp i flikraden</title> + +<para +>Om ett enormt antal flikar med redigeringsfönster pÃ¥ nÃ¥got sätt blir dÃ¥ligt arrangerade, vill man oftast stänga alla flikar som inte längre behövs. &tdevelop; tillhandahÃ¥ller flera funktioner för att göra det, det vanliga sättet att totalt stänga alla öppna redigeringsfönster, och ett mer specifikt sätt där du uttryckligen kan bestämma vilka som ska stängas och vilka som ska behÃ¥llas öppna.</para> + +<formalpara> +<title +>Stänga flera flikar pÃ¥ en gÃ¥ng</title> +<para +>Det här är en sorts totalmetod för att stänga onödiga öppna flikar, som du ocksÃ¥ kan hitta i andra &kde;-program. Du kan använda menyn <guimenu +>Fönster</guimenu +> eller högerklicka pÃ¥ en flik, för att antingen</para> +</formalpara> +<itemizedlist> +<listitem> +<para +>stänga redigeringsfönstret som för närvarande är valt,</para> +</listitem> +<listitem> +<para +>stänga alla andra öppna redigeringsfönster, eller</para> +</listitem> +<listitem> +<para +>stänga alla redigeringsfönster pÃ¥ en gÃ¥ng (bara tillgängligt i menyn <guimenu +>Fönster</guimenu +>).</para> +</listitem> +</itemizedlist> + +<formalpara> +<title +>Stänga markerade uppsättningar flikar</title> +<para +>Sättet att steg för steg stänga enskilda flikar med redigeringsfönster kan bli krÃ¥nglig om det finns en stor mängd flikar och du fortfarande vill lämna flera öppna. Istället för att leta rätt pÃ¥ och stänga en flik Ã¥t gÃ¥ngen, erbjuder &tdevelop; möjligheten att välja kandidater i en lista och enbart stänga dem, med ett enda musklick.</para> +</formalpara> + +<para +>LÃ¥t oss illustrera det med ett enkelt exempel. LÃ¥t oss anta att det finns flera filer öppna för redigering i vÃ¥rt exempelprojekt Hello: <filename +>hello.cpp</filename +>, <filename +>hello.h</filename +>, <filename +>helloui.rc</filename +>, <filename +>hello.desktop</filename +> och <filename +>main.cpp</filename +>. Du vill nu stänga alla utom <filename +>hello.cpp</filename +> och <filename +>hello.h</filename +>. Det enklaste sättet att göra det är med verktygsvyn <filename +>Fillista</filename +>. Eftersom denna lista med öppna filer är alfabetiskt ordnad, är det enklare att hitta de du vill stänga. Fortsätt enligt följande:</para> + +<procedure> +<step> +<para +>Öppna <guilabel +>Fillista</guilabel +>, hÃ¥ll nere tangenten <keycap +>Ctrl</keycap +>, och klicka pÃ¥ filerna du vill stänga i listan.</para> +</step> +<step> +<para +>Klicka därefter med höger musknapp, medan du hÃ¥ller muspekaren pÃ¥ ett filnamn i listan.</para> +</step> +<step> +<para +>Välj <guimenuitem +>Stäng markerade</guimenuitem +> frÃ¥n den sammanhangsberoende menyn i <guimenu +>Fillistan</guimenu +>.</para> +</step> +</procedure> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="file-list-close-selected.png" format="PNG"/> +</imageobject> +<caption +><para +>Hur markerade redigeringsfönster kan stängas pÃ¥ en gÃ¥ng.</para +></caption> +</mediaobject> +</screenshot> +<para +>Det är det hela. &tdevelop; har stängt alla redigeringsfönster som du önskade, och du är klar att fortsätta igen med en rensad flikrad.</para> +</sect3> + +<sect3 id="gettingstarted-edit-arrange-tabs"> +<title +>Hur redigeringsfönstrets flikar kan arrangeras om</title> + +<para +>Även om du bara har de redigeringsfönster som verkligen behövs öppna, kanske du ändÃ¥ vill arrangera flikarna pÃ¥ nÃ¥got logiskt sätt. &tdevelop; erbjuder nÃ¥gra vanliga sätt att göra det. I korthet:</para> + +<formalpara> +<title +>Grundläggande inställning: Var nya flikar ska placeras</title> + +<para +>I normalfall, när ett nytt redigeringsfönster öppnas, infogas fliken till höger om fliken för redigeringsfönstret som för närvarande används. Det kan ändras sÃ¥ att den nya fliken öppnas längst till höger pÃ¥ flikraden.</para> +</formalpara> +<para +>Du mÃ¥ste ändra en grundläggande inställning i &tdevelop;s användargränssnitt för att aktivera beteendet.</para> +<procedure> +<step> +<para +>Välj <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +> Anpassa KDevelop...</guimenuitem +></menuchoice +></para> +</step> +<step> +<para +>Klicka pÃ¥ ikonen <guilabel +>Användargränssnitt</guilabel +> i ikonraden till vänster i dialogrutan. Dialogsidan <guilabel +>Användargränssnitt</guilabel +> visas nu.</para> +</step> +<step> +<para +>Hitta rutan som heter <guilabel +>Bläddring med flikar</guilabel +>. Ta bort markeringen av kryssrutan pÃ¥ raden <guilabel +>Öppna ny flik efter nuvarande flik</guilabel +>.</para> +</step> +<step> +<para +>Stäng &tdevelop; och starta om det. Nu öppnas flikarna för nya redigeringsfönster längst bort till höger i nuvarande flikrad.</para> +</step> +</procedure> + +<para +>Tyvärr kan inte inställningen ändras i farten under en utvecklingssession. Du mÃ¥ste bestämma dig för vilket beteende du föredrar i det lÃ¥nga loppet, och därefter hÃ¥lla dig till det, Ã¥tminstone till nästa gÃ¥ng &tdevelop; startas.</para> + +<formalpara> +<title +>Hur flikarna kan arrangeras om</title> +<para +>Eftersom utvecklingsuppgifer varierar med tiden, kommer behov att arrangera om flikarna för redigeringsfönster uppstÃ¥ dÃ¥ och dÃ¥. Det kan enkelt Ã¥stadkommas i &tdevelop;.</para> +</formalpara> +<para +>Klicka bara pÃ¥ fliken du vill flytta med musens mittenknapp och flytta musen lite grand. Markören ändras till ett mönster med korsande pilar. Nu kan du dra fliken, medan du hÃ¥ller nere mittenknappen, till det hoppar pÃ¥ plats där du vill ha det.</para> +</sect3> + +<sect3 id="gettingstarted-edit-arrange-split"> +<title +>Visa flera filer samtidigt</title> + +<para +>Vid första pÃ¥seende finns det aldrig mer än ett enda redigeringsfönster öppet för att arbeta med en källkodsfil. Även om du snabbt kan byta mellan flikar, finns det tillfällen dÃ¥ du vill ha flera filer öppna pÃ¥ en gÃ¥ng, t.ex. för referenssyfte eller för att fÃ¥ bättre kontroll av komplexa uppgifter. För att Ã¥stadkomma det, tillhandahÃ¥ller &tdevelop; ett sätt att dela arbetsytan i olika delar som syns samtidigt, och var och en kan innehÃ¥lla en egen följd av flikar.</para> + +<para +>Det finns tvÃ¥ delningskommandon som du antingen kan nÃ¥ via menyn <guimenu +>Fönster</guimenu +>, eller genom att högerklicka i ett fönster som hör till en flik eller pÃ¥ själva fliken. Vi beskriver ocksÃ¥ delningsbeteendet utgÃ¥ende frÃ¥n vÃ¥rt exempelprojekt Hello.</para> + +<para +>Antag att det finns tvÃ¥ källkodsfiler öppna i flikraden: <filename +>hello.cpp</filename +> and <filename +>hello.h</filename +>. Medan du arbetar med källkoden i <filename +>hello.cpp</filename +> behöver du ofta titta pÃ¥ deklarationerna i filen <filename +>hello.h</filename +>, sÃ¥ du vill ha bÃ¥da filerna öppna samtidigt.</para> + +<para +>För att fÃ¥ det gjort, högerklicka till exempel pÃ¥ fliken för <filename +>hello.h</filename +>. Följande meny dyker dÃ¥ upp:</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="split-workspace.png" format="PNG"/> +</imageobject> +<caption +><para +>Hur den aktuella arbetsytan kan delas i tvÃ¥ delar.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Välj alternativet <guimenuitem +>Dela horisontellt</guimenuitem +>. Det delar arbetsytan pÃ¥ mitten och flyttar redigeringsfönstret som innehÃ¥ller filen <filename +>hello.h</filename +> till den nedre delen.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="split-windows.png"/> +</imageobject> +<caption +><para +>Arbetsytan har delats horisontellt.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Observera den streckade skiljelinjen mellan de bÃ¥da fönstren. Du kan ta tag i den med musen och justera redigeringsfönstrens höjd efter dina behov.</para> + +<para +>Det finns ett antal saker att lägga märke till.</para> +<itemizedlist> +<listitem> +<para +>De delade arbetsytorna fungerar helt och hÃ¥llet pÃ¥ egen hand. Det betyder att nya flikfönster öppnas i arbetsytan som innehÃ¥ller redigeringsfönstret som för närvarande är aktivt. Du kan ocksÃ¥ dela alla delomrÃ¥den igen som du önskar, och pÃ¥ sÃ¥ sätt ha sÃ¥ mÃ¥nga fönster öppna samtidigt som du behöver.</para> +</listitem> + +<listitem> +<para +>Varje delning flyttar redigeringsfönstret som för närvarande är aktivt till den nya delarbetsytan, antingen nerÃ¥t eller Ã¥t höger. Övriga flikfönster förblir alla där de var. Du kan inte direkt flytta flikfönster mellan delade omrÃ¥den, utan istället mÃ¥ste du explicit stänga fönstret pÃ¥ en arbetsyta och öppna det igen pÃ¥ en annan, för att gruppera om.</para> +</listitem> + +<listitem> +<para +>Det finns heller inget direkt sätt att stänga ett delat omrÃ¥de igen. Det stängs automatiskt, när väl det sista fönstret med en flik i det stängs.</para> +</listitem> +</itemizedlist> +</sect3> + +<sect3 id="gettingstarted-edit-arrange-sourceheader"> +<title +>Redigera C++ källkod och deklarationsfiler samtidigt</title> + +<para +>Det finns en trevlig användning av den ovannämnda funktionen med delade arbetsytor inbyggd i &tdevelop;. Den lÃ¥ter dig automatiskt ha en källkodsfil, <filename +>.cpp</filename +>, och dess tillhörande deklarationsfil, <filename +>.h</filename +>, öppna sida vid sida pÃ¥ arbetsytan. Dessutom tillÃ¥ter den valfritt att arbeta synkront med filerna, pÃ¥ sÃ¥ sätt att vid markering av en deklaration i deklarationsfilen gÃ¥r &tdevelop; till motsvarande definition i källkodsfilen och omvänt.</para> + +<para +>Funktionen är dock normalt inte aktiverad. Om du vill använda den i projektet mÃ¥ste du aktivera den.</para> + +<para +>Välj <menuchoice +><guibutton +>Projekt</guibutton +> <guimenuitem +>Projektinställningar</guimenuitem +></menuchoice +>. Dialogrutan <guilabel +>Projektinställningar</guilabel +> dyker upp. Välj <guiicon +>C++ stöd</guiicon +> i ikonraden till vänster, och därefter fliken <guilabel +>Navigering</guilabel +> pÃ¥ dialogsidan som visas till höger.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="split-source-header.png" format="PNG"/> +</imageobject> +<caption +><para +>LÃ¥ta C++ källkod och deklarationsfiler visas sida vid sida.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Markera nu rutan <guilabel +>Aktivera delning av deklarationsfiler och källkodsfiler</guilabel +>. Det aktiverar normalt <guilabel +>Automatisk synkronisering</guilabel +> och <guilabel +>Vertikal</guilabel +>. BehÃ¥ll inställningarna för tillfället och klicka pÃ¥ <guibutton +>Ok</guibutton +>.</para> + +<para +>Stäng nu bÃ¥da redigeringsfönstren <filename +>hello.cpp</filename +> och <filename +>hello.h</filename +> i vÃ¥rt exempelprojekt Hello, om det behövs. Välj därefter <filename +>hello.cpp</filename +> igen i projektets underkatalog <filename class="directory" +>src</filename +>. Redigeringsfönstret öppnas som vanligt, men om du nu öppnar tillhörande <filename +>hello.h</filename +>, delar &tdevelop; automatiskt arbetsytan och öppnar deklarationsfilens redigeringsfönster precis under fönstret <filename +>hello.cpp</filename +>.</para> + +<para +>Det finns ännu mer, som vi redan nämnt. Leta till exempel rätt pÃ¥ definitionsraden för följande konstruktor i fönstret <filename +>hello.cpp</filename +></para> +<programlisting +>Hello::Hello() +</programlisting> +<para +>och placera markören där. Titta därefter i fönstret <filename +>hello.h</filename +> nedanför och observera hur &tdevelop; gick till motsvarande deklarationsrad för konstruktorn.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="split-source-header-navigate.png" format="PNG"/> +</imageobject> +<caption +><para +>&tdevelop; gÃ¥r automatiskt till konstruktorns deklaration.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Det fungerar ocksÃ¥ omvänt. SÃ¥ fort du placerar markören nÃ¥gonstans i en konstruktor i ett redigeringsfönster, gÃ¥r &tdevelop; till motsvarande konstruktor i det andra.</para> +</sect3> + +<sect3 id="gettingstarted-edit-arrange-group"> +<title +>Gruppera källkodsfiler i utvecklingssessioner</title> + +<para +>När projektet växer sig större, och utvecklingsuppgifterna blir mer och mer komplexa, tvingar det dig att ofta byta mellan olika, till och med distinkta, uppsättningar filer. Nu är det dags att organisera utvecklingsarbetet i skilda sessioner. Verktygsvyn <guilabel +>Fillista</guilabel +> i &tdevelop; tillÃ¥ter dig att göra precis det.</para> + +<para +>Längst upp i fönstret för verktygsvyn <guilabel +>Fillista</guilabel +> finns en verktygsrad där du kan skapa, spara, välja och ta bort sÃ¥dana sessioner. Använd alternativt undermenyn <menuchoice +><guimenu +>Visa</guimenu +> <guimenuitem +>Sessioner</guimenuitem +></menuchoice +>.</para> + +<para +>Vi beskriver ocksÃ¥ funktionen utgÃ¥ende frÃ¥n vÃ¥rt exempelprojekt Hello. Antag att du alltid vill öppna filerna <filename +>hello.cpp</filename +>, <filename +>hello.h</filename +> och <filename +>main.cpp</filename +> med ett steg, oberoende av vilken utvecklingsuppgift du precis utförde i projektet. Du mÃ¥ste först skapa en ny utvecklingssession, som exempelvis kallas <quote +>källkod</quote +>, för att Ã¥stadkomma det.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="file-list-session-create.png" format="PNG"/> +</imageobject> +<caption +><para +>Använda utvecklingssessioner för att komma ihÃ¥g filgrupper.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Det är en procedur i flera steg, enligt följande:</para> +<procedure> +<step> +<para +>Skapa en ny session</para> +<substeps> +<step> +<para +>Klicka pÃ¥ ikonen <guiicon +>Ny session</guiicon +> längst upp till vänster i verktygsvyn <guilabel +>Fillista</guilabel +>.</para> +</step> +<step> +<para +>En dialogruta dyker upp. Ge den nya sessionen ett namn i inmatningsfältet <guilabel +>Skriv in sessionens namn</guilabel +>, t.ex. <quote +>källkod</quote +>.</para> +</step> +<step> +<para +>Stäng dialogrutan med <guibutton +>Ok</guibutton +>. Den nya sessionen anges nu i kombinationsrutan i verktygsraden.</para> +</step> +</substeps> +</step> +<step> +<para +>Den nya sessionen är tom frÃ¥n början. Du mÃ¥ste lägga till filerna du vill ska ingÃ¥ i den.</para> +<substeps> +<step> +<para +>Öppna alla filer du vill ska grupperas i utvecklingssessionen. I vÃ¥rt exempel bestämde vi oss för att behÃ¥lla <filename +>hello.cpp</filename +>, <filename +>hello.h</filename +> och <filename +>main.cpp</filename +> som planerat.</para> +</step> +<step> +<para +>När fillistan väl är fullständig, klicka pÃ¥ ikonen <guiicon +>Spara session</guiicon +> i verktygsraden. Hoppa inte över detta steg. Annars glömmer &tdevelop; bort fillistan.</para> +</step> +</substeps> +</step> +</procedure> + +<para +>Det är allt. SÃ¥ fort du väljer sessionen <guilabel +>källkod</guilabel +> i kombinationsrutan <guilabel +>Öppna session</guilabel +>, stänger &tdevelop; alla redigeringsfönster som för närvarande är öppna, och öppnar de ihÃ¥gkomna istället (<filename +>hello.cpp</filename +>, <filename +>hello.h</filename +> och <filename +>main.cpp</filename +> i vÃ¥rt exempel).</para> + +<para +>Du kan definiera hur mÃ¥nga sessioner som du vill i samband med projektet. Om du vill ändra sessionernas innehÃ¥ll, uppdatera bara den ihÃ¥gkomna fillistan med ett klick pÃ¥ <guiicon +>Spara session</guiicon +>. Och om du vill bli av med en session, välj den i kombinationsrutan, och klicka därefter pÃ¥ ikonen <guiicon +>Ta bort session</guiicon +> till höger i verktygsraden.</para> + +<para +>Du kan göra ännu mer. Du kan tvinga &tdevelop; att öppna en given förvald session när projektet laddas. Välj bara sessionen i kombinationsrutan pÃ¥ inställningssidan <menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +>Projektinställningar</guimenuitem +><guimenuitem +>Fillista</guimenuitem +></menuchoice +> i projektinställningarna.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="file-list-session-default.png" format="PNG"/> +</imageobject> +<caption +><para +>LÃ¥t &tdevelop; öppna en specifik session när projektet laddas.</para +></caption> +</mediaobject> +</screenshot> +</sect3> +</sect2> + +<sect2 id="gettingstarted-edit-problems"> +<title +>HÃ¥lla ögonen pÃ¥ vanliga problem</title> + +<para +>När ett redigeringsfönster som innehÃ¥ller en källkodsfil öppnas, tolkar &tdevelop; dess innehÃ¥ll. Det gör det möjligt för den inbyggda <emphasis +>problemrapportören</emphasis +> att söka i källkodstexten efter nÃ¥gra vanliga fel som den känner till. Den kan ocksÃ¥ informera användaren om olika platser som har markerats för specialbehandling.</para> + +<para +>LÃ¥t oss Ã¥skÃ¥dliggöra funktionen med vÃ¥rt exempelprojekt Hello.</para> + +<itemizedlist> +<listitem> +<para +>Öppna ett editorfönster med källkodsfilen <filename +>main.cpp</filename +>.</para> +</listitem> + +<listitem> +<para +>Försäkra dig om att det fortfarande innehÃ¥ller följande rad nÃ¥gonstans nära slutet:</para> +<programlisting +>/// @todo do something with the command line args here +</programlisting> +<para +>Det infogades av programguiden när projektet Hello skapades i kapitlet <link linkend="gettingstarted-new" +>Starta ett nytt projekt</link +> ovan.</para> +</listitem> + +<listitem> +<para +>Öppna nu verktygsvyn <guilabel +>Problem</guilabel +> i raden med flikar längst ner. Om allt har fungerat, rapporterar den för närvarande följande uppgift:</para> +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="problem-report-todo.png"/> +</imageobject> +<caption +><para +>&tdevelop; informerar om att en källkodsrad innehÃ¥ller markeringen todo.</para +></caption> +</mediaobject> +</screenshot> +</listitem> +</itemizedlist> + +<para +>Formatet pÃ¥ kommandot <computeroutput +>/// @todo</computeroutput +> är till för särskild behandling av verktyget för koddokumentation, <application +>Doxygen</application +>, som vi tar en snabb titt pÃ¥ i avsnittet <link linkend="gettingstarted-doc" +>Dokumentation</link +> nedan. Det krävs inte att du använder detta format, de vanligare kommentarerna <computeroutput +>TODO</computeroutput +> och <computeroutput +>FIXME</computeroutput +> känns ocksÃ¥ igen.</para> + +<para +>Om du till exempel infogar följande kommentarrader med <computeroutput +>TODO</computeroutput +> och <computeroutput +>FIXME</computeroutput +> i vÃ¥r exempelfil <filename +>hello.cpp</filename +>:</para> +<programlisting +>Hello::Hello() + : KMainWindow( 0, "Hello" ) +{ + // set the shell's ui resource file + // TODO check the user interface + setXMLFile("helloui.rc"); + + // FIXME change to a better suited greeting + new QLabel( "Hello World", this, "hello label" ); +} +</programlisting> +<para +>ser du dem ocksÃ¥ angivna i verktygsvyn <guilabel +>Problem</guilabel +>:</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="problem-report-marks.png" format="PNG"/> +</imageobject> +<caption +><para +>Problemrapporten som anger rader som kräver uppmärksamhet i nuvarande fil som redigeras.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Observera övriga flikar i verktygsvyn <guilabel +>Problem</guilabel +>, i synnerhet <guilabel +>Fixa</guilabel +> och <guilabel +>Uppgift</guilabel +>. Om du öppnar den ser du alla rader markerade med <computeroutput +>FIXME</computeroutput +> och <computeroutput +>TODO</computeroutput +> som &tdevelop; hittills har hittat i sessionen. Informationen om <computeroutput +>TODO</computeroutput +> set för närvarande ut pÃ¥ följande sätt:</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="problem-report-all-todos.png" format="PNG"/> +</imageobject> +<caption +><para +>Problemrapporten har samlat information om <computeroutput +>TODO</computeroutput +>.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Fliken <guilabel +>Fel</guilabel +> listar dock inte varje kodningsfel som du gör. Det arbetet utförs av andra verktyg under byggprocessen. Här hittar du information om nÃ¥gra vanliga programmeringsmisstag, som troligen annars skulle förbli obemärkta och troligen med svÃ¥righet hittas via komplicerade avlusningssessioner.</para> + +<para +>Du kommer att märka att problemrapportfunktionen i &tdevelop; är ett mycket värdefullt verktyg, sÃ¥ kontrollera verktygsvyn <guilabel +>Problem</guilabel +> regelbundet under utvecklingsprocessen.</para> +</sect2> +</sect1> + +<sect1 id="gettingstarted-compile"> +<title +>Hur man kompilerar ett projekt</title> + +<para +>Att kompilera ett projekt i &tdevelop; kräver flera inställningssteg och därefter att programmet byggs. Allt detta är tillgängligt via menyn <guimenu +>Bygg</guimenu +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="build-menu.png" format="PNG"/> +</imageobject> +<caption +><para +>Att bygga ett projekt kräver flera steg.</para +></caption> +</mediaobject> +</screenshot> + +<para +>För närvarande är vi bara intresserade av menyns övre del. Alternativen är där sorterade efter hur viktiga de är. Därför är kommandot som oftast behövs längst upp, alternativet <guimenuitem +>Bygg projekt</guimenuitem +> som gör att hela projektet initieras, kompileras och länkas efter behov. Andra alternativ finns för att kompilera valda delar av projektet, eller bara en enstaka fil, för att utföra flera olika initieringssekvenser, eller för att installera det färdiga programmets binärfiler.</para> + +<para +>För tillfället koncentrerar vi oss pÃ¥ flera funktioner som &tdevelop; tillhandahÃ¥ller för att ställa in projektet, initiera, bygga och köra programmet. I allmänhet omfattar det:</para> + +<simplelist> +<member +><link linkend="gettingstarted-compile-basic" +>Ta en snabb titt pÃ¥ den grundläggande byggcykeln.</link +></member> +<member +><link linkend="gettingstarted-compile-setup" +>Titta pÃ¥ nÃ¥gra enkla sätt att anpassa ett projekt.</link +></member> +</simplelist> + +<sect2 id="gettingstarted-compile-basic"> +<title +>Den grundläggande byggcykeln</title> + +<para +>När man väl har skapat ett nytt projekt, vill man oftast kontrollera om allt hittills har gÃ¥tt bra. Det omfattar att bygga projektet för första gÃ¥ngen och testköra programmet, vilket vi ska göra nu. För att kompilera ett projekt för första gÃ¥ngen finns det flera steg att utföra, som vi tar en snabb titt pÃ¥:</para> +<simplelist> +<member +><link linkend="gettingstarted-compile-basic-init" +>Hur projektet initieras för att bygga det första gÃ¥ngen.</link +></member> +<member +><link linkend="gettingstarted-compile-basic-config" +>Hur de ursprungliga inställningarna görs.</link +></member> +<member +><link linkend="gettingstarted-compile-basic-build" +>Hur man bygger projektet.</link +></member> +<member +><link linkend="gettingstarted-compile-basic-run" +>Hur programmet körs inifrÃ¥n &tdevelop;.</link +></member> +</simplelist> + +<note> +<para +>Beskrivningen förutsätter att projektet är baserat pÃ¥ &GNU; autotools, vilket aktiverar Hantering av automake i &tdevelop;, liksom vÃ¥rt exempelprojekt Hello. Om du skapar en annan projektttyp, t.ex. för &Qt;-baserad projekthantering med <application +>QMake</application +>, finns andra funktioner tillgängliga i menyerna, eller kanske inte nÃ¥gra av dem. Du mÃ¥ste använda respektive leverantörs dokumentation om projekthantering och hur man bygger projekt i dessa fall.</para> +</note> + +<sect3 id="gettingstarted-compile-basic-init"> +<title +>Initiera projektet sÃ¥ att det kan byggas</title> + +<para +>När programguiden skapade vÃ¥rt exempelprojekt Hello, lämnade den det i ett sorts <quote +>orört</quote +> utgÃ¥ngstillstÃ¥nd. Verktygskedjan i &GNU; autotools kräver att flera initieringssteg utförs innan programmet verkligen kan kompileras och länkas. Om du försöker bygga ett projekt när det är i detta utgÃ¥ngstillstÃ¥nd, t.ex. genom att välja <menuchoice +><guimenu +>Bygg</guimenu +> <guimenuitem +>Bygg projekt</guimenuitem +></menuchoice +> eller trycka pÃ¥ funktionstangenten <keycap +>F8</keycap +>, fÃ¥r du följande varning:</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="raw-project-warning.png" format="PNG"/> +</imageobject> +<caption +><para +>Försöker bygga ett obehandlat projekt baserat pÃ¥ automake.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Du kan klicka pÃ¥ knappen <guibutton +>Kör dem</guibutton +>, vilket gör att &tdevelop; automatiskt försöker köra alla inställningssteg som krävs innan programmet kompileras och länkas. Men vi ska titta pÃ¥ de inledande stegen i följd, sÃ¥ avbryt dialogrutan genom att klicka pÃ¥ <guibutton +>Kör inte</guibutton +>. </para> + +<para +>Som redan har nämnts utförs kompilering och länkning av programmet via menyn <guimenu +>Bygg</guimenu +>. Visa den och välj <guimenuitem +>Kör automake och besläktade program</guimenuitem +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="build-menu-automake.png" format="PNG"/> +</imageobject> +<caption +><para +>Starta en grundläggande initieringskörning.</para +></caption> +</mediaobject> +</screenshot> + +<para +>&tdevelop; öppnar nu verktygsvyn <guilabel +>Meddelanden</guilabel +> längst ner och visa en följd av meddelanden som skapas av flera olika byggverktyg. Om allting gick bra, ska den sista raden lyda: <quote +><computeroutput +>*** Lyckades ***</computeroutput +></quote +>.</para> + +<para +>Om du rullar tillbaka längst upp, hittar du kommandoraden som &tdevelop; utförde för att anropa verktygen i bakgrunden:</para> + +<programlisting +>cd '/home/devel/projects/hello' && \ +WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -f Makefile.cvs +</programlisting> + +<para +>Det säger att &tdevelop; först bytte till vÃ¥rt exempelprojekts rotkatalog. Därefter skapades en särskild miljö, som talar om för byggsystemet vilka versioner av <application +>autoconf</application +> och <application +>automake</application +> som används för initieringen. Till sist instruerades byggverktyget (&GNU; <application +>gmake</application +> i detta fall) att behandla byggfilen <filename +>Makefile.cvs</filename +>.</para> + +<para +>Byggfilen skapades automatiskt när projektet Hello skapades.Den innehÃ¥ller alla kommandon som behövs för att initiera projektet rätt, sÃ¥ att programmet som skapas kan köras i &kde;. I synnerhet skapar den skripfilen <filename +>configure</filename +> som är nödvändig för att utföra nästa inställningssteg.</para> +</sect3> + +<sect3 id="gettingstarted-compile-basic-config"> +<title +>Inledande konfiguration av Hello</title> + +<para +>Att konfigurera betyder att anpassa byggprocessen till egenheter hos hÃ¥rdvaran och programvaran i systemet. Det är ett grundkrav i byggprocesser baserade pÃ¥ &GNU; autotools, som du troligen redan vet.</para> + +<para +>Du kan först beordra en konfigureringssekvens när den grundläggande initieringen av automake har avslutats med lyckat resultat, eftersom de nödvändiga <filename +>configure</filename +>-filerna inte är tillgängliga förrän efter den inledande körningen. När den är gjord, välj menyalternativet <menuchoice +><guimenu +>Bygg</guimenu +> <guimenuitem +>Kör configure</guimenuitem +></menuchoice +> för att pÃ¥börja konfigureringssekvensen.</para> + +<para +>&tdevelop; öppnade verktygsvyn <guilabel +>Meddelanden</guilabel +> igen om det behövdes, och listade meddelanden frÃ¥n körningen av configure i den. Om allt gick bra, är de sista meddelandena <quote +><computeroutput +>Good - your configure finished. Start make now</computeroutput +></quote +> (som skrevs ut av configure) följt av meddelandet <quote +><computeroutput +>*** Lyckades ***</computeroutput +></quote +> frÃ¥n &tdevelop;.</para> + +<para id="gettingstarted-compile-basic-config-cmd" +>Längst upp i fönstret <guilabel +>Meddelanden</guilabel +> hittar du Ã¥ter kommandoraden som &tdevelop; använde för att starta konfigurationen:</para> + +<programlisting +>mkdir '/home/devel/projects/hello/debug' && \ +cd '/home/devel/projects/hello/debug' && \ +CXXFLAGS="-O0 -g3" "/home/devel/projects/hello/configure" --enable-debug=full +</programlisting> + +<para +>Du kan se flera intressanta detaljer i kommandona.</para> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> +<entry> +<mediaobject> +<imageobject> +<imagedata fileref="tutorial-debug-tree.png"/> +</imageobject> +</mediaobject> +</entry> +<entry> +<itemizedlist> +<listitem> +<para +>För det första använder &tdevelop; en särskild underkatalog i projektets katalogträd för byggprocessen. Byggkatalogen <filename class="directory" +>debug</filename +> (som visas till vänster) speglar den grundläggande projektstrukturen och innehÃ¥ller en mängd byggrelaterade filer, som flera <filename +>configure</filename +>-baserade filer och dessutom en <filename +>Makefile</filename +> i varje underkatalog.</para> +</listitem> +<listitem> +<para +>I det närmast följande avsnittet <link linkend="gettingstarted-compile-setup" +>Anpassa projektet</link +> ger vi en kortfattad beskrivning av motiven till att &tdevelop; använder separata byggkataloger i fall som dessa. För ögonblicket är det nog att veta att &tdevelop; skapade katalogen <filename class="directory" +>debug</filename +> (om det behövdes) innan anropet till configure, och att skriptet <filename +>configure</filename +> skapade delstrukturen och alla <filename +>Makefile</filename +> i den.</para> +</listitem> +<listitem> +<para +>Därefter, anropade &tdevelop; skriptet <filename +>configure</filename +> inifrÃ¥n byggkatalogen <filename class="directory" +>debug</filename +> i vÃ¥rt projekts rotkatalog med en särskild miljö, där argumenten <computeroutput +>CXXFLAGS="-O0 -g3"</computeroutput +> senare talar om för &gcc;-kompilatorn att den inte ska optimera binärfilerna som skapas, och att den ska inkludera fullständig avlusningsinformation i dem.</para> +</listitem> +<listitem> +<para +>Till sist anropas skriptet <filename +>configure</filename +> med alternativet <computeroutput +>--enable-debug=full</computeroutput +> som talar om för det att skapa varje <filename +>Makefile</filename +> sÃ¥ att efterföljande kompilering och länkning fÃ¥r all nödvändig avlusningsinformation inbyggd och användbar.</para> +</listitem> +</itemizedlist> +</entry> +</row +></tbody +></tgroup> +</informaltable> + +<para +>Alla inställningarna kan anpassa för varje projekt. Du kommer att lära dig mer om det i kapitlet <link linkend="project-management" +>Projekthantering</link +>.</para> +</sect3> + +<sect3 id="gettingstarted-compile-basic-build"> +<title +>Bygga projektet</title> + +<para +>När du väl har kommit sÃ¥ här lÃ¥ngt är du klar att verkligen bygga, dvs. kompilera och länka programmet. Genom att titta i menyn <guimenu +>Bygg</guimenu +>, ser du att det finns tre sÃ¥dana kompileringsalternativ att välja bland.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="build-commands.png" format="PNG"/> +</imageobject> +<caption +><para +>Kommandon i &tdevelop; för att bygga binärfiler.</para +></caption> +</mediaobject> +</screenshot> + +<para +>NerifrÃ¥n och uppÃ¥t, finns det:</para> +<itemizedlist> +<listitem> +<para +><guimenuitem +>Kompilera fil</guimenuitem +>: Det kompilerar källkodsfilen i redigeringsfönstret som för närvarande är öppet. Används oftast för snabb kontroll av fel.</para> +</listitem> +<listitem> +<para +><guimenuitem +>Bygg aktivt mÃ¥l</guimenuitem +>: Det används i huvudsak i samband med <link linkend="gettingstarted-extend-automake" +>Hantering av automake</link +>, som vi tar en snabb titt pÃ¥ nedan.</para> +</listitem> +<listitem> +<para +><guimenuitem +>Bygg projekt</guimenuitem +>: Det är vad vi nu är intresserade av. Det gÃ¥r igenom hela projektet, kompilerar och länkar filer där det är nödvändigt.</para> +</listitem> +</itemizedlist> + +<para +>Det kan vara intressant att se vad som händer med katalogen <filename class="directory" +>debug</filename +> som skapades under föregÃ¥ende körning av <filename +>configure</filename +>. Därför är det bäst att behÃ¥lla den öppen med alla underkataloger synliga, som visas ovan. Välj därefter <menuchoice +><guimenu +>Bygg</guimenu +> <guimenuitem +>Bygg projekt</guimenuitem +></menuchoice +> (eller tryck pÃ¥ tangenten <keycap +>F8</keycap +>) för att pÃ¥börja byggsekvensen. Som tidigare öppnas verktygsvyn <guilabel +>Meddelanden</guilabel +> längst ner och listar resultatet av byggkörningen. Dessutom dyker nÃ¥gra filer upp i underkatalogträdet <filename class="directory" +>debug</filename +>.</para> + +<para id="gettingstarted-compile-basic-build-cmd" +>Det finns inte mÃ¥nga källkodsfiler i vÃ¥rt exempelprojekt Hello, alltsÃ¥ kommer fönstret <guilabel +>Meddelanden</guilabel +> bara innehÃ¥lla nÃ¥gra fÃ¥ rader. Leta Ã¥terigen rätt pÃ¥ kommandoraden ovanför dem som &tdevelop; skickade till skalet i bakgrunden.</para> + +<programlisting +>cd '/home/devel/projects/hello/debug' && \ +WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake -k +</programlisting> + +<para +>&tdevelop; bytte till <filename class="directory" +>debug</filename +>-delträdets rot, vilket inte borde vara förvÃ¥nande, för att köra filen <filename +>Makefile</filename +> som finns där. En särskild delmiljö skapades igen, som tidigare i <link linkend="gettingstarted-compile-basic-init" +>initieringssteget</link +>, i vilken verktyget <application +>gmake</application +> anropades.</para> + +<para +>Observera väljaren <computeroutput +>-k</computeroutput +> i anropet av <application +>gmake</application +>. Den tvingar byggprocessen att fortsätta till sitt slut, även om fel skulle uppstÃ¥. Det är vettigt eftersom &tdevelop; kommer att lista alla felmeddelanden i fönstret <guilabel +>Meddelanden</guilabel +>. Om det finns nÃ¥gra, dra nytta av fördelarna med den integrerade utvecklingsmiljön: klicka bara pÃ¥ felmeddelandet i fönstret <guilabel +>Meddelanden</guilabel +> sÃ¥ gÃ¥r &tdevelop; till det exakta stället där felet uppstod i källkodsfilen.</para> + +<para +>Och vad hände inne i delträdet <filename class="directory" +>debug</filename +>? Inte sÃ¥ mycket. NÃ¥gra fÃ¥ filer dök upp i grenarna <filename class="directory" +>doc/en</filename +> och <filename class="directory" +>src</filename +>, i synnerhet filen <filename +>hello</filename +> i <filename class="directory" +>/home/devel/projects/hello/debug/src/</filename +>. Den är, till sist, programmets binärfil som vi sökte. Allt som är kvar att göra i vÃ¥r inledande kontroll av projektet är att köra <filename +>hello</filename +>.</para> +</sect3> + +<sect3 id="gettingstarted-compile-basic-run"> +<title +>Köra programmet</title> + +<para +>Det finns inte nÃ¥gra extra steg inblandade för att köra det nya programmet hello. Välj antingen <menuchoice +><guimenu +>Bygg</guimenu +> <guimenuitem +>Kör program</guimenuitem +></menuchoice +>, tryck pÃ¥ <keycombo +><keycap +>Skift</keycap +> <keycap +>F9</keycap +></keycombo +> eller använd knappen <guibutton +>Kör program</guibutton +> i <guilabel +>byggverktygsraden</guilabel +> som visas nedan.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="run-button.png"/> +</imageobject> +<caption +><para +>Köra ett program frÃ¥n <guilabel +>Byggverktygsraden</guilabel +>.</para> +</caption> +</mediaobject> +</screenshot> + +<para +>Det är allt. &tdevelop; startar nu det nya programmet i ett särskilt terminalfönster som verktygsvyn <guilabel +>Program</guilabel +> längst ner. Där visas kommandot som &tdevelop; utförde för att köra programmet pÃ¥ raden längst upp:</para> + +<programlisting +>./hello +</programlisting> + +<para +>som visar att den integrerade utvecklingsmiljön har en uppfattning om var programmet som ska köras finns. Denna uppfattning kan ställas in pÃ¥ mÃ¥nga sätt. Se mer om detta i kapitlet <link linkend="project-management" +>Projekthantering</link +>.</para> + +<para +>Raden <computeroutput +>./hello</computeroutput +> följs troligen av ett varningsmeddelande. Ignorera det för tillfället. Det förhindrar inte att vÃ¥rt program <application +>hello</application +> kör.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="hello-world-app.png" format="PNG"/> +</imageobject> +<caption> +<para +>VÃ¥rt ursprungliga <application +>Hello</application +>-program.</para> +</caption> +</mediaobject> +</screenshot> + +<para +>Stäng programfönstret <application +>Hello</application +> som vanligt. Om inga fel uppstod rapporterar &tdevelop; det som <quote +><computeroutput +>*** Avslutade normalt ***</computeroutput +></quote +> i verktygsvyn <guilabel +>Program</guilabel +>.</para> +</sect3> +</sect2> + +<sect2 id="gettingstarted-compile-setup"> +<title +>Anpassa projektet</title> + +<para +>Det finns Ã¥tskilliga sätt att hantera ett projekt i &tdevelop;. Beteendet kan ställas in för varje projekt, och är mest intressant för avancerade utvecklare. Det finns dock nÃ¥gra fÃ¥ projektspecifika inställningar som du bör känna till ända frÃ¥n början. </para> + +<simplelist> +<member +><link linkend="gettingstarted-compile-setup-build" +>Varför är bygginställningar användbara?</link +></member> + +<member +><link linkend="gettingstarted-compile-setup-config" +>Var beteendet hos skriptet <filename +>configure</filename +> ska definieras.</link +></member> + +<member +><link linkend="gettingstarted-compile-setup-make" +>NÃ¥gra överväganden om hur <application +>make</application +> ska köras.</link +></member> + +<member +><link linkend="gettingstarted-compile-setup-run" +>Var ska det körbara programmet finnas, och vad ska det heta?</link +></member> +</simplelist> + +<sect3 id="gettingstarted-compile-setup-build"> +<title +>Bygginställningar</title> + +<para +>När vi körde skriptet <filename +>configure</filename +> i avsnittet <link linkend="gettingstarted-compile-basic-config" +>Inledande konfiguration av Hello</link +> ovan, noterade vi att &tdevelop; hade skapat den särskilda underkatalogen <filename class="directory" +>debug</filename +> för detta syfte. I detta avsnitt behandlar vi kortfattat nÃ¥gra konsekvenser av denna funktion.</para> + +<para +>För det första använder &tdevelop; inte nödvändigtvis särskilda byggkataloger skilda frÃ¥n källkoden. Förberedelser för att automatiskt använda särskilda bygginställningar görs via de mallar som programguiden använder när ett nytt projekt skapas.</para> + +<para +>För att ta reda pÃ¥ vilka bygginställningar som för närvarande är tillgängliga, ta en titt pÃ¥ menyn <menuchoice +><guimenu +>Projekt</guimenu +> <guisubmenu +>Bygginställning</guisubmenu +></menuchoice +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="build-configurations.png" format="PNG"/> +</imageobject> +<caption +><para +>Det finns olika bygginställningar tillgängliga i projektet.</para +></caption> +</mediaobject> +</screenshot> + +<para +>I detta fall, som i vÃ¥rt exempelprojekt Hello, finns det tre olika tillgängliga bygginställningar. I andra fall kanske det bara finns en sÃ¥dan bygginställning frÃ¥n början, nämligen <guimenuitem +>default</guimenuitem +>.</para> + +<para +>Bygginställningen som för närvarande används har en bock till vänster. Välj helt enkelt menyalternativet för att byta till en annan bygginställning.</para> + +<para +>LÃ¥t oss nu ta en snabbtitt pÃ¥ vad bygginställningarna tillhandahÃ¥ller.</para> + +<variablelist id="gettingstarted-compile-setup-build-configs"> +<varlistentry> +<term +><guimenuitem +>debug</guimenuitem +></term> +<listitem> +<para +>Du bör använda bygginställningen som standard under utvecklingsprocessen. Den byggs separat frÃ¥n källkodskatalogerna i den särskilda underkatalogen <filename class="directory" +>debug</filename +>, dvs. alla objektfiler, extrafiler och körbara filer placeras i dess underkataloger istället för motsvarande kataloger i projektets rot. Skriptet <filename +>configure</filename +> fÃ¥r väljaren <computeroutput +>--enable-debug=full</computeroutput +> och argumentet <computeroutput +>CXXFLAGS="-O0 -g3"</computeroutput +> talar om för &gcc;-kompilatorn att inte optimera koden och att infoga omfattande avlusningsinformation i de binärfiler som skapas.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>optimized</guimenuitem +></term> +<listitem> +<para +>Den här används för att bygga det slutliga C++ programmet. Den byggs separat frÃ¥n källkodskatalogerna i den särskilda underkatalogen <filename class="directory" +>optimized</filename +>. Skriptet <filename class="directory" +>configure</filename +> har inga särskilda förinställda väljare, medan <computeroutput +>CXXFLAGS="-O2 -g0"</computeroutput +> talar om för &gcc;-kompilatorn att optimera koden och inte infoga avlusningsinformation i de binärfiler som skapas.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><guimenuitem +>default</guimenuitem +></term> +<listitem> +<para +>Beteckningen <quote +>default</quote +> anger standardinställningen när ett program byggs i en terminal med t.ex. &GNU; byggverktygen <application +>configure</application +> och <application +>make</application +>/<application +>gmake</application +> pÃ¥ kommandoraden. I motsats till <guimenuitem +>debug</guimenuitem +> eller <guimenuitem +>optimized</guimenuitem +> används ingen särskild byggkatalog. Programmet byggs istället normalt i källkodskatalogerna. Inga särskilda konfigurationsväljare är fördefinierade. När programmet byggs och körs används de underliggande verktygens standardinställningar (t.ex. &gcc;, etc.).</para> + +<warning> +<para +>Tänk efter ordentligt innan du bestämmer dig för att använda bygginställningen <guimenuitem +>default</guimenuitem +>.</para> + +<para +>Den kan inte användas parallellt med de särskilda inställningarna <guimenuitem +>debug</guimenuitem +> och <guimenuitem +>optimized</guimenuitem +>. <emphasis +>Alla byggÃ¥tgärder som använder <guimenuitem +>default</guimenuitem +> gör att de bÃ¥da andra bygginställningarna blir oanvändbara.</emphasis +> Det beror pÃ¥ nÃ¥gra egenheter hos processen som skapar <filename +>Makefile</filename +> med mekanismerna i <application +>automake</application +> och <application +>autoconf</application +>, som inte är enkelt att fÃ¥ bukt med.</para> +</warning> +</listitem> +</varlistentry> +</variablelist> + +<para +>Varför vill man dÃ¥ använda olika bygginställningar överhuvudtaget, när de till och med inte verkar fungera tillsammans? Svaret är att det förenklar cykler med redigering, kompilering och avlusning. De extra avlusningsinstruktionerna som infogas i binärfilerna samt alla de subtila strukturändringarna som görs av programkoden under optimering pÃ¥verkar beteendet när det körs för programmet som skapas. När den logiska strukturen hos en viss rutin verkar vara riktig, borde du testa om den fortfarande beter sig riktigt under mer realistiska förhÃ¥llanden.</para> + +<para +>Det är dÃ¥ bygginställningarna i &tdevelop; gör nytta. Eftersom byggobjekt och körbara filer i varje särskild byggkatalog, och byggkommandon, hÃ¥lls Ã¥tskilda frÃ¥n varandra behöver bara ändringar av källkod hanteras när du byter mellan bygginställningarna.</para> + +<para +>Istället för att rensa och kompilera om allt frÃ¥n början med andra inställningar, behöver du alltsÃ¥ bara byta frÃ¥n bygginställningen <guimenuitem +>debug</guimenuitem +> till <guimenuitem +>optimize</guimenuitem +>, kompilera ändringarna av källkoden och därefter starta om programmet under dessa förhÃ¥llanden. Om nÃ¥got olämpligt visar sig, byt helt enkelt tillbaka till <guimenuitem +>debug</guimenuitem +>, och fortsätt omedelbart arbeta där.</para> + +<para +>En sista anmärkning: MÃ¥nga bygginställningar kan anpassas. Du kan till och med definiera dina egna bygginställningar om utvecklingsprocessen kräver det. Vi tar en snabb titt pÃ¥ dessa möjligheter i nästa avsnitt.</para> +</sect3> + +<sect3 id="gettingstarted-compile-setup-config"> +<title +>Konfigurationsalternativ för projektet</title> + +<para +>Att konfigurera programmet riktigt är livsviktigt i byggkedjan baserad pÃ¥ &GNU; autotools. Det styrs ofta av väljare för skriptet <filename +>configure</filename +> och/eller särskilda argumentinställningar i miljön innan <filename +>configure</filename +> körs, som t.ex. <computeroutput +>CXXFLAGS</computeroutput +> i vÃ¥r tidigare beskrivning.</para> + +<para +>Du kan ställa in de flesta konfigurationsalternativen för ett givet projekt frÃ¥n &tdevelop;s grafiska gränssnitt. Välj <menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +>Projektinställningar</guimenuitem +></menuchoice +> och därefter ikonen <guiicon +>Inställning av configure</guiicon +> pÃ¥ ikonraden till vänster i dialogrutan. Sidan <guilabel +>Inställning av configure</guilabel +> som innehÃ¥ller flera flikfönster visas till höger.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-configure.png" format="PNG"/> +</imageobject> +<caption +><para +>De flesta inställningarna av configure kan anges här.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Som du märker, finns det ett ganska stort antal alternativ som kan anges i dialogrutan. För tillfället tittar vi kortfattat pÃ¥ ett fÃ¥tal av dem med avseende pÃ¥ vÃ¥rt exempelprojekt Hello. För detaljerade instruktioner, se kapitlet <link linkend="projects-configure" +>Konfigurera projekt</link +>. Om du vill veta mer om betydelsen hos olika argument som kan anges, slÃ¥ upp <command +>info make</command +> i en terminal (eller <command +>info:make</command +> inne i &konqueror;) och titta i avsnittet <menuchoice +><guimenu +>Implicit Rules</guimenu +> <guimenuitem +>Implicit Variables</guimenuitem +></menuchoice +>.</para> + +<para +>Det finns flera inställningsfönster med flikar i dialogrutan, där det första, <guilabel +>Allmän</guilabel +>, visar ofta använda inställningar, medan de övriga är ganska kompilatorspecifika. Under alla omständigheter, styrs dock det verkliga innehÃ¥llet i dialogrutorna av angiven bygginställning.</para> + +<para +>Du väljer bygginställningen vars inställningsalternativ ska definieras i kombinationsrutan <guilabel +>Inställning</guilabel +> längst upp i dialogrutan <guilabel +>Inställning av configure</guilabel +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-buildconfig.png" format="PNG"/> +</imageobject> +<caption +><para +>Välj bygginställning vars inställningar ska definieras.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Välj nu en annan bygginställning i kombinationsrutan och observera hur innehÃ¥llet i t.ex. textrutorna <guilabel +>Configure-argument</guilabel +> och <guilabel +>Byggkatalog</guilabel +> ändras enligt inställningarna vi nämnde för <link linkend="gettingstarted-compile-setup-build-configs" +>bygginställningslistan</link +> ovan.</para> + +<sect4 id="gettingstarted-compile-setup-config-general"> +<title +>Allmänna konfigurationsinställningar</title> + +<para +>Följande inställningsalternativ kan definieras pÃ¥ sidan <guilabel +>Allmänt</guilabel +> i dialogrutan:</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Configure-argument</title> +<para +>Detta är alternativen som &tdevelop; tilldelar till anropet av skriptet <filename +>configure</filename +> i byggprocessen. Se <link linkend="gettingstarted-compile-basic-config-cmd" +>exemplet</link +> i avsnittet <quote +>Inledande konfiguration av Hello</quote +> ovan.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Byggkatalog</title> +<para +>Detta är underkatalogen i nuvarande projektrot, där &tdevelop; placerar alla filer som skapas under byggprocessen. Idealiskt borde det motsvara namnet pÃ¥ bygginställningen som används, men du har möjlighet att använda vilket namn du vill, under förutsättning att det är annorlunda än alla andra byggkataloger.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Övre källkatalog</title> +<para +>Du behöver inte den här ofta. Dess standardvärde är projektets rotkatalog, och den behöver bara definieras om om projektets källkod är placerad nÃ¥gon annanstans.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>C/C++ preprocessorargument(CPPFLAGS)</title> +<para +>Skriv in särskilda instruktioner för preprocessorn här. &tdevelop; använder det för att skapa en tillfällig miljö innan själva byggverktyget anropas. Se Ã¥terigen <link linkend="gettingstarted-compile-basic-config-cmd" +>exemplet</link +> i avsnittet <quote +>Inledande konfiguration av Hello</quote +> ovan hur det görs.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Länkargument (LDFLAGS)</title> +<para +>Det här är extra information för länkarverktyget <application +>ld</application +>, om var det ska leta efter ytterligare bibliotek. Den används ocksÃ¥ för att skapa den tillfälliga byggmiljön.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Miljövariabler</title> +<para +>Här kan du definiera ytterligare variabler som ska ställas in i den tillfälliga byggmiljön som &tdevelop; skapar innan respektive byggverktyg anropas. Ã…terigen, mÃ¥ste du definiera miljövariablerna för varje bygginställning där de ska användas.</para> +</formalpara> +</listitem> +</itemizedlist> +</sect4> + +<sect4 id="gettingstarted-compile-setup-config-spec"> +<title +>Kompilatorspecifika inställningar</title> + +<para +>Övriga flikar pÃ¥ dialogsidan <guilabel +>Inställning av configure</guilabel +> är till för kompilatorspecifika inställningar. De är strukturerade pÃ¥ liknande sätt, sÃ¥ det är tillräckligt att snabbt titta pÃ¥ sidan <guilabel +>C++</guilabel +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-cpp.png" format="PNG"/> +</imageobject> +<caption +><para +>Välj kompilator som &tdevelop; ska använda och dess arbetsomgivning här.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Här kan du ställa in följande:</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>C++ kompilator</title> +<para +>Välj den C++ kompilator som &tdevelop; normalt ska använda i kombinationsrutan. Den listar dock bara de kompilatorer som &tdevelop; redan känner till.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Kompilatorkommando (CXX)</title> +<para +>Bara för experter. Det behövs bara om en annan C++ kompilator än standardkompilatorn används. Skriv in namnet som den anropas med här.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Kompilatorargument (CXXFLAGS)</title> +<para +>Här kan du skriva in eventuella extra alternativ som &tdevelop; ska skicka till kompilatorn (via <filename +>Makefile</filename +>). Vissa alternativvärden är förinställda enligt bygginställning som valts med kombinationsrutan <guilabel +>Inställning</guilabel +>.</para> +</formalpara> + +<para +>Observera att mÃ¥nga vanliga kompilatoralternativ kan väljas i en dialogruta som dyker upp när du klickar pÃ¥ knappen <guibutton +>...</guibutton +> till höger om textrutan.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-cppoptions.png" format="PNG"/> +</imageobject> +<caption +><para +>Använd dialogrutan för att definiera beteendet hos &GNU; C++ kompilatorn.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Vi valda med avsikt fliken <guilabel +>Optimering</guilabel +> här. Observera att alternativet <guilabel +>Ingen optimering</guilabel +> är förvald (enligt det förinställda alternativet <guilabel +>-O0</guilabel +> i bygginställningen <computeroutput +>debug</computeroutput +>).</para> + +<para +>Tyvärr kan du för närvarande inte välja alla alternativ frÃ¥n dialogrutan Exempelvis alternativet <computeroutput +>-g3</computeroutput +> som används av bygginställningen <computeroutput +>debug</computeroutput +> mÃ¥ste ändras för hand om det nÃ¥gonsin behövs.</para> +</listitem> +</itemizedlist> +</sect4> +</sect3> + +<sect3 id="gettingstarted-compile-setup-make"> +<title +>Hur programmet ska byggas av make</title> + +<para +>Du kan dessutom anpassa sättet som &tdevelop; anropar verktyget <application +>make</application +> när projektet byggs. Välj <menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +>Projektinställningar</guimenuitem +></menuchoice +> och därefter ikonen <guiicon +>Bygginställningar</guiicon +> till vänster i dialogfönstret. Dialogsidan <guilabel +>Bygginställningar</guilabel +> visas dÃ¥ till höger.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-make.png" format="PNG"/> +</imageobject> +<caption +><para +>Definiera hur &tdevelop; anropar verktyget <application +>make</application +>.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Det finns inte sÃ¥ mycket att göra här just nu. Den enda intressanta inställningen i de flesta fall är alternativet <guilabel +>Avbryt vid första fel</guilabel +>. Du kommer att märka att den är inaktiverad i de flesta projekt. Den motsvarar väljaren <computeroutput +>-k</computeroutput +> i anropet till <application +>gmake</application +> som vi hittade den första gÃ¥ngen som exempelprojektet Hello <link linkend="gettingstarted-compile-basic-build-cmd" +>byggdes</link +>.</para> + +<para +>Det är vettigt i en integrerad utvecklingsmiljö som &tdevelop;, där alla felmeddelanden under byggningen lagras. Efter byggprocessen kan du enkelt gÃ¥ till vilket felmeddelande som helst i verkygsfönstret <guilabel +>Meddelanden</guilabel +>. Använd <menuchoice +><guimenu +>Visa</guimenu +> <guimenuitem +>Nästa fel</guimenuitem +></menuchoice +> och <menuchoice +><guimenu +>Visa</guimenu +> <guimenuitem +>FöregÃ¥ende fel</guimenuitem +></menuchoice +> eller tangenterna <keycap +>F4</keycap +> och <keycombo +><keycap +>Skift</keycap +> <keycap +>F4</keycap +></keycombo +> för att göra det. &tdevelop; aktiverar automatiskt redigeringsfönstret för källkodsfilen i frÃ¥ga och placerar markören pÃ¥ den felaktiga raden.</para> + +<para +>Om du Ã¥ andra sidan hellre vill att byggningen ska stoppas sÃ¥ snart ett fel uppstÃ¥r, markera alternativet <guilabel +>Avbryt vid första fel</guilabel +> i dialogrutan. &tdevelop; anropar du <application +>gmake</application +> utan väljaren <computeroutput +>-k</computeroutput +>.</para> +</sect3> + +<sect3 id="gettingstarted-compile-setup-run"> +<title +>Hur det körbara programmet startas</title> + +<para +>När byggningen väl är färdig, kan du enkelt köra programmet inifrÃ¥n &tdevelop;. Använd antingen <menuchoice +><guimenu +>Bygg</guimenu +> <guimenuitem +>Kör program</guimenuitem +></menuchoice +>, snabbtangenten <keycombo +><keycap +>Skift</keycap +> <keycap +>F9</keycap +></keycombo +> eller knappen <guibutton +>Kör program</guibutton +> i &tdevelop;s <guilabel +>byggverktygsrad</guilabel +>.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="run-button.png" format="PNG"/> +</imageobject> +<caption +><para +>Kör programmet här.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Men var finns det körbara programmet som ska köras? Hur fÃ¥r man &tdevelop; att lägga till väljare i anropet? Eller hur kan man fÃ¥ programmet att köras i en egen terminal för att testa interaktivt beteende i terminalen?</para> + +<para +>Allt det kan lösas genom att ställa in nÃ¥gra projektorienterade köralternativ i &tdevelop;. Välj <menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +>Projektinställningar</guimenuitem +></menuchoice +> och därefter ikonen <guiicon +>Körinställningar</guiicon +> i ikonraden till vänster i dialogfönstret. Dialogsidan <guilabel +>Körinställningar</guilabel +> visas till höger.</para> + +<screenshot> +<mediaobject> +<imageobject> +<imagedata fileref="configure-project-run.png" format="PNG"/> +</imageobject> +<caption +><para +>Definiera var och hur programmet ska köras.</para +></caption> +</mediaobject> +</screenshot> + +<para +>Det finns en hel del som kan ställas in i dialogrutan. Det finns egentligen fyra grupper av inställningsalternativ.</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Katalog</title> +<para +>Talar om för &tdevelop; vad det ska förutsätta att det körbara programmet kallas. Det finns tre möjligheter att välja bland.</para> +</formalpara> + +<para +>Observera dock att bara rotkataloger definieras här. &tdevelop; letar oftast efter det körbara programmet i nÃ¥gon underkatalog som anges i följande grupp av inställningar.</para> + +<itemizedlist> +<listitem> +<para +>Kör frÃ¥n katalogen där det körbara programmet senast byggdes. Det är normalvärdet. Du kan behÃ¥lla det för ögonblicket.</para> +</listitem> + +<listitem> +<para +>Kör frÃ¥n byggkatalogen enligt <link linkend="gettingstarted-compile-setup-build" +>bygginställning</link +> som för närvarande är vald. Katalognamnet ställdes in pÃ¥ dialogsidan <link linkend="gettingstarted-compile-setup-config-general" +>Allmän</link +>.</para> + +<para +>Detta är rotkatalogen där &tdevelop; ska hitta det körbara programmet. Den ändras automatiskt enligt valet du gjorde i menyn <menuchoice +><guimenu +>Projekt</guimenu +> <guisubmenu +>Bygginställningar</guisubmenu +></menuchoice +>. Prova det.</para> + +<para +>Förutom att alltid köra det senast byggda körbara programmet enligt inställningen ovan, lÃ¥ter det dig byta program att köra genom att helt enkelt välja en annan bygginställning i menyn <guimenu +>Projekt</guimenu +>.</para> +</listitem> + +<listitem> +<para +>Kör programmet som hittas i en fast egen katalog. Ã…terigen är det bara rotkatalogen där själva den körbara filen finns.</para> + +<para +>Använd det om du t.ex. vill köra programmet som verkligen har installerats istället för versionen som finns i projektkatalogen.</para> +</listitem> +</itemizedlist> +</listitem> + +<listitem> +<formalpara> +<title +>Program</title> +<para +>Detta talar om relativ plats och namn pÃ¥ programmet som verkligen ska anropas för &tdevelop;. Det är relativt i förhÃ¥llande till rotkatalogen som definieras i inställningsgruppen ovan. Dessutom kan du definiera alla argument som &tdevelop; ska skicka till programmet när det verkligen anropas.</para> +</formalpara> + +<note> +<para +>Om textrutan <guilabel +>Huvudprogram</guilabel +> lämnas tom, används inställningen av <emphasis +>aktivt mÃ¥l</emphasis +> i Hantering av automake. Även om detta är en expertinställning, är en vanlig orsak till problem att detta inmatningsfält har lämnats tomt. Kontrollera inställningen om &tdevelop; inte verkar anropa det körbara program du ville.</para> +</note> +</listitem> + +<listitem> +<formalpara> +<title +>Miljövariabler</title> +<para +>&tdevelop; skapar en särskild skalmiljö att köra programmet i. Definiera eventuella extra miljövariabler i denna grupp av inställningar.</para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Diverse</title> +<para +>Ytterligare tvÃ¥ kryssrutor finns längst ner pÃ¥ dialogsidan.</para> +</formalpara> + +<itemizedlist> +<listitem> +<para +><guilabel +>Kompilera automatiskt innan körning</guilabel +> är oftast praktiskt. &tdevelop; kontrollerar om projektet har ändrats och utför nödvändiga konfigurerings- och byggsteg Ã¥t dig sÃ¥ snart du ger kommandot att köra programmet.</para> + +<para +>Avmarkera det om du vill köra en programversion tidigare än den senaste ändringen.</para> +</listitem> + +<listitem> +<para +><guilabel +>Starta i extern terminal</guilabel +> är intressant om du vill prova in- och utmatningsbeteende för program utan grafiskt gränssnitt i ett terminalprogram. Det är normalt inte markerat, sÃ¥ &tdevelop; startar programmet i ett eget fönster utan in- och utmatningsmöjlighet via en terminal.</para> +</listitem> +</itemizedlist> +</listitem> +</itemizedlist> +</sect3> +</sect2 +> +</sect1> + +<sect1 id="gettingstarted-extend"> +<title +>Hur ett projekt kan utökas: Hantering av automake</title> + +<para +>(ännu inte skrivet ...)</para> + +<sect2 id="gettingstarted-extend-automake"> +<title +>En snabbtitt pÃ¥ maskineriet i automake</title> + +<para +>(ännu inte skrivet ...)</para> +</sect2 +> + +<sect2 id="gettingstarted-extend-pics"> +<title +>Hur man placerar ikoner i en separat katalog</title> + +<para +>(ännu inte skrivet ...)</para> +</sect2 +> + +<sect2 id="gettingstarted-extend-class"> +<title +>Hur man lägger till nya klasser</title> + +<para +>(ännu inte skrivet ...)</para> + +<caution +><para +>Var försiktig när du väljer filnamn för klasser. Det är extremt svÃ¥rt att ändra dem senare.</para +></caution> +</sect2 +> + +<sect2 id="gettingstarted-extend-subproject"> +<title +>Vad finns i ett delprojekt?</title> + +<para +>(ännu inte skrivet ...)</para> + +<sect3 id="gettingstarted-extend-subproject-active"> +<title +>Koncentrera dig pÃ¥ ditt arbete: Det aktiva mÃ¥let</title> + +<para +>(ännu inte skrivet ...)</para> +</sect3 +> +</sect2 +> + +<sect2 id="gettingstarted-extend-restructure"> +<title +>NÃ¥gra steg för att strukturera om ett projekt</title> + +<para +>(ännu inte skrivet ...)</para> +</sect2 +> +</sect1> + + +<sect1 id="gettingstarted-debug"> +<title +>Hur man avlusar</title> + +<para +>(ännu inte skrivet ...)</para> +</sect1 +> + + +<sect1 id="gettingstarted-doc"> +<title +>En anmärkning om projektdokumentationen</title> + +<para +>&kde;-projektet använder <ulink url="http://www.docbook.org/tdg5/en/html/docbook.html" +>docbook</ulink +> för att skapa projektets handbok (dvs. användarmanualen). Hanboken är tillgänglig via programmets menyrad genom att välja <menuchoice +><guimenu +>Hjälp</guimenu +> <guimenuitem +>Handbok <replaceable +>programnamn</replaceable +></guimenuitem +></menuchoice +> när programmets grafiska gränssnitt visas i &kde;. Efter att projektet har byggts, visas handboken i &kde;:s Hjälpcentral. Den ska förklara för användaren hur programmet fungerar, vilka huvudfunktionerna är och hur det anpassas. Den ska ocksÃ¥ förklara avancerade funktioner, om nÃ¥gra sÃ¥dana finns. </para> +<para +>Alla &kde;-baserade mallar i &tdevelop; har underkatalogen doc, som innehÃ¥ller mallen <filename +>index.docbook</filename +> i katalogen en, för att komma igÃ¥ng med att skriva användarhandboken. Du redigerar <filename +>index.docbook</filename +> i &tdevelop;, och börjar med att ändra personlig information som namn, e-post, etc. Titta pÃ¥ kommentarerna i filen och försök följa anvisningarna för att pÃ¥börja programdokumentationen. Bygg om projektet för att se ändringarna i Hjälpcentralen.</para> +<note +><para +>Du mÃ¥ste installera projektet med <menuchoice +><guimenu +>Bygg</guimenu +> <guimenuitem +>Installera</guimenuitem +></menuchoice +> eller <guimenuitem +>Installera (som systemadministratör)</guimenuitem +> i &tdevelop; för att kunna se handboken i hjälpcentralen.</para +></note> +<para +>Du hittar mer information om syntaxen för docbook pÃ¥ <ulink url="http://l10n.kde.org/docs/markup/index.html" +>&kde;:s webbplats för dokumentation</ulink +>.</para> +</sect1> + +<sect1 id="gettingstarted-keys"> +<title +>Sist men inte minst, snabbtangenter</title> + +<para +>(ännu inte skrivet ...)</para> +</sect1> + +<sect1 id="gettingstarted-whereto"> +<title +>Hur gÃ¥r man vidare</title> + +<para +>(ännu inte skrivet ...)</para> + +<sect2 id="gettingstarted-whereto-faq"> +<title +>Problem som man ofta stöter pÃ¥</title> + +<simplelist> +<member +>Kapitlet I korthet</member> +<member +>Sidor med vanliga frÃ¥gor</member> +<member +>Forum</member> +<member +>E-postlistor</member> +</simplelist> +</sect2> + +<sect2 id="gettingstarted-whereto-projects"> +<title +>Arbeta med projekt</title> + +<para +>(ännu inte skrivet ...)</para> + +<sect3 id="gettingstarted-whereto-projects-open"> +<title +>Använda befintliga &tdevelop;-projekt</title> + +<para +>(ännu inte skrivet ...)</para> +</sect3> + +<sect3 id="gettingstarted-whereto-projects-import"> +<title +>Importera externa projekt</title> + +<para +>(ännu inte skrivet ...)</para> +</sect3> +</sect2> +</sect1> + +</chapter> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/importdirectory.png b/tde-i18n-sv/docs/tdevelop/tdevelop/importdirectory.png Binary files differnew file mode 100644 index 00000000000..415f66068d9 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/importdirectory.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/index.cache.bz2 b/tde-i18n-sv/docs/tdevelop/tdevelop/index.cache.bz2 Binary files differnew file mode 100644 index 00000000000..94f38d34c4d --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/index.cache.bz2 diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/index.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/index.docbook new file mode 100644 index 00000000000..420b66ae0c7 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/index.docbook @@ -0,0 +1,694 @@ +<?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 tdevelop "KDevelop"> + <!ENTITY kdevrelease "3.3.91"> + + <!-- abbreviations used in the body text --> + <!ENTITY apache "<application +>Apache</application +>"> + <!ENTITY API "<acronym +>API</acronym +>"> + <!ENTITY appwizard "Application Wizard"> + <!ENTITY autoconf "<command +>autoconf</command +>"> + <!ENTITY automake "<command +>automake</command +>"> + <!ENTITY automanag "Automake Manager"> + <!ENTITY ctags "<command +>ctags</command +>"> + <!ENTITY CVS "<application +>CVS</application +>"> + <!ENTITY cvs "CVS"> + <!ENTITY doxygen "<application +>Doxygen</application +>"> + <!ENTITY doxywizard "<application +>doxywizard</application +>"> + <!ENTITY egrep "<command +>egrep</command +>"> + <!ENTITY grep "<command +>grep</command +>"> + <!ENTITY HTML "<acronym +>HTML</acronym +>"> + <!ENTITY IDE "<acronym +>IDE</acronym +>"> + <!ENTITY libtool "<command +>libtool</command +>"> + <!ENTITY nfwizard "New File Wizard"> + <!ENTITY python "<application +>Python</application +>"> + <!ENTITY perl "<application +>Perl</application +>"> + <!ENTITY php "<application +>PHP</application +>"> + <!ENTITY promanag "Project Manager"> + <!ENTITY qte "<application +>Qt/embedded</application +>"> + <!ENTITY ssh "<application +>ssh</application +>"> + + <!-- chapters in separate docbook files --> + <!ENTITY survey-manual SYSTEM "survey-manual.docbook"> + <!ENTITY getting-started SYSTEM "getting-started.docbook"> + <!ENTITY tdevelop-survey SYSTEM "tdevelop-survey.docbook"> + <!ENTITY setup SYSTEM "setup.docbook"> + <!ENTITY applicationwizard SYSTEM "applicationwizard.docbook"> + <!ENTITY editing SYSTEM "editing.docbook"> + <!ENTITY file-browsers SYSTEM "file-browsers.docbook"> + <!ENTITY class-browsers SYSTEM "class-browsers.docbook"> + <!ENTITY documentation SYSTEM "documentation.docbook"> + <!ENTITY project-management SYSTEM "project-management.docbook"> + <!ENTITY adv-build-management SYSTEM "adv-build-management.docbook"> + <!ENTITY debugger SYSTEM "debugger.docbook"> + <!ENTITY cvs-chapter SYSTEM "cvs.docbook"> + <!ENTITY external-progs SYSTEM "external-progs.docbook"> + <!ENTITY scripts SYSTEM "scripts.docbook"> + <!ENTITY credits SYSTEM "credits.docbook"> + <!ENTITY tdevelop-scripting SYSTEM "tdevelop-scripting.docbook"> + + <!-- appendices in separate docbook files --> + <!ENTITY tdevelop-install SYSTEM "tdevelop-install.docbook"> + <!ENTITY nutshell SYSTEM "nutshell.docbook"> + <!ENTITY unixdev SYSTEM "unixdev.docbook"> + <!ENTITY app-menu SYSTEM "app-menu.docbook"> + <!ENTITY app-shortcuts SYSTEM "app-shortcuts.docbook"> + <!ENTITY app-files SYSTEM "app-files.docbook"> + <!ENTITY plugin-tools SYSTEM "plugin-tools.docbook"> + <!ENTITY app-uimodes-examples SYSTEM "app-uimodes-examples.docbook"> + <!ENTITY commands SYSTEM "commands.docbook"> + <!ENTITY app-misc-info SYSTEM "app-misc-info.docbook"> + <!ENTITY app-changelog SYSTEM "app-changelog.docbook"> + <!ENTITY app-bibliography SYSTEM "app-bibliography.docbook"> + + <!-- book related entities --> + <!ENTITY kappname "&tdevelop;"> + <!ENTITY % addindex "INCLUDE"> + <!ENTITY % Swedish "INCLUDE" +> <!-- change language only here --> +]> + +<!-- +NOTE: +Entries which require special treatment are marked with comments starting with '###'. They should be visited on a regular basis. +--> + +<book lang="&language;"> + +<bookinfo> + <title +>Användarmanual &tdevelop;</title> + + <date +>2006-06-19</date> + <releaseinfo +>&kdevrelease;</releaseinfo> + + <authorgroup> + <author +><firstname +>Bernd</firstname +> <surname +>Gehrmann</surname +> <affiliation +> <address +><email +>bernd@tdevelop.org</email +></address> + </affiliation> + </author> + + <author +><firstname +>Caleb</firstname +> <surname +>Tennis</surname +> <affiliation +> <address +><email +>caleb@aei-tech.com</email +></address> + </affiliation> + </author> + + <author +><firstname +>Bernd</firstname +> <surname +>Pol</surname +> <affiliation +> <address +><email +>bernd.pol@online.de</email +></address> + </affiliation> + </author> + + <author +><firstname +>Volker</firstname +> <surname +>Paul</surname +> <affiliation +> <address +><email +>volker.paul@tiscali.de</email +></address> + </affiliation> + </author> + </authorgroup> + + <copyright> + <year +>2002</year> + <holder +>Bernd Gehrmann</holder> + </copyright> + <copyright> + <year +>2002</year> + <holder +>Caleb Tennis</holder> + </copyright> + <copyright> + <year +>2004</year> + <holder +>Bernd Pol</holder> + </copyright> + <copyright> + <year +>2005</year> + <holder +>Volker Paul</holder> + </copyright> + + <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 +> + + <legalnotice +>&FDLNotice;</legalnotice> + + <abstract> + <para +>&tdevelop; är en integrerad utvecklingsmiljö som kan användas för ett brett spektrum av programmeringsaktiviteter.</para> + </abstract> + + <keywordset> + <keyword +>KDE</keyword> + <keyword +>KDevelop</keyword> + <keyword +>IDE</keyword> + <keyword +>utveckling</keyword> + <keyword +>programmering</keyword> + </keywordset> + +</bookinfo> + +<!-- ====================================================================== --> + +&survey-manual; +&getting-started; <!-- "Getting Started" --> +&tdevelop-survey; <!-- "Overview of &tdevelop; Features" --> +&setup; <!-- "Configuring &tdevelop;" --> +&applicationwizard; <!-- "Getting Started — the &appwizard;" --> +&editing; +&file-browsers; +&class-browsers; +&documentation; +&project-management; +&adv-build-management; +&debugger; +&cvs-chapter; +<!--&tdevelop-scripting;--> <!-- "Scripting &tdevelop;" --> +&credits; + +<!-- ====================================================================== --> +<!-- External Appendices --> + +&tdevelop-install; <!-- "Installing &tdevelop;" --> +&nutshell; +&unixdev; <!-- "Development on &UNIX;" --> +<!-- +&app-menu; +&app-shortcuts; +--> +&app-files; +&plugin-tools; +&app-uimodes-examples; +&commands; +&app-misc-info; +&app-changelog; + +<!-- ====================================================================== --> +<!-- ### Questionable, probably not IDE-specific enough. Check later again. +<chapter id="python"> +<title +>Python</title> + +<para +>... +</para> + +</chapter +> --> <!-- python --> + +<!-- ====================================================================== --> +<!-- ### Questionable, probably not IDE-specific enough. Check later again. +<chapter id="php"> +<title +>PHP</title> + +<para +>... +</para> +</chapter +> --> <!-- php --> + +<!-- ====================================================================== --> + +<!-- Note (bp, 2003-09-04): <bibliography +> should remain the last appendix --> +<!-- section because of a (meinproc???) bug which sends the Next selection --> +<!-- in circles back to it. --> +<!-- (LWatts: 2005-04-30) This is probably due to a missing id= somewhere, --> +<!-- so I've added a couple in hopes it goes away. --> + +<appendix id="app-bibliography"> +<title +>Bibliografi</title> + +<para +>(... ännu inte skrivet ...)</para> + +<bibliography id="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; 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 & 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 & Associates</publishername +></publisher> +<isbn +>ISBN 0596000855</isbn> +</biblioentry> + +<biblioentry> +<title +>Gui Programming With Python : Using the Qt Toolkit</title> +<edition +>Bk&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 & 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 & Associates</publishername +></publisher> +<isbn +>ISBN 0596001320</isbn> +</biblioentry> + +</bibliography> +<!-- --> + +</appendix +> <!-- app-bibliography --> + +<!-- ====================================================================== --> + +&documentation.index; + +</book> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/kdcop_browsing.png b/tde-i18n-sv/docs/tdevelop/tdevelop/kdcop_browsing.png Binary files differnew file mode 100644 index 00000000000..faf4c7a0e93 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/kdcop_browsing.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/nutshell.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/nutshell.docbook new file mode 100644 index 00000000000..051e3a72310 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/nutshell.docbook @@ -0,0 +1,376 @@ +<appendix id="nutshell"> +<title +>I korthet — Tips och trick</title> + +<!-- Traditionally, most of this stuff will have been put into a FAQ section. It is more useful, however, to put it at the very start of a manual, as this is the place the (inexperienced) user first looks for. + +I disagree. What is useful for a quick start, should go in "Getting started". +Troubleshooting hints go in the appendix or a FAQ. Volker Paul. + +This chapter is meant to provide short hints and tips together with (mandatory) navigation links. +There should be an additional FAQ section near the end nevertheless which contains more general stuff not directly related to navigating the manual. --> + +<para +>Informationen i det här kapitlet är avsett som en snabbreferens för att genast komma igÃ¥ng om du (tillfälligt) glömt bort nÃ¥gra grundläggande koncept. Det finns ocksÃ¥ korta tips om hur nÃ¥gra vanliga problem vid arbete med &tdevelop; kan lösas. </para> +<para +>Om du vill ha mer information om ett ämne, följ bara länken i rubriken som erbjuder det. </para> +<para +>Information om följande ämnen är tillgänglig: </para> +<simplelist> + <member +><link linkend="nutshellitem-look-and-feel" +>Utseende och känsla</link +></member> + <member +><link linkend="nutshellitem-projects" +>Projekt</link +></member> + <member +><link linkend="nutshellitem-compilation" +>Kompilering</link +></member> + <member +><link linkend="nutshellitem-automake" +>Hantering av automake</link +></member> + <member +><link linkend="nutshellitem-compilemake" +>Problem med att kompilera och bygga</link +></member> + <member +><link linkend="nutshellitem-others" +>Övriga ämnen</link +></member> +</simplelist> + +<variablelist id="nutshellitem-look-and-feel"> +<title +>Utseende och känsla</title> + +<varlistentry> +<term id="nutshell-ideal-tabs" +><link linkend="setup-ui-toolview" +>Tvinga mindre verktygsvyflikar i IDEA-läge</link +></term> +<listitem> +<para +>Normalt startar &tdevelop; med flikar som har stora textbaserade verktygstips omkring arbetsytan. Du kan ändra detta utseende, för att spara utrymme, i inställningsdialogrutan för &tdevelop; (<menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa KDevelop...</guimenuitem +> <guimenuitem +>Användargränssnitt</guimenuitem +></menuchoice +>).</para> +<para +>Om du använder en äldre version av &tdevelop; 3, kanske den här inställningsdialogrutan inte är tillgänglig. För att ändra utseendet hos verktygsvyernas flikar för hand, lägg till posten <computeroutput +>MDIStyle</computeroutput +> under rubriken <computeroutput +>[UI]</computeroutput +> i inställningsfilen <filename +>$KDEHOME/share/config/tdeveloprc</filename +> enligt följande:</para> + +<simplelist> +<member +><computeroutput +>MDIStyle=0</computeroutput +>: Bara ikoner</member> +<member +><computeroutput +>MDIStyle=1</computeroutput +>: bara text (normalvärde)</member> +<!--<member +><computeroutput +>MDIStyle=2</computeroutput +>: icons only on smaller tabs (not very useful)</member +>--> +<member +><computeroutput +>MDIStyle=3</computeroutput +>: ikoner och text</member> +</simplelist> +</listitem> +</varlistentry> + +<varlistentry +> <!-- ### remove this entry when the bug is repaired --> +<term id="nutshell-weird-style" +>Underligt färgade tecken och/eller skärmstil</term> +<listitem> +<para +>Om du observerar slumpmässigt färgade bokstäver överallt (dvs. pÃ¥ flikar, verktygsrader, etc.) och &tdevelop;s fönster verkar använda en felaktig skärmstil, kan följande hjälpa:</para> + +<itemizedlist> +<listitem +><para +>Hitta raden <quote +><computeroutput +>Style=Checked</computeroutput +></quote +> i inställningsfilen <filename +>$KDEHOME/share/config/tdeveloprc</filename +> och ta bort den. Starta därefter om &tdevelop;. </para> +</listitem> +</itemizedlist> +<para +>(Beteendet uppstÃ¥r ibland efter du vänsterklickat pÃ¥ en .ui-fil i en av filbläddrarna och &tdevelop; laddat <application +>KUIViewer</application +> för att visa det grafiska gränssnittet som skapats frÃ¥n filen.)</para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="nutshell-full-screen" +><link linkend="maximize-workspace" +>Fullskärmsläge</link +></term> +<listitem> +<para +>Välj <menuchoice +><guimenu +>Visa</guimenu +> <guimenuitem +>Fullskärmsläge</guimenuitem +></menuchoice +> i menyraden, eller tryck pÃ¥ <keycombo +><keycap +>Ctrl</keycap +> <keycap +>Skift</keycap +> <keycap +>F</keycap +></keycombo +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="nutshell-hide-menu" +><link linkend="maximize-workspace" +>Visa eller dölj menyraden</link +></term> +<listitem> +<para +>För att dölja menyraden, välj <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Visa menyrad</guimenuitem +></menuchoice +> i menyraden, eller tryck pÃ¥ <keycombo +><keycap +>Ctrl</keycap +> <keycap +>M</keycap +></keycombo +>. För att visa menyraden igen, är bara <keycombo +><keycap +>Ctrl</keycap +> <keycap +>M</keycap +></keycombo +> tillgängligt.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist> +<title id="nutshellitem-projects" +>Projekt</title> +<varlistentry> +<term +><link linkend="new-projects" +>Skapa nytt projekt</link +></term> +<listitem> +<para +><menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +>Nytt projekt...</guimenuitem +></menuchoice +> startar <link linkend="applicationwizard" +>programguiden</link +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="nutshell-new-custom-project" +>Skapa ett eget projekt</term> +<listitem> +<para +>Det finns inte nÃ¥got sätt att direkt skapa ett eget projekt (dvs. ett projekt som använder sina egna byggfiler). Använd istället <menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +>Importera befintligt projekt</guimenuitem +></menuchoice +>. Kom ihÃ¥g att ange passande <guilabel +>Projekttyp</guilabel +> i dialogrutan, med den extra texten <quote +>(Custom Makefiles)</quote +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="nutshell-project-options" +>Använd projektalternativ frÃ¥n början</term> +<listitem> +<para +>SÃ¥ fort du skapat ett nytt projekt, glöm inte att ställa in <menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +> Projektinställningar..</guimenuitem +></menuchoice +> enligt dina behov.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist id="nutshellitem-compilation"> +<title +>Kompilering</title> +<varlistentry> +<term id="nutshell-compilemsg-detail" +><link +linkend="setup-main-compile" +>Detaljer i kompilatormeddelanden saknas</link +></term> +<listitem> +<para +>Om du märker att en del värdefull information saknas i fönstret <guilabel +>Meddelandeutmatning</guilabel +> vid kompilering,kan du ha valt en detaljnivÃ¥ för meddelanden som är för lÃ¥g. Högerklicka pÃ¥ fönstret och välj en annan detaljnivÃ¥ i menyn som dyker upp. </para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist id="nutshellitem-automake"> +<title +><link linkend="automake-manager" +>Hantering av automake</link +></title> + +<varlistentry> +<term +>Skapa nya filer i ett projekt</term> +<listitem> +<para +>Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen pÃ¥ grupprubriken där du vill lägga till filerna och välj <guimenuitem +>Skapa ny fil..</guimenuitem +>.</para> +</listitem> +</varlistentry> + +<varlistentry id="nutshell-add-project-file"> +<term +>Lägga till befintliga filer i ett projekt</term> +<listitem> +<para +>Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen pÃ¥ grupprubriken där du vill lägga till filerna och välj <guimenuitem +>Lägg till befintliga filer..</guimenuitem +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Ta bort en fil frÃ¥n ett projekt</term> +<listitem> +<para +>Välj delprojekt i övre delen av Hantering av automake, och högerklicka sedan i nedre delen pÃ¥ grupprubriken där du vill ta bort filerna och välj <guimenuitem +>Ta bort</guimenuitem +>.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist id="nutshellitem-compilemake"> +<title +>Problem med att kompilera och bygga</title> +<varlistentry> +<term id="nutshell-builddirproblems" +><link +linkend="defaultbuild-warning" +>Projekt byggs inte igen efter byte till eller frÃ¥n mÃ¥let default</link +></term> +<listitem> +<para +>Det finns ett problem med &automake; och &autoconf; maskineriet. Om <menuchoice +> <guimenu +>Projekt</guimenu +> <guimenuitem +>Bygginställningar</guimenuitem +></menuchoice +> ger möjlighet att välja bland tre byggkataloger: <guimenuitem +>default</guimenuitem +>, <guimenuitem +>optimized</guimenuitem +> och <guimenuitem +>debug</guimenuitem +>, hÃ¥ll dig för allt i världen <emphasis +>antingen</emphasis +> till mÃ¥let default <emphasis +>eller</emphasis +> mÃ¥len debug/optimize.</para> +<itemizedlist> +<listitem> +<para +>När du väl har ställt in projektet med default, byggs det inte längre med debug eller optimized.</para> +</listitem> +<listitem> +<para +>När du väl har ställt in projektet med debug eller optimized, byggs det inte längre med default.</para> +</listitem> +</itemizedlist> +</listitem> +</varlistentry> + +<varlistentry> +<term id="nutshell-autoconf-problem" +><quote +>Fel<command +> version av </command +>autoconf</quote +>, etc.</term> +<listitem> +<para +>Det finns flera felmeddelanden som berör för gamla versioner av <application +>autoconf</application +>, etc. som förhindrar att <command +>configure</command +> fungerar som det ska. Kör <command +>autoreconf</command +> i katalogträdet där filerna <filename +>configure.in</filename +> i frÃ¥ga finns. Kommandot försöker uppdatera informationen i &GNU; byggsystemfiler. Se <command +>man autoreconf</command +> för mer information.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist id="nutshellitem-others"> +<title +>Övriga ämnen</title> +<varlistentry> +<term id="nutshell-others-files" +><link linkend="app-files" +>Inställningsfiler som används av &tdevelop;</link +></term> +<listitem> +<para +>Oftast ska du inte behöva bry dig om det, men det är mycket användbart att känna till om nÃ¥got har gÃ¥tt fel med dina inställningar.</para> +</listitem +> +</varlistentry> +</variablelist> + +</appendix +> <!-- nutshell --> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/open-recent-project.png b/tde-i18n-sv/docs/tdevelop/tdevelop/open-recent-project.png Binary files differnew file mode 100644 index 00000000000..80d3368107e --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/open-recent-project.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/plugin-tools.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/plugin-tools.docbook new file mode 100644 index 00000000000..1fa80642345 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/plugin-tools.docbook @@ -0,0 +1,731 @@ +<appendix id="plugin-tools"> +<title +>Insticksverktyg</title> + +<indexterm zone="plugin-tools"> + <primary +>insticksverktyg</primary +></indexterm> + +<para +>&tdevelop; innehÃ¥ller ett stort antal smÃ¥ verktyg, som hjälper dig att utföra vissa uppgifter. De flesta fungerar som insticksprogram. Det betyder att om du inte behöver ett insticksprogram kan du helt enkelt inaktivera det.</para> +<para +>Det betyder ocksÃ¥ att om du letar efter funktioner som ska finnas, men inte gör det, kanske de är implementerade i ett insticksprogram och det insticksprogrammet är inaktiverat. Det finns till exempel en funktion för snabböppning i menyn Arkiv, men bara om den är aktiverad i dialogrutan Projekt - Projektinställningar. </para> + +<para +>Tekniskt är insticksprogram baserade pÃ¥ klassen KDevPlugin definierad i lib/interfaces/kdevplugin.h. Det följande kommer frÃ¥n en kommentar där.</para> + +<para +>KDevPlugin är basklassen för alla insticksprogram i KDevelop. Ett insticksprogram är en komponent som laddas i KDevelop-skalet vid start eller pÃ¥ begäran. Ett insticksprogram har en omfattning som antingen kan vara: <itemizedlist> +<listitem +><simpara +>Kärna</simpara +></listitem> +<listitem +><simpara +>Global</simpara +></listitem> +<listitem +><simpara +>Projekt</simpara +></listitem> +</itemizedlist> +</para> + +<para +>Kärninsticksprogram är globala insticksprogram som erbjuder nÃ¥gon viktig funktion för "kärnan", och sÃ¥lunda inte kan väljas av användaren pÃ¥ inställningssidorna för insticksprogram.</para> + +<para +>Globala insticksprogram är de som bara kräver att skalet är laddad och inte använder sig av gränssnittet KDevProject och/eller använder information rörande hela projektet. Till exempel tillÃ¥ter insticksprogrammet grafiskt gränssnittsläge utvecklare att välja vilket användargränssnitt de vill använda. </para> + +<para +>Projektinsticksprogram kräver att att projekt är laddad, och laddas eller laddas ur tillsammans med projektet. Om ett insticksprogram använder sig av projektrelaterad information är det ett projektinsticksprogram. Hantering av Automake behöver till exempel bara vara aktivt när ett projekt baserat pÃ¥ Automake för tillfället är laddat. </para> + +<para +>Som nämnts ovan kan inte kärninsticksprogram inaktiveras. Globala insticksprogram kan aktiveras eller inaktiveras med <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa KDevelop...</guimenuitem +></menuchoice +> under <guibutton +>insticksprogram</guibutton +>. Projektinsticksprogram kan aktiveras eller inaktiveras med <menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +>Projektinställningar...</guimenuitem +></menuchoice +> under <guibutton +>insticksprogram</guibutton +>. Aktiva insticksprogram kan ge mÃ¥nga effekter i KDevelop. Beroende pÃ¥ deras funktion kan de lägga till extra menyer, extra menyalternativ, extra knappar i verktygsraden, etc. </para> + +<para +>Insticksprogram som är inaktiverade skräpar inte ner menyerna och laddas inte i minnet. </para> + + +<para +>Följande lista över insticksprogram skapas av ett litet skript (listplugins.sh) skrivet av Volker Paul. Alla insticksprogram har en .desktop-fil där information som namn och kommentarer skrivs. Om kommentarerna i det följande inte är särskilt användbara, beror det pÃ¥ att insticksprogrammets upphovsmän gjorde dem pÃ¥ detta sätt.</para> +<para +>Insticksprogrammen är grupperade enligt omfattning (Kärna, Global, Projekt).</para> + +<para +>Omfattning: Kärna</para> +<itemizedlist> +<listitem +><formalpara id="KDevAppWizard"> +<title +>Programguide</title> +<para +>Programguide</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevDiff"> +<title +>Visning av skillnader</title> +<para +>Visning av skillnader</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevFileCreate"> +<title +>Skapa filer</title> +<para +>Skapa filer</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevFullScreen"> +<title +>Fullskärm</title> +<para +>Fullskärm</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevTipOfDay"> +<title +>Dagens tips</title> +<para +>Dagens tips</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevUIChooser"> +<title +>Val av användargränssnitt</title> +<para +>TillhandahÃ¥ller en dialogruta för val av användargränssnittsläge.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevVCSManager"> +<title +>Hantering av versionskontrollsystem</title> +<para +>Hantering av versionskontrollsystem </para +></formalpara +></listitem> +</itemizedlist> + +<para +>Omfattning: Global</para> +<itemizedlist> +<listitem +><formalpara id="KDevAbbrev"> +<title +>Expansion av förkortningar</title> +<para +>Ger stöd för anpassningsbara förkortningar: korta ord som expanderas till vanligt använda kodstrukturer.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevDocumentation"> +<title +>Dokumentation</title> +<para +>Dokumentationsinsticksprogrammet erbjuder bläddring och sökning i lokal dokumentation och dokumentation pÃ¥ nätet, med stöd för flera dokumentationssystem.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevfilelist"> +<title +>Fillista</title> +<para +>TillhandahÃ¥ller en lista av alla för närvarande öppna filer. (Praktiskt när flikraden inte är riktigt bred nog.)</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevFileSelector"> +<title +>Filväljare</title> +<para +>Kraftfullt nätverkstransparent filbläddringsverktyg.</para +></formalpara +></listitem> +<listitem +><formalpara> +<title +>Skalfiltrering och infogning</title> +<para +>Erbjuder ett sätt att behandla editortext med kommandoradsverktyg. Finns i verktygsmenyn.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevGrepView"> +<title +>Gränssnitt till grep</title> +<para +>Integrerar "find | grep" med KDevelop - tillÃ¥ter snabb sökning i flera filer med mönster eller reguljära uttryck.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevKonsoleView"> +<title +>Inbäddad terminal</title> +<para +>Insticksprogrammet ger KDevelop en inbyggd terminal för snabb och enkel Ã¥tkomst av kommandoraden.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevOpenWith"> +<title +>Menytillägg till "Öppna med"</title> +<para +>Insticksprogrammet tillhandahÃ¥ller ytterligare "öppna" alternativ i diverse sammanhangsberoende menyer i KDevelop.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevPartExplorer"> +<title +>Delutforskningsverktyg</title> +<para +>Ett grafiskt verktyg för att utföra KTrader-liknande förfrÃ¥gningar om registrerade tjänster.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevRegexpTest"> +<title +>Test av reguljära uttryck</title> +<para +>Verktyg för att skapa och testa reguljära uttryck mot vanlig syntax för reguljära uttryck.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevReplace"> +<title +>Ersättning</title> +<para +>Insticksprogrammet är ett interaktivt verktyg för att "söka och ersätta" i hela projektet. Sök med en sträng eller reguljärt uttryck, och välj ersättningen som ska göras frÃ¥n en förhandsgranskning innan Ã¥tgärden slutförs. När det laddats visas det i redigeringsmenyn.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevscripting"> +<title +>Skriptanvändning</title> +<para +>Skriptinsticksprogrammet erbjuder KScript-baserad styrning av programmet KDevelop.</para +></formalpara +></listitem> +<listitem +><formalpara id="Code_Snippets"> +<title +>Kodsnuttar</title> +<para +>Det här insticksprogrammet gör det möjligt att lagra kodsnuttar och lägga till dem i din kod</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevTextTools"> +<title +>Textstruktur</title> +<para +>TillhandahÃ¥ller en strukturöversikt och navigering för HTML- och Tex-filer</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevTools"> +<title +>Tillägg i verktygsmenyn</title> +<para +>Insticksprogrammet tillhandahÃ¥ller ett enkelt sätt att lägga till yttre program i verktygsmenyn och verktygsraden.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevvalgrind"> +<title +>Valgrind-gränssnitt</title> +<para +>Valgrind är ett verktyg som hjälper dig hitta minneshanteringsproblem i program. http://developer.kde.org/~sewardj/</para +></formalpara +></listitem> +</itemizedlist> + +<para +>Omfattning: Projekt</para> +<itemizedlist> +<listitem +><formalpara id="KDevannotation"> +<title +>Noteringsinsticksprogram</title> +<para +>Noteringsbeskrivning</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevAStyle"> +<title +>Källkodsformatering</title> +<para +>Ett insticksprogram för att formatera källkod enligt en given uppsättning regler. När det laddats finns det i verktygsmenyn.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevBookmarks"> +<title +>Bokmärken</title> +<para +>Insticksprogram som tillhandahÃ¥ller navigering och översikt över aktiva källkodsbokmärken och gör dem bestÃ¥ende mellan sessioner.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevClassView"> +<title +>Klassvisning</title> +<para +>Insticksprogrammet visar en grafisk bild av alla klasser i ett projekt, tillsammans med metoder och egenskaper, och ger möjlighet till direkt navigering i källkoden.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevcopyto"> +<title +>Kopiera till</title> +<para +>Enkelt insticksprogram för uppladdning av filer. Det utför en filkopiering med alla protokoll som stöds av KIO.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevCTags2"> +<title +>Ctags-gränssnitt</title> +<para +>Ctags är ett verktyg för källkodsnavigering med stöd för mÃ¥nga sprÃ¥k. När det laddats tillhandahÃ¥ller det en sammanhangsberoende meny för att hitta typdeklarationer eller definitioner, och dessutom en frÃ¥gedialogruta. http://ctags.sourceforge.net/</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevdistpart"> +<title +>Stöd för slutpaketering</title> +<para +>Hjälper till att bygga och publicera det färdiga projektet. Endast RPM-paketformatet stöds för närvarande.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevDoxygen"> +<title +>Doxygen-stöd</title> +<para +>Doxygen-insticksprogrammet tillhandahÃ¥ller ett sätt att ange och styra hur dokument skapas för ett projekt, baserat pÃ¥ källkodens innehÃ¥ll. Du mÃ¥ste ha installerat Doxygen för att kunna använda det. För mer information besök http://www.doxygen.org.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevQuickOpen"> +<title +>Snabböppna</title> +<para +>Erbjuder ett effektivt sätt att hitta och öppna filer, klasser och metoder i ett stort projekt. Finns i menyn Arkiv och Verktyg när det laddats.</para +></formalpara +></listitem> +<listitem +><formalpara id="KDevSecurity"> +<title +>Säkerhetskontroll</title> +<para +>Kodsäkerhetskontroll</para +></formalpara +></listitem> +</itemizedlist> +<para +>SÃ¥ lÃ¥ngt den skapade listan över insticksprogram.</para> + + +<table id="table-project-parts"> +<title +>Insticksprogram för projekthantering i &tdevelop;</title> +<tgroup cols="2" +><tbody> +<row> + <entry +>antproject</entry> + <entry +>ANT-projekthantering (&Java;-program)</entry> +</row> +<row> + <entry +>autoprojekt</entry> + <entry +>Automake projekthantering</entry> +</row> +<row> + <entry +>customproject</entry> + <entry +>Egen projekthantering</entry> +</row> +<row> + <entry +>trollproject</entry> + <entry +>Qmake-baserad projekthantering</entry> +</row> +</tbody +></tgroup> +</table> +<para +>OvanstÃ¥ende insticksprogram är för närvarande (maj 2005) tomma. Kanske projekthanteringsstöd kommer att implementeras som insticksprogram i framtiden.</para> + + +<table> +<title +>Insticksprogram för sprÃ¥kstöd i &tdevelop;</title> +<tgroup cols="2"> +<tbody> +<row +><entry +>cppsupport</entry +><entry +>Stöd för C/C++</entry +></row> +<row +><entry +>fortransupport</entry +><entry +>Stöd för Fortran</entry +></row> +<row +><entry +>javasupport</entry +><entry +>Stöd för &Java;</entry +></row> +<row +><entry +>perlsupport</entry +><entry +>Stöd för Perl</entry +></row> +<row +><entry +>phpsupport</entry +><entry +>Stöd för PHP</entry +></row> +<row +><entry +>pythonsupport</entry +><entry +>Stöd för Python</entry +></row> +</tbody +></tgroup> +</table> + + +<para +>Vissa av insticksprogrammen beskrivs i detalj i det följande.</para> + +<itemizedlist> +<listitem> +<formalpara> +<title +>Insticksprogrammet <command +>Förkortningar</command +></title> +<indexterm zone="plugin-tools" +><primary +><command +>Förkortningar</command +></primary +></indexterm> + +<para +>Det här insticksprogrammet fyller i förkortningar av ofta använda kodfragment. Det aktiveras genom att trycka pÃ¥ <keycombo +><keycap +>Ctrl</keycap +><keycap +>Mellanslag</keycap +></keycombo +>. Om du till exempel skriver in <literal +>"ife"</literal +> i C++ editorn, och trycker pÃ¥ <keycombo +><keycap +>Ctrl</keycap +><keycap +>Mellanslag</keycap +></keycombo +>, fÃ¥r du en <literal +>if-else</literal +> kodmall och sparar nÃ¥gra tangentnertryckningar. Uppsättningen med förkortningar som stöds beror pÃ¥ den redigerade filens programsprÃ¥k. För till exempel PHP är du naturligtvis intresserad av andra kodmallar än för &Java;. </para> +</formalpara> + +<para +>Uppsättningen med kodmallar kan anpassas. Om insticksprogrammet är aktiverat, kan du se vilka som är tillgängliga med dialogrutan <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa KDevelop...</guimenuitem +></menuchoice +> under <guibutton +>Förkortningar</guibutton +>. </para> +</listitem> + +<listitem> +<formalpara id="KDevFilter"> +<title +>Insticksprogrammet <command +>filter</command +></title> +<indexterm zone="plugin-tools" +><primary +><command +>filter</command +></primary +></indexterm> + +<para +>Detta erbjuder tvÃ¥ funktioner. Om du väljer <menuchoice +><guimenu +>Verktyg</guimenu +><guimenuitem +>Kör kommando</guimenuitem +></menuchoice +> kan du skriva in ett skalkommando. Utmatningen frÃ¥n kommandot infogas i editorns buffer när du trycker pÃ¥ knappen <guibutton +>Starta</guibutton +>. </para> +</formalpara> + +<para +>En liknande funktion är tillgänglig med <menuchoice +><guimenu +>Verktyg</guimenu +> <guimenuitem +>Filtrera markering genom kommando...</guimenuitem +></menuchoice +>. För att använda den mÃ¥ste du markera ett textomrÃ¥de i editorn. Om du nu skriver in ett skalkommando och klickar pÃ¥ knappen <guibutton +>Starta</guibutton +>, startas kommandot och markeringen används som standardinmatning till det. Standardutmatningen frÃ¥n kommandot infogas därefter i editorn, och ersätter markeringen. </para> + +<para +>Om du till exempel skriver dokumentation, behöver du ofta hänvisa till menyalternativ. För att gör det pÃ¥ rätt sätt för t.ex. kopieringskommandot i menyn Redigera, mÃ¥ste du skriva <programlisting +><menuchoice><guimenu>Redigera</guimenu><guimenuitem>Kopiera</guimenuitem></menuchoice></programlisting +> Det är omständigt, alltsÃ¥ skriver du hellre bara "Redigera" - "Kopera" och lÃ¥ter datorn utföra taggningen. Du kan göra det sÃ¥ här: Du skriver ett litet skalskript som heter mef, som du till exempel placerar i underkatalogen bin i din hemkatalog: <programlisting +>sed s/"^\(.*\) - \(.*\)\$"/"<menuchoice><guimenu>\1<\/guimenu><guimenuitem>\2<\/guimenuitem><\/menuchoice>"/</programlisting +> Glöm inte att göra det körbart. Det är allt. Nu skriver du "Redigera" - "Kopiera" i dokumentationens .dokbook-källkod. Du markerar texten du just skrivit in, väljer <menuchoice +><guimenu +>Verktyg</guimenu +><guimenuitem +>Filtrera markering genom kommando...</guimenuitem +></menuchoice +> och anropar ~/bin/mef. Omedelbart ersätts "Redigera" - "Kopiera" med <programlisting +><menuchoice><guimenu>Redigera</guimenu><guimenuitem>Kopiera</guimenuitem></menuchoice></programlisting> +</para> + + +</listitem> + +<listitem> +<formalpara> +<title +>Insticksprogrammet &doxygen;</title> +<indexterm zone="plugin-tools" +><primary +>&doxygen;</primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>dokumentationsverktyg</primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>API-dokumentation</primary +></indexterm> + +<para +>Detta hjälper dig att använda API-dokumentationsverktyget &doxygen; (<ulink url="http://www.doxygen.org" +></ulink +>). Du kan välja <menuchoice +><guimenu +>Projekt</guimenu +><guimenuitem +>Kör Doxygen</guimenuitem +></menuchoice +> för att skapa API-dokumentation för det nuvarande projektet baserat pÃ¥ konfigurationen som anges av filen <filename +>Doxyfile</filename +> i projektkatalogen. </para> +</formalpara> + +<para +>Dessutom kan du anpassa &doxygen; med dialogrutan <menuchoice +><guimenu +>Projekt</guimenu +><guimenuitem +>Projektinställningar...</guimenuitem +></menuchoice +>. Dialogrutan är mycket lik verktyget &doxywizard;. </para> +</listitem> + +<listitem> +<formalpara> +<title +>Insticksprogrammet &ctags;</title> +<indexterm zone="plugin-tools" +><primary +>&ctags;</primary +></indexterm> + +<para +>Även om klassbläddraren ger dig utförlig överblick över symboler och klasser i projektet, kan du ocksÃ¥ vilja använda ctags-verktyget. Det stöder i synnerhet mÃ¥nga fler sprÃ¥k än klassbläddraren. </para> +</formalpara> + +<para +>Du aktiverar insticksprogrammet under <menuchoice +><guimenu +>Verktyg</guimenu +><guimenuitem +>CTags...</guimenuitem +></menuchoice +>. När du startar det för första gÃ¥ngen, blir du tillfrÃ¥gad om att först skapa en sökdatabas. När du accepterar detta, startas &ctags;-programmet och skapar en fil som heter <filename +>tags</filename +> i projektkatalogen. Detta är en textfil som innehÃ¥ller alla symboler i källkodsfilerna. </para> + +<para +>Du kan söka pÃ¥ tvÃ¥ sätt i symboldatabasen: när rutan <guilabel +>Matcha med reguljärt uttryck</guilabel +> är markerad, tolkas texten som du skriver in som ett reguljärt uttryck (POSIX-varianten) och matchas med befintliga symboler. Texten <literal +>.*Widget</literal +> söker till exempel efter alla symboler som slutar med <literal +>Widget</literal +>. Om rutan inte är markerad, är sökningen verbatim. </para> + +<para +>Under sökningen visas en lista med matchade symboler, tillsammans med radnummer där de definieras. Du hoppar till respektive ställe genom att klicka i listan. </para> + +<para +>För vissa sprÃ¥k skiljer &ctags; mellan olika typer av symboler. Python har till exempel klasser och funktioner. Du kan söka enbart efter klasser genom att kryssa in motsvarande typ i dialogrutan. </para> + +<para +>Symboldatabasen uppdateras normalt inte när källkoden ändras. PÃ¥ grund av detta kommer inte radnumren vara riktiga längre efter ett tag, och nytillagda klasser och funktioner kommer att saknas. Därför bör du uppdatera filen <filename +>tags</filename +> med regelbundna intervall, genom att trycka pÃ¥ knappen <guibutton +>Skapa om</guibutton +>. </para> +</listitem> + +<listitem> +<formalpara> +<title +>Insticksprogrammet <command +>A-stil</command +></title> +<indexterm zone="plugin-tools" +><primary +><command +>a-stil</command +></primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +><application +>Artistisk stil</application +></primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>indrag</primary +></indexterm> + +<para +>A-stil är ett insticksprogram för att formatera källkoden enligt en specificerad uppsättning regler. </para> +</formalpara> +</listitem> + +<listitem> +<formalpara> +<title +>Insticksprogrammet <command +>regexptest</command +></title> +<indexterm zone="plugin-tools" +><primary +><command +>regexptest</command +></primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>avlusning</primary +><secondary +>reguljära uttryck</secondary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>reguljära uttryck</primary +><secondary +>avlusning</secondary +></indexterm> + +<para +>Att konstruera reguljära uttryck kan vara ett hÃ¥rt arbete. Ofta matchar det första försöket med ett uttryck för mÃ¥nga strängar. I synnerhet vid arbete med ett kompilerat sprÃ¥k kan cykeltiden vid avlusning av ett reguljärt uttryck vara besvärlig. Insticksprogrammet regexptest lÃ¥ter dig direkt utforska ändringar i ett reguljärt uttryck. Det aktiveras genom att välja <menuchoice +><guimenu +>Verktyg</guimenu +> <guimenuitem +>Avlusa reguljärt uttryck...</guimenuitem +></menuchoice +>. </para> +</formalpara> + +<para +>I variantkombinationsrutan kan du välja vilken variant av reguljära uttryck som ska användas. För närvarande stöds varianten som definieras av POSIX-standarden, som används av programmet &grep;, och den utökade POSIX-syntaxen som används av programmet &egrep;. </para> + +<para +>När du skriver in ett uttryck, fÃ¥r du omedelbart Ã¥termatning om eventuella syntaxfel i det. Genom att skriva in en text under <guilabel +>Teststräng</guilabel +>, kan du se om uttrycket matchar strängen. I synnerhet om det reguljära uttrycket innehÃ¥ller grupper, som <literal +>"([a-z])"</literal +>, visas innehÃ¥llet av de matchade delgrupperna i en listruta. </para> +</listitem> + +<!-- +<listitem> +<formalpara> +<title +>The <command +>konsole</command +> Plugin</title> +<indexterm zone="plugin-tools" +><primary +><command +>konsole</command +></primary +></indexterm> +<indexterm zone="plugin-tools" +><primary +>terminal</primary +><secondary +>embedded</secondary +></indexterm> +<para +></para> +</formalpara> +</listitem> +--> + +</itemizedlist> + +</appendix +> <!-- plugin-tools --> + +<!-- ====================================================================== --> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-all-todos.png b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-all-todos.png Binary files differnew file mode 100644 index 00000000000..26f89a50e42 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-all-todos.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-marks.png b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-marks.png Binary files differnew file mode 100644 index 00000000000..0757b989fa6 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-marks.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-todo.png b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-todo.png Binary files differnew file mode 100644 index 00000000000..45babdc5f3d --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/problem-report-todo.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/project-advanced.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/project-advanced.docbook new file mode 100644 index 00000000000..0ed7266d1f4 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/project-advanced.docbook @@ -0,0 +1,111 @@ +<chapter id="projects-advanced"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Avancerad projekthantering</title> + +<sect1 id="oldprojects"> +<title +>Ladda projekt</title> + +<sect2 id="loading-recent-project"> +<title +>Ladda ett av de senast använda projekten</title> + +<para +>(... ännu inte skrivet ...) </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="open-recent-project.png" format="PNG"/> + </imageobject> + <caption +><para +>Hur man öppnar ett av de senast använda projekten </para +></caption> + </mediaobject> +</screenshot> + + +</sect2 +> <!-- loading-recent-project --> + +<sect2 id="loading-project"> +<title +>Ladda ett befintligt projekt</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- loading-project --> + +<sect2 id="converting-projects"> +<title +>Konvertera gamla KDevelop projektfiler</title> + +<para +>&tdevelop; tillÃ¥ter att du öppnar gamla KDevelop 2.x projektfiler och konverterar dem till &tdevelop;-filer. För att göra det, gÃ¥ till <guimenuitem +>Öppna projekt...</guimenuitem +> och välj <guilabel +>KDevelop 2 projektfiler</guilabel +> under <guilabel +>Filter:</guilabel +>. Välj därefter projektfilen som du vill öppna. Projektet konverteras till &tdevelop; och sparas som en <guilabel +>&tdevelop; projektfil</guilabel +>. </para> + +</sect2 +> <!-- converting-projects --> + +<sect2 id="importing-projects"> +<title +>Importera ett befintligt projekt</title> + +<para +>För att importera en befintlig katalog till &tdevelop;, välj <guimenuitem +>Importera befintligt projekt</guimenuitem +> i menyn <guimenu +>Projekt</guimenu +>. Du ska dÃ¥ se guiden för att importera ett projekt, som visas nedan: </para> + +<figure id="screenshot-importdirectory" float="1"> +<title +>Dialogrutan för importera projekt</title> +<mediaobject> +<imageobject +><imagedata fileref="importdirectory.png"/></imageobject> +</mediaobject> +</figure> + +</sect2 +> <!-- importing-projects --> + +</sect1 +> <!-- oldprojects --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="project-options"> +<title +>Skräddarsy Projekt — Projektinställningar</title> + +<para +>(... ännu inte skrivet ...) </para> + +</sect1 +> <!-- project-options --> + +</chapter +> <!-- projects-advanced --> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/project-management.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/project-management.docbook new file mode 100644 index 00000000000..2af94494255 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/project-management.docbook @@ -0,0 +1,1297 @@ +<chapter id="project-management"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <author +><firstname +>Ian</firstname +><surname +>Wadham</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Bygga och projekthantering</title> + +<para +>Det här kapitlet behandlar bara kompilerade projekt, som projekt med C++, &Java; eller Fortran. Projekt för skriptsprÃ¥k som Python och PHP, fungerar mycket annorlunda. </para> + +<para +>Här hittar du information om följande ämnen:</para> +<itemizedlist> + <listitem +><para +><link linkend="automake-manager-summary" +>Sammanfattning av Hantering av automake</link +> innehÃ¥ller en översikt över Hantering av automake, </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation" +>Användning av Hantering av automake</link +> beskriver grunderna i hur man arbetar med Hantering av automake. </para +></listitem> +</itemizedlist> + +<sect1 id="automake-manager-summary"> +<title +>Sammanfattning av Hantering av automake</title> + +<para +>I kapitlet <link linkend="unixdev-buildsystems" +>Byggsystem</link +> har vi gett en grov översikt av de byggsystem som vanligen används pÃ¥ Unix-system. I följande avsnitt tittar vi pÃ¥ detta i mer detalj. </para> +<para +>Det finns en viss förvirring angÃ¥ende hur sÃ¥dana ting ska namnges. &GNU; kallar dem <quote +>byggsystem</quote +> när Automake, Autoconf och Libtool beskrivs. Qmake kallas <quote +>ett verktyg att skriva Makefiles för olika kompilatorer och plattformar</quote +>. I KDE används ofta uttrycket <quote +>projekthanteringssystem</quote +>. Vi använder det uttrycket i en vidare bemärkelse för att beskriva de inbyggda miljöer i &tdevelop; som används för att organisera och bygga projekt. I det här avsnittets sammanhang, talar vi dock i huvudsak om <quote +>automatiserade byggsystem</quote +>. </para> + +<sect2 id="automake-manager-summary-buildsys"> +<title +>Behovet av ett automatiserat byggsystem</title> + +<para +>Om du har ett enkelt program som skriver ut <quote +>Hej allihop</quote +>, skrivet i C, kan du kompilera och länka det med &gcc; <parameter +>-o hej hej.c</parameter +> och köra det med <command +>./hej</command +>, sÃ¥ du behöver inte ens en <filename +>Makefile</filename +>. </para> +<para +>Om du har ett C-program med flera moduler och deklarationsfiler och du bara ska köra det pÃ¥ din dator (dvs. det är ett lokalt program), behöver du bara en vanlig <filename +>Makefile</filename +>, som är ganska enkel att skriva för hand (använd <userinput +>info make</userinput +> för att lära dig mer). </para> +<para +>Komplikationerna börjar när: </para> +<itemizedlist> + <listitem +><para +>Din källkod, dokumentation, grafik, ljud, översättningar, datafiler etc. finns i mer än en katalog, </para +></listitem> + <listitem +><para +>Du har en hierarki av kataloger och underkataloger, </para +></listitem> + <listitem +><para +>Du använder bibliotek som inte är en del av den traditionella uppsättningen pÃ¥ &UNIX;, som &Qt;-objektbiblioteket eller &kde;-skrivbordsbibliotek, </para +></listitem> + <listitem +><para +>Du använder en preprocessor för att skapa en del av din källkod, som Qt:s MOC prekompilator, </para +></listitem> + <listitem +><para +>Du siktar pÃ¥ att distribuera programmet i hela världen, till personer som inte har samma &UNIX;- eller &Linux;-system, programvara och hÃ¥rdvara som du, </para +></listitem> + <listitem +><para +>Du kräver en automatisk funktion för installation och avinstallation, </para +></listitem> + <listitem +><para +>Du siktar pÃ¥ att göra ditt program en del av &kde;:s uppsättning med skrivbordsprogram. </para +></listitem> +</itemizedlist> + +<para +>Om du befinner dig i nÃ¥gra eller alla av ovanstÃ¥ende situationer, behöver du troligen ett <emphasis +>byggsystem</emphasis +>. I exemplet ovan använde vi &gcc; för att kompilera och bygga programmet <quote +>Hej</quote +>, men alla C-kompilatorer heter inte <quote +>&gcc;</quote +>. SÃ¥ om du distribuerar programmet till nÃ¥gon som använder en annan C-kompilator, mÃ¥ste din Makefile pÃ¥ nÃ¥got sätt använda namnet pÃ¥ den personens kompilator, annars misslyckas kompileringen av programmet. Detta är bara ett av mÃ¥nga exempel pÃ¥ vad som kan gÃ¥ fel. </para> +<para +>Ett byggsystem jämnar ut skillnaderna Ã¥t dig. </para> +<itemizedlist> + <listitem +><para +>Det kontrollerar att biblioteken som behövs finns pÃ¥ varje dator som tar emot programmet, </para +></listitem> + <listitem +><para +>avsöker automatiskt alla programkataloger efter filer att förbehandla, kompilera eller installera och </para +></listitem> + <listitem +><para +>installerar komponenterna som programmet bestÃ¥r av i rätt kataloger, och försäkrar att </para +></listitem> + <listitem +><para +>katalogerna pÃ¥ datorn som tar emot programmet skapas efter behov. </para +></listitem> +</itemizedlist> + +<para +>I korthet erbjuder ett byggsystem säkra metoder för att kompilera och installera programmet pÃ¥ alla datorer som tar emot programmet. Som vi har visat tidigare i översikten <link linkend="makesystems" +>Projekthanteringssystem</link +>, erbjuder &tdevelop; tre automatiserade byggsystem och möjlighet att skapa din egen Makefile. I korthet (klicka pÃ¥ projektnamnen för mer information): </para> +<itemizedlist> + <listitem +><para +><link linkend="automake-project" +>Automake-projekt</link +> som använder de vanliga utvecklingsverktygen för &GNU;. </para +></listitem> + <listitem +><para +><link linkend="qmake-project" +>Qmake-projekt</link +> som använder Trolltechs Qmake-projekthantering. </para +></listitem> + <listitem +><para +><link linkend="ant-project" +>ANT-projekt</link +> som använder Apaches ANT-projekthantering för &Java;-utveckling. </para +></listitem> + <listitem +><para +><link linkend="custom-project" +>Eget projekt</link +> som kräver att du underhÃ¥ller din egen <filename +>Makefile</filename +>. </para +></listitem> +</itemizedlist> + +<important> +<para +>Ett av de fyra alternativen mÃ¥ste väljas när du skapar ett projekt, och <emphasis +>valet är svÃ¥rt att senare ändra</emphasis +>, sÃ¥ du bör tänka efter innan du börjar. </para> +</important> + +</sect2 +> <!-- automake-manager-summary-buildsys --> + +<sect2 id="automake-references"> +<title +>Handledningar om Autoconf, Automake och Libtool</title> +<para +>Det finns flera handledningar tillgängliga om &GNU;:s byggsystem (<command +>Autoconf</command +>, <command +>Automake</command +> och <command +>Libtool</command +>) som Hantering av automake använder sig av. </para> +<itemizedlist> + <listitem +><para +>En kort <ulink url="http://www.tdevelop.org/index.html?filename=tutorial_autoconf.html" +>handledning om autoconf</ulink +>, skriven av Christopher W. Curtis finns tillgänglig pÃ¥ &tdevelop;s hemsida. Den koncentrerar sig pÃ¥ nÃ¥gra grundläggande steg för att ändra en <filename +>Makefile</filename +>. </para +></listitem> + <listitem +><para +>En mer detaljerad handledning finns som en del av en större uppsättning handledningar under <ulink url="http://www.amath.washington.edu/~lf/tutorials/autoconf/toolsmanual_toc.html" +><quote +>Utveckla programvara med GNU</quote +></ulink +>. </para +></listitem> + <listitem +><para +>Den berömda <ulink url="http://sources.redhat.com/autobook" +><quote +>getboken</quote +></ulink +>, som heter <quote +>Autoconf, Automake, and Libtool</quote +>, finns ocksÃ¥. Den är en lättläst, men ändÃ¥ kortfattad, introduktion till alla viktiga aspekter av &GNU;:s autoverktyg. </para +></listitem> +</itemizedlist> + +</sect2 +> <!-- automake-references --> + +<sect2 id="automake-manager-basics"> +<title +>Vad gör Hantering av automake?</title> + +<para +><link linkend="applicationwizard" +>Programguiden</link +> har skapat nÃ¥gra ursprungliga <filename +>Makefile.am</filename +> filer när du skapade ett <guilabel +>nytt projekt</guilabel +> av en typ som använder &GNU;:s byggsystem, som <menuchoice +><guimenuitem +>C++</guimenuitem +> <guimenuitem +>KDE</guimenuitem +> <guimenuitem +>Application framework</guimenuitem +></menuchoice +>. Under utvecklingen skapar Hantering av automake alla ytterligare <filename +>Makefile.am</filename +> filer för projekt som använder &GNU;:s byggsystem, och underhÃ¥ller alla, bÃ¥de de som skapats med programguiden och Hantering av automake. </para> +<para +>Det finns en <filename +>Makefile.am</filename +> i varje projektkatalog som innehÃ¥ller filer som ska kompileras eller installeras. Den innehÃ¥ller dina specifikationer för att kompilera, bygga och installera filer och en referens till alla underkataloger som ocksÃ¥ har en <filename +>Makefile.am</filename +> och möjligen nÃ¥gra filer att kompilera, bygga och installera. </para> + +<note +><para +>Projektets kataloger och källkodsfiler kan struktureras till vilket djup som helst, eller du kanske föredrar en platt projektstruktur med alla underkataloger pÃ¥ toppnivÃ¥. </para +></note> + +<para +>MÃ¥let med &GNU;:s byggsystem är att skapa filstrukturer för källkod som kan kompileras, byggas och installeras pÃ¥ vilket &UNIX;- eller &Linux;-system som helst med de enkla kommandona: </para> + +<screen +>./configure +make +make install # Oftast som systemadministratör. +</screen> + +<para +>och kan avinstalleras med kommandot <command +>make uninstall</command +> (oftast som systemadministratör). </para> + +<para +>Hur fungerar det? Ja, <command +>configure</command +> är ett skript som: <itemizedlist> + <listitem +><para +>arbetar fram detaljinformation om systemet som det körs pÃ¥, som vilken kompilator och vilka bibliotek som ska användas, var de finns, och därefter </para +></listitem> + <listitem +><para +>rekursivt skapar filerna <filename +>Makefile</filename +> genom att fylla i det som ska ersättas i motsvarande <filename +>Makefile.in</filename +>. </para +></listitem> +</itemizedlist> +</para> +<para +>Filen <filename +>Makefile.am</filename +> är <quote +>indata</quote +>, en mall som ger grundläggande information för den <filename +>Makefile</filename +> som ska skapas, genom att fylla i viss systemberoende information. Den skapas av verktyget <command +>Automake</command +> frÃ¥n filen <filename +>Makefile.am</filename +>. </para> +<para +>Processen att komma frÃ¥n en <filename +>Makefile.am</filename +> (där <filename +>.am</filename +> anger mallfiler för <quote +>Automake</quote +>) till <filename +>Makefile</filename +> hanteras automatiskt av &tdevelop;s Hantering av automake med verktyget <command +>Autoconf</command +>, <command +>M4</command +>-makron och andra mysterier vi inte behöver gÃ¥ in pÃ¥ här. </para> +<para +>SÃ¥ när <command +>make</command +> kör, hämtar det automatiskt rätt information frÃ¥n den nuvarande miljön, som kompilatorer och bibliotek. PÃ¥ samma sätt, placerar <command +>make install</command +> delarna av programmet, som körbara filer, dokumentation och datafiler pÃ¥ rätt plats i den miljön. </para> + +<para +>Om du distribuerar programmet som ett <quote +>tar-arkiv</quote +> (en enda komprimerad fil som &tdevelop; kan skapa Ã¥t dig), innehÃ¥ller den filerna <filename +>Makefile.in</filename +> och skriptfilen <filename +>configure</filename +>, sÃ¥ att mottagaren kan kompilera, bygga och installera programmet utan att ha <command +>Automake</command +>, <command +>Autoconf</command +> eller KDevelop pÃ¥ sin dator. Filerna <filename +>Makefile.am</filename +> ingÃ¥r ocksÃ¥, ifall mottagaren mÃ¥ste göra nÃ¥gra ändringar i källkoden. </para> +<note +><para +>Reglerna är väsentligt annorlunda om du distribuerar via ett webbaserat källkodsarkiv som &kde;:s &cvs;. </para +></note> + +</sect2 +> <!-- automake-manager-basics --> + +<sect2 id="automake-manager-basics-summary"> +<title +>Sammanfattning av vad Hantering av automake gör</title> + +<itemizedlist> + <listitem +><para +>Skapar filerna <filename +>Makefile.am</filename +> i underkatalogerna som det känner till som <quote +>delprojekt</quote +>. </para +></listitem> + <listitem +><para +>Uppdaterar filerna <filename +>Makefile.am</filename +> när projektstrukturen ändras. </para +></listitem> + <listitem +><para +>Uppdaterar filerna <filename +>Makefile.am</filename +> när filer läggs till i eller tas bort frÃ¥n projekt. </para +></listitem> + <listitem +><para +>Accepterar definitioner om hur de olika filerna ska byggas eller installeras, och ändrar <filename +>Makefile.am</filename +> enligt dem. </para +></listitem> + <listitem +><para +>Accepterar parametrar som används vid byggning eller installation (t.ex. biblioteksnamn), och försäkrar att de används i de nödvändiga kompilerings- och byggstegen. </para +></listitem> +</itemizedlist> + +</sect2 +> <!-- automake-manager-basics-summary --> + +<sect2 id="automake-file-contents"> +<title +>InnehÃ¥ll i automake-filer</title> + +<para +>Filen <filename +>Makefile.am</filename +> har rader som innehÃ¥ller variabelnamn följda av ett likhetstecken och en lista med filer eller parametervärden. <quote +>Variabler</quote +> har tvÃ¥delade namn, som <varname +>bin_PROGRAMS</varname +>, <varname +>mittpgm_SOURCES</varname +> eller <varname +>kdelnk_DATA</varname +>. Den andra delen kallas <emphasis +>den primära</emphasis +> och representerar nÃ¥got som ska byggas eller installeras. Den första delen kallas <emphasis +>prefix</emphasis +> och representerar: </para> +<itemizedlist> + <listitem +><para +>En <emphasis +>katalog</emphasis +> där installationen ska göras (t.ex. <filename +>bin</filename +>), </para +></listitem> + <listitem +><para +>En <emphasis +>kvalifikation</emphasis +> för den primära delen (t.ex. <emphasis +>mittpgm</emphasis +> för <varname +>SOURCES</varname +>, som anger att källkodsfiler som listas efter <varname +>mittpgm_SOURCES</varname +> ingÃ¥r i att bygga <varname +>mittpgm</varname +>. </para +></listitem> + <listitem +><para +>Ett särskilt <emphasis +>prefix</emphasis +> <varname +>noinst</varname +> (kort för <quote +>ingen installation</quote +>), som oftast används för att lista programmets deklarationsfiler (<filename +>.h</filename +>), </para +></listitem> + <listitem +><para +>Eller det speciella prefixet <varname +>EXTRA</varname +>, för <emphasis +>konfigurationsberoende</emphasis +> saker. </para +></listitem> +</itemizedlist> + +<para +>För mer information om <command +>Automake</command +> och filerna <filename +>Makefile.am</filename +>, slÃ¥ upp den med <userinput +>info Automake</userinput +>. </para> +<para +>I huvudsak skapar och uppdaterar Hantering av automake variabelnamn och fillistor eller parametrar. Se följande exempel pÃ¥ en <filename +>Makefile.am</filename +> för ett typiskt program, som kallas <filename +>mittpgm</filename +>. </para> + +<screen +>## Makefile.am för mittpgm + +# det här är programmet som installeras. dess namn används för alla +# andra Makefile.am variablerna +bin_PROGRAMS = mittpgm + +# ställ in sökvägen för deklarationsfiler till X, Qt och KDE +INCLUDES = $(all_includes) + +# bibliotekssökvägen. +mittpgm_LDFLAGS = $(KDE_RPATH) $(all_libraries) + +# biblioteken att länka med. +mittpgm_LDADD = $(LIB_KFILE) $(LIB_TDEPRINT) + +# vilka källkodsfiler ska kompileras för mittpgm +mittpgm_SOURCES = main.cpp mittpgm.cpp mittpgmvy.cpp + +# det här är deklarationsfilerna för projektet +noinst_HEADERS = mittpgm.h mittpgmvy.h + +# lÃ¥t automoc hantera alla metakällfiler (moc) +METASOURCES = AUTO + +KDE_ICON = mittpgm + +# det är här kdelnk-filen hamnar +kdelnkdir = $(kde_appsdir)/Utilities +kdelnk_DATA = mittpgm.desktop + +# det är här XML-GUI resursfilen hamnar +rcdir = $(kde_datadir)/mittpgm +rc_DATA = mittpgm_ui.rc + +AM_CXXFLAGS = -DMITT_C++_PREPROCESSOR_ALTERNATIV +</screen> + +<para +>Som du kan se är mÃ¥nga av objekten pÃ¥ högersidan symboler pÃ¥ formen <varname +>$(xxxx)</varname +>. De är <emphasis +>miljövariabler</emphasis +> som definieras i själva &kde;-miljön och ersätts med riktiga värden när <command +>./configure</command +> skapar de slutliga filerna <filename +>Makefile</filename +> pÃ¥ datorn som tar emot programmet. </para> + +<para +>Det är ocksÃ¥ en god idé att köra kommandot <command +>./configure --help</command +> nÃ¥gon gÃ¥ng efter du har börjat med &tdevelop;, som visar dig de olika saker du kan ändra vid bygg- och installationstid, sÃ¥som en testmiljö. I synnerhet kommandot: <screen> +./configure --prefix=/var/du/vill +</screen +> flyttar hela installationen till en katalogstruktur som du väljer, genom att ändra den interna variabeln <varname +>$(prefix)</varname +> till värdet <filename class="directory" +>/var/du/vill</filename +>. </para> + +</sect2 +> <!-- automake-file-contents --> + +</sect1 +> <!-- automake-manager-summary --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="automake-manager-operation"> +<title +>Användning av Hantering av automake</title> + +<para +>I det här kapitlet hittar du en grundläggande beskrivning av elementen i Hantering av automake, och hur de används. Det täcker: <itemizedlist> + <listitem +><para +><link linkend="automake-manager-operation-window" +>Fönstret Hantering av automake</link +> beskriver den grundläggande strukturen hos huvudfönstret i Hantering av automake. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-survey-window" +>Översiktsfönstret</link +> beskriver elementen i det övre delfönstret. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-detail-window" +>Detaljfönstret</link +> beskriver elementen i det undre delfönstret. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-navigate" +>Navigera i Hantering av automake</link +> listar nÃ¥gra grundläggande Ã¥tgärder du kan utföra i Hantering av automake. </para +></listitem> + <listitem +><para +><link linkend="automake-manager-operation-popups" +>Sammanhangsberoende menyer i Hantering av automake</link +> beskriver menyerna som dyker upp när du väljer en Ã¥tgärd i Hantering av automake. </para +></listitem> +</itemizedlist> +</para> + +<sect2 id="automake-manager-operation-window"> +<title +>Fönstret Hantering av automake</title> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automakemanager.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="top" +><itemizedlist> + <listitem +><para +>Hantering av automake använder ett delat fönster. Den övre delen kallas <emphasis +>Översiktsfönstret</emphasis +> och den undre delen kallas <emphasis +>Detaljfönstret</emphasis +>. Mellan dem finns en smal rad som kan dras med musen för att justera fönsterstorlekarna. I IDEA-fönsterläge kan du ocksÃ¥ dra sidokanten pÃ¥ det delade fönstret för att ändra bredden. </para +></listitem> + <listitem +><para +>Ovanför varje fönster finns en <emphasis +>verktygsrad</emphasis +>, där knapparna blir aktiva när ett element i fönstret markeras. Det här erbjuder ett sätt som du kan komma Ã¥t Ã¥tgärderna som tillhandahÃ¥lls för det elementet. Det andra sättet är sammanhangsberoende menyer, som dyker upp vid klick med höger musknapp som beskrivs nedan. </para +></listitem> + <listitem +><para +>I IDEA-fönsterläge finns det ytterligare tvÃ¥ smÃ¥ knappar till vänster i namnlisten pÃ¥ fönstret Hantering av automake: en triangelformat högerpil, och en knapp med en punkt. Pilknappen används för att <emphasis +>stänga fönstret</emphasis +>. Ã… andra sidan, behÃ¥ller punktknappen <emphasis +>fönstret öppet</emphasis +> även om ett annat fönster väljs i &tdevelop;. (Annars stängs fönstret Hantering av automake automatiskt sÃ¥ fort ett annat fönster fÃ¥r inmatningsfokus.) </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect2 +> <!-- automake-manager-operation-window --> + +<sect2 id="automake-manager-operation-survey-window"> +<title +>Översiktsfönstret</title> + +<para +>Översiktsfönstret innehÃ¥ller en trädlista med alla kataloger i projektet som innehÃ¥ller programfiler, dokumentation eller data. Varje sÃ¥dan katalog innehÃ¥ller en fil <filename +>Makefile.am</filename +> och är känd som ett <emphasis +>delprojekt</emphasis +> i Hantering av automake. Det finns tre typiska delprojekt i ett &kde;-baserat projekt, som visas pÃ¥ bilden ovan: </para> + +<itemizedlist> + <listitem +><para +><filename +>src</filename +>: källkodsfiler för programmet, </para +></listitem> + <listitem +><para +><filename +>doc</filename +>: användarmanualen eller handboken, </para +></listitem> + <listitem +><para +><filename +>po</filename +>: utdrag av strängar i dina källkodsfiler som kräver översättning till andra mänskliga sprÃ¥k (t.ex. fönsterrubriker, menynamn, namn pÃ¥ knappar, text i dialogrutor och meddelanden av olika slag). </para +></listitem> +</itemizedlist> + +<para +>Observera att delprojektet <filename +>doc</filename +> alltid har ett delprojekt som heter <filename +>en</filename +>, som du kan se om du klickar pÃ¥ symbolen <symbol +>+</symbol +> intill ordet <filename +>doc</filename +>. Det beror pÃ¥ att grundsprÃ¥ket för all dokumentation i KDE är engelska (en). Om programmet blir en del av KDE, kan KDE:s översättningsgrupper översätta din dokumentation frÃ¥n engelska till andra sprÃ¥k, och översättningarna hamnar dÃ¥ i andra delprojekt, som <filename +>sv</filename +> (svenska), <filename +>de</filename +> (tyska) eller <filename +>fr</filename +> (franska). Strängarna i delprojektet <filename +>po</filename +> kan ocksÃ¥ översättas och lagras i andra filer under <filename +>po</filename +>, för att pÃ¥ sÃ¥ sätt lÃ¥ta programmet hanteras av personer som inte kan engelska. </para> + +<note +><para +>Delprojekten <filename +>doc</filename +> och <filename +>po</filename +> tjänar olika syften. <filename +>doc</filename +> innehÃ¥ller <emphasis +>dokumentation</emphasis +>, som en användarhandbok, medan <filename +>po</filename +> innehÃ¥ller textsträngar som kan översättas frÃ¥n <emphasis +>användargränssnittet</emphasis +> som ingÃ¥r i programmets källkod. </para +></note> + +<para +>Översiktsfönstret fungerar bland annat som ett navigeringsverktyg. Om du väljer ett delprojekt i översiktsfönstret, visas motsvarande detaljinformation i detaljfönstret. </para> + +</sect2 +> <!-- automake-manager-operation-survey-window --> + +<sect2 id="automake-manager-operation-detail-window"> +<title +>Detaljfönstret</title> + +<para +>Detaljfönstret innehÃ¥ller en lista med alla filer i delprojektet som för närvarande är markerat i översiktsfönstret, samt kompilerings-, bygg- och installationsreglerna för delprojektet. PÃ¥ sÃ¥ sätt kan fönstren tillsammans ge dig möjlighet att komma Ã¥t alla komponenter i programmet, och all information om hur det ska kompileras, byggas och installeras. </para> + +<sect3> +<title +>MÃ¥l</title> + +<para +>Trädlistan i detaljfönstret har tvÃ¥ nivÃ¥er. Den översta nivÃ¥n bestÃ¥r av sÃ¥ kallade <emphasis +>mÃ¥l</emphasis +> i Hantering av automake, och nästa nivÃ¥ innehÃ¥ller listor med filer som används för att skapa varje mÃ¥l. </para> + +<para +>Det här konceptet med ett mÃ¥l i Hantering av automake, skiljer sig nÃ¥got frÃ¥n vad ett mÃ¥l i en <filename +>Makefile</filename +> oftast är. I korthet:</para> +<itemizedlist> + <listitem +><para +>Definitionen av hur ett antal filer ska kompileras, byggas eller installeras är känt som ett <emphasis +>mÃ¥l</emphasis +> i Hantering av automake, men som en <emphasis +>variabel</emphasis +> i själva <command +>Automake</command +>. </para +></listitem> + <listitem +><para +>Ett <emphasis +>mÃ¥l</emphasis +> i <command +>make</command +> är ofta nÃ¥got helt annat, eftersom det kan vara en väljare till kommandot <command +>make</command +> (t.ex. <userinput +>make install</userinput +>, <userinput +>make clean</userinput +>). </para> + <para +>Vissa av variablerna i <filename +>Makefile.am</filename +> representerar dock ett underliggande <emphasis +>delmÃ¥l</emphasis +> för <command +>make</command +>. </para +></listitem> +</itemizedlist> + +</sect3> +</sect2 +> <!-- automake-manager-operation-detail-window --> + +<sect2 id="automake-manager-operation-navigate"> +<title +>Navigera i Hantering av automake</title> + +<para +>BÃ¥de i översiktsfönstret och detaljfönstret kan du vänsterklicka pÃ¥ <symbol +>+</symbol +> eller <symbol +>-</symbol +> intill ett delprojekt eller mÃ¥lnamn för att expandera eller dra ihop trädvyn. Om du gör det med ett <emphasis +>delprojekt</emphasis +> i översiktsfönstret, visas eller döljs delprojektets nästa underliggande nivÃ¥ (om det finns nÃ¥gon). Om du gör det med ett <emphasis +>mÃ¥l</emphasis +> i detaljfönstret, visas eller döljs listan med filer som ingÃ¥r i mÃ¥let. </para> + +<variablelist> +<varlistentry> +<term +>Öppna en fil för redigering</term> +<listitem> +<para +>Om du <emphasis +>vänsterklickar</emphasis +> pÃ¥ ett filnamn i detaljfönstret, öppnas motsvarande fil i &tdevelop;s redigeringsfönster.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Aktivera verktygsradsknapparna i Hantering av automake</term> +<listitem> +<para +>Om du <emphasis +>vänsterklickar</emphasis +> pÃ¥ ett delprojektnamn i översiktsfönstret eller ett mÃ¥l i detaljfönstret, markeras namnet och vissa knappar i verktygsraden blir aktiva längst upp i fönstret.</para> + +<note> + <para +>Du rekommenderas använda <emphasis +>höger musknapp och sammanhangsberoende menyer</emphasis +>, istället för knapparna i verktygsraden, eftersom det är dÃ¥ mycket enklare att se och förstÃ¥ vad du gör. </para> + <para +>Ã…tgärder för delprojekt och mÃ¥l har lÃ¥ngtgÃ¥ende effekter för struktur, kompilering, byggning och installation av programmet. </para> +</note> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Välja Ã¥tgärder och sammanhangsberoende menyer</term> +<listitem> +<para +>Om du <emphasis +>högerklickar</emphasis +> pÃ¥ ett delprojektnamn, mÃ¥l eller fil, dyker en meny upp och du kan därefter välja Ã¥tgärder att utföra för delprojektet, mÃ¥let eller filen, som att lägga till ett mÃ¥l i delprojektet, lägga till en fil i mÃ¥let eller logiskt ta bort den markerade filen frÃ¥n sitt mÃ¥l. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- automake-manager-operation-navigate --> + +<sect2 id="automake-manager-operation-popups"> +<title +>Sammanhangsberoende menyer i Hantering av automake</title> + +<para +>Följande avsnitt förklarar kortfattat vilka Ã¥tgärder som menyerna gör tillgängliga, som dyker upp vid klick med höger musknapp i fönstret Hantering av automake. Avsnitten är bara avsedda som en översikt. Du hittar detaljerade beskrivningar av de flesta Ã¥tgärderna i ett senare kapitel. </para> +<!-- ### add a link to this chapter when ready --> + +<sect3 id="automake-manager-operation-popups-file"> +<title +>Sammanhangsberoende menyn för en fil</title> + +<para +>När du högerklickar pÃ¥ ett <emphasis +>filnamn</emphasis +> i detaljfönstret, dyker följande meny upp som lÃ¥ter dig välja en av flera Ã¥tgärder att utföra med filen. I bilden nedan, markerades ikonfilen <filename +>hi-16app-mittpgm.png</filename +> i mÃ¥let <guilabel +>Ikondata i kde_icon</guilabel +> frÃ¥n delprojektet <guilabel +>mittpgm/src</guilabel +>. </para> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automake-file-popup.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="bottom" +><itemizedlist> + <listitem +><para +>Det huvudsakliga alternativet i den sammanhangsberoende menyn är att <guimenuitem +>Ta bort</guimenuitem +> filen frÃ¥n mÃ¥let (dvs. den kommer inte längre att användas för att kompilera, bygga eller installera det mÃ¥let). </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>CVS</guimenuitem +> erbjuder en hel del olika CVS-Ã¥tgärder för filen. </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Öppna med</guimenuitem +> lÃ¥ter dig öppna filen med ett antal editorer eller med vilket program som helst (t.ex. kan du öppna ikonfilen i vÃ¥rt exempel med <application +>Kicon</application +>). </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Perforce</guimenuitem +> används för liknande Ã¥tgärder som i CVS, men med det kommersiella versionshanteringssystemet <quote +><application +>Perforce</application +></quote +>. </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect3 +> <!-- automake-manager-operation-popups-file --> + +<sect3 id="automake-manager-operation-popups-target"> +<title +>Sammanhangsberoende menyn för ett mÃ¥l</title> + +<para +>När du högerklickar pÃ¥ ett <emphasis +>mÃ¥l</emphasis +> i detaljfönstret, dyker följande meny upp som lÃ¥ter dig välja en av flera Ã¥tgärder att utföra med det. I bilden nedan, markerades mÃ¥let <emphasis +>mittpgm (Program i bin)</emphasis +> i delprojektet <guilabel +>mittpgm/src</guilabel +>. </para> + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automake-target-popup.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="bottom" +><itemizedlist> + <listitem +><para +>Alternativet <guimenuitem +>Inställningar</guimenuitem +> för ett mÃ¥l gäller bara källkodsfiler. I motsvarande dialogruta kan du ange länkargument och sökvägar där bibliotek kan hittas, och du kan ange en lista med verkliga bibliotek som ska länkas med i programmet. </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Skapa ny fil</guimenuitem +> visar en dialogruta där du kan ange filnamnet och filtypen som ska skapas (i en kombinationsruta). </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Lägg till befintliga filer</guimenuitem +> visar en dialogruta där du kan lägga till en befintlig fil till mÃ¥let. </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Ta bort</guimenuitem +> för ett mÃ¥l lÃ¥ter dig logiskt ta bort mÃ¥let och alla dess filer frÃ¥n projektstrukturen. </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Gör mÃ¥l aktivt</guimenuitem +> gäller bara för mÃ¥l som innehÃ¥ller källkodsfiler. Nya filer läggs alltid till i ett sÃ¥dant aktivt mÃ¥l. </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Bygg mÃ¥l</guimenuitem +> anropar alla nödvändiga kompilerings- och byggÃ¥tgärder för att bygga koden enbart för detta mÃ¥l. </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect3 +> <!-- automake-manager-operation-popups-target --> + +<sect3 id="automake-manager-operation-popups-subproject"> +<title +>Sammanhangsberoende menyn för ett delprojekt</title> + +<para +>När du högerklickar pÃ¥ ett <emphasis +>delprojekt</emphasis +> i översiktsfönstret, dyker följande meny upp som lÃ¥ter dig göra större ändringar i projektets struktur och sättet det kompileras, byggs och installeras. Du kan använda den för att utöka eller ändra den grundläggande projektstrukturen som programguiden har skapat. </para> + + +<informaltable frame="none"> +<tgroup cols="2" +><tbody +><row> + <entry +><inlinemediaobject> + <imageobject> + <imagedata fileref="automake-subproject-popup.png" format="PNG"/> + </imageobject> + </inlinemediaobject +></entry> + <entry valign="bottom" +><itemizedlist> + <listitem +><para +>Alternativet <guimenuitem +>Inställningar</guimenuitem +> för ett delprojekt styr sättet som delprojektet kompileras, byggs och installeras. Dialogrutan som dyker upp har flikar för Kompilator, Deklarationsfiler, Prefix och Byggordning. </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Lägg till delprojekt</guimenuitem +> skapar en ny katalog och Makefile.am skelettfil. </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Lägg till mÃ¥l</guimenuitem +> visar en dialogruta, där du kan ställa in regler för kompilering, byggning eller installation för en filgrupp inne i delprojektet. </para +></listitem> + <listitem +><para +><guimenuitem +>Lägg till tjänst</guimenuitem +> (... ännu inte skrivet ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Lägg till program</guimenuitem +> (... ännu inte skrivet ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Lägg till befintliga delprojekt</guimenuitem +> (... ännu inte skrivet ...) </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Ta bort delprojekt</guimenuitem +> i den sammanhangsberoende menyn för ett delprojekt är det riktiga sättet att ta bort ett delprojekt. Det justerar filerna <filename +>Makefile.am</filename +> pÃ¥ motsvarande sätt. Du erbjuds ocksÃ¥ möjlighet att ta bort alla filer (eller länkar) i motsvarande underkatalog. Uppenbarligen ska funktionen användas med försiktighet. </para +></listitem> + <listitem +><para +>Alternativet <guimenuitem +>Bygg</guimenuitem +> anropar alla nödvändiga kompilerings- och byggÃ¥tgärder för att bygga koden för enbart detta delprojekt. </para +></listitem> + <listitem +><para +><guimenuitem +>Tvinga omredigering</guimenuitem +> (... ännu inte skrivet ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Rensa</guimenuitem +> (... ännu inte skrivet ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Installera</guimenuitem +> (... ännu inte skrivet ...) </para +></listitem> + <listitem +><para +><guimenuitem +>Installera (som systemadministratör)</guimenuitem +> (... ännu inte skrivet ...) </para +></listitem> + </itemizedlist +></entry> +</row +></tbody +></tgroup> +</informaltable> + +</sect3 +> <!-- automake-manager-operation-popups-subproject --> + +</sect2 +> <!-- automake-manager-operation-popups --> + +</sect1 +> <!-- automake-manager-operation --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="autoproject"> +<title +>Automake-projekt</title> +<indexterm zone="autoproject" +><primary +><command +>autoproject</command +></primary +></indexterm> +<indexterm zone="autoproject" +><primary +>&automake;</primary +></indexterm> +<indexterm zone="autoproject" +><primary +>&autoconf;</primary +></indexterm> +<indexterm zone="autoproject" +><primary +>&libtool;</primary +></indexterm> + +<para +>(... ännu inte skrivet ...) </para> + + +<sect2 id="autoconf"> +<title +>Autoconf</title> +<indexterm zone="autoconf" +><primary +><filename +>configure</filename +>-skriptet</primary +></indexterm> +<indexterm zone="autoconf" +><primary +><filename +>config.status</filename +>-skriptet</primary +></indexterm> +<indexterm zone="autoconf" +><primary +><filename +>Makefile.in</filename +></primary +></indexterm> +<indexterm zone="autoconf" +><primary +><filename +>config.h.in</filename +></primary +></indexterm> + +<para +><filename +>Makefile.in</filename +> till <filename +>Makefile</filename +> </para> + +<programlisting +>prefix = @prefix@ +INSTALL = @INSTALL@ +build_triplet = @build@ +CXX = @CXX@ +</programlisting> + +<programlisting +>prefix = /home/bernd/kde3 +INSTALL = /usr/bin/ginstall -c -p +build_triplet = i686-pc-linux-gnu +CXX = g++ +</programlisting> + +<para +><filename +>config.h.in</filename +> till <filename +>config.h</filename +> </para> + +<programlisting +>/* Define if you have libz */ +#undef HAVE_LIBZ +/* The size of a `int', as computed by sizeof. */ +#undef SIZEOF_INT +</programlisting> + +<programlisting +>/* Define if you have libz */ +#define HAVE_LIBZ 1 +/* The size of a `int', as computed by sizeof. */ +#define SIZEOF_INT 4 +</programlisting> + +</sect2 +> <!-- autoconf --> + + +<sect2 id="automake"> +<title +>Automake</title> + +<para +>(... ännu inte skrivet ...) </para> + +</sect2 +> <!--automake --> + + +<sect2 id="automake-manager"> +<title +>&tdevelop;s Hantering av automake</title> + +<figure id="screenshot-automake-manager" float="1"> +<title +>En skärmbild av Hantering av automake</title> +<mediaobject> +<imageobject +><imagedata fileref="automake-manager.png"/></imageobject> +</mediaobject> +</figure> + +</sect2 +> <!-- automake-manager --> + + +<sect2 id="automakelibrary"> +<title +>Bygga och installera bibliotek</title> + +<para> +<itemizedlist> +<listitem +><para +>-rpath </para +></listitem> +<listitem +><para +>PIC </para +></listitem> +<listitem +><para +>static </para +></listitem> +<listitem +><para +>insticksprogram: no-undefined </para +></listitem> +</itemizedlist> +</para> + +</sect2 +> <!-- automakelibrary --> + +</sect1 +> <!-- autoproject --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="customproject"> +<title +>Egna byggfiler och byggskript</title> +<indexterm zone="customproject" +><primary +><filename +>Makefile</filename +></primary +></indexterm> +<indexterm zone="customproject" +><primary +><filename +>build.xml</filename +></primary +></indexterm> + +<para +>(... ännu inte skrivet ...) </para> + +</sect1 +> <!-- customproject --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="compileroptions"> +<title +>Kompilatorinställningar</title> + +<para +>(... ännu inte skrivet ...) </para> + +</sect1 +> <!-- compileroptions --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="makeoptions"> +<title +>Byggalternativ</title> + +<para +>(... ännu inte skrivet ...) </para> + +</sect1 +> <!-- makeoptions --> + +</chapter +> <!-- project-management --> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/raw-project-warning.png b/tde-i18n-sv/docs/tdevelop/tdevelop/raw-project-warning.png Binary files differnew file mode 100644 index 00000000000..3b1c0d88f3b --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/raw-project-warning.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/run-button.png b/tde-i18n-sv/docs/tdevelop/tdevelop/run-button.png Binary files differnew file mode 100644 index 00000000000..cb7f6acbe3c --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/run-button.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/script_location.png b/tde-i18n-sv/docs/tdevelop/tdevelop/script_location.png Binary files differnew file mode 100644 index 00000000000..79ef0721ac6 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/script_location.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface-0.png b/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface-0.png Binary files differnew file mode 100644 index 00000000000..9ac0e52ae67 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface-0.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface.png b/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface.png Binary files differnew file mode 100644 index 00000000000..c844d46b829 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/select-user-interface.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/setup.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/setup.docbook new file mode 100644 index 00000000000..d045aca5c59 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/setup.docbook @@ -0,0 +1,3011 @@ +<chapter id="setup"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Anpassa &tdevelop;</title> + +<para +>&tdevelop; är en mycket kraftfull och flexibel integrerad utvecklingsmiljö, som erbjuder mÃ¥nga möjligheter för anpassning enligt dina behov. För att göra inställningar, välj <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa &tdevelop;...</guimenuitem +></menuchoice +>. Det gör att inställningsdialogrutan dyker upp, som bestÃ¥r av ett fönster för att välja inställningar till vänster och inställningsdialogrutan till höger, vars innehÃ¥ll varierar beroende pÃ¥ gruppen av inställningar du valt. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-select.png" format="PNG"/> + </imageobject> +<textobject> +<phrase +>Välj en grupp av inställningar</phrase> +</textobject> + <caption +><para +>Välj en grupp av inställningar </para +></caption> + </mediaobject> +</screenshot> + +<para +>Vi beskriver inställningarna i en annan ordning, uppdelat i huvudämnena <link linkend="setup-general" +>Allmänna inställningar</link +>, <link linkend="setup-docu" +>Anpassa dokumentationen</link +> och <link linkend="setup-advanced" +>Avancerade inställningar</link +>, vilket leder till en intuitivare läsupplevelse. </para> +<para +>Om du vill slÃ¥ upp en viss grupp av inställningar direkt, använd en av följande länkar. </para> + +<simplelist> + <member +><link linkend="setup-main" +>Allmänt</link +></member> + <member +><link linkend="setup-ui" +>Användargränssnitt</link +></member> + <member +><link linkend="setup-templates" +>Filmallar</link +></member> +<member +><link linkend="setup-editor" +>Editor</link +></member> + <member +><link linkend="setup-abbrev" +>Förkortningar</link +></member> + <member +><link linkend="setup-scripting" +>Skript</link +></member> + <member +><link linkend="setup-menu-standard" +>Menyn Verktyg</link +></member> + <member +><link linkend="setup-menu-external" +>Externa verktyg</link +></member> + <member +><link linkend="setup-docu" +>Dokumentation</link +></member> + <member +><link linkend="setup-snippets" +>Kodsnuttar</link +></member> + <member +><link linkend="setup-file-list" +>Fillista</link +></member> + <member +><link linkend="setup-file-selector" +>Filväljare</link +></member> + <member +><link linkend="setup-cpp-generator" +>Skapa ny klass i C++</link +></member> + <member +><link linkend="setup-format" +>Formatering</link +></member> + <member +><link linkend="setup-cpp-parsing" +>Tolkning av C++</link +></member> +</simplelist> + +<sect1 id="setup-general"> +<title +>Allmänna inställningar</title> + +<para +>Allmänna inställningar rör de vanligare aktiviteterna för att anpassa &tdevelop;, där det finns: </para> +<itemizedlist> + <listitem +><para> + <link linkend="setup-main" +>Allmän inställning</link> + </para +></listitem> + <listitem +><para> + <link linkend="setup-ui" +>Välja användargränssnitt</link> + </para +></listitem> + <listitem> + <itemizedlist> +<title +>Aktiviteter för källkodsredigering</title> + <listitem +><para> + <link linkend="setup-editor" +>Välja en editor</link> + </para +></listitem> + <listitem +><para> + <link linkend="setup-format" +>Välja stil för källkodsformatering</link> + </para +></listitem> + <listitem +><para> + <link linkend="setup-snippets" +>Ställa in verktyget för kodsnuttar</link> + </para +></listitem> + </itemizedlist> + </listitem> + <listitem +><para> + <link linkend="setup-file-selector" +>Anpassa filväljaren</link> + </para +></listitem> +</itemizedlist> + +<sect2 id="setup-main"> +<title +>Allmän inställning</title> + +<para +>Inställningsdialogrutan <guilabel +>Allmänt</guilabel +> lÃ¥ter dig definiera grundläggande beteende hos &tdevelop; som sällan ändras under dagligt arbete. Det rör: </para> + +<variablelist> +<varlistentry> +<term +>Allmänna projektinställningar som</term> +<listitem> + <itemizedlist> + <listitem +><para +>definiera en <link linkend="setup-main-projects" +>standardprojektkatalog</link +> som &tdevelop; ska använda för nya projekt. </para +></listitem> + <listitem +><para +>bestämma om du vill att &tdevelop; <link linkend="setup-main-preload" +>automatiskt ska ladda</link +> projektet du senast arbetade med. </para +></listitem> + </itemizedlist> + </listitem> +</varlistentry> + +<varlistentry> +<term +>Välja ett teckensnitt för de oftast använda utmatningsfönstren, nämligen:</term> +<listitem> + +<itemizedlist> +<listitem> +<para +><link linkend="setup-main-messages-font" +>Meddelandeutmatningen</link +> som &tdevelop; använder för att visa t.ex. kompileringsprocesser, och</para> +</listitem> +<listitem> +<para +>Programutmatningen, som visar fel- och tillstÃ¥ndsinformation som rör ett program som kör.</para> +</listitem> +</itemizedlist> + +</listitem> +</varlistentry> + +<varlistentry> +<term +>En del vanliga beteenden som rör rader som visas i fönstret <guilabel +>Meddelandeutmatning</guilabel +>, nämligen:</term> +<listitem> + <itemizedlist> +<listitem> +<para +>om lÃ¥nga rader <link linkend="setup-main-wrap" +>radbryts</link +>, och </para> +</listitem> +<listitem> +<para +>om <link linkend="setup-main-navigation" +>meddelanden om katalogbyte</link +> som ges av <command +>make</command +> visas.</para> +</listitem> +</itemizedlist> + +<para +><link linkend="setup-main-compile" +>DetaljnivÃ¥n</link +> för meddelanden om kompileringsprocessen som visas i fönstret <guilabel +>Meddelandeutmatning</guilabel +>.</para> +</listitem> +</varlistentry> +</variablelist> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-general.png" format="PNG"/> + </imageobject> + <caption +><para +>Dialogrutan för allmänna inställningar </para +></caption> + </mediaobject> +</screenshot> + +<variablelist> +<varlistentry> +<term id="setup-main-preload" +><guilabel +>Ladda senaste projekt vid start</guilabel +></term> +<listitem> +<para +>Markera den här kryssrutan om du vill fortsätta att arbeta med det senaste projektet du arbetade med. Det gör att &tdevelop; automatiskt laddar projektet vid start. Det visas oftast med samma tillstÃ¥nd som du lämnade arbetet, sÃ¥ att du enkelt kan fortsätta. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-main-projects"> +<guilabel +>Standardprojektkatalog:</guilabel +></term> +<listitem> +<para +>Normalt använder &tdevelop; en gemensam överliggande katalog för alla nya projekt. Skriv in absolut sökväg till denna gemensamma katalog i rutan eller välj den i katalogstrukturen. &tdevelop; placerar alla nya projekt här som underkataloger.</para> +<note +><para +>Du kan förstÃ¥s ändra katalogsökvägen för ett nytt projekt när du ställer in det i <link linkend="applicationwizard" +>Projektguiden</link +>. </para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-main-messages-font" +><guilabel +>Fönsterteckensnitt</guilabel +></term> +<listitem> +<para +>Fönstret <guilabel +>Programutmatning</guilabel +> används för att visa fel- och tillstÃ¥ndsinformation frÃ¥n program som körs inne i &tdevelop;. Det är information som programmen oftast skickar till konsollen när de körs fristÃ¥ende. AlltsÃ¥ behöver du inte lämna den grafiska utvecklingsmiljön när du testar programmet du för närvarande arbetar med. </para> +<para +>För att välja ett lämpligt teckensnitt för fönstret <guilabel +>Meddelandeutmatning</guilabel +>, klicka pÃ¥ knappen <guilabel +>Fönsterteckensnitt</guilabel +> som visar teckensnittet som för närvarande är valt (det stÃ¥r <quote +>Arial</quote +> pÃ¥ bilden ovan). &kde;:s vanliga dialogruta <guilabel +>Välj teckensnitt</guilabel +> dyker upp, där du kan välja teckensnittet som ska användas. </para> +<note +><para +>När &tdevelop; först startar initieras teckensnittsinställningen till det standardteckensnitt som &kde;-användaren har inställt. <emphasis +>Den här inställningen är fast</emphasis +>, sÃ¥ om du ändrar <menuchoice +><guimenuitem +>Inställningar</guimenuitem +> <guimenuitem +>Utseende och teman</guimenuitem +> <guimenuitem +>Teckensnitt</guimenuitem +></menuchoice +> i <guilabel +>Inställningscentralen</guilabel +> pÃ¥verkas inte &tdevelop;s teckensnittsval. Du mÃ¥ste explicit välja ett nytt teckensnitt för fönstret <guilabel +>Meddelandeutmatning</guilabel +>. </para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-main-compile" +><guilabel +>Kompilatorutmatning</guilabel +></term> +<listitem> +<para +>&tdevelop; förbehandlar meddelanden som fönstret <guilabel +>Meddelandeutmatning</guilabel +> visar under byggprocessen för att filtrera onödig information. Du kan styra detaljnivÃ¥n som &tdevelop; visar med kombinationsrutan i det här fältet. </para> +<variablelist> +<varlistentry> +<term +><guilabel +>Mycket kort</guilabel +></term> +<listitem +><para +>Visa bara varningar, fel och filnamnen som kompileras. </para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Kort</guilabel +></term> +<listitem +><para +>Undertryck alla kompileringsflaggor, och ändra format till nÃ¥got mer läsbart. </para +></listitem> +</varlistentry> +<varlistentry> +<term +><guilabel +>Fullständig</guilabel +></term> +<listitem +><para +>Visa all utmatning utan förändring. </para +></listitem> +</varlistentry> +</variablelist> + +<tip +><para +>Det finns ett alternativt sätt att ändra detaljnivÃ¥ för kompilatorutmatning. Högerklicka bara i fönstret <guilabel +>Meddelandeutmatning</guilabel +> och välj motsvarande detaljnivÃ¥ i menyn som dyker upp. </para +></tip> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-main-wrap" +><guilabel +>Radbrytning</guilabel +></term> +<listitem> +<para +>Normalt radbryter &tdevelop; lÃ¥nga rader i fönstret <guilabel +>Meddelandeutmatning</guilabel +> sÃ¥ att värdefull information inte lätt förbises. Ibland kan detta skräpa ner lÃ¥nga meddelandelistor. Ta bort kryssmarkeringen om du inte vill att radbrytning ska ske. </para> +<tip +><para +>Det finns ett alternativt sätt att ändra radbrytningen. Högerklicka bara i fönstret <guilabel +>Meddelandeutmatning</guilabel +> och markera eller avmarkera alternativet <guimenuitem +>Radbrytning</guimenuitem +> i menyn som dyker upp. </para +></tip> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-main-navigation" +><guilabel +>Meddelanden om katalogbyte</guilabel +></term> +<listitem> +<para +>Verktyget <command +>make</command +> visar oftast meddelanden som <quote +>Entering directory</quote +> eller <quote +>Leaving directory</quote +> när byte av arbetskatalog sker. Eftersom det här skräpar ner listan med meddelanden i fönstret <guilabel +>Meddelandeutmatning</guilabel +> undertrycker &tdevelop; normalt dessa meddelanden. Markera kryssrutan om du vill observera vilka kataloger som <command +>make</command +> arbetar i. </para> +<note +><para +>Ändringar av inställningen pÃ¥verkar bara behandling av nya meddelanden. Gamla katalogbytesmeddelanden förblir synliga när den här funktionen stängs av. </para +></note> +</listitem> +</varlistentry> + +<varlistentry> +<term id="ui-designer-integration" +><guilabel +>Integrering med Designer för grafiskt gränssnitt</guilabel +></term> +<listitem> +<para +>Det här lÃ¥ter dig välja hur du vill att <filename +>.ui</filename +>-filer ska visas i &tdevelop;. &tdevelop; levereras med sin egen Designer för grafiska gränssnitt som heter KDevDesigner. Den kan antingen inbäddas eller köras som ett separat program. Qt Designer kan ocksÃ¥ användas för att redigera <filename +>.ui</filename +>-filer. </para> +<itemizedlist> + <listitem +><para +>Använd &tdevelop;s inbäddade Designer </para +><para +>Använder &tdevelop;s egen Designer inbäddad i &tdevelop;.</para +></listitem> + <listitem +><para +>Kör &tdevelop; Designer som ett separat program </para +><para +>Programmet KDevDesigner körs separat i ett eget fönster.</para> +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="kdevdesigner.png" format="PNG"/> + </imageobject> + <caption +><para +>KDevDesigner i eget fönster </para +></caption> + </mediaobject> +</screenshot> +</listitem> + <listitem +><para +>Kör Qt Designer </para +><para +>Qt-Designer frÃ¥n installationen av Qt kommer att startas externt, när du klickar pÃ¥ en <filename +>.ui</filename +>-fil i &tdevelop;.</para +></listitem> +</itemizedlist> +</listitem> +</varlistentry> + +<varlistentry> +<term id="terminal-emulation" +><guilabel +>Terminalemulering</guilabel +></term> +<listitem> +<para +>Här väljer du vilken terminal du vill ska integreras i KDevelop. </para> +<itemizedlist> + <listitem +><para +>Använd &kde;-inställning </para +><para +>Använder &kde;:s inställning som anges i Inställningscentralen under fliken <guilabel +>&kde;-komponenter</guilabel +><guilabel +>Komponentväljare</guilabel +>, som anger vilket terminalprogram som används av alla &kde;-program som behöver en terminal.</para +></listitem> + <listitem +><para +>Annan: </para +><para +>Välj nÃ¥gon annan terminal som skiljer sig frÃ¥n den förvalda.</para> +</listitem> +</itemizedlist> +</listitem> +</varlistentry> + +</variablelist> + +</sect2 +> <!-- setup-main --> + +<sect2 id="setup-ui"> +<title +>Välja användargränssnitt</title> + +<indexterm zone="setup-ui"> + <primary +>användargränssnitt</primary> + <secondary +>byta läge</secondary +></indexterm> +<indexterm zone="setup-ui"> + <primary +>byta gränssnittsläget</primary +></indexterm> + +<para +>Som redan nämnts i kapitlet <link linkend="uimodes-survey" +>Tillgängliga lägen för användargränssnitt</link +> finns det fem olika sätt som &tdevelop;s arbetsomrÃ¥de kan ställas in, nämligen: </para> +<itemizedlist> + <listitem +><para> + <link linkend="ideal-desc" +>Förenklat IDEA-fönsterläge</link> + </para +><para +>Det här är en förenklad version av IDEA-användargränssnittet. Det är konstruerat för att vara enkelt och rent. Det använder inte heller dockade verktygsvyer.</para +></listitem> + <listitem +><para> + <link linkend="ideal-desc" +>IDEA-fönsterläge</link> + </para +><para +>Det här är en klon av IDEA-användargränssnittet som liknar fliksidläge, och är förvalt läge.</para +></listitem> + <listitem +><para> + <link linkend="mdi-desc" +>Underramsläge</link> + </para +><para +>Alla verktygsvyer är dockade i huvudramen frÃ¥n början. Editorn och bläddringsvyer existerar som toppnivÃ¥fönster inne i huvudramens vyomrÃ¥de. Ett typiskt exempel pÃ¥ detta användargränssnitt är MS Visual Studio 6.0.</para +></listitem> + <listitem +><para> + <link linkend="tabbed-desc" +>Fliksidläge</link> + </para +><para +>Alla verktygsvyer är dockade i huvudramen frÃ¥n början. Editorn och bläddringsvyer läggs ovanpÃ¥ varandra i ett flikfönster. Ett typiskt exempel pÃ¥ detta användargränssnitt är KDEStudio, en annan C++ integrerad utvecklingsmiljö i KDE-världen.</para +></listitem> + <listitem +><para> + <link linkend="toplevel-desc" +>ToppnivÃ¥läge</link> + </para +><para +>Alla editorvyer, bläddringsvyer och verktygsvyer är toppnivÃ¥fönster (direkt pÃ¥ skrivbordet). Huvudkomponenten innehÃ¥ller bara menyn, verktygsrader och statusraden. Ett typiskt exempel pÃ¥ detta användargränssnitt är Borland Delphi 6.0.</para +></listitem> +</itemizedlist> + +<para +>För att byta användargränssnittets läge välj <menuchoice +> <guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa &tdevelop;...</guimenuitem +></menuchoice +> i menyraden. Dialogrutan <guilabel +>Anpassa KDevelop</guilabel +> dyker upp, där du ska välja <guilabel +>Användargränssnitt</guilabel +> i trädet till vänster. DÃ¥ visas följande inställningsdialogruta till höger:</para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="select-user-interface-0.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Välj ett användargränssnittsläge</phrase +></textobject> + <caption +><para +>Välj ett användargränssnittsläge </para +></caption> + </mediaobject> +</screenshot> + +<para +>Markera alternativknappen för gränssnittsläget du vill byta till, och klicka därefter pÃ¥ <guibutton +>Ok</guibutton +>. </para> + +<note +><para +>Glöm inte att starta om &tdevelop; för att alla dessa val ska fÃ¥ effekt. </para +></note> + +<para +>Om du antingen valt <guilabel +>Förenklat IDEA-fönsterläge</guilabel +>, <guilabel +>IDEA-fönsterläge</guilabel +> eller <guilabel +>Fliksidläge</guilabel +> blir ytterligare tvÃ¥ inställningsrutor tillgängliga: <link linkend="setup-ui-tabs" +>Använd flikar</link +> och <link linkend="setup-ui-hover" +>Använd stäng när musen hÃ¥lls stilla</link +>. De gör det möjligt att anpassa under vilka omständigheter flikar visas ovanför dokumentfönster, och om du kan stänga dokument med ett klick pÃ¥ flikens ikon. </para> + +<para +>I <guilabel +>Förenklat IDEA-fönsterläge</guilabel +> och <guilabel +>IDEA-fönsterläge</guilabel +> finns ännu en inställningsruta tillgänglig, <link linkend="setup-ui-toolview" +>Fliklayout för verktygsvy</link +> som lÃ¥ter dig välja mellan olika storlekar hos flikarna för verktygsvyer som omger huvudarbetsytan i dessa lägen. </para> + +<variablelist> +<varlistentry> +<term id="setup-ui-tabs" +>Anpassa visningen av flikraden för dokumentation</term> +<listitem> +<para +>Med IDEA-fönsterläge och fliksidläge finns det normalt namngivna flikar ovanför dokumentfönstren, sÃ¥ att du enkelt kan välja olika dokument med ett vänsterklick. Om du föredrar att ge mer utrymme till dokumentfönstren pÃ¥ huvudarbetsytan i &tdevelop;, kan du byta till ett annat beteende i inställningsrutan <guilabel +>Använd flikar</guilabel +>. </para> + +<variablelist> +<varlistentry> + <term +><guilabel +>Alltid</guilabel +></term> + <listitem +><para +>Det här är standardvärdet: Visa en flik som bestÃ¥r av en ikon och dokumentnamnet ovanför varje dokumentfönster pÃ¥ huvudytan av skärmen i &tdevelop;. </para +></listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Vid mer än en</guilabel +></term> + <listitem +><para +>Visa inte en flik när bara ett dokument är öppet. Om mer än ett dokument är öppet, visar &tdevelop; dock en flikrad som motsvarar valet <guilabel +>Alltid</guilabel +> ovan. Du kan vilja använda det här läget om du oftast arbetar med ett enda dokument, eftersom läget tillhandahÃ¥ller ett större vertikalt utrymme. </para +></listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Aldrig</guilabel +></term> + <listitem +><para +>Visa aldrig en flikrad för att välja dokument. Du kanske föredrar det här läget om du sällan använder musen för att byta mellan dokument. Det tillhandahÃ¥ller ett större vertikalt utrymme för alla dokumentfönster. Använd menyn <guimenu +>Fönster</guimenu +> i &tdevelop; för att välja ett annat dokumentfönster eller stänga nÃ¥got. </para +></listitem> +</varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-ui-hover" +>Ställa in att stänga ett dokument genom att klicka pÃ¥ dess flik</term> +<listitem> +<para +>När du anpassar &tdevelop; att visa flikraden för dokument, antingen alltid eller när mer än ett dokument är öppet pÃ¥ huvudarbetsytan, kan du lägga till ytterligare en funktion till flikarna förutom möjligheten att välja dokument. Använd inställningsrutan <guilabel +>Använd stäng när musen hÃ¥lls stilla</guilabel +> för detta. </para> + +<variablelist> +<varlistentry> + <term +><guilabel +>Nej</guilabel +></term> + <listitem +><para +>Det här är standardbeteendet. Ingen extra funktion läggs till för flikarna. De kan bara användas för att välja dokumentfönster med vänsterklick. </para +></listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Ja</guilabel +></term> + <listitem +><para +>När du markerar den här alternativknappen, lÃ¥ter &tdevelop; dig stänga ett dokumentfönster med ett vänsterklick. Använd musen för att peka pÃ¥ den lilla ikonen till vänster i flikraden. Den ändras till en stängningssymbol. Klicka nu med vänsterknappen pÃ¥ den ändrade symbolen, sÃ¥ stänger &tdevelop; motsvarande dokumentfönster. </para +></listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Ja, fördröjd</guilabel +></term> + <listitem +><para +>När den här alternativknappen är markerad, lÃ¥ter &tdevelop; dig stänga ett dokumentfönster som beskrivits för fallet <guilabel +>Ja</guilabel +> ovan. Ikonen ändras dock inte omedelbart, utan det blir en kort fördröjning innan stängningsikonen dyker upp. </para +></listitem> +</varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-ui-toolview" +>Anpassa fliklayout för verktygsvyn</term> +<listitem> +<para +>Inställningsrutan <guilabel +>Fliklayout för verktygsvy</guilabel +> är bara tillgänglig i IDEA-fönsterläge. Använd alternativknapparna för att ställa in utseendet för verktygsvyernas flikar som omger huvudarbetsytan i detta läge. </para> + +<variablelist> +<varlistentry> + <term +><guilabel +>Ikoner</guilabel +></term> + <listitem> + <para +>Varje flik visar bara en ikon. Om motsvarande verktygsvy visas, öppnas fliken och en beskrivande text för verktygsvyn visas. Du kan vilja använda det här läget om du arbetar med en bildskärm med begränsad upplösning. </para> + <para +>Ikonerna är dock inte särskilt beskrivande. Om du vill ta reda pÃ¥ vilken verktygsvy som hör ihop med en given flik, peka pÃ¥ den med musen och vänta en sekund. Ett kort verktygstips dyker dÃ¥ upp med verktygsvyns namn. </para> + </listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Text</guilabel +></term> + <listitem +><para +>Det här är standardläget för visning av verktygsvyernas flikar. Varje flik visar namnet pÃ¥ tillhörande verktygsvy. </para +></listitem> +</varlistentry> +<varlistentry> + <term +><guilabel +>Text och ikoner</guilabel +></term> + <listitem +><para +>Om du tycker att den vanliga visningen av text för verktygsvyerna verkar för trist, och du arbetar pÃ¥ en bildskärm med hög upplösning, kan du vilja markera den här alternativknappen. Den gör att namnet för motsvarande verktygsvy visas pÃ¥ varje flik med en ikon till vänster om det, vilket gör det enklare att skilja pÃ¥ flikarna. Ett exempel visas pÃ¥ illustrationen <link linkend="folded-toolview-tabs" +>Radbrytning av verktygsvyernas flikar</link +> nedan. </para +></listitem> +</varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Radbrytning av verktygsvyernas flikar</term> +<listitem> +<para +>Om du valde att lÃ¥ta IDEA-fönsterlägets flikar för verktygsvyer visa text (med eller utan tillhörande ikoner) behöver du inte oroa dig för att de döljs bakom nÃ¥got verktygsvyfönster. Om ett av de nedre verktygsvyfönstren upptar mer utrymme än vad som är tillgängligt för att visa alla (vertikala) flikar, radbryts de som illustrationen visar: </para> + +<screenshot> + <mediaobject id="folded-toolview-tabs"> + <imageobject> + <imagedata fileref="folded-tabs.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Verktygsvyernas flikar radbryts för att inte döljas bakom ett annat fönster som visas</phrase +></textobject> + <caption +><para +>Verktygsvyernas flikar radbryts för att inte döljas bakom ett annat fönster som visas </para +></caption> + </mediaobject> +</screenshot> + +<note +><para +>Det aktiva verktygsvyfönstret mÃ¥ste visas fast (utan överlappning), och dela arbetsytan med andra fönster, för att tvinga fram en sÃ¥dan radbrytning av flikar. Klicka pÃ¥ den lilla fyrkanten i fönsterramen för att Ã¥stadkomma läget som visas i exemplet. </para +></note> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- setup-ui --> + +<sect2 id="setup-templates"> +<title +>Filmallar</title> +<!--TODO fill--><para +></para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-file-templates.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Anpassa filmallar</phrase +></textobject> + <caption +><para +>Anpassa filmallar </para +></caption> + </mediaobject> +</screenshot> +</sect2 +> <!-- setup-templates --> + +<sect2 id="setup-editor"> +<title +>Välja en editor</title> + +<para +>&tdevelop; lÃ¥ter dig välja ditt favoritverktyg för textredigering. Markera raden <guilabel +>Editor</guilabel +> i trädet till vänster i fönstret <guilabel +>Anpassa KDevelop</guilabel +>. Följande dialogruta visas till höger: </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-editor.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Välja en editor</phrase +></textobject> + <caption +><para +>Välja en editor </para +></caption> + </mediaobject> +</screenshot> + +<para +>För att välja en ny editor, klicka pÃ¥ pilen i kombinationsrutan. Beroende pÃ¥ gränssnitten för redigeringsdelprogram som &kde;-versionen har kompilerats med, ser du en lista med editorer som du kan välja bland (se den <link linkend="setup-editor-kparts" +>viktiga anmärkningen</link +> nedan om detta). Klicka pÃ¥ editorn som du vill ha och klicka pÃ¥ <guilabel +>Ok</guilabel +>. För närvarande finns tvÃ¥ möjligheter: </para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Inbyggd avancerad texteditor</guilabel +></term> + <listitem +><para +>Det här är &kde;:s vanliga <application +>Kate</application +> redigeringsdelprogram. </para +></listitem> + </varlistentry> + + <varlistentry> + <term +><guilabel +>Qt Designer-baserad texteditor</guilabel +></term> + <listitem +><para +>Det här är editorn som &Qt; tillhandahÃ¥ller i sin <application +>Designer</application +>-komponent. </para +></listitem> + </varlistentry> +</variablelist> + +<para +>Dessa redigeringsgränssnitt är fullständigt integrerade med &tdevelop;s integrerade utvecklingsmiljö. I synnerhet tillhandahÃ¥lls möjligheten att hoppa till källkodsraden som orsakat ett fel genom att bara klicka pÃ¥ felmeddelandet i fönstret <guilabel +>Meddelandeutmatning</guilabel +>. </para> + +<note +><para +>Att byta editor pÃ¥verkar inte filer som redan är öppna. Det finns tvÃ¥ sätt att fortsätta. Stäng antingen alla öppna textfönster och öppna dem igen ett i taget. Eller stäng helt enkelt hela projektet och öppna det igen. Fönstren öppnas dÃ¥ automatiskt med det nya texteditorgränssnittet. </para +></note> + +<important id="setup-editor-kparts" +><para +>KDevelop lÃ¥ter dig använda editorgränssnitt som har registrerats med &kde; och som tillhandahÃ¥ller ett KatePart-gränssnitt. Om du saknar en av möjligheterna som visas ovan, kontrollera i din &kde;-installation om motsvarande KPart installerats pÃ¥ ett riktigt sätt. </para +></important> + +<para +>Vad som ska göras om filen har ändrats externt:</para> +<variablelist> + <varlistentry> + <term +><guilabel +>Gör ingenting</guilabel +></term> + <listitem +><para +>Filen markeras som ändrad externt, och användaren blir tillfrÃ¥gad om att bekräfta alla försök att skriva över den. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Underrätta användaren</guilabel +></term> + <listitem +><para +>En dialogruta underrättar användaren att filen har ändrats, och erbjuder användaren att uppdatera filen. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Ladda om filen automatiskt om det är säkert, underrätta annars användaren</guilabel +></term> + <listitem +><para +>Alla filer som inte är ändrade i minnet, uppdateras och en varning visas vid eventuella konflikter. </para +></listitem> + </varlistentry> +</variablelist> +</sect2 +> <!-- setup-editor --> + +<sect2 id="setup-abbrev"> +<title +>Förkortningar för ordkomplettering</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- setup-abbrev --> + +<sect2 id="setup-scripting"> +<title +>Skript</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- setup-scripting --> + +<sect2 id="setup-menu-standard"> +<title +>Lägga till &kde;:s standardprogram i verktygsmenyn</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- setup-menu-standard Tools Menu--> + +<sect2 id="setup-menu-external"> +<title +>Lägga till externa program i menyer</title> + +<para +>(... ännu inte skrivet ...) </para> + +<sect3 id="setup-menu-external-tools"> +<title +>Lägga till i verktygsmenyn</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect3 +> <!-- setup-menu-external-tools --> + +<sect3 id="setup-menu-external-filecontext"> +<title +>Lägga till i sammanhangsberoende meny för filer</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect3 +> <!-- setup-menu-external-filecontext --> + +<sect3 id="setup-menu-external-dircontext"> +<title +>Lägga till i sammanhangsberoende meny för kataloger</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect3 +> <!-- setup-menu-external-dircontext --> + +</sect2 +> <!-- setup-menu-external --> + +<sect2 id="setup-format"> +<title +>Välja en formateringsstil för källkod</title> + +<para +>&tdevelop; formaterar automatiskt källkodstext med en fördefinierad stil. Stilen är mycket anpassningsbar. </para> + +<note +><para +>Funktionen för att formatera om källkod är för närvarande bara tillgänglig för C, C++ och &Java;. I synnerhet kan du inte använda den för skriptsprÃ¥k som t.ex. PHP. Det beror pÃ¥ att &tdevelop; använder programmet <ulink url="http://astyle.sourceforge.net/" +>astyle</ulink +> för att implementera funktionen. </para +></note> + +<para +>För att ställa in en specifik formateringsstil, välj <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa &tdevelop;...</guimenuitem +></menuchoice +> i menyraden. Dialogrutan <guilabel +>Anpassa KDevelop</guilabel +> dyker upp, där du ska välja <guilabel +>Formatering av källkod</guilabel +> i trädet till vänster. DÃ¥ visas en serie av tre flikar med inställningar till höger, benämnda <link linkend="setup-format-general" +>Allmän</link +>, <link linkend="setup-format-indent" +>Indentering</link +> och <link linkend="setup-format-other" +>Annan</link +>. </para> + +<tip +><para +>Alla stiländringar gäller bara för nyinmatad text. Om du vill ändra formateringsstil för en befintlig källkodstext mÃ¥ste du uttryckligen använda kommandot <menuchoice +><guimenu +>Redigera</guimenu +> <guimenuitem +>Formatera om källkod</guimenuitem +></menuchoice +>. </para +></tip> + +<note +><para +>Det exakta resultatet av dessa definitioner av formateringsstil beror pÃ¥ <link linkend="setup-editor" +>editorn</link +> du använder. För närvarande är de flesta inställningar anpassade för redigeringsdelprogrammet Kate (<quote +>Inbäddningsbar avancerad texteditor</quote +>). Vissa andra editorer (t.ex. Qt-editorn) kan bero pÃ¥ sina egna formateringsinställningar. I dessa fall mÃ¥ste du experimentera för att ta reda pÃ¥ exakta effekterna av stilinställningarna som tillhandahÃ¥lls här. </para +></note> + +<warning +><para +>Det kan finnas oförenligheter mellan inställning av stilar som tillhandahÃ¥lls här och editorn du använder, i sÃ¥dan utsträckning att det i extrema fall till och med kan förstöra dina filer. Försäkra dig om att du har en säkerhetskopia av dina källkodsfiler innan du provar inställningarna med en editor som inte är standard i &kde;. </para +></warning> + +<sect3 id="setup-format-general"> +<title +>Allmänna formateringsinställningar</title> + +<para +>Fliken <guilabel +>Allmänt</guilabel +> i dialogrutan <guilabel +>Formatering av källkod</guilabel +> lÃ¥ter dig välja en av fem fördefinierade formateringsstilar för källkod. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="SF-general.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Allmän inställning av formateringsstil för källkod</phrase +></textobject> + <caption +><para +>Allmän inställning av formateringsstil för källkod </para +></caption> + </mediaobject> +</screenshot> + +<para +>Ett exempel pÃ¥ formaterad källkod visas i fältet till höger. Om du inte tycker om nÃ¥gon av de fördefinierade stilarna kan du klicka pÃ¥ den översta alternativknappen <guilabel +>Användardefinierad</guilabel +>, och definiera en egen formateringsstil för källkod du föredrar under de övriga tvÃ¥ flikarna som dÃ¥ blir tillgängliga. </para> + +<note +><para +>För närvarande illustreras bara de fördefinierade formateringsstilarna för källkod med en exempeltext. Om du bestämmer dig för att definiera din egen stil, finns ingen visning av exempel tillgänglig. Du mÃ¥ste experimentera med verklig källkodstext för att skräddarsy inställningarna som du vill ha dem. </para +></note> + +</sect3 +> <!-- setup-format-general --> + +<sect3 id="setup-format-indent"> +<title +>Inställning av indenteringsstil</title> + +<para +>Lämplig indentering är det huvudsakliga sättet att öka läsbarhet för källkodstext. Om du väljer fliken <guilabel +>Indentering</guilabel +> i dialogrutan <guilabel +>Formatering av källkod</guilabel +> visas en serie med formateringsval för indentering grupperade i följande tre rutor: </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="SF-indent.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Inställning av indenteringsstil för källkod</phrase +></textobject> + <caption +><para +>Inställning av indenteringsstil för källkod </para +></caption> + </mediaobject> +</screenshot> + +<variablelist> +<varlistentry> +<term +>Förvalda inställningar</term> +<listitem> +<para +>Fördefinierade formateringsval gör att källkodstexten liknar formateringsstilen enligt ANSI:</para> + +<screen +>namespace foospace +{ + int Foo() + { + if (isBar) + { + bar(); + return 1; + } + else + return 0; + } +} +</screen> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-format-indent-filling" +>Definiera indenteringsbredd och tecken</term> +<listitem> +<para +>Alternativknapparna grupperade under <guilabel +>Utfyllnad</guilabel +> anger hur indentering av källkodstexten visas.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Använd flikar</guilabel +></term> + <listitem> + <para +>Det här gör att editorn infogar ett tabulatortecken för varje indenteringsnivÃ¥. Tabulatorbredden är fördefinierad i editorns inställningar (oftast kolumner om 8 eller 4 tecken). Använd <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa editor...</guimenuitem +></menuchoice +> för att definiera om den. </para> + <note +><para +>Proceduren för att definiera verklig tabulatorbredd beror pÃ¥ editorn du valt under inställningssteget <link linkend="setup-editor" +>Välja en editor</link +>. Du mÃ¥ste slÃ¥ upp motsvarande editors hjälp för att ta reda pÃ¥ den. </para +></note> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Använd mellanslag</guilabel +></term> + <listitem +><para +>Om du markerar alternativknappen, lägger editorn till det antalet mellanslag för varje indenteringsnivÃ¥. Ändra värdet frÃ¥n normalvärdet 2 till indenteringsbredden du föredrar. </para +></listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Indentera objekt</term> +<listitem> +<para +>Det här anger vilka (av C/C++) konstruktioner som formateras med en extra indentering frÃ¥n den aktuella indenteringsnivÃ¥n.</para> + +<para +>Normalt används bara extra indentering för <guilabel +>namnrymder</guilabel +> och <guilabel +>etiketter</guilabel +>. Du kanske vill experimentera med olika inställningar för att anpassa extra indenteringar som du vill ha dem.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Fortsättning</term> +<listitem> +<para +>Inställningarna som är grupperade här gäller de fall när källkodsformateringen automatiskt radbryter lÃ¥nga källkodsrader. De tar hänsyn till tvÃ¥ specialfall, nämligen att det ska finnas tillräckligt med utrymme för källkoden för djupa indenteringsnivÃ¥er och att villkor ska fÃ¥ extra indentering för fortsättningsrader sÃ¥ att de utmärks pÃ¥ ett riktigt sätt. </para> + +<note +><para +>Det här gäller bara för fall med <emphasis +>statisk radbrytning</emphasis +> när en fast maximal radlängd används i källkodstexten. Om du ställer in editorn för att bara dynamiskt radbryta lÃ¥nga rader vid visning (som är möjligt i redigeringsdelprogrammet &kate;) visas oftast inte effekten av de här inställningarna. </para +></note> + +<variablelist> + <varlistentry> + <term +><guilabel +>Maximum i sats</guilabel +></term> + <listitem> + <para +>Den här inställningen begränsar maximal möjlig indentering av fortsättningsrader sÃ¥ att det finns tillräckligt med utrymme för att texten ska förbli läsbar. Inga fortsättningsrader indenteras nÃ¥gonsin förbi kolumnantalet som du väljer i det här fältet. </para> + <para +>Standardinställningen är 40 kolumner (en halv standardsida pÃ¥ 80 kolumner). Du kan vilja öka det här värdet för att hantera bredare papper (t.ex. om du använder utskrift av källkod pÃ¥ liggande format). Eller minska värdet pÃ¥ motsvarande sätt för att ta hänsyn till större marginalinställningar för dina utskrifter. </para> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Minimum i villkor</guilabel +></term> + <listitem> + <para +>Villkor eller källkod som till exempel följer en tilldelningsoperator ska ofta fÃ¥ en extra indentering för fortsättningsrader för att göra texten läsbar. Värdet pÃ¥ den extra indenteringen definieras här. </para> + <para +>Standardvärdet är <quote +>TvÃ¥ gÃ¥nger nuvarande</quote +>, vilket betyder att fortsatta villkor fÃ¥r en extra indenteringsnivÃ¥ jämfört med indenteringsstorleken du valt i gruppen <link linkend="setup-format-indent-filling" +>Utfyllnad</link +>. Du kan ändra den extra indenteringen till ett annat fast värde (inklusive noll) med pilarna, eller genom att direkt skriva in värdet. </para> + </listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> +</variablelist> + +</sect3 +> <!-- setup-format-indent --> + +<sect3 id="setup-format-other"> +<title +>Annan inställning av formatering</title> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="SF-other.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Annan inställning av formateringsstil för källkod</phrase +></textobject> + <caption +><para +>Annan inställning av formateringsstil för källkod </para +></caption> + </mediaobject> +</screenshot> + +<variablelist> +<varlistentry> +<term +>Styra positionen av hakparenteser</term> +<listitem> +<para +>Alternativknapparna i (den nÃ¥got felaktigt benämnda) gruppen <guilabel +>Hakparenteser</guilabel +> styr positionen av klamrar som avdelar (C/C++) källkodstext. Det finns tre möjligheter att välja bland.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Bryt</guilabel +></term> + <listitem> + <para +>Det här infogar en radbrytning innan varje inledande klammer. BÃ¥da avdelande klamrar i alla block placeras pÃ¥ samma indenteringsnivÃ¥ som blockets huvudsats.</para> + +<screen +>namespace foospace +{ + int Foo() + { + if (isBar) + { + bar(); + return 1; + } + else + return 0; + } +} +</screen> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Bifoga</guilabel +></term> + <listitem> + <para +>Det här behÃ¥ller inledande klammern i ett block pÃ¥ samma nivÃ¥ som blockets huvudsats. Avslutande klamrar är pÃ¥ samma indenteringsnivÃ¥ som blockets huvudsats. Det avslutande <token +>else</token +> i en <token +>if</token +>-sats hÃ¥lls pÃ¥ samma nivÃ¥ som avslutande klammer i föregÃ¥ende block. </para> +<screen +>namespace foospace { + int Foo() { + if (isBar) { + bar(); + return 1; + } else + return 0; + } +} +</screen> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Linuxstil</guilabel +></term> + <listitem> + <para +>Det här är en kompromiss mellan stilarna som anges ovan. Avgränsande klamrar för funktionsblock placeras pÃ¥ nya rader. Klamrar som inleder ett block i en villkorssats eller snurra behÃ¥lls pÃ¥ samma rad. </para> +<screen +>namespace foospace +{ + int Foo() + { + if (isBar) { + bar(); + return 1; + } else + return 0; + } +} +</screen> + </listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Styra extra mellanslag</term> +<listitem> +<para +>Normalt minimerar &tdevelop; användning av mellanslag i källkodstext. </para> + + +<screen +>if (isBar(fooArg)==barValue) +</screen> + +<para +>Du kan öka läsbarheten om du tvingar källkodsformateringen att infoga extra mellanslag pÃ¥ särskilda platser.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Lägg till mellanslag omkring parenteser</guilabel +></term> + <listitem> + <para +>Vad som i själva verket avses är att lägga till mellanslag omkring text som är inom parenteser. Det ökar läsbarheten för funktionsargument och villkor.</para> +<screen +>if ( isBar( fooArg )==barValue ) +</screen> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Lägg till mellanslag omkring operatorer</guilabel +></term> + <listitem> + <para +>Det här lägger till mellanslag omkring tilldelningar och jämförelseoperatorer för att öka läsbarheten.</para> +<screen +>if (isBar(fooArg) == barValue) +</screen> + </listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Styra formatering av enradskonstruktioner</term> +<listitem> +<para +>Det finns nÃ¥gra fÃ¥ tillfällen dÃ¥ du inte vill att källkodsformateringen ska dela en lÃ¥ng rad. Detta kan styras här för C/C++ kod.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>BehÃ¥ll enradssatser</guilabel +></term> + <listitem +><para +>Det här behÃ¥ller enradssatser tillsammans i vissa situationer även om de överskrider en fast maximal radlängd. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>BehÃ¥ll enradsblock</guilabel +></term> + <listitem +><para +>Det här behÃ¥ller enradsblock tillsammans i vissa situationer även om de överskrider en fast maximal radlängd. </para +></listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> +</variablelist> + + +</sect3 +> <!-- setup-format-other --> + +</sect2 +> <!-- setup-format --> + +<sect2 id="setup-snippets"> +<title +>Anpassa verktyget för kodsnuttar</title> + +<para +>När du redigerar i &tdevelop; kan du lagra delar av kod som ofta används som <link linkend="editing-snippets" +>kodsnuttar</link +>. För att anpassa funktionerna hos delprogrammet för kodsnuttar, välj <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa &tdevelop;...</guimenuitem +></menuchoice +> i menyraden. Dialogrutan <guilabel +>Anpassa KDevelop</guilabel +> dyker upp, där du ska välja <guilabel +>Kodsnuttar</guilabel +> i trädet till vänster. DÃ¥ visas följande dialogruta till höger: </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-snippets.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Anpassa verktyget för kodsnuttar</phrase +></textobject> + <caption +><para +>Anpassa verktyget för kodsnuttar </para +></caption> + </mediaobject> +</screenshot> + +<variablelist> +<varlistentry> +<term +>Aktivera förhandsgranskning av kodsnuttar</term> +<listitem> +<para +>Markera kryssrutan <guilabel +>Visa kodsnuttens text i verktygstips</guilabel +> om du vill visa den lagrade texten i ett verktygstipsfönster sÃ¥ fort du hÃ¥ller musmarkören över den kodsnuttens rubrik.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Arbeta med variabler i kodsnuttar</term> +<listitem> +<para +>Verktyget <guilabel +>Kodsnuttar</guilabel +> tillÃ¥ter varierande text pÃ¥ fördefinierade platser när som helst när du infogar en kodsnutt i en fil. För att Ã¥stadkomma det, tillhandahÃ¥ller <guilabel +>Kodsnuttar</guilabel +> sin egen variabelmekanism. Du kan ställa in dess beteende i gruppen <guilabel +>Variabler</guilabel +>.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Avskiljare</guilabel +></term> + <listitem +><para +>Verktyget <guilabel +>Kodsnuttar</guilabel +> känner igen variabler i texten genom att omge variabelnamnet med särskilda skiljetecken. För att använda ett eget skiljetecken, ändra det fördefinierade tecknet <guilabel +>$</guilabel +> i fältet <guilabel +>Avskiljare</guilabel +>. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Inmatningsmetod för variabler</guilabel +></term> + <listitem +><itemizedlist> + <listitem +><para +><guilabel +>En dialogruta för varje variabel i en kodsnutt</guilabel +> visar i tur och ordning en särskild dialogruta för varje variabel som verktyget hittar när den valda kodsnutten infogas. </para +></listitem> + <listitem +><para +><guilabel +>En dialogruta för alla variabler i en kodsnutt</guilabel +> visar en gemensam dialogruta där användaren mÃ¥ste fylla i värden för alla variabler innan kodsnutten infogas. </para +></listitem> + </itemizedlist +></listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- setup-snippets --> + +<sect2 id="setup-file-list"> +<title +>Fillista</title> + +<para +>(... ännu inte skrivet ...) </para> + +</sect2 +> <!-- setup-file-list--> + +<sect2 id="setup-file-selector"> +<title +>Anpassa filväljaren</title> + +<para +>&tdevelop; tillhandahÃ¥ller insticksprogrammet <guilabel +>Filväljare</guilabel +> som när det laddas vid start, gör det möjligt att navigera till vilken fil eller katalog som helst pÃ¥ systemet. </para> + +<screenshot id="setup-fileselector-image"> + <mediaobject> + <imageobject> + <imagedata fileref="file-selector.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Filväljaren (i IDEA-läge)</phrase +></textobject> + <caption +><para +>Filväljaren (IDEA-läge) </para +></caption> + </mediaobject> +</screenshot> + +<para +>Beteendet hos <guilabel +>Filväljaren</guilabel +> kan anpassas i stor utsträckning. Välj <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa &tdevelop;...</guimenuitem +></menuchoice +> i menyraden. Dialogrutan <guilabel +>Anpassa KDevelop</guilabel +> dyker upp, där du ska välja <guilabel +>Filväljare</guilabel +> i trädet till vänster. DÃ¥ visas följande dialogruta till höger.</para> + + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-file-selector.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Anpassa filväljaren</phrase +></textobject> + <caption +><para +>Anpassa filväljaren </para +></caption> + </mediaobject> +</screenshot> + +<variablelist> +<varlistentry> +<term +>Anpassa verktygsraden</term> +<listitem> +<para +>Det finns en verktygsrad längst upp i <guilabel +>Filväljaren</guilabel +> som kan anpassas som vanligt i gruppen <guilabel +>Verktygsrad</guilabel +>.</para> + +<procedure id="setup-fileselector-add-action"> + <title +>Lägg till en Ã¥tgärd i verktygsraden</title> + <step> + <para +>Markera ett objekt till listan till höger <guilabel +>Aktuella Ã¥tgärder</guilabel +>, som den nya Ã¥tgärden ska infogas efter. </para> + </step> + <step> + <para +>Markera Ã¥tgärden som ska infogas i listan till vänster <guilabel +>Tillgängliga Ã¥tgärder</guilabel +>. </para> + </step> + <step> + <para +>Klicka pÃ¥ (den övre) högerpilen mellan de bÃ¥da listorna. </para> + <para +>Ã…tgärden tas bort frÃ¥n listan <guilabel +>Tillgängliga Ã¥tgärder</guilabel +> och infogas i listan <guilabel +>Aktuella Ã¥tgärder</guilabel +> under den markerade Ã¥tgärden. </para> + </step> +</procedure> + +<procedure> + <title +>Ta bort en Ã¥tgärd frÃ¥n verktygsraden</title> + <step> + <para +>Markera Ã¥tgärden som ska tas bort i listan till höger <guilabel +>Aktuella Ã¥tgärder</guilabel +>. </para> + </step> + <step> + <para +>Klicka pÃ¥ (den nedre) vänsterpilen mellan de bÃ¥da listorna. </para> + <para +>Den markerade Ã¥tgärden tas bort frÃ¥n listan <guilabel +>Aktuella Ã¥tgärder</guilabel +> och läggs tillbaka i listan <guilabel +>Tillgängliga Ã¥tgärder</guilabel +>. </para> + </step> +</procedure> + +<procedure> + <title +>Ordna om Ã¥tgärderna pÃ¥ verktygsraden</title> + <step> + <para +>Markera Ã¥tgärden som ska flyttas i listan till höger <guilabel +>Aktuella Ã¥tgärder</guilabel +>. </para> + </step> + <step> + <para +>Klicka pÃ¥ uppÃ¥t- eller nerÃ¥tpilen till höger om listan. </para> + <para +>Den markerade Ã¥tgärden flyttas upp eller ner i listan <guilabel +>Aktuella Ã¥tgärder</guilabel +>. </para> + </step> +</procedure> +</listitem> +</varlistentry> + +<varlistentry> +<term id="setup-fileselector-autosync" +>Definiera när innehÃ¥llet ska ändras</term> +<listitem> +<para +>Att uppdatera innehÃ¥llet i fönstret <guilabel +>Filväljare</guilabel +> tar tid och resurser, särskilt vid byte till en annan katalog. Därför är <guilabel +>Filväljaren</guilabel +> normalt inställd pÃ¥ sÃ¥ sätt att dess innehÃ¥ll bara ändras pÃ¥ begäran, dvs. när du väljer en annan katalog eller när du uttryckligen vill uppdatera innehÃ¥llet. </para> + +<note +><para +>Klicka pÃ¥ knappen <guilabel +>Uppdatera</guilabel +> i verktygsraden för att uppdatera innehÃ¥llet i <guilabel +>Filväljaren</guilabel +>. Den här verktygsradsknappen är dock inte normalt tillgänglig. Du mÃ¥ste först <link linkend="setup-fileselector-add-action" +>lägga till den där</link +>. </para +></note> + +<para +>Du kan ställa in <guilabel +>Filväljaren</guilabel +> att omedelbart visa vissa ändringar i ditt arbete. Inställningarna i gruppen <guilabel +>Automatisk synkronisering</guilabel +> är ansvariga för detta. </para> + +<variablelist> + <varlistentry> + <term +><guilabel +>När ett dokument aktiveras</guilabel +></term> + <listitem +><para +>Om du markerar den här kryssrutan, uppdateras innehÃ¥llet i <guilabel +>Filväljarens</guilabel +> fönster sÃ¥ fort du gÃ¥r till ett annat dokument som redan är öppnat, t.ex. när du klickar pÃ¥ fliken för motsvarande redigeringsfönster i IDEA-läge. Om det behövs byter <guilabel +>Filväljaren</guilabel +> till katalogen som filen tillhör och uppdaterar skärmen för att visa det verkliga innehÃ¥llet där. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>När ett dokument öppnas</guilabel +></term> + <listitem +><para +>Om du markerar den här kryssrutan, uppdateras innehÃ¥llet i <guilabel +>Filväljarens</guilabel +> fönster sÃ¥ fort ett dokument öppnas, t.ex. via menyn <menuchoice +><guimenu +>Arkiv</guimenu +> <guimenuitem +>Öppna</guimenuitem +></menuchoice +>. Om det behövs byter <guilabel +>Filväljaren</guilabel +> till katalogen som filen tillhör och uppdaterar skärmen för att visa det verkliga innehÃ¥llet där. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>När filväljaren blir synlig</guilabel +></term> + <listitem +><para +>Om du markerar den här kryssrutan uppdateras <guilabel +>Filväljarens</guilabel +> fönster sÃ¥ fort det blir synligt igen. Om det behövs byter det till katalogen som aktuellt dokument tillhör och uppdatera skärmen sÃ¥ att det verkliga innehÃ¥llet där visas. </para +></listitem> + </varlistentry> +</variablelist> + +<para +>Du kan kombinera inställningarna fritt för att skräddarsy verkligt beteende hos <guilabel +>Filväljaren</guilabel +> som du vill. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Styra historiken i kombinationsrutorna</term> +<listitem> +<para +>Det finns tvÃ¥ kombinationsrutor längst upp och längst ner i <guilabel +>Filväljarens</guilabel +> innehÃ¥llsfönster som styr katalogen som visas (den övre kombinationsrutan) och filter som används för visningen (den nedre kombinationsrutan). En historik av de senaste inställningarna finns i urvalsfältet i varje kombinationsruta. Du kan ställa in antalet historikposter enligt följande.</para> + +<variablelist> + <varlistentry> + <term +><guilabel +>Kom ihÃ¥g platser</guilabel +></term> + <listitem +><para +>Skriv in maximalt antal katalogval som den övre kombinationsrutan ska komma ihÃ¥g här. </para +></listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Kom ihÃ¥g filter</guilabel +></term> + <listitem +><para +>Skriv in maximalt antal filterdefinitioner som den nedre kombinationsrutan ska komma ihÃ¥g här. </para +></listitem> + </varlistentry> + +<varlistentry> +<term +>Styra vad som ska kommas ihÃ¥g mellan sessioner</term> +<listitem> +<para +>Normalt är <guilabel +>Filväljaren</guilabel +> inställd sÃ¥ att den visar den senaste sessionen igen när &tdevelop; startas nästa gÃ¥ng. Du kan ändra beteendet i inställningsgruppen <guilabel +> Session</guilabel +>. </para> + +<note +><para +>Om &tdevelop; automatiskt startades om av &kde;:s sessionshantering, sÃ¥ har ändringar av dessa inställningar ingen effekt. I detta fall Ã¥terställs alltid plats- och filterinställningar frÃ¥n den senaste &kde;-sessionen. </para +></note> +</listitem> +</varlistentry> + + <varlistentry> + <term +><guilabel +>Ã…terställ plats</guilabel +></term> + <listitem> + <para +>Ta bort kryssmarkeringen här om du inte vill att platser som visas ska kommas ihÃ¥g mellan sessioner. </para> + <note +><para +>Om du markerad en av inställningarna för <link linkend="setup-fileselector-autosync" +>automatisk uppdatering</link +> kan platserna som visas automatiskt ändras oberoende av vad som har kommits ihÃ¥g frÃ¥n den tidigare sessionen. </para +></note> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Ã…terställ senaste filter</guilabel +></term> + <listitem> + <para +>Ta bort kryssmarkeringen här om du inte vill att filter som används för visningen ska kommas ihÃ¥g mellan sessioner. </para> + </listitem> + </varlistentry> +</variablelist> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- setup-file-selector --> + +<sect2 id="setup-cpp-generator"> +<title +>Skapa ny klass i C++</title> + +<para +>(... ännu inte skrivet ...) </para> + +</sect2 +> <!-- setup-c++-generator--> + +<sect2 id="setup-formatting"> +<title +>Formatering</title> + +<para +>(... ännu inte skrivet ...) </para> + +</sect2 +> <!-- setup-formatting--> + +<sect2 id="setup-cpp-parsing"> +<title +>Tolkning av C++</title> + +<para +>(... ännu inte skrivet ...) </para> + +</sect2 +> <!-- setup-c++-parsing--> + +</sect1 +> <!-- setup-general --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="setup-docu"> +<title +>Anpassa dokumentationen</title> + +<para +>&tdevelop; innehÃ¥ller en mycket kraftfull dokumentationsfunktion som tillhandahÃ¥ller möjlighet att komma Ã¥t flera olika sorters omfattande dokumentation. I IDEA-läge hittar du till exempel fliken <guilabel +>Dokumentation</guilabel +> vid arbetsomrÃ¥dets högerkant. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="documents-contents.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Dokumentationsträdet i &tdevelop; (i IDEA-läge)</phrase +></textobject> + <caption +><para +>Dokumentationsträdet i &tdevelop; (IDEA-läge) </para +></caption> + </mediaobject> +</screenshot> + +<note +><para +>&tdevelop; mÃ¥ste ha laddat insticksprogrammet <guilabel +>Dokumentation</guilabel +> för att kunna visa dokumentationsträdet. Se avsnittet <link linkend="setup-plugins" +>Insticksverktyg</link +> för mer information. </para +></note> + +<para +>Du kan ställa in innehÃ¥llet i dokumentationsträdet om du väljer <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa &tdevelop;...</guimenuitem +></menuchoice +> i menyraden. Dialogrutan <guilabel +>Anpassa KDevelop</guilabel +> dyker upp, där du ska välja <guilabel +>Dokumentation</guilabel +> i fönstret till vänster. </para> + +<para +><link linkend="configure-docu-general" +>Inställningssidan</link +> som visas pÃ¥ sÃ¥ sätt, har tre inställningsdialogsidor med flikar, närmare bestämt: </para> + +<simplelist> + <member +><link linkend="setup-docu-general" +>Dokumentationssamlingar</link +></member> + <member +><link linkend="setup-docu-textsearch" +>Fulltextsökning</link +></member> + <member +><link linkend="setup-docu-other" +>Annat</link +></member> +</simplelist> + +<sect2 id="setup-docu-general"> +<title +>Ställa in dokumentationssamlingar</title> + +<para +>Anpassningen av dokumentationsinställningarna har delats upp i en serie dokumentationssamlingar, där var och en ger Ã¥tkomst till dokumentationsfiler av nÃ¥got unikt format och nÃ¥gon typ av innehÃ¥ll. Inställningarna styr vilka dokumentationsposter som listas pÃ¥ sidan <guilabel +>InnehÃ¥ll</guilabel +> under funktionen <guilabel +>Dokumentation</guilabel +> i &tdevelop;, och hur användaren kan komma Ã¥t detaljer i dokumentationen med indexerade sökningar och fulltextsökningar. </para> +<para +>Fliken <guilabel +>Dokumentation</guilabel +> tillhandahÃ¥ller en serie inställningssidor som är ordnade vertikalt som en hög med indexkort. En sida i taget visas efter ett klick pÃ¥ titeln för dess indexkort: </para> +<simplelist> + <member +><link linkend="setup-docu-general-qt" +>&Qt;-dokumentationssamling</link +></member> + <member +><link linkend="setup-docu-general-chm" +>CHM-dokumentationssamling</link +></member> + <member +><link linkend="setup-docu-general-dox" +>Doxygen-dokumentationssamling</link +></member> + <member +><link linkend="setup-docu-general-toc" +>&tdevelop; innehÃ¥llsförteckning-dokumentationssamling</link +></member> + <member +><link linkend="setup-docu-general-devhelp" +>DevHelp-dokumentationssamling</link +></member> + <member +><link linkend="setup-docu-general-custom" +>Egen dokumentationssamling</link +></member> +</simplelist> + +<para id="configure-docu-general"> +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-general.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Ställa in dokumentationssamlingar</phrase +></textobject> + <caption +><para +>Ställa in dokumentationssamlingar </para +></caption> + </mediaobject> +</screenshot> +</para> + +<sect3 id="setup-docu-general-common"> +<title +>Vanlig struktur för dokumentationsinställning</title> + +<para +>Alla inställningssidor under fliken <guilabel +>Dokumentation</guilabel +> använder en gemensam layout. Du hittar dokumentationsposter som för närvarande är tillgängliga, av typen som listas pÃ¥ den öppna sidan, till vänster och en uppsättning knappar till höger. </para> + +<variablelist> +<varlistentry> +<term id="setup-docu-buttons" +>Knappar för att underhÃ¥lla innehÃ¥ll i dokumentationlistan</term> +<listitem> +<para +>Det finns tre knappar tillgängliga för att underhÃ¥lla innehÃ¥llet pÃ¥ inställningssidorna för dokumentation: </para> + +<variablelist> + <varlistentry> + <term +><guibutton +>Lägg till</guibutton +></term> + <listitem> + <para +>Visar dialogrutan <guilabel +>Egenskaper för dokumentationskatalog</guilabel +> som visas nedan, där du kan välja källan för dokumentationsposten som ska läggas till och namnge den.</para> + </listitem> + </varlistentry> + <varlistentry> + <term +><guibutton +>Redigera</guibutton +></term> + <listitem> + <para +>Visar dialogrutan <guilabel +>Egenskaper för dokumentationskatalog</guilabel +> som visas nedan, där du kan ändra källan för dokumentationsposten tidigare markerad i listan och byta namn pÃ¥ den.</para> + </listitem> + </varlistentry> + <varlistentry> + <term +><guibutton +>Ta bort</guibutton +></term> + <listitem> + <para +>Tar bort markerad dokumentationspost frÃ¥n listan.</para> + <note +><para +>Posten tas bara bort frÃ¥n listan. De verkliga källorna till dokumentationen förblir orörda. Du mÃ¥ste ta bort dem explicit pÃ¥ annat sätt. </para +></note> + </listitem> + </varlistentry> +</variablelist> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-edit.png" format="PNG"/> + </imageobject> + <caption +><para +>Lägga till eller ändra en dokumentationspost </para +></caption> + </mediaobject> +</screenshot> + +<para +>Knappen till höger om fältet <guilabel +>Plats</guilabel +> visar en katalogdialogruta vars poster oftast är filtrerade enligt den valda inställningssidans filtyp. </para> +<para +>Fältet <guilabel +>Titel</guilabel +> kanske inte gÃ¥r att komma Ã¥t, beroende pÃ¥ dokumentationstypen som underhÃ¥lls. </para> +</listitem> +</varlistentry> +<varlistentry> +<term id="setup-docu-columns" +>Dokumentationslistans struktur</term> +<listitem> +<para +>Varje inställningssida för dokumentation visar listade dokumentationsposter i en tabell med fyra kolumner: </para> + +<variablelist> + <varlistentry> + <term +><guilabel +>InnehÃ¥llsförteckning</guilabel +></term> + <listitem> + <para +>Om kryssrutan är markerad, visas dokumentationsposten pÃ¥ sidan <guilabel +>InnehÃ¥ll</guilabel +> under funktionen <guilabel +>Dokumentation</guilabel +> i &tdevelop;. </para> + <note +><para +>Genom att avmarkera kryssrutan <guilabel +>InnehÃ¥llsförteckning</guilabel +> inaktiverar i sin tur kryssrutorna <guilabel +>Index</guilabel +> och <guilabel +>Sök</guilabel +> (se nedan). AlltsÃ¥ kan du inte ha poster i dokumentationssamlingen indexerade utan att visa deras innehÃ¥ll. </para +></note> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Index</guilabel +></term> + <listitem> + <para +>Om kryssrutan är markerad byggs ett internt index för dokumentationsposten. Det ger snabb Ã¥tkomst till dokumentationen genom att använda sidan <guilabel +>Index</guilabel +> och (valfritt) <guilabel +>Sökning</guilabel +> under funktionen <guilabel +>Dokumentation</guilabel +> i &tdevelop;. </para> + <note> + <para +>Det interna indexet byggs första gÃ¥ngen användaren väljer sidan <guilabel +>Index</guilabel +>. Det fördröjer den första Ã¥tkomsten väsentligt, eftersom indexet läses frÃ¥n disk och lagras i en cache. </para> + <para +>Alla efterföljande indexsökningar använder dock cachen och är därför väsentligt snabbare. </para> + </note> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Sök</guilabel +></term> + <listitem> + <para +>Om kryssrutan är markerad, inkluderas innehÃ¥llet i dokumentationsposten i den sökvägen för fulltextsökning pÃ¥ sidan <guilabel +>Sök</guilabel +> under funktionen <guilabel +>Dokumentation</guilabel +> i &tdevelop;. </para> + <note> + <para +>&tdevelop; utnyttjar programsamlingen htdig för att utföra fulltextsökningar. Sökningen görs i ett internt index, som htdig-maskineriet mÃ¥ste bygga innan den kan användas. </para> + <para +>Alla ändringar av kryssrutorna under <guilabel +>Sök</guilabel +> pÃ¥verkar alltsÃ¥ bara sökningar efter att du har byggt om indexet pÃ¥ sidan <guilabel +>Sök</guilabel +> under funktionen <guilabel +>Dokumentation</guilabel +> i &tdevelop;. </para> + </note> + </listitem> + </varlistentry> + <varlistentry> + <term +><guilabel +>Titel</guilabel +></term> + <listitem +><para +>Det här är namnet pÃ¥ dokumentationsposten som den visas pÃ¥ sidan <guilabel +>InnehÃ¥ll</guilabel +> under funktionen <guilabel +>Dokumentation</guilabel +> i &tdevelop;. </para +></listitem> + </varlistentry> +</variablelist> + +<note +><para +>Tidigare versioner av &tdevelop; tillät att dokumentationsposterna visades baserat pÃ¥ varje projekt. Det är inte längre tillgängligt. </para +></note> +</listitem> +</varlistentry> +</variablelist> + +</sect3 +> <!-- setup-docu-general-common --> + +<sect3 id="setup-docu-general-qt"> +<title +>&Qt;-dokumentationssamlingar</title> + +<para +>PÃ¥ den här inställningssidan anpassas all &Qt;-dokumentation. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-general.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Ställa in &Qt;-dokumentationssamlingen</phrase +></textobject> + <caption +><para +>Ställa in &Qt;-dokumentationssamlingen </para +></caption> + </mediaobject> +</screenshot> + +<para +>Normalt fyller &tdevelop; i detta vid första start. Det tittar efter vanliga <filename +>*.xml</filename +>, eller <filename +>*.dcf</filename +> dokumentationsfiler i &Qt;-installationskatalogen. Tabellen till vänster listar filerna som &tdevelop; hittade med deras vanliga titlar. </para> + +<para +>Om du har en installation som inte följer standard, finns det antingen ingen information listad alls, eller kanske adresserna pekar pÃ¥ felaktiga platser (t.ex. pÃ¥ en annan installation av &Qt; som är tillgänglig pÃ¥ systemet). Du kan justera posterna med <link linkend="setup-docu-buttons" +>knapparna</link +> till höger om listfältet. </para> + +<note +><para +>&tdevelop; använder titlar som redan tillhandahÃ¥lls av den installerade &Qt;-dokumentationen. Därför är inte fältet <guilabel +>Titel</guilabel +> i dialogrutan <guilabel +>Egenskaper för dokumentationskatalog</guilabel +> Ã¥tkomligt. </para +></note> + +<para +>Normalt visas inte all &Qt;-dokumentation pÃ¥ sidan <guilabel +>InnehÃ¥ll</guilabel +> under funktionen <guilabel +>Dokumentation</guilabel +> i &tdevelop;. Använd kryssrutan <guilabel +>InnehÃ¥llsförteckning</guilabel +> i <link linkend="setup-docu-columns" +>inställningstabellen</link +> för att välja vilken dokumentation som ska visas. </para> + +<para +>Om du vill att viss specifik &Qt;-dokumentation ska inkluderas i sökindex eller fulltextsökning, använd kryssrutorna <guilabel +>Index</guilabel +> och <guilabel +>Sök</guilabel +> i <link linkend="setup-docu-columns" +>inställningstabellerna</link +>. </para> + +</sect3 +> <!-- setup-docu-general-qt --> + +<sect3 id="setup-docu-general-chm"> +<title +>Ställa in CHM-dokumentationssamlingen</title> + +<para +>PÃ¥ den här inställningssidan kan du samla dokumentation enligt &Microsoft; CHM-hjälpfilstandard. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-chm.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Ställa in &Microsoft; CHM-standarddokumentationsfiler</phrase +></textobject> + <caption +><para +>Ställa in &Microsoft; CHM-standarddokumentationsfiler </para +></caption> + </mediaobject> +</screenshot> + +<para +>Normalt är inställningssidan tom (som visas ovan). Du kan lägga till nya poster med <link linkend="setup-docu-buttons" +>knapparna</link +> till höger om listan. &tdevelop; filtrerar <filename +>*.chm</filename +>-filer i katalogdialogrutan som hör ihop med knapparna <guibutton +>Lägg till</guibutton +> och <guibutton +>Redigera</guibutton +>. </para> + +<para +>För mer information om formatet för &Microsoft; <filename +>*.chm</filename +>-filer, se t.ex. "PHP: Documentation - Extended CHM Format" pÃ¥ <ulink url="http://de2.php.net/docs-echm.php" +>http://de2.php.net/docs-echm.php</ulink +>. </para> + +</sect3 +> <!-- setup-docu-general-chm --> + +<sect3 id="setup-docu-general-dox"> +<title +>Dokumentation skapad av Doxygen</title> + +<para +>PÃ¥ den här inställningssidan anpassas all dokumentation av programmeringsgränssnitt som skapats av &doxygen;. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-dox.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Ställa in dokumentationen av programmeringsgränssnitt skapat av Doxygen</phrase +></textobject> + <caption +><para +>Ställa in dokumentationen av programmeringsgränssnitt skapat av Doxygen </para +></caption> + </mediaobject> +</screenshot> + +<para +>I kortet dokumenterar ett sÃ¥dant programmeringsgränssnitt gränssnittet för vissa biblioteksfunktioner. Dokumentationen av programmeringsgränssnittet pÃ¥ den här sidan ska skapas av det externa verktyget <ulink url="http://www.stack.nl/~dimitri/doxygen/" +>&doxygen;</ulink +>. </para> +<para +>Dokumentation av programmeringsgränssnitt skapad av &doxygen; bestÃ¥r av en serie <filename +>html</filename +>-filer, som börjar med <filename +>index.html</filename +>. Dessutom kan det finnas <filename +>tag</filename +>-filer, som innehÃ¥ller information med länkar till befintlig dokumentation av programmeringsgränssnitt. AlltsÃ¥ tittar &tdevelop; efter <filename +>index.html</filename +> och <filename +>*.tag</filename +>-filer vid sökning efter dokumentation av programmeringsgränssnitt skapad av &doxygen;. </para> +<para +>Vissa begränsningar i strukturen antas vid sökning efter dokumentation av programmeringsgränssnitt skapad av &doxygen;. Katalogen där filen <filename +>index.html</filename +> finns ska innehÃ¥lla underkataloger med separata dokumentationssamlingar. Var och en av underkatalogerna antas innehÃ¥lla en <filename +>.tag</filename +>-fil och en underkatalog vid namn <filename class="directory" +>html/</filename +>. </para> +<para +>Du kan ta en titt pÃ¥ <filename class="directory" +>$<envar +>KDEDIR</envar +>/share/doc/HTML/en/tdelibs-apidocs</filename +> där det finns ett exempel pÃ¥ en sÃ¥dan layout för dokumentation av programmeringsgränssnitt med &doxygen;. </para> + +<note +><para +>&kde;:s äldre dokumentation av programmeringsgränssnitt skapat med <ulink url="http://sirtaj.net/projects/kdoc/" +>KDoc</ulink +> stöds inte direkt längre. Om du fortfarande vill använda sÃ¥dan dokumentation, kan du lägga till den pÃ¥ sidan <link linkend="setup-docu-general-custom" +>Egen dokumentationssamling</link +>. </para +></note> + +<para +>&tdevelop; har fyllt i en länk till aktuellt programmeringsgränssnitt för &kde;-biblioteket, under förutsättning att nÃ¥gon hittades. Det finns flera sätt för &tdevelop; att fÃ¥ reda pÃ¥ den: </para> + +<itemizedlist> + <listitem +><para +>Antingen angav du väljaren <option +>--with-tdelibsdoxy-dir</option +> till kommandot <command +>configure</command +> när du kompilerade &tdevelop; (se kapitlet <link linkend="make-api" +>Hur man skaffar dokumentation av programmeringsgränssnittet för &tdevelop;</link +>). </para +></listitem> + <listitem +><para +>Eller hittade kommandot <command +>configure</command +> automatiskt ett programmeringsgränssnitt för &kde;-biblioteken som skapats med &doxygen; pÃ¥ en av flera standardplatser som det känner till. </para +></listitem> + <listitem +><para +>Eller som en sista utväg hittades <filename class="directory" +>$<envar +>KDEDIR</envar +>/share/doc/HTML/en/tdelibs-apidocs/</filename +> när &tdevelop; först startade. </para +></listitem> +</itemizedlist> + +<para +>Om &tdevelop; inte hittade ett giltigt programmeringsgränssnitt för &kde;-biblioteken som skapats med &doxygen; vid första start, är listan <guilabel +>Dokumentation skapad av Doxygen</guilabel +> tom. </para> + +<para +>Du kan lägga till dina egna poster med dokumentation av programmeringsgränssnitt (t.ex. frÃ¥n dina nuvarande projekt) genom att använda <link linkend="setup-docu-buttons" +>knapparna</link +> till höger. Om du vill att de ska inkluderas i indexerad sökning och/eller fulltextsökning, markera kryssrutorna <guilabel +>Index</guilabel +> eller <guilabel +>Sök</guilabel +> i <link linkend="setup-docu-columns" +>inställningstabellen</link +>. </para> + +<note +><para +>&tdevelop; använder titelinformationen frÃ¥n <filename +>index.html</filename +>. Därför är inte fältet <guilabel +>Titel</guilabel +> i dialogrutan <guilabel +>Egenskaper för dokumentationskatalog</guilabel +> Ã¥tkomligt. </para +></note> + +<tip> + <para +>&kde;-systemet tillhandahÃ¥ller mer dokumentation av programmeringsgränssnittet än bara &kde;-bibliotekens programmeringsgränssnitt. Du behöver ytterligare information om gränssnitt om du t.ex. vill inkludera &kate;-delprogrammet i dina program. För &kate;-delprogrammet ska du till exempel kompilera och installera &kde;:s programmeringsgränssnitt för basbiblioteken frÃ¥n <ulink url="http://developer.kde.org/source/index.html" +>källkoden</ulink +> (genom att använda kommandona <command +>make apidox</command +> och <command +>make install</command +> för källkoden i <filename class="directory" +>tdebase</filename +>) och därefter lägga till en post i listan <guilabel +>Dokumentation skapad av Doxygen</guilabel +> pÃ¥ detta sätt: </para> + <screenshot +><mediaobject> + <imageobject> + <imagedata fileref="configure-adddialog-baselibs.png" format="PNG"/> + </imageobject> +<textobject +><phrase +>Lägga till ett basprogrammeringsgränssnitt för &kde; i listan</phrase +></textobject> + <caption +><para +>Lägga till ett basprogrammeringsgränssnitt för &kde; i listan </para +></caption> + </mediaobject +></screenshot> + <para +>(Du ska förstÃ¥s ersätta exempelkatalogen <filename class="directory" +>/opt/kde-cvs/</filename +> i fältet <guilabel +>Plats</guilabel +> med sökvägen till din &kde;-installation.) </para> +</tip> + +<note +><para +>Du mÃ¥ste ocksÃ¥ lägga till programmeringsgränssnittet för ditt nuvarande projekt i <guilabel +>Doxygen-dokumentationssamling</guilabel +>. Tidigare versioner av &tdevelop; lade till det i dokumentationsträdet baserat pÃ¥ varje projekt. Det är inte längre tillgängligt. </para +></note> + +</sect3 +> <!-- setup-docu-general-dox --> + +<sect3 id="setup-docu-general-toc"> +<title +>Hantera strukturerad dokumentation (KDevelop innehÃ¥llsförteckningsfiler)</title> + +<para +>Huvuddelen av &tdevelop;s dokumentationsfunktion tillhandahÃ¥ller omedelbar Ã¥tkomst av strukturerad dokumentation, bÃ¥de lokal och fjärrdokument. Du kan ställa in det pÃ¥ sidan <guilabel +>KDevelop-innehÃ¥llsdokumentation</guilabel +>. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-toc.png" format="PNG"/> + </imageobject> + <caption +><para +>TillhandahÃ¥lla dokumentationsÃ¥tkomst strukturerad med KDevelop innehÃ¥llsförteckning </para +></caption> + </mediaobject> +</screenshot> + +<para +>&tdevelop; levereras med en samling fördefinierade KDevelop innehÃ¥llsförteckningsfiler som automatiskt läggs till i tabellen vid installation. För att hÃ¥lla visningen hanterbar, är bara de oftast använda markerade för att visas. Om du vill se annan dokumentation, markera kryssrutan <guilabel +>InnehÃ¥llsförteckning</guilabel +> i <link linkend="setup-docu-columns" +>inställningstabellen</link +>. </para> + +<para +>KDevelop innehÃ¥llsförteckningsfiler kan inte indexeras för att utföra fulltextsökning eftersom de oftast pekar pÃ¥ fjärrplatser. Ã… andra sidan, kan en sÃ¥dan <filename +>.toc</filename +>-fil ha ett manuellt definierat index, med taggen <computeroutput +><index></computeroutput +>. AlltsÃ¥ aktiveras kryssrutan <guilabel +>index</guilabel +> bara när &tdevelop; hittar taggen <computeroutput +><index></computeroutput +> i <filename +>.toc</filename +>-filen. (För mer information, se beskrivningen nedan i avsnittet om <link linkend="setup-docu-general-toc-files" +>&tdevelop; innehÃ¥llsförteckningsfiler</link +>.) </para> +<para +>Kryssrutan <guilabel +>Sök</guilabel +> i <link linkend="setup-docu-columns" +>inställningstabellen</link +> är alltid inaktiv. </para> + +<para +>Du kan lägga till nya poster med <link linkend="setup-docu-buttons" +>knapparna</link +> till höger om listan. &tdevelop; filtrerar <filename +>*.toc</filename +>-filer i katalogdialogrutan som hör ihop med knapparna <guibutton +>Lägg till</guibutton +> och <guibutton +>Redigera</guibutton +>. </para> + +<note +><para +>I motsats till tidigare versioner av &tdevelop;, sÃ¥ ändrar inte knappen <guibutton +>Ta bort</guibutton +> <filename +>*.toc</filename +>-filerna pÃ¥ disk, sÃ¥ borttagningsÃ¥tgärden är nu säker. </para +></note> + +</sect3 +> <!-- setup-docu-general-toc --> + +<sect3 id="setup-docu-general-toc-files"> +<title +>&tdevelop; innehÃ¥llsförteckningsfiler</title> + +<para +>Det finns en särskild funktion som hör ihop med detta. Som illustration, utför följande steg: Hitta en post strax under dokumentationen för &Qt; och &kde; (t.ex. <quote +>KDE2 Development Book (kde.org)</quote +>). Klicka pÃ¥ plustecknet intill den. Ett träd visas, där du snabbt kan navigera till efterföljande kapitel som finns pÃ¥ en hierarkisk nivÃ¥ flera nivÃ¥er djupare, allt utan att vara uppkopplad. Men om du till sist väljer ett av kapitlen, försöker &tdevelop; i mÃ¥nga fall komma Ã¥t en <emphasis +>fjärrfil</emphasis +> med dokumentation. </para> + +<para +>Den logiska grunden för detta är inte bara att lokalt kunna navigera i fjärrdokumentation utan att slösa med nätverksresurser, utan ocksÃ¥ att ge utvecklare en enkel strukturerad Ã¥tkomst till dokumentation som behövs. Med verktygen som tillhandahÃ¥lls här kan man komma Ã¥t nästan vilken lokal eller fjärrdokumentation som helst pÃ¥ ett strukturerat sätt, även om originalet är utan struktur eller strukturerat pÃ¥ ett annat sätt. Allt som behövs är Ã¥tkomst till filer och/eller delar av filer som kan visas av Konqueror. </para> + +<para +>SÃ¥dan strukturerad Ã¥tkomst blir möjlig genom användning av särskilda filer med <quote +>innehÃ¥llsförteckning</quote +>, som anges med filändelsen <filename +>.toc</filename +>. Alla sÃ¥dana &tdevelop;-innehÃ¥llsförteckningsfiler innehÃ¥ller en strukturerad &XML;-beskrivning av dokumentet som ska kommas Ã¥t. </para> + +<variablelist> +<varlistentry> +<term +>Standardkatalog för &tdevelop; innehÃ¥llsförteckningsfiler</term> +<listitem> +<para +>När &tdevelop; installerades har en serie med fördefinierade <filename +>.toc</filename +>-filer oftast placerats i katalogen <filename class="directory" +>$KDEDIR/share/apps/kdevdocumentation/tocs</filename +>. De är ganska enkla, strukturerade textfiler. Du kan titta pÃ¥ dem med en texteditor eller ett annat verktyg för att visa text. </para> +</listitem> +</varlistentry +></variablelist> + +<!-- FIXME: Lauri Watts (2005-05-03) This could be marked up a whole lot --> +<!-- more clearly with the sgmltags stuff. Making a note to do that once --> +<!-- this first revision is done. --> + +<variablelist id="toc-file-structure"> + <title +>Grundstruktur för &tdevelop; innehÃ¥llsförteckningsfiler</title> + <varlistentry> + <term +>huvud</term> + <listitem> + <simplelist> + <member> + <computeroutput +><!DOCTYPE tdeveloptoc></computeroutput> + </member> + <member> + <computeroutput +><tdeveloptoc></computeroutput> + </member> + <member> + <emphasis +>(titel)</emphasis> + </member> + <member> + <emphasis +>(basadress)</emphasis> + </member> + <member> + <emphasis +>(innehÃ¥llsstruktur)</emphasis> + </member> + <member> + <emphasis +>(indexstruktur)</emphasis> + </member> + <member> + <computeroutput +></tdeveloptoc></computeroutput> + </member> + </simplelist> + <para +>&XML;-strukturen tolkas av &tdevelop;s insticksprogram <guilabel +>Dokumentation</guilabel +> för att skapa dokumentationsträdets innehÃ¥ll och hjälpa användaren att navigera i dokumentationen. Den innehÃ¥ller all information som behövs för att visa titlar och komma Ã¥t dokumentationsfilernas innehÃ¥ll. </para> + </listitem> + </varlistentry> + <varlistentry> + <term +>titel</term> + <listitem> + <simplelist> + <member +><computeroutput +><title></computeroutput +> <emphasis +>(nÃ¥gon titelsträng)</emphasis +> <computeroutput +></title></computeroutput +> </member> + </simplelist> + <para +>Det här är titeln som &tdevelop; visar pÃ¥ grundnivÃ¥n i dokumentationsträdet. </para> + <note +><para +>Titeln som visas kan inte ändras av användaren. Om du vill att en annan text ska visas, mÃ¥ste du ändra posten <computeroutput +><title></computeroutput +> för hand i <filename +>.toc</filename +>-filen. </para +></note> + </listitem> + </varlistentry> + <varlistentry> + <term +>basadress</term> + <listitem> + <simplelist> + <member +><computeroutput +><base href="</computeroutput +> <emphasis +>(basdokumentets webbadress)</emphasis +> <computeroutput +>"/></computeroutput +> </member> + </simplelist> + <para +>Webbadressen pekar pÃ¥ platsen där alla dokumentationens filer finns. Den läggs till i början av varje avsnittswebbadress i följande innehÃ¥llsstrukturlista. Om du t.ex. laddar ner dokumentation frÃ¥n en fjärrserver, är allt du behöver göra för att visa filerna pÃ¥ den nya platsen att ändra webbadressen <computeroutput +><base></computeroutput +>. </para> + </listitem> + </varlistentry> + <varlistentry> + <term +>innehÃ¥llsstruktur</term> + <listitem> + <simplelist> + <member +><computeroutput +><tocsect1 name="</computeroutput +> <emphasis +>(avsnittstitel)</emphasis +> <computeroutput +>" url="</computeroutput +> <emphasis +>(avsnittswebbadress)</emphasis +> <computeroutput +>"></computeroutput +> </member> + <member +>...</member> + <member +><computeroutput +><tocsectn name="</computeroutput +> <emphasis +>(avsnittstitel)</emphasis +> <computeroutput +>" url="</computeroutput +> <emphasis +>(avsnittswebbadress)</emphasis +> <computeroutput +>"/></computeroutput +> </member> + <member +>...</member> + <member> + <computeroutput +></tocsect1></computeroutput> + </member> + </simplelist> + <para +>All Ã¥terstÃ¥ende navigerings- och Ã¥tkomstinformation lagras i en serie hierarkiska <computeroutput +><tocsecti></computeroutput +> ... <computeroutput +></tocsecti></computeroutput +> par. Varje <emphasis +>i</emphasis +> anger följande hierarkiska nivÃ¥ ner till talet <emphasis +>n</emphasis +> som motsvarar dokumentationsavsnittet som visas sist. </para> + <para +>Alla poster <computeroutput +><tocsecti></computeroutput +> mÃ¥ste ha motsvarande egenskap <computeroutput +>name="xxx"</computeroutput +> ("xxx" representerar den verkliga titelsträngen). Den visas som nivÃ¥ns titel i dokumentationsträdet. Den ska motsvara ett verkligt avsnitt av dokumentationen. </para> + <para +>Det kan finnas en egenskap <computeroutput +>url=""</computeroutput +> som hör ihop med vilken hierarkisk nivÃ¥ <emphasis +>i</emphasis +> som helst. När användaren klickar pÃ¥ en avsnittstitel i dokumentationsträdet försöker &tdevelop; komma Ã¥t filen pÃ¥ platsen som pekas pÃ¥ den kombinerade bas- och avsnittswebbadressen. </para> + <para +>Posten <computeroutput +><tocsectn/></computeroutput +> mÃ¥ste hur som helst ha egenskapen <computeroutput +>url=""</computeroutput +>. Detta sista hierarkiska <computeroutput +><tocsectn/></computeroutput +> ingÃ¥r inte i ett par, utan avslutas omedelbart av <computeroutput +>/</computeroutput +> innan tecknet <computeroutput +>></computeroutput +>. </para> + <note +><para +>Vilken adress som helst som kombinerar bas- och avsnittswebbadress mÃ¥ste peka pÃ¥ en textfil som gÃ¥r att visa. Oftast är det en HTML strukturerad fil. Det är möjligt att länka till ankarmärken inne i en sÃ¥dan HTML-fil genom att använda den vanliga #-beteckningen med formatet <filename +>/baswebbadress/sektionswebbadress#ankarmärke</filename +>. </para +></note> + </listitem> + </varlistentry> + <varlistentry> + <term +>indexstruktur</term> + <listitem> + <simplelist> + <member> + <computeroutput +><index></computeroutput> + </member> + <member +><computeroutput +><entry name="</computeroutput +> <emphasis +>(indexposttitel)</emphasis +> <computeroutput +>" url="</computeroutput +> <emphasis +>(webbadress till indexavsnitt)</emphasis +> <computeroutput +>"/></computeroutput +> </member> + <member> + <computeroutput +></index></computeroutput> + </member> + </simplelist> + <para +>Index är en enkel lista med indexposter, par med titel och webbadress. Ett index krävs inte. </para> + </listitem> + </varlistentry> +</variablelist> +<!-- FIXME: End --> + +</sect3 +> <!-- setup-docu-general-toc-files --> + +<sect3 id="setup-docu-general-devhelp"> +<title +>DevHelp-dokumentation</title> + +<para +>DevHelp-dokumentation är ett annat sätt att komma Ã¥t strukturerad dokumentation. Den använder en strukturerad innehÃ¥llsförteckning som anges av filändelsen <filename +>.devhelp</filename +> pÃ¥ liknande sätt som <link linkend="setup-docu-general-toc-files" +>&tdevelop;-innehÃ¥llsfiler</link +> för att komma Ã¥t dokumentation för GNOME 2- skrivbordet. </para> +<para +>Du kan styra vilka DevHelp-filer som ska vara tillgängliga pÃ¥ inställningssidan <guilabel +>DevHelp-dokumentationssamling</guilabel +>. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-devhelp.png" format="PNG"/> + </imageobject> + <caption +><para +>TillhandahÃ¥lla DevHelp-dokumentation </para +></caption> + </mediaobject> +</screenshot> + +<para +>DevHelp-filer kunde ursprungligen kommas Ã¥t pÃ¥ webbplatsen <ulink url="http://lidn.sourceforge.net/" +>LIDN</ulink +>, men det verkar som om den inte underhÃ¥lls sedan en tid tillbaka. Senare DevHelp-dokumentation är tillgänglig pÃ¥ webbsidan <ulink url="http://htmlhelp.berlios.de/books/devhelp.php" +>DevHelp Books Download</ulink +>. </para> + +<para +>När &tdevelop; installeras, försöker det hitta alla <filename +>.devhelp</filename +>-filer pÃ¥ vissa standardplatser i systemet, t.ex. underkatalogerna i <filename class="directory" +>/opt/gnome/share/</filename +>. FrÃ¥n början markeras inte filerna för visning. Om du vill se annan dokumentation, markera kryssrutan <guilabel +>InnehÃ¥llsförteckning</guilabel +> i <link linkend="setup-docu-columns" +>inställningstabellen</link +>. </para> + +<para +>Du kan lägga till nya poster med <link linkend="setup-docu-buttons" +>knapparna</link +> till höger om listan. &tdevelop; filtrerar <filename +>*.toc</filename +>-filer i katalogdialogrutan som hör ihop med knapparna <guibutton +>Lägg till</guibutton +> och <guibutton +>Redigera</guibutton +>. </para> + +</sect3 +> <!-- setup-docu-general-devhelp --> + +<sect3 id="setup-docu-general-custom"> +<title +>Ställa in egna dokumentationssamlingar</title> + +<para +>Det här är till för dina egna syften. Du kan lägga till nästan vilka dokumentationsfiler som helst här, under förutsättning att de kan visas av insticksprogram i &konqueror;. </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-docu-custom.png" format="PNG"/> + </imageobject> + <caption +><para +>TillhandahÃ¥lla egen dokumentation </para +></caption> + </mediaobject> +</screenshot> + +<para +>Oftast är den här samlingen tom när &tdevelop; först startas. Vi har avsiktligt fyllt i den med ett objekt för att visa poststrukturen. </para> +<para +>Här är hanteringen är rättfram. Använd <link linkend="setup-docu-buttons" +>knapparna</link +> till höger om listan för att lägga till, redigera eller ta bort dokumentationsposter. &tdevelop; filtrerar inte nÃ¥gonting i katalogdialogrutan som hör ihop med knapparna <guibutton +>Lägg till</guibutton +> och <guibutton +>Redigera</guibutton +>. </para> + +<para +>Du mÃ¥ste explicit välja posterna för att visa dem i &tdevelop;s dokumentationsfunktion. Markera kryssrutan <guilabel +>InnehÃ¥llsförteckning</guilabel +> för posten i <link linkend="setup-docu-columns" +>inställningstabellen</link +>. </para> + +<note +><para +>Egen dokumentation kan inte indexeras eller sökas. Därför har inte kryssrutorna <guilabel +>Index</guilabel +> och <guilabel +>Sök</guilabel +> nÃ¥gon effekt här, som visas ovan. </para +></note> + +</sect3 +> <!--- setup-docu-general-custom --> + +</sect2 +> <!-- setup-docu-general --> + +<sect2 id="setup-docu-textsearch"> +<title +>Inställning av index för textsökning</title> + +<para +>(... ännu inte skrivet ...) </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="configure-doctree-textsearch.png" format="PNG"/> + </imageobject> + <caption +><para +>Inställning av index för textsökning </para +></caption> + </mediaobject> +</screenshot> + +</sect2 +> <!-- setup-docu-textsearch --> + +<sect2 id="setup-docu-other"> +<title +>Andra inställningar av dokumentationssamlingen</title> + +<para +>(... ännu inte skrivet ...) </para> + +</sect2 +> <!-- setup-docu-other --> + +</sect1 +> <!-- setup-docu --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="setup-advanced"> +<title +>Avancerade inställningar</title> + +<para +>(... ännu inte skrivet ...) </para> + +<sect2 id="setup-plugins"> +<title +>Insticksverktyg</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- setup-plugins --> + +</sect1 +> <!-- setup-advanced --> + +</chapter +> <!-- setup --> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header-navigate.png b/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header-navigate.png Binary files differnew file mode 100644 index 00000000000..f9fc0cf20bc --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header-navigate.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header.png b/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header.png Binary files differnew file mode 100644 index 00000000000..dc6b3517db6 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/split-source-header.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/split-windows.png b/tde-i18n-sv/docs/tdevelop/tdevelop/split-windows.png Binary files differnew file mode 100644 index 00000000000..d843d713b59 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/split-windows.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/split-workspace.png b/tde-i18n-sv/docs/tdevelop/tdevelop/split-workspace.png Binary files differnew file mode 100644 index 00000000000..9a41c696eef --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/split-workspace.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/survey-manual.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/survey-manual.docbook new file mode 100644 index 00000000000..b48567645da --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/survey-manual.docbook @@ -0,0 +1,329 @@ +<chapter id="survey-manual"> +<title +>Vad handboken innehÃ¥ller</title> + +<para +>Den här användarmanualen är avsedd att beskriva innehÃ¥llet och användningen av den integrerade utvecklingsmiljön (IDE) &tdevelop; &kdevrelease; frÃ¥n användarens perspektiv. Det är inte en programmeringsmanual, och inte heller beskriver den utvecklingsprocessen i detalj. Det enda mÃ¥let är att hjälpa dig med hanteringen av den integrerade utvecklingsmiljön. </para> +<para +>Här hittar du information om följande ämnen: </para> +<variablelist> +<varlistentry> +<term +><link linkend="getting-started" +>Komma igÃ¥ng med &tdevelop;: En guidad tur</link +> </term> +<listitem> +<para +>Ger dig en snabb genomgÃ¥ng av hur det grafiska gränssnittet används, med en introduktion av de grundläggande stegen för att arbeta med ett projekt.</para +></listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="tdevelop-survey" +>Översikt av funktioner i &tdevelop;</link +></term> +<listitem> +<para +>Fördjupar den guidade turen i föregÃ¥ende kapitel, ger en översikt av vad som är inbyggt i &tdevelop; och gör dig bekant med utseendet och känslan i den integrerade utvecklingsmiljön.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="setup" +>Anpassa &tdevelop;</link +></term> +<listitem> +<para +>Visar hur du kan skräddarsy den integrerade utvecklingsmiljön för att passa dina behov.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="applicationwizard" +>Komma igÃ¥ng: Programguiden</link +></term> +<listitem> +<para +>Beskriver grunderna i hur ett nytt projekt ställs in i &tdevelop; med den inbyggda programguiden.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="editing" +>Redigeringsverktyg</link +></term> +<listitem> +<para +>Allt du behöver för att skriva källkoden. FrÃ¥n hur editorn används, hur textsökning bÃ¥de lokalt och i hela projektet görs, till hur nya filer och klasser integreras i projektet.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="file-browsers" +>Filbläddrarna</link +></term> +<listitem> +<para +>Demonstrerar diverse verktyg för att titta pÃ¥ projektets struktur och hur du kommer Ã¥t filerna du vill arbeta med.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="class-browsers" +>Klassbläddrarna</link +></term> +<listitem> +<para +>Beskriver ett av de mest kraftfulla verktygen i &tdevelop;, som lÃ¥ter dig navigera i klassberoenden och lÃ¥ter dig enkelt skapa och komma Ã¥t de klasser och metoder du behöver. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="documentation" +>Dokumentation</link +></term> +<listitem> +<para +>Visar hur man kommer Ã¥t den omfattande inbyggda dokumentationen som &tdevelop; tillhandahÃ¥ller, och talar om hur du skapar dokumentation av projektet, en koncis och kraftfull dokumentation av programmeringsgränssnittet, som ger dig en översikt över all källkod i projektet samt en docbook-baserad användardokumentation.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="project-management" +>Bygga och projekthantering</link +></term> +<listitem> +<para +>Handlar om att skapa och hantera projekt, beskriver grunderna i användning av autoconf och automake, samt hur egna byggfiler skapas och hur kompilator- och bygginställningar används för att skräddarsy programmet för att passa dina behov.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="adv-build-management" +>Avancerad bygghantering</link +></term> +<listitem> +<para +>Tittar pÃ¥ sätt att hÃ¥lla flera bygginställningar, för att korskompilera till olika plattformar, eller skapa inbyggda system med biblioteket <application +>Qt/embedded</application +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="debugger" +>Avlusargränssnittet</link +></term> +<listitem> +<para +>Beskriver hur det integrerade avlusargränssnittet till avlusaren <application +>gdb</application +> används, sÃ¥ att du kan jaga fel utan att lämna &tdevelop;.</para> +</listitem> +</varlistentry> + +<!-- ### Currently disabled. Probably too specialized programming stuff. Check later again. + <listitem +><para> + <link linkend="python" +>Python</link +> — an overview of how to create Python-based applications in &tdevelop;. + </para +></listitem> + <listitem +><para> + <link linkend="php" +>PHP</link +> — an overview of how to create PHP-based HTML applications in &tdevelop;. + </para +></listitem +>//--> + +<varlistentry> +<term +><link linkend="cvs" +>Använda CVS</link +></term> +<listitem> +<para +>Talar om för dig hur du kan underhÃ¥lla projektet med CVS-versionshanteringssystem, en nödvändighet särskilt om mÃ¥nga utvecklare arbetar med samma projekt.</para> +</listitem> +</varlistentry> +</variablelist> + +<!-- + <listitem +><para> + <link linkend="tdevelop-scripting" +>Scripting &tdevelop;</link +> — describes how to add scripts to automate &tdevelop;. + </para +></listitem> + + + <listitem +><para> + Some commonly used information has been put into the <emphasis +>appendix</emphasis +>. Amongst others this consists of: +--> +<para +>En del ofta använd information har placerats i <emphasis +>appendix</emphasis +>. Bland annat bestÃ¥r den av: </para> + +<variablelist> +<varlistentry> +<term +><link linkend="tdevelop-install" +>Installera &tdevelop;</link +></term> +<listitem> +<para +>Talar om var man skaffar &tdevelop;, och hur man fÃ¥r det att köra.</para> +</listitem> +</varlistentry> +</variablelist> + +<variablelist> +<varlistentry> +<term +><link linkend="nutshell" +>I korthet — Tips och trick</link +></term> +<listitem> +<para +>En snabbreferens till de oftast använda kommandona och Ã¥tgärderna, och en kort guide för att lösa vanliga problem vid arbete med &tdevelop;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><link linkend="unixdev" +>Utveckling pÃ¥ &UNIX;</link +></term> +<listitem> +<para +>En historisk översikt över programutveckling pÃ¥ &UNIX;, de viktigaste verktygen som behövs och varför man behöver en integrerad utvecklingsmiljö.</para> +</listitem> +</varlistentry> + +<!-- + <listitem +><para> + <link linkend="app-menus" +>Menus and Toolbars Overview</link +> — provides you with a short overall view of the menu and toolbar selections available. + </para +></listitem> + + <listitem +><para> + <link linkend="app-shortcuts" +>Shortcut Keys</link +> — the keys you can use to work with &tdevelop; without resorting to the mouse. + </para +></listitem> +--> + +<varlistentry> +<term +><link linkend="app-files" +>Inställningsfiler som används av &tdevelop;</link +></term> +<listitem +><para +>Listar filerna som &tdevelop; använder för att spara sin interna information. Detta är särskilt användbart om nÃ¥got har blivit fel i dina inställningar.</para> +</listitem> +</varlistentry> + +<varlistentry +><term> +<link linkend="plugin-tools" +>Insticksverktyg</link> +</term +><listitem +><para +>Listar insticksverktygen du kan använda för att skräddarsy &tdevelop;s möjligheter för dina behov. </para +></listitem +></varlistentry> + +<!-- + <listitem +><para> + <link linkend="plugin-tools" +>Plugin tools</link +> — provides you with an overview of the parts which make up &tdevelop; and how you can tailor it to suit your needs by only loading the parts that are necessary, both IDE and project-wide. + </para +></listitem> +--> +<varlistentry +><term +> +<link linkend="app-uimodes-examples" +>Exempel pÃ¥ lägen i användargränssnittet för &tdevelop; </link> +</term +><listitem +><para +>Visar lägen för användargränssnittet. </para +></listitem +></varlistentry> + +<varlistentry +><term> +<link linkend="app-misc-info" +>Ytterligare information </link +> </term +><listitem +><para +>Hämta information, rapportera fel, etc. </para +></listitem +></varlistentry> + +<varlistentry +><term> +<link linkend="app-changelog" +>Ändringslogg </link> +</term +><listitem +><para +>Visar dokumentets historik. </para +></listitem +></varlistentry> + +<varlistentry +><term> +<link linkend="app-bibliography" +>Bibliografi </link +> +</term +><listitem +><para +>Bibliografi </para +></listitem +></varlistentry> + +</variablelist +> + <!-- + <listitem +><para> + <link linkend="documentation-index" +>Index </link +> — + </para +></listitem> +--> + + +</chapter> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode-0.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode-0.png Binary files differnew file mode 100644 index 00000000000..37fda2413e5 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode-0.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode.png Binary files differnew file mode 100644 index 00000000000..5231b2e7fc0 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-ideal-mode.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-install.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-install.docbook new file mode 100644 index 00000000000..12bf6f39ba2 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-install.docbook @@ -0,0 +1,1290 @@ +<appendix id="tdevelop-install"> + +<appendixinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <author +><firstname +>Anne-Marie</firstname +><surname +>Mahfouf</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</appendixinfo> + +<title +>Installera &tdevelop;</title> + +<indexterm zone="tdevelop-install"> + <primary +>Installation</primary +></indexterm> + +<para +>I det här kapitlet beskriver vi alla steg som behövs för att kompilera och installera den integrerade utvecklingsmiljön &tdevelop;: <itemizedlist> + <listitem +><para +><link linkend="tdevelop-install-howto" +>Hur man skaffar &tdevelop;</link +> koncentrerar sig pÃ¥ hur man laddar ner den senaste källkoden för &tdevelop; frÃ¥n SVN. </para +></listitem> + <listitem +><para +><link linkend="requirements" +>Krav för &tdevelop;</link +> listar programmen och biblioteken som du mÃ¥ste ha installerade för att kompilera den integrerade utvecklingsmiljön med lyckat resultat. </para +></listitem> + <listitem +><para +><link linkend="compile-and-install" +>Kompilering och installation av &tdevelop;</link +> leder dig igenom alla steg för kompilering och installation av programmet. </para +></listitem> + <listitem +><para +><link linkend="make-api" +>Hur man skaffar dokumentation av programmeringsgränssnittet för &tdevelop;</link +> talar om vad ett programmeringsgränssnitt är och hur du skaffar ett sÃ¥ användbart verktyg för navigering i källkoden för &tdevelop;. </para +></listitem> +</itemizedlist> +</para> + +<sect1 id="tdevelop-install-howto"> +<title +>Hur man skaffar &tdevelop;</title> + +<indexterm zone="tdevelop-install-howto"> + <primary +>skaffa &tdevelop;</primary +></indexterm> +<indexterm zone="tdevelop-install-howto"> + <primary +>&tdevelop;</primary> + <secondary +>skaffa</secondary +></indexterm> + +<para +>&tdevelop; är tillgänglig i binärform frÃ¥n mÃ¥nga olika &Linux;-distributioner som SuSE, RedHat med flera. Binärfilerna är paketerade pÃ¥ nÃ¥got bekvämt sätt, oftast RPM, för att enkelt kunna installeras. Följ standardinstruktionerna som ges i distributionen för att installera. </para> +<para +>Du kan mycket väl skaffa källkoden för &tdevelop;, kompilera och installera den själv. Källkoden hittas via projektets hemsida pÃ¥ <ulink url="http://www.tdevelop.org" +>http://www.tdevelop.org</ulink +> eller via <ulink url="http://download.kde.org" +>&kde;:s FTP-plats</ulink +>. </para> + +<sect2 id="howto-svn"> +<title +>Hämta dagsfärska versioner av &tdevelop; frÃ¥n SVN</title> + +<indexterm zone="howto-svn"> + <primary +>SVN</primary +></indexterm> + +<para +>Om du vill ta del av aktuell utveckling, är versioner frÃ¥n det anonyma SVN-arkivet tillgängliga.</para> +<para +>Modulnamnet är <emphasis +>tdevelop</emphasis +> med <filename class="directory" +>svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/tdevelop</filename +>. </para> + +<sect3 id="howto-svn-co"> +<title +>Ursprunglig utcheckning frÃ¥n SVN</title> + +<indexterm zone="howto-svn-co"> + <primary +>utcheckning</primary +></indexterm> +<indexterm zone="howto-svn-co"> + <primary +>&tdevelop;</primary> + <secondary +>SVN</secondary> + <tertiary +>utcheckning</tertiary +></indexterm> + +<para +>För att skaffa en ursprunglig version av &tdevelop; mÃ¥ste du ladda ner den frÃ¥n anonym SVN. Följ bara stegen nedan för den här sÃ¥ kallade <emphasis +>utcheckningsÃ¥tgärden</emphasis +>. </para> + +<note +><para +>Vi antar att du vill placera din kopia av &tdevelop; i underkatalogen <filename class="directory" +>kde3src</filename +> i din hemkatalog (<filename class="directory" +>~</filename +>). </para +></note> + +<informalexample +><simplelist> + <member +># Skapa mÃ¥lkatalogen, om det behövs: </member> + <member +><prompt +>~> </prompt +> <userinput +>mkdir kde3src</userinput +> </member> + <member +><prompt +>~> </prompt +> <userinput +>cd kde3src</userinput +> </member> + <member +><prompt +>~/kde3src> </prompt +> <userinput +>svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/tdevelop</userinput +> </member> + <member +><prompt +>~/kde3src> </prompt +> <userinput +>cd tdevelop</userinput +> </member> +</simplelist +></informalexample> + +<note +><para +>När du väl har lyckats checka ut din version av &tdevelop;, kan du hänga med i ändringarna genom att använda uppdateringsproceduren som visas i nästa avsnitt. </para +></note> + +<important +><para +>HÃ¥ll serverns last nere. <emphasis +>Var vänlig att inte checka ut varje gÃ¥ng du vill fÃ¥ en aktuell version av &tdevelop;!</emphasis +> Använd SVN update för detta syfte. </para +></important> + +<para +>Nu kan du kompilera din version av &tdevelop; som visas i avsnittet <link linkend="compile-and-install" +>Kompilering och installation av &tdevelop;</link +>. </para> + +</sect3 +> <!-- howto-svn-co --> + +<sect3 id="howto-svn-up"> +<title +>HÃ¥lla din kopia av SVN aktuell</title> + +<indexterm zone="howto-svn-up"> + <primary +>uppdatera</primary +></indexterm> +<indexterm zone="howto-svn-up"> + <primary +>&tdevelop;</primary> + <secondary +>SVN</secondary> + <tertiary +>uppdatera</tertiary +></indexterm> + +<para +>Efter du checkat ut &tdevelop; frÃ¥n SVN som visas ovan (och kompilerat med lyckat resultat), vill du hÃ¥lla den aktuell för att fÃ¥ med alla programfixar. Följ dÃ¥ stegen nedan. (Ã…terigen antar vi att du har placerat din kopia av &tdevelop; i katalogen <filename class="directory" +>kde3src</filename +>.) </para> +<para +>Observera kommandot <command +>up</command +> (= <emphasis +>update</emphasis +>) istället för <command +>co</command +> (vilket betyder <emphasis +>checkout</emphasis +>). </para> + +<informalexample +><simplelist> + <member +><prompt +>~> </prompt +> <userinput +>cd kde3src</userinput +> </member> + <member +><prompt +>~/kde3src> </prompt +> <userinput +>cd tdevelop</userinput +> </member> + <member +><prompt +>~/kde3src> </prompt +> <userinput +>svn up</userinput +> </member> +</simplelist +></informalexample> + +<note +><para +>HÃ¥ll ett öga pÃ¥ meddelanden som SVN visar under uppdateringssekvensen. De exakta stegen i kompileringssekvensen beror pÃ¥ dem. </para +></note> + +<para +>Nu kan du kompilera en ny version av &tdevelop; som visas i kapitlet <link linkend="compile-and-install-make-svn" +>Särskilda hänsyn vid kompilering frÃ¥n SVN</link +>. </para> +</sect3 +> <!-- howto-svn-up --> + +</sect2 +> <!-- howto-svn --> + +</sect1 +> <!-- howto --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="requirements"> +<title +>Krav för &tdevelop;</title> + +<indexterm zone="requirements"> + <primary +>krav</primary +></indexterm> +<indexterm zone="requirements"> + <primary +>&tdevelop;</primary> + <secondary +>krav</secondary +></indexterm> +<indexterm zone="requirements"> + <primary +>GNU</primary> + <secondary +>krav</secondary +></indexterm> + +<para +>För att kompilera och använda &tdevelop; med lyckat resultat, behöver du följande program och bibliotek. De är tillgängliga pÃ¥ de flesta plattformar som distributionspaket, och kan därigenom lätt installeras. </para> + +<itemizedlist> +<title +>Krävs</title> + <listitem> + <para +><application +>gcc/g++</application +> 2.95.3 eller senare (eller motsvarande) <indexterm> + <primary +>gcc</primary> + <secondary +>krav</secondary +></indexterm> + <indexterm> + <primary +>g++</primary> + <secondary +>krav</secondary +></indexterm> + </para> + <para +>Tillgänglig frÃ¥n <ulink url="gcc.gnu.org" +>gcc.gnu.org</ulink +> </para> + </listitem> + <listitem> + <para +><application +>&GNU; make</application +> (eller motsvarande) <indexterm> + <primary +>make</primary> + <secondary +>krav</secondary +></indexterm> + </para> + <para +>Tillgänglig frÃ¥n <ulink url="www.gnu.org/software/make" +>www.gnu.org/software/make</ulink +> </para> + </listitem> + <listitem> + <para +>&perl; 5.004 (eller senare) <indexterm> + <primary +>Perl</primary> + <secondary +>krav</secondary +></indexterm> + </para> + <para +>Tillgänglig frÃ¥n <ulink url="www.perl.com" +>www.perl.com</ulink +> </para> + </listitem> + <listitem> + <para +><application +>autoconf</application +> ≥ 2.52 (eller senare) <indexterm> + <primary +>autoconf</primary> + <secondary +>krav</secondary +></indexterm> + </para> + <para +>Tillgänglig frÃ¥n <ulink url="www.gnu.org/software/autoconf" +>www.gnu.org/software/autoconf</ulink +> </para> + </listitem> + <listitem> + <para +><application +>automake</application +> ≥ 1.6 (eller senare) <indexterm> + <primary +>automake</primary> + <secondary +>krav</secondary +></indexterm> + </para> + <para +>Tillgänglig frÃ¥n <ulink url="www.gnu.org/software/automake" +>www.gnu.org/software/automake</ulink +> </para> + </listitem> + <listitem> + <para +><application +>flex</application +> 2.5.4 (eller senare) <indexterm> + <primary +>flex</primary> + <secondary +>krav</secondary +></indexterm> + </para> + <para +>Tillgänglig frÃ¥n <ulink url="www.gnu.org/software/flex" +>www.gnu.org/software/flex</ulink +> </para> + </listitem> + <listitem> + <para +>&Qt; ≥ 3.3.0 (eller senare) <indexterm> + <primary +>Qt</primary> + <secondary +>krav</secondary +></indexterm> + </para> + <para +>Tillgänglig frÃ¥n <ulink url="www.trolltech.com/products/qt" +>www.trolltech.com/products/qt</ulink +> </para> + </listitem> + <listitem> + <para +><application +>KDE</application +> ≥ 3.4.0 (eller senare) <indexterm> + <primary +>KDE</primary> + <secondary +>krav</secondary +></indexterm> + </para> + <para +>Tillgänglig frÃ¥n <ulink url="www.kde.org" +>www.kde.org</ulink +> </para> + </listitem> +</itemizedlist> + +<itemizedlist> +<title +>Valfritt:</title> + <listitem +><para +>Verktyget <emphasis +><application +>ctags</application +></emphasis +> för källkodsnavigering, frÃ¥n <ulink url="http://ctags.sourceforge.net" +>http://ctags.sourceforge.net</ulink +>, som ger dig snabb Ã¥tkomst till deklarationer och definitioner med nÃ¥gra fÃ¥ enkla klick pÃ¥ ett namn i editorn. <indexterm +><primary +>ctags</primary +></indexterm> + </para +></listitem> + <listitem +><para +>Kompilatorn <emphasis +><application +>dot</application +></emphasis +> för grafiksprÃ¥k, frÃ¥n <ulink url="http://www.graphviz.org" +>http:/www.graphviz.org</ulink +>. Verktyget behövs tillsammans med &doxygen; nedan, om du vill visa klassförhÃ¥llanden grafiskt (vilket starkt rekommenderas). <indexterm +><primary +>dot</primary +></indexterm> + </para +></listitem> + <listitem +><para +>Dokumentationsverktyget <emphasis +>&doxygen;</emphasis +>, frÃ¥n <ulink url="http://www.doxygen.org" +>http://www.doxygen.org</ulink +>, om du vill skapa koncis och kraftfull dokumentation av programmeringsgränssnittet för dina projekt. <indexterm +><primary +>doxygen</primary +></indexterm> + </para +></listitem> + <listitem +><para +><emphasis +><application +>Valgrind</application +></emphasis +> frÃ¥n <ulink url="http://developer.kde.org/~sewardj/" +>http://developer.kde.org/~sewardj/</ulink +> hjälper dig att hitta minneshanteringsproblem i dina program. <indexterm +><primary +>valgrind</primary +></indexterm> + </para +></listitem> + <listitem +><para +><emphasis +><application +>SVN</application +></emphasis +> frÃ¥n <ulink url="http://subversion.tigris.org/" +>http://subversion.tigris.org/</ulink +>, om du vill använda versionshanteringssystemet SVN. <indexterm> + <primary +>SVN</primary> + <secondary +>krav</secondary +></indexterm> + </para +></listitem> + <listitem +><para +>Eventuellt andra kompilatorer och/eller verktyg om du vill utveckla för ett annat sprÃ¥k eller plattform än C++/&kde;, eller använda nÃ¥gon annan specialfunktion. </para +></listitem> +</itemizedlist> + +<note> +<orderedlist> + <listitem> + <para +>Du kan i viss utsträckning kringgÃ¥ behovet av &autoconf; ≥ 2.52 och &automake; ≥ 1.6. Ta bara bort katalogen <filename class="directory" +>admin</filename +> i installationskatalogen för &tdevelop;, och skriv: <indexterm> + <primary +>autoconf</primary> + <secondary +>kringgÃ¥ versionsbehov</secondary +></indexterm> + <indexterm> + <primary +>automake</primary> + <secondary +>kringgÃ¥ versionsbehov</secondary +></indexterm> + <indexterm> + <primary +>versionsbehov</primary> + <secondary +>kringgÃ¥ för autoconf och automake</secondary +></indexterm> + </para> + <informalexample +><simplelist> + <member +><prompt +>(din tdevelop-katalog)> </prompt +> <userinput +>ln -s $KDEDIR/share/apps/tdelibs/admin admin</userinput +></member> + </simplelist +></informalexample> + <para +>i terminalen. Det gör att &tdevelop; använder standardinställningarna i &kde;:s <filename class="directory" +>admin</filename +>-katalog istället. </para> + </listitem> + <listitem> + <para +>Var försiktig sÃ¥ att du <emphasis +>inte blandar olika versioner av &Qt;</emphasis +>. Länka alltid &tdevelop; med samma version av &Qt; som &kde;-biblioteket kompilerades med. Annars rÃ¥kar du troligen ut för <emphasis +>mycket konstigt</emphasis +> beteende. </para> + </listitem> +</orderedlist> +</note> + +</sect1 +> <!-- requirements --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="compile-and-install"> +<title +>Kompilering och installation av &tdevelop;</title> + +<indexterm zone="compile-and-install"> + <primary +>&tdevelop;</primary> + <secondary +>kompilering</secondary +></indexterm> +<indexterm zone="compile-and-install"> + <primary +>&tdevelop;</primary> + <secondary +>installation</secondary +></indexterm> + +<para +>När alla krav väl är uppfyllda är du redo att kompilera och installera &tdevelop;. Det här appendixet beskriver nödvändiga steg för att göra det. </para> +<itemizedlist> + <listitem +><para +><link linkend="compile-and-install-preliminaries" +>Förberedande steg</link +> berättar hur du ställer in en riktig miljö. </para +></listitem> + <listitem +><para +><link linkend="compile-and-install-make" +>Kompilera &tdevelop;</link +> handlar om hur källkoden för &tdevelop; skaffas frÃ¥n SVN, hur den förbereds för installationsprocessen, och visar till sist stegen som är nödvändiga för att kompilera och installera &tdevelop;. </para +></listitem> + <listitem +><para +><link linkend="compile-and-install-options" +>NÃ¥gra anmärkningar om väljare till configure</link +> talar om hur man kör &tdevelop; om det har installerats pÃ¥ en annan plats än i &kde;-katalogen. </para +></listitem> +</itemizedlist> + +<sect2 id="compile-and-install-preliminaries"> +<title +>Förberedande steg</title> + +<indexterm zone="compile-and-install-preliminaries"> + <primary +>preliminärt</primary> + <secondary +>Installation av &tdevelop;</secondary +></indexterm> +<indexterm zone="compile-and-install-preliminaries"> + <primary +>KDEDIR</primary +></indexterm> +<indexterm zone="compile-and-install-preliminaries"> + <primary +>QTDIR</primary +></indexterm> +<indexterm zone="compile-and-install-preliminaries"> + <primary +>LD_LIBRARY_PATH</primary +></indexterm> +<indexterm zone="compile-and-install-preliminaries"> + <primary +>LIBRARY_PATH</primary +></indexterm> +<indexterm zone="compile-and-install-preliminaries"> + <primary +>PATH</primary +></indexterm> + +<para +>Innan du pÃ¥börjar kompileringssekvensen, mÃ¥ste du försäkra dig om att alla bibliotek och verktyg är tillgängliga för byggsystemet. För att uppnÃ¥ detta, mÃ¥ste vissa miljövariabler ställas in riktigt. Stegen som ska utföras beror pÃ¥ vilket skal du använder i terminalen. </para> + +<note +><para +>För att undvika att skriva in alla satserna som ställer in nödvändiga miljövariabler varje gÃ¥ng du vill kompilera, kan du placera dem i filen <filename +>.bashrc</filename +> eller <filename +>.cshrc</filename +>. PÃ¥ sÃ¥ sätt ställs miljövariablerna in riktigt varje gÃ¥ng du startar skalet. </para +></note> + +<sect3 id="compile-and-install-preliminaries-bash"> +<title +>Ställa in miljön för bash-skalet</title> + +<para +>Om du använder bash-skalet, lägg till följande rader: </para> + +<informalexample +><simplelist> + <member +><userinput +>export KDEDIR=</userinput +>(sökväg till KDE-installationen)</member> + <member +><userinput +>export QTDIR=</userinput +>(sökväg till Qt-biblioteket)</member> + <member +><userinput +>export LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH</userinput +></member> + <member +><userinput +>export LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LIBRARY_PATH</userinput +></member> + <member +><userinput +>export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH</userinput +></member> +</simplelist +></informalexample> +<para +></para> + +</sect3 +> <!-- compile-and-install-preliminaries-bash --> + +<sect3 id="compile-and-install-preliminaries-tcsh"> +<title +>Ställa in miljön för tcsh-skalet</title> + +<para +>Om du använder tcsh-skalet, lägg till följande rader: </para> +<para> +<informalexample +><simplelist> + <member +><userinput +>setenv KDEDIR </userinput +>(sökväg till KDE-installationen)</member> + <member +><userinput +>setenv QTDIR </userinput +>(sökväg till Qt-biblioteket)</member> + <member +><userinput +>setenv LD_LIBRARY_PATH=$QTDIR/lib:$KDEDIR/lib:$LD_LIBRARY_PATH</userinput +></member> + <member +><userinput +>setenv LIBRARY_PATH $QTDIR/lib:$KDEDIR/lib:$LIBRARY_PATH</userinput +></member> + <member +><userinput +>setenv PATH $QTDIR/bin:$KDEDIR/bin:$PATH</userinput +></member> +</simplelist +></informalexample> +</para> + +</sect3 +> <!-- compile-and-install-preliminaries-tcs --> + +</sect2 +> <!-- compile-and-install-preliminaries --> + +<sect2 id="compile-and-install-make"> +<title +>Kompilera &tdevelop;</title> + +<indexterm zone="compile-and-install-make"> + <primary +>make</primary> + <secondary +>Installation av &tdevelop;</secondary +></indexterm> +<indexterm zone="compile-and-install-make"> + <primary +>kompilera</primary> + <secondary +>&tdevelop;</secondary +></indexterm> + +<note +><para +>I följande beskrivning antar vi att du har placerat källkoden för &tdevelop; i katalogen <filename class="directory" +>~/kde3src/tdevelop</filename +>. </para +></note> + +<sect3 id="compile-and-install-make-svn"> +<title +>Särskilda hänsyn vid kompilering frÃ¥n SVN</title> + +<para +>Om du använder en aktuell version av &tdevelop; frÃ¥n SVN, beror de första kompileringsstegen pÃ¥ om du just gjort en fullständig utcheckning, eller bara uppdaterat källkoden. </para> + +<variablelist> +<varlistentry> +<term id="compile-and-install-make-svn-co" +>Efter en utcheckning frÃ¥n SVN</term> +<listitem> +<para +>Du mÃ¥ste <emphasis +>initiera byggsystemet</emphasis +> efter en ny utcheckning. Samma sak gäller varje gÃ¥ng du mÃ¥ste starta om frÃ¥n början. Skriv: </para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make -f admin/Makefile.common svn-clean</userinput +> </member +></simplelist +></informalexample> +<para +>och därefter <emphasis +>alla följande steg</emphasis +>. </para> +<note +><para +>Du kan behöva komma Ã¥t SVN-arkivet för att rensa det om nÃ¥gra skadade eller saknade filer mÃ¥ste Ã¥terskapas. </para +></note> +<important +><para +>Kommandot <command +>svn-clean</command +> <emphasis +>tar bort alla filer</emphasis +> som inte finns i SVN frÃ¥n katalogen. Försäkra dig om att säkerhetskopiera viktig information innan du använder det här rensningskommandot. </para +></important> +</listitem> +</varlistentry> + +<varlistentry> +<term id="compile-and-install-make-svn-up" +>Efter en uppdatering frÃ¥n SVN</term> +<listitem> +<para +>Nästa steg beror pÃ¥ utmatningen frÃ¥n SVN-uppdateringssekvensen. Om du fick nÃ¥got som liknar följande (markeringarna U eller P kan finnas i kolumnen längst till vänster, bÃ¥da anger att filen har ändrats): </para> + +<screen +>U /nÃ¥gon_sökväg/Makefile.am +</screen> +<para +>eller om du precis gjort en fullständig utcheckning, mÃ¥ste du skriva: </para> +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make -f Makefile.svn</userinput +> </member +></simplelist +></informalexample> +<para +>innan du fortsätter med <emphasis +>alla följande steg</emphasis +>. </para> +</listitem> +</varlistentry> +</variablelist> +</sect3 +> <!-- compile-and-install-make-svn --> + +<sect3 id="compile-and-install-make-basic"> +<title +>Grundläggande kommandosekvens med <command +>make</command +></title> + +<para +>När det grundläggande byggsystemet har ställts in, mÃ¥ste du bestämma dig för vilken typ av &tdevelop;-system du vill använda. Det görs med följande konfigureringssteg, som bygger de verkliga filerna med namn <filename +>Makefile</filename +>, som kommandot <command +>make</command +> kommer att använda. </para> + +<note +><para +>Du kan utelämna väljaren <option +>--prefix</option +> i följande kommandorader med <command +>configure</command +>, om du vill att &tdevelop; ska installeras i &kde;:s standardkatalog. Se kapitlet <link linkend="compile-and-install-options" +>NÃ¥gra anmärkningar om väljare till configure</link +> om detta. </para +></note> + +<variablelist> +<varlistentry> +<term +>En version kompilerad för avlusning</term> +<listitem> +<para +>Om du vill hÃ¥lla ordning pÃ¥ vad programmet &tdevelop; gör när det kör, kan du bygga en version kompilerad med avlusning. Tala bara om för <command +>configure</command +> att göra det: </para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>./configure --enable-debug=full --prefix=</userinput +>(där din kde3 finns) </member +></simplelist +></informalexample> +</listitem> +</varlistentry> + +<varlistentry> +<term +>En version kompilerad för distribution</term> +<listitem> +<para +>Om du bara vill använda &tdevelop; som det är (mindre och snabbare), räcker det med en version kompilerad för distribution. Det är förvalt i <command +>configure</command +>.</para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>./configure --prefix=</userinput +>(där din kde3 finns) </member +></simplelist +></informalexample> + +<note> +<para +>Om du vill skapa din egen <link linkend="make-api" +>dokumentation av programmeringsgränssnittet</link +> för &tdevelop;, mÃ¥ste du ta med ytterligare en väljare i kommandot <command +>configure</command +>: </para> +<informalexample +><simplelist> + <member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>./configure --</userinput +>(väljare enlikt ovan) <userinput +>\</userinput +></member +> <member +><userinput +>--with-tdelibsdoxy-dir=$KDEDIR/share/doc/HTML/en/tdelibs-apidocs</userinput +></member> +</simplelist +></informalexample> +</note> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Bygga och installera &tdevelop;</term> +<listitem> +<para +>Kommandot <command +>configure</command +> kontrollerar systemet och skapar nÃ¥gra filer vid namn <filename +>Makefile</filename +> enligt vad det hittar. Kommandot <command +>make</command +> använder normalt den huvudsakliga filen <filename +>Makefile</filename +>. AlltsÃ¥ är </para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make</userinput +> </member +></simplelist +></informalexample> +<para +>tillräckligt. Om nödvändigt, skaffa rättigheter som systemadministratör genom att använda kommandot </para> +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>su</userinput +> </member +></simplelist +></informalexample> +<para +>och ange systemadministratörens lösenord. Installera sedan programmet: </para> +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make install</userinput +> </member +></simplelist +></informalexample> +<para +>Det är allt. Om du installerade &tdevelop; i &kde;:s standardkatalog, kan du nu köra den integrerade utvecklingsmiljön. Annars är nÃ¥gra ytterligare steg nödvändiga, som visas i avsnittet <link linkend="compile-and-install-options-dir" +>Annan installationskatalog än standard</link +> nedan. </para> + +<note> + <para +>I själva verket har tre &tdevelop;-baserade program installerats: </para> + <itemizedlist> + <listitem +><para +>Den integrerade utvecklingsmiljön &tdevelop;: Det här är platsen där du oftast arbetar.</para +></listitem> + <listitem +><para +>Den fristÃ¥ende dokumentationsbläddraren &tdevelop; assistent: Isolerar alla kraftfulla dokumentationsfunktioner i utvecklingsmiljön &tdevelop; i ett separat verktyg. Det här är praktiskt när du vill slÃ¥ upp nÃ¥gon programmeringsdokumentation, men inte vill starta den fullständiga utvecklingsmiljön.</para +></listitem> + <listitem +><para +>&tdevelop; Designer: Utökar &Qt; Designer för grafiska gränssnitt med element specifika för &kde; och integreras pÃ¥ ett bra sätt i utvecklingsmiljön &tdevelop;.</para +></listitem> + </itemizedlist> +</note> +</listitem> +</varlistentry> +</variablelist> + + +</sect3 +> <!-- compile-and-install-make-basic --> +</sect2 +> <!-- compile-and-install-make --> + + +<sect2 id="compile-and-install-options"> +<title +>NÃ¥gra anmärkningar om väljare till <command +>configure</command +></title> + +<sect3 id="compile-and-install-options-dir"> +<title +>Annan installationskatalog än standard</title> + +<indexterm zone="compile-and-install-options-dir"> + <primary +>&tdevelop;</primary> + <secondary +>installation</secondary> + <tertiary +>inte standardkatalog</tertiary +></indexterm> +<indexterm zone="compile-and-install-options-dir"> + <primary +>inte standardkatalog</primary +></indexterm> +<indexterm zone="compile-and-install-options-dir"> + <primary +>KDEDIRS</primary +></indexterm> +<indexterm zone="compile-and-install-options-dir"> + <primary +>kbuildsycoca</primary +></indexterm> + +<para +>Normalt förbereder <command +>configure</command +> för att installera den grafiska utvecklingsmiljön i &kde;:s standardkatalog. Det behövs, eftersom &tdevelop; antar att det gÃ¥r att direkt komma Ã¥t vissa verktyg och delprogram som finns där. Om du vill använda din egen installationskatalog, mÃ¥ste du tala om det för <command +>configure</command +> med väljaren <option +>--prefix</option +>: </para> +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>./configure --prefix=</userinput +>(där din kde3 finns) </member +></simplelist +></informalexample> +<para +>Det finns ett problem om du gör det. Du mÃ¥ste ge möjlighet för &tdevelop; att komma Ã¥t nödvändiga verktyg och delprogram i &kde;:s katalog när det kör. (Du kan fortfarande använda den integrerade utvecklingsmiljön utan att göra det, men med mycket begränsade funktioner.) </para> +<para +>Starta ett skal och se till att köra följande kommandon innan du startar &tdevelop; frÃ¥n skalet. </para> + +<note +><para +><emphasis +>Försäkra dig om att använda pluralis:</emphasis +> Det är <quote +><envar +>KDEDIRS</envar +></quote +>, inte bara <quote +><envar +>KDEDIR</envar +></quote +>. </para +></note> + +<informalexample +><simplelist> + <member +><prompt +>~> </prompt +> <userinput +>export KDEDIRS=/usr/local/kde:/opt/kde3</userinput +> </member> + <member +><prompt +>~> </prompt +> <userinput +>kbuildsycoca</userinput +> </member> + <member +>(Starta nu &tdevelop;:) </member> + <member +><prompt +>~> </prompt +> <userinput +>tdevelop</userinput +> </member> +</simplelist +></informalexample> + +<note +><simplelist> + <member +>Miljövariabeln <envar +>KDEDIRS</envar +> mÃ¥ste vara inställt till <emphasis +>listan med aktiva &kde;-bibliotek</emphasis +> i systemet. Vi använder</member> + <member +><filename class="directory" +>/usr/local/kde</filename +>:<filename class="directory" +>/opt/kde3</filename +></member> + <member +>bara som ett exempel.</member> + <member +>Katalogen <filename class="directory" +>/usr/local/kde</filename +> kan till exempel innehÃ¥lla en ofullständig &kde;-version som du kompilerat i avlusningssyfte, och katalogen <filename class="directory" +>/opt/kde3</filename +> innehÃ¥ller dessutom den vanliga &kde;-versionen frÃ¥n distributionen som används för dagligt arbete.</member> +</simplelist +></note> + +<para +>I ett tcsh-skal mÃ¥ste du ställa in miljövariablerna genom att använda: </para> +<informalexample +><simplelist +><member +><prompt +>~> </prompt +> <userinput +>setenv KDEDIRS /usr/local/kde:/opt/kde3</userinput +> </member +></simplelist +></informalexample> +<para +>Kommandot <command +>kbuildsycoca</command +> (<quote +>bygg systemkontrollcache</quote +>) söker efter bibliotek och lagrar deras plats och version i en cache, sÃ¥ att &tdevelop; kan hitta dem. Problemet är att det tar märkbart med tid, och mÃ¥ste köras varje gÃ¥ng du använder skalet för att starta &tdevelop; med en annan installationskatalog än standardkatalogen. Du skulle kunna skriva in ovanstÃ¥ende kommandon i ett skalskript för att reducera ansträngningen att skriva in det. </para> +<para +>(Du skulle ocksÃ¥ kunna skriva in raderna i filen <filename +>.bashrc</filename +> eller <filename +>.cshrc</filename +>, men det är inte önskvärt eftersom dÃ¥ körs <command +>kbuildsycoca</command +> varje gÃ¥ng du använder skalet.) </para> + +<note +><para +>Kommandot <command +>kbuildsycoca</command +> kör inte för systemadministratören. Du mÃ¥ste anropa det som en annan användare. (Men det är <emphasis +>inte en särskild god idé</emphasis +> att utveckla programvara som systemadministratör!) </para +></note> +</sect3 +> <!-- compile-and-install-options-dir --> + +<!-- ### put a sect3 with other configuration options here --> + +</sect2 +> <!-- compile-and-install-options --> + +</sect1 +> <!-- compile-and-install --> + +<sect1 id="make-api"> +<title +>Hur man skaffar dokumentation av programmeringsgränssnittet för &tdevelop;</title> + +<indexterm zone="make-api"> + <primary +>programmeringsgränssnitt</primary> + <secondary +>&tdevelop;</secondary +></indexterm> +<indexterm zone="make-api"> + <primary +>&tdevelop;</primary> + <secondary +>programmeringsgränssnitt</secondary +></indexterm> +<indexterm zone="make-api"> + <primary +>kompilera</primary> + <secondary +>&tdevelop;</secondary> + <tertiary +>programmeringsgränssnitt</tertiary +></indexterm> +<indexterm zone="make-api"> + <primary +>anpassa</primary> + <secondary +>Programmeringsgränssnitt i &tdevelop;</secondary +></indexterm> + +<para +>Programmeringsgränssnittet, <quote +>Application Program Interface</quote +> pÃ¥ engelska, ofta förkortat API, innehÃ¥ller i själva verket en följd av beskrivningar (dvs. anropsmodeller) som ett program kan använda för att komma Ã¥t operativsystem och andra tjänster. I vÃ¥rt fall har dock en mer omfattande definition använts. Programmeringsgränssnittet för ett &kde;- eller &Qt;-program är en sammanfattning av klasser och metodgränssnitt, en översikt som kan användas som uppslagsbok för navigation i källkoden. </para> +<para +>Det finns en version av det senaste programmeringsgränssnittet pÃ¥ <ulink url="http://www.tdevelop.org/HEAD/doc/api/html/index.html" +> KDevelops hemsida</ulink +>. Den uppdateras automatiskt varje dygn sÃ¥ att du kan hänga med. </para> +<para +>Tyvärr används den här versionen bäst för att bara läsa via Internet. Om du inte alltid är uppkopplad, kan du lika väl bygga din egen dokumentation av programmeringsgränssnittet frÃ¥n källkoden för &tdevelop;. För att göra det, mÃ¥ste du tala om det för automake-systemet var KDELIBS programmeringsgränssnitt finns pÃ¥ din dator. Det kan Ã¥stadkommas med den särskilda väljaren <option +>--with-tdelibsdoxy-dir</option +> i kommandot <command +>configure</command +> när du förbereder kompilering av källkoden för &tdevelop;. </para> + +<informalexample +><simplelist> + <member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>./configure --</userinput +>(vanliga väljare)<userinput +> \</userinput +> </member> + <member> + <userinput +>--with-tdelibsdoxy-dir=$KDEDIR/share/doc/HTML/en/tdelibs-apidocs</userinput> + </member> +</simplelist +></informalexample> + +<para +>(<command +>make</command +> ersätter den globala variabeln <varname +>$KDEDIR</varname +> med den verkliga inställningen av &kde;-katalogen som finns där). Utför sedan kommandot <command +>make</command +> <link linkend="compile-and-install-make-basic" +>som vanligt</link +>. Efter att den integrerade utvecklingsmiljön &tdevelop; har byggts, har du möjlighet att ocksÃ¥ bygga programmeringsgränssnittet. För att göra det mÃ¥ste du skriva: </para> +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make apidocs</userinput +> </member +></simplelist +></informalexample> + +<para +>Detta bygger en <filename +>Doxyfile</filename +> i baskatalogen för &tdevelop;, som i sin tur behandlas av programmet <application +>Doxygen</application +> för att skapa en hel del <filename +>.html</filename +>-filer för programmeringsgränssnittet. När den ganska lÃ¥nga byggprocessen (den kan ta mer än en timme pÃ¥ en lÃ¥ngsam dator) av programmeringsgränssnittet till sist är klar, mÃ¥ste du installera programmeringsgränssnittet precis som du mÃ¥ste installera själva den integrerade utvecklingsmiljön &tdevelop;. Skaffa rättigheter som systemadministratör om det behövs med: </para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>su</userinput +> </member +></simplelist +></informalexample> + +<para +>och ange systemadministratörens lösenord. Installera sedan dokumentationsfilerna: </para> + +<informalexample +><simplelist +><member +><prompt +>~/kde3src/tdevelop> </prompt +> <userinput +>make install-apidox</userinput +> </member +></simplelist +></informalexample> + +<para +>När det här väl är gjort, informerar <command +>make</command +> dig om katalogen där du till sist kan titta pÃ¥ innehÃ¥llet i dokumentationen av programmeringsgränssnittet. Observera adressen, eftersom du kan använda den frÃ¥n &konqueror; samt inne i &tdevelop;, om du har ställt in den egna källkoden för &tdevelop; som projektet att arbeta med. </para> + +<note +><para +>Du ser troligen en mängd varningar och/eller felmeddelanden under tiden programmeringsgränssnittet byggs av <application +>Doxygen</application +>. Det är bäst att ignorera dem. De är bara av intresse för utvecklare av &tdevelop;. Om programmeringsgränssnittet väl skapats med lyckat resultat, blir dess <filename +>.html</filename +>-filer användbara. </para +></note> + +</sect1 +> <!-- make-api --> + +</appendix +> <!-- tdevelop-install --> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-mdi-mode.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-mdi-mode.png Binary files differnew file mode 100644 index 00000000000..e5c96acd7f4 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-mdi-mode.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-scripting.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-scripting.docbook new file mode 100644 index 00000000000..440fcd758ac --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-scripting.docbook @@ -0,0 +1,74 @@ +<chapter id="tdevelop-scripting"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Ian</firstname +><surname +>Geiser</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Använda skript med KDevelop</title> + +<sect1 id="running-scripts"> +<title +>Köra skript</title> +<para +>För att komma Ã¥t ett skript som är tillgängligt i &tdevelop;, använd menyn <menuchoice +><guimenu +>Verktyg</guimenu +> <guimenuitem +>Skript</guimenuitem +></menuchoice +>. Om det inte finns nÃ¥gon sÃ¥dant menyalternativ finns inga tillgängliga skript installerade i KDevelop. </para> +</sect1> + +<sect1 id="adding-scripts"> +<title +>Lägga till skript</title> +<para +>När du väl har lagt till Kskript-stöd i ditt värdprogram är det lika lätt att lägga till skript. Skripten bestÃ¥r av tvÃ¥ delar, en skrivbordsfil som innehÃ¥ller metadata om skriptet och själva skriptet. Den här infallsvinkeln användes av säkerhets- och enkelhetsskäl. Skrivbordsfilen tillhandahÃ¥ller metainformation för menyer och skripttypen. Det förhindrar att värdprogrammet mÃ¥ste inspektera varje skript vid laddning. Ett exempel pÃ¥ filen visas nedan: </para> +<para +>OvanstÃ¥ende exempel demonstrerar huvuddelarna som Kskript tittar efter. Den första posten, "Name", är namnet som visas för användaren i värdprogrammet och "Comment" visas oftast som verktygstips. Den viktigaste posten är "Type". Den används för att välja riktigt skriptgränssnitt för att köra skriptet. För närvarande är "ShellScript/bash" och "JavaScript/kjs" tillgängliga i KDE. Nästa steg är att skapa själva skriptet. För exemplet ovan är skripttypen som används "ShellScript/bash". Skalskriptgränssnittet tillhandahÃ¥ller nÃ¥gra saker Ã¥t utvecklaren. Det första elementet är värdprogrammets DCOP-identifikation. Den skickas som första argumentet till skriptet. Det betyder att var som helst i skriptet returnerar värdet "$1" värdprogrammets DCOP-identifikation. Ett exempel pÃ¥ ett skalskript visas nedan: </para> + +<para +>Skriptet är mycket enkelt och kör bara ett kommando och sätter texten i det första dokumentet till utmatningen frÃ¥n "ls -l".</para> + +<para +>Ett av de mest användbara verktygen när skript för program utvecklas, är programmet KDCOP.</para> +<figure id="screenshot-kdcop" float="1"> + <title +>KDCOP DCOP-bläddringsgränssnitt i &tdevelop;</title> + <mediaobject> + <imageobject +><imagedata fileref="kdcop_browsing.png"/></imageobject> + </mediaobject> +</figure> + +<para +>KDCOP-verktyget lÃ¥ter skriptutvecklare bläddra och avlusa värdprogrammets nuvarande gränssnitt. KDCOP tillhandahÃ¥ller ocksÃ¥ en trevlig funktion som lÃ¥ter användare markera en metod och dra nuvarande kod till en texteditor. Det förenklar användning för de som inte hajar DCOP-metoderna i värdsprÃ¥ket. För närvarande stöder KDCOP metoderna KJSEmbed, Python och Unix-skal för att komma Ã¥t DCOP.</para> + +<para +>När skriptet väl är färdigt, är det klart att installeras. Programutvecklare bör dokumentera platsen som avsöks efter skript. I ovanstÃ¥ende exempel för Kate, är skripten placerade i "$KDEDIRS/share/apps/kate/scripts".</para> + +<figure id="screenshot-scripts" float="1"> + <title +>&tdevelop;-skript i filsystemet</title> + <mediaobject> + <imageobject +><imagedata fileref="script_location.png"/></imageobject> + </mediaobject> +</figure> + +<para +>Skriptets skrivbordsfil, och tillhörande skript ska vara i samma katalog. För skriptutvecklare rekommenderas ocksÃ¥ att alla andra skriptresurser som UI-filer eller datafiler ocksÃ¥ finns i skriptkatalogen. I ovanstÃ¥ende exempel visas skriptet i menyn Verktyg -> KDE-skript. En viktig sak att notera för skriptutvecklare, är att de inte ska utföra Ã¥tgärder som kan blockera körning under en lÃ¥ng tid, eller starta en händelsesnurra. Det beror pÃ¥ att den nuvarande versionen av skriptgränssnittet är anpassat för automatiserade uppgifter som kör till de är färdiga. Detta hanteras och utökas för KDE 4. </para> + +</sect1> + + +</chapter> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-survey.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-survey.docbook new file mode 100644 index 00000000000..deab4fb87f9 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-survey.docbook @@ -0,0 +1,776 @@ +<chapter id="tdevelop-survey"> + +<chapterinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</chapterinfo> + +<title +>Översikt över funktioner i &tdevelop;</title> + +<indexterm zone="tdevelop-survey"> + <primary +>&tdevelop;</primary> + <secondary +>översikt</secondary +></indexterm> +<indexterm zone="tdevelop-survey"> + <primary +>Översikt</primary +></indexterm> +<indexterm zone="tdevelop-survey"> + <primary +>översikt</primary +></indexterm> + +<para +>&tdevelop; integrerar mÃ¥nga verktyg, skript och mallar med ett gemensamt användargränssnitt. De grundläggande delarna är <itemizedlist> + <listitem +><para +>flera <link linkend="uimodes-survey" +>lägen för användargränssnittet</link +> som du kan använda för att välja arbetsomrÃ¥dets utseende och känsla, </para +></listitem> + <listitem +><para +>en <link linkend="applicationwizard" +>programguide</link +>, som hjälper dig ställa in ett nytt projekt, </para +></listitem> + <listitem +><para +>flera <link linkend="makesystems" +>system för projekthantering</link +>, som hjälper till att bygga och hantera projektet, </para +></listitem> + <listitem +><para +>nÃ¥gra <link linkend="editing" +>redigeringsverktyg</link +> för att enkelt kunna arbeta med programtexten, </para +></listitem> + <listitem +><para +>diverse <link linkend="file-browsers" +>filbläddrare</link +>, som ger dig olika vyer av filsystemet, </para +></listitem> + <listitem +><para +>diverse <link linkend="class-browsers" +>klassbläddrare</link +> för att hjälpa dig underhÃ¥lla klasser och deras förhÃ¥llanden i ett objektorienterat programmeringsprojekt, </para +></listitem> + <listitem +><para +>ett <link linkend="debugger" +>avlusningsgränssnitt</link +> för att hitta och ta bort programfel inifrÃ¥n &tdevelop;, och </para +></listitem> + <listitem +><para +>flera <link linkend="plugin-tools" +>insticksverktyg</link +>, utökningsbara moduler, eller delprogram, som laddas när programmet kör och vid behov. Det gör det möjligt för dig att bara aktivera de funktioner som du verkligen behöver. </para +></listitem> + <listitem +><para +>en uppsättning andra diagnos-, dokumentations- och optimeringsverktyg. </para +></listitem> +</itemizedlist> +</para> + +<note> + <para +>Det finns i själva verket tre &tdevelop;-baserade program: </para> + <itemizedlist> + <listitem +><para +>Den integrerade utvecklingsmiljön &tdevelop;: Det här är platsen där du oftast arbetar.</para +></listitem> + <listitem +><para +>Den fristÃ¥ende dokumentationsbläddraren &tdevelop; assistent: Isolerar alla kraftfulla dokumentationsfunktioner i utvecklingsmiljön &tdevelop; i ett separat verktyg. Det här är praktiskt när du vill slÃ¥ upp nÃ¥gon programmeringsdokumentation, men inte vill starta den fullständiga utvecklingsmiljön.</para +></listitem> + <listitem +><para +>&tdevelop; Designer: Utökar &Qt; Designer för grafiska gränssnitt med element specifika för &kde; och integreras pÃ¥ ett bra sätt i utvecklingsmiljön &tdevelop;.</para +></listitem> + </itemizedlist> +</note> + + +<sect1 id="uimodes-survey"> +<title +>Tillgängliga lägen för användargränssnitt</title> + +<indexterm zone="uimodes-survey"> + <primary +>&tdevelop;</primary> + <secondary +>lägen för användargränssnitt</secondary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>användargränssnitt</primary> + <secondary +>Lägen i &tdevelop;</secondary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>Gränssnittslägen</primary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>Underramsfönster</primary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>Fliksidor</primary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>ToppnivÃ¥fönster</primary +></indexterm> +<indexterm zone="uimodes-survey"> + <primary +>IDEA-fönster</primary +></indexterm> + +<para +>&tdevelop; erbjuder fyra olika gränssnittslägen (klicka pÃ¥ lägesnamnet för att se ett exempel): <itemizedlist> + <listitem +><para +><link linkend="ideal-desc" +>IDEA-fönster</link +></para> + <para +>Det här är ett nytt sorts användargränssnitt som bÃ¥de optimerar arbetsutrymmet och ger en intuitiv användning av verktygen. </para> + <itemizedlist> + <listitem +><para +>Alla verktygsfönster är dockade som en flikrad omkring huvudramens omrÃ¥de. De är grupperade till vänster, längst ner och till höger enligt de tjänster de erbjuder. </para +></listitem> + <listitem +><para +>Editor- och bläddrarfönster överlagras i ett stort fönster med flikar mitt i huvudramens omrÃ¥de. </para +></listitem> + </itemizedlist> + </listitem> + + <listitem> + <para +><link linkend="mdi-desc" +>Underramsfönster</link +></para> + <itemizedlist> + <listitem +><para +>Alla verktygsvyer är frÃ¥n början dockade i huvudramen.</para +></listitem> + <listitem +><para +>Editor- och bläddrarfönster existerar som toppnivÃ¥fönster inne i ett vyomrÃ¥de i huvudramen.</para +></listitem> + </itemizedlist> + </listitem> + + <listitem> + <para +><link linkend="tabbed-desc" +>Fliksidor</link +></para> + <itemizedlist> + <listitem +><para +>Alla verktygsvyer är frÃ¥n början dockade i huvudramen. </para +></listitem> + <listitem +><para +>Editor- och bläddrarfönster överlagras i ett fönster med flikar. </para +></listitem> + </itemizedlist> + </listitem> + + <listitem> + <para +><link linkend="toplevel-desc" +>ToppnivÃ¥fönster</link +></para> + <itemizedlist> + <listitem +><para +>Alla editor-, bläddrar- och verktygsfönster är toppnivÃ¥fönster direkt pÃ¥ skrivbordet. </para +></listitem> + <listitem +><para +>Huvudkomponenten innehÃ¥ller bara menyraden, verktygsrader och statusraden. </para +></listitem> + </itemizedlist> + </listitem> + +</itemizedlist> +</para> + +<sect2 id="uimodes-switch"> +<title +>Hur man byter läge för användargränssnitt</title> + +<indexterm zone="uimodes-switch"> + <primary +>användargränssnitt</primary> + <secondary +>byta läge</secondary +></indexterm> +<indexterm zone="uimodes-switch"> + <primary +>byta gränssnittsläget</primary +></indexterm> + +<para +>För att byta läge för användargränssnittet, välj <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Anpassa KDevelop...</guimenuitem +></menuchoice +> i menyraden. Dialogrutan <guilabel +>Anpassa KDevelop</guilabel +> dyker upp, där du mÃ¥ste välja <guilabel +>Användargränssnitt</guilabel +> i trädet till vänster. DÃ¥ öppnas inställningssidan som visas nedan: </para> + +<screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="select-user-interface.png" format="PNG"/> + </imageobject> + <caption +><para +>Välj ett användargränssnittsläge </para +></caption> + </mediaobject> +</screenshot> + +<para +>(Äldre versioner av &tdevelop; erbjuder bara valet ToppnivÃ¥läge.) </para> + +<para +>i rutan <guilabel +>Huvudsakligt användargränssnitt</guilabel +> välj alternativknappen för användargränssnittsläget du vill arbeta med. </para> +<para +>Beroende pÃ¥ användargränssnittsläget du valde, blir andra inställningsrutor tillgängliga där du kan skräddarsy ytterligare detaljer för utseende och känsla i dina inställningar. Se kapitlet <link linkend="setup-ui" +>Välja användargränssnitt</link +> för mer information. </para> + +<note +><para +>Glöm inte att starta om &tdevelop; för att dina val ska fÃ¥ effekt. </para +></note> + +</sect2 +> <!-- uimodes-switch --> + +<sect2 id="maximize-workspace"> +<title +>Hur man maximerar arbetsomrÃ¥det</title> + +<indexterm zone="maximize-workspace"> + <primary +>&tdevelop;</primary> + <secondary +>arbetsomrÃ¥de</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>&tdevelop;</primary> + <secondary +>maximera arbetsomrÃ¥de</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>användargränssnitt</primary> + <secondary +>arbetsomrÃ¥de</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>användargränssnitt</primary> + <secondary +>menyrad</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>användargränssnitt</primary> + <secondary +>fullskärmsläge</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>fullskärmsläge</primary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>menyrad</primary> + <secondary +>dölj/visa</secondary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>dölj menyrad</primary +></indexterm> +<indexterm zone="maximize-workspace"> + <primary +>visa menyrad</primary +></indexterm> + +<para +>Det finns ett fullskärmsläge tillgängligt för att maximera utrymmet, som expanderar huvudramens omrÃ¥de till skärmkanterna. Ytterligare utrymme kan Ã¥tertas genom att dölja menyraden. Du kan förstÃ¥s ocksÃ¥ dölja alla verktygsrader, som vanligt i <application +>KDE</application +>-program. </para> + +<variablelist> +<varlistentry> +<term +>Fullskärmsläge</term> +<listitem> +<para +>För att byta till eller frÃ¥n fullskärmsläge, välj <menuchoice +><guimenu +>Visa</guimenu +> <guimenuitem +>Fullskärmsläge</guimenuitem +></menuchoice +> i menyraden, eller tryck pÃ¥ <keycombo +>&Ctrl;&Shift;<keycap +>F</keycap +></keycombo +>. Det finns ocksÃ¥ en ikon för <guiicon +>Fullskärmsläge</guiicon +> tillgänglig i <guilabel +>Bläddringsverktygsraden</guilabel +>..</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +>Visa eller dölj menyraden</term> +<listitem> +<para +>För att <emphasis +>dölja</emphasis +> menyraden, välj <menuchoice +><guimenu +>Inställningar</guimenu +> <guimenuitem +>Visa menyrad</guimenuitem +></menuchoice +> i menyraden, eller tryck pÃ¥ <keycombo +>&Ctrl; <keycap +>M</keycap +></keycombo +>. Du kan ocksÃ¥ lägga till ikonen <guiicon +>Visa menyrad</guiicon +> pÃ¥ en lämplig verktygsrad, t.ex. <guilabel +>Bläddringsverktygsraden</guilabel +> för ändamÃ¥let. För att <emphasis +>visa</emphasis +> menyraden igen, mÃ¥ste du trycka pÃ¥ <keycombo +>&Ctrl; <keycap +>M</keycap +></keycombo +>, eller använda ikonen <guiicon +>Visa menyrad</guiicon +>, om den är tillgänglig. </para> +</listitem> +</varlistentry> +</variablelist> + +</sect2 +> <!-- maximize-workspace --> + +</sect1 +> <!-- uimodes-survey --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="ui-elements"> +<title +>Element i användargränssnittet</title> + +<para +>(... ännu inte skrivet ...) </para> + +<sect2 id="ui-elements-workarea"> +<title +>ArbetsomrÃ¥det</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- ui-elements-workarea --> + +<sect2 id="ui-elements-titlebar"> +<title +>Namnlisten i &tdevelop;</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- ui-elements-titlebar --> + +<sect2 id="ui-elements-statusbar"> +<title +>Statusraden i &tdevelop;</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- ui-elements-statusbar --> + +<sect2 id="ui-elements-menubar"> +<title +>Menyraden</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- ui-elements-menubar --> + +<sect2 id="ui-elements-toolbars"> +<title +>Verktygsraderna</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- ui-elements-toolbars --> + +<sect2 id="ui-elements-treetoolviews"> +<title +>Trädverktygsvyerna</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- ui-elements-treetoolviews --> + +<sect2 id="ui-elements-outputtoolviews"> +<title +>Utmatningsverktygsvyerna</title> + +<para +>(... ännu inte skrivet ...) </para> +</sect2 +> <!-- ui-elements-outputtoolviews --> + +</sect1 +> <!-- ui-elements --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="makesystems"> +<title +>Projekthanteringssystem</title> + +<indexterm zone="makesystems"> + <primary +>projekthantering</primary +></indexterm> + +<para +>Totalt sett beror ett projekt pÃ¥ nÃ¥gon form av projekthanteringssystem. &tdevelop; erbjuder fyra <emphasis +>projekthanteringssystem</emphasis +> som programmeraren kan välja bland när ett nytt projekt skapas. <itemizedlist> + <listitem +><para +><link linkend="automake-project" +>Automake-projekt</link +> använder de vanliga utvecklingsverktygen för &GNU;. </para +></listitem> + <listitem +><para +><link linkend="qmake-project" +>Qmake-projekt</link +> använder Trolltechs Qmake-projekthantering. </para +></listitem> + <listitem +><para +><link linkend="ant-project" +>ANT-projekt</link +> använder Apaches ANT-projekthantering för Java-utveckling. </para +></listitem> + <listitem +><para +><link linkend="custom-project" +>Eget projekt</link +> kräver att du underhÃ¥ller din egen <filename +>Makefile</filename +>. </para +></listitem> +</itemizedlist> +</para> + +<sect2 id="automake-project"> +<title +>Automake-projekt</title> + +<indexterm zone="automake-project"> + <primary +>projekt</primary> + <secondary +>automake</secondary +></indexterm> +<indexterm zone="automake-project"> + <primary +>automake</primary> + <secondary +>projekt</secondary +></indexterm> + +<para +>Projekt som skapats med Hantering av automake i &tdevelop; gör det mycket lätt för utvecklare att använda de vanliga &GNU; utvecklingsverktygen. De tillhandahÃ¥ller <itemizedlist> + <listitem +><para +>ett bättre sätt att skapa en <filename +>Makefile</filename +> och </para +></listitem> + <listitem +><para +>ett bra och säkert sätt för snabb anpassning till olika system med <filename +>configure</filename +>-skript skapade av autoconf. </para +></listitem> +</itemizedlist> +</para> +</sect2 +> <!-- automake-project --> + +<sect2 id="qmake-project"> +<title +>Qmake-projekt</title> + +<indexterm zone="qmake-project"> + <primary +>projekt</primary> + <secondary +>qmake</secondary +></indexterm> +<indexterm zone="qmake-project"> + <primary +>qmake</primary> + <secondary +>projekt</secondary +></indexterm> + +<para +>För utvecklare som glädjer sig Ã¥t flexibiliteten och känslan i &Qt;:s qmake-system, erbjuder &tdevelop; möjlighet att hantera qmake-baserade projekt (.pro-filer) inne i det grafiska gränssnittet. </para> +<para +>För mer information om Qmake-projekthantering se <citetitle +>Qmake User Guide</citetitle +>, som ska finnas med i distributionen, eller ta en titt pÃ¥ hemsidan <ulink url="http://doc.trolltech.com/" +>Trolltech Documentation</ulink +> där du hittar Qmake-dokumentationen under <quote +>Qt C++ GUI Application Development Toolkit</quote +>. </para> +</sect2 +> <!-- qmake-project --> + +<sect2 id="cmake-project"> +<title +>CMake-projekt</title> + +<indexterm zone="cmake-project"> + <primary +>projekt</primary> + <secondary +>cmake</secondary +></indexterm> +<indexterm zone="cmake-project"> + <primary +>cmake</primary> + <secondary +>projekt</secondary +></indexterm> + +<para +>CMake kommer att vara &kde;:s byggsystem för &kde; 4 och &tdevelop; tillhandahÃ¥ller redan nÃ¥gra mallar baserade pÃ¥ CMake för C och C++. Du behöver bara programmet cmake i $<envar +>PATH</envar +> för att bygga dem. </para> +<para +>För att ställa in ett nytt C eller C++ projekt i &tdevelop; välj <menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +>Nytt projekt...</guimenuitem +> <guimenuitem +>C eller C++</guimenuitem +> <guimenuitem +>CMake-baserade projekt</guimenuitem +> <guimenuitem +>En mall för delat bibliotek eller Hello world program</guimenuitem +> </menuchoice +>. </para> +</sect2 +> <!-- cmake-project --> + +<sect2 id="ant-project"> +<title +>ANT-projekthantering (&Java;-projekt)</title> + +<indexterm zone="ant-project"> + <primary +>projekt</primary> + <secondary +>ant</secondary +></indexterm> +<indexterm zone="ant-project"> + <primary +>ant</primary> + <secondary +>projekt</secondary +></indexterm> +<indexterm zone="ant-project"> + <primary +>projekt</primary> + <secondary +>Java</secondary +></indexterm> +<indexterm zone="ant-project"> + <primary +>Java</primary> + <secondary +>projekt</secondary +></indexterm> +<indexterm zone="ant-project"> + <primary +>utveckling</primary> + <secondary +>Java</secondary +></indexterm> + +<para +>&Java;-utvecklare kan vilja använda Apaches ANT-projekthantering för sina projekt. För att skapa ett nytt ANT-projekt i &tdevelop;, välj <menuchoice +><guimenu +>Projekt</guimenu +> <guimenuitem +>Nytt projekt...</guimenuitem +> <guimenuitem +>Java</guimenuitem +> <guimenuitem +>Ant project</guimenuitem +> <guimenuitem +>Application</guimenuitem +></menuchoice +>. </para> +<para +>För mer information se <ulink url="http://ant.apache.org/" +>Ant-projektets hemsida</ulink +>. </para> +</sect2 +> <!-- ant-project --> + +<sect2 id="custom-project"> +<title +>Eget projekt</title> + +<indexterm zone="custom-project"> + <primary +>projekt</primary> + <secondary +>eget</secondary +></indexterm> +<indexterm zone="custom-project"> + <primary +>eget projekt</primary +></indexterm> +<indexterm zone="custom-project"> + <primary +>Makefile</primary> + <secondary +>eget projekt</secondary +></indexterm> + +<para +>Om du föredrar att underhÃ¥lla din egen <filename +>Makefile</filename +> för projektet, kan du använda alternativet med ett eget projekt i &tdevelop;. Det kan vara passande i projekt med ovanlig struktur, eller om du vill behÃ¥lla fullständig kontroll över byggprocessen. </para> +<para +>Om du ändÃ¥ inte <emphasis +>verkligen behöver</emphasis +> den egna projekthanteringens extra flexibilitet och kontroll, bör du fundera pÃ¥ Hantering av automake eller nÃ¥gon annan projekthantering, eftersom de förenklar bygg- och distributionsprocessen för program väsentligt. </para> +</sect2 +> <!-- custom-project --> + +<sect2 id="makesystems-distribution"> +<title +>Hur du kan distribuera ditt program</title> + +<indexterm zone="makesystems-distribution"> + <primary +>distribution</primary +></indexterm> +<indexterm zone="makesystems-distribution"> + <primary +>program</primary> + <secondary +>distribution</secondary +></indexterm> +<indexterm zone="makesystems-distribution"> + <primary +>binärpaket</primary +></indexterm> + +<para +>Distributionen av ditt program kräver inte att slutanvändaren har installerat nÃ¥got ytterligare än <itemizedlist> + <listitem +><para +>en lämplig kompilator,</para +></listitem> + <listitem +><para +>en länkare, och</para +></listitem> + <listitem +><para +>de lämpliga utvecklingsbiblioteken,</para +></listitem> +</itemizedlist> +</para> +<para +>vilket Ã¥tminstone för C++ program oftast är fallet. Men du kan lika väl distribuera <emphasis +>binärpaket</emphasis +> av programmet. Hur som helst, behöver inte slutanvändaren av produkten installera &tdevelop;. </para> +<para +>Om du ger bort din källkod, rÃ¥der vi dig att ocksÃ¥ ta med <emphasis +>projektfilen</emphasis +> för &tdevelop;. Det gör det mycket enkelt för andra utvecklare, om de använder &tdevelop;, att arbeta med källkoden. </para> +<para +>För projekt där <emphasis +>flera utvecklare</emphasis +>, som kanske arbetar pÃ¥ olika ställen, är inblandade, bör detta vara fallet ändÃ¥. Du kan försäkra dig om överensstämmelse för alla <filename +>Makefile</filename +>, för att inte rÃ¥ka ut för bekymmer. </para> +<para +>Särskilt för program med flera sprÃ¥k, arbetar inte <emphasis +>översättare</emphasis +> direkt med källkoden, utom i fall som kräver rättning för att göra det möjligt med översättningsstöd. </para> + +</sect2 +> <!-- makesystems-distribution --> + +</sect1 +> <!-- makesystems --> + +</chapter +> <!-- tdevelop-survey --> diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-tabbed-mode.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-tabbed-mode.png Binary files differnew file mode 100644 index 00000000000..3bddfeeb645 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-tabbed-mode.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-toplevel-mode.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-toplevel-mode.png Binary files differnew file mode 100644 index 00000000000..5f18608af0d --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tdevelop-toplevel-mode.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-new.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-new.png Binary files differnew file mode 100644 index 00000000000..ba95f0e8585 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-new.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-options.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-options.png Binary files differnew file mode 100644 index 00000000000..4a6d75bd5ea --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-hello-options.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-new-project.png b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-new-project.png Binary files differnew file mode 100644 index 00000000000..fbe64295eab --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/tutorial-new-project.png diff --git a/tde-i18n-sv/docs/tdevelop/tdevelop/unixdev.docbook b/tde-i18n-sv/docs/tdevelop/tdevelop/unixdev.docbook new file mode 100644 index 00000000000..be8d66dbc9b --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tdevelop/unixdev.docbook @@ -0,0 +1,641 @@ +<appendix id="unixdev"> + +<appendixinfo> + <authorgroup> + <author +><firstname +>Bernd</firstname +><surname +>Pol</surname +></author> + <!-- ROLES_OF_TRANSLATORS --> + </authorgroup> +</appendixinfo> + +<title +>Utveckling pÃ¥ &UNIX;</title> + +<indexterm zone="unixdev" +><primary +>utveckling</primary +></indexterm> +<indexterm zone="unixdev"> + <primary +>&UNIX;</primary> + <secondary +>utveckling</secondary +></indexterm> + +<sect1 id="history"> +<title +>NÃ¥gra historiska anmärkningar</title> + +<indexterm zone="history" +><primary +>historia</primary +></indexterm> +<indexterm zone="history" +><primary +>skriptsprÃ¥k</primary +></indexterm> +<indexterm zone="history"> + <primary +>&UNIX;</primary> + <secondary +>historia</secondary +></indexterm> +<indexterm zone="history"> + <primary +>&UNIX;</primary> + <secondary +>rörledning</secondary +></indexterm> +<indexterm zone="history"> + <primary +>&UNIX;</primary> + <secondary +>skal</secondary +></indexterm> +<indexterm zone="history"> + <primary +>skal</primary> + <secondary +>&UNIX;</secondary +></indexterm> + +<para +>FrÃ¥n början har &UNIX; upprätthÃ¥llit tvÃ¥ mycket olika utvecklingsmodeller. Den ena är sfären av programsprÃ¥k för <emphasis +>system och tillämpningar</emphasis +>, där en källkod översätts till maskinkod med en <emphasis +>kompilator</emphasis +> eller <emphasis +>tolk</emphasis +>. ProgramsprÃ¥ket C är ett exempel pÃ¥ detta. Unix var den första operativsystemkärnan som skrevs i ett högnivÃ¥sprÃ¥k istället för maskinnära assembler, som var vanligt innan dess. (I själva verket uppfanns till och med sprÃ¥ket C för att skriva Unix-kärnan, och tillhörande program, pÃ¥ en DEC PDP-11 dator.) </para> +<para +>Den andra modellen är sfären med <emphasis +>skriptsprÃ¥k</emphasis +>, som startade med uppfinningen av &UNIX;-skalet, som samtidigt var operativsystemets användargränssnitt, och ett programsprÃ¥k pÃ¥ mycket hög nivÃ¥. Ett skalskript byggs upp av en mängd smÃ¥ verktyg som t.ex. <command +>grep</command +>, <command +>sed</command +> eller <command +>find</command +>. Varje sÃ¥dant verktyg är konstruerat för en väl avgränsad uppgift. Tricket är att alla sÃ¥dana verktyg kan kopplas ihop med varandra via en enkel överföringsmekanism, kallat <emphasis +>rörledning</emphasis +>, som skickar utmatningen frÃ¥n föregÃ¥ende verktyg till inmatningen för nästa. Det ger grunden till en mycket kraftfull och flexibel programmeringsmetod. </para> +<para +>Med tiden har bÃ¥da sfärerna utvecklats. Medan C fortfarande i huvudsak används som ett systemprogramsprÃ¥k, har C++, som en variant av C berikad med objektorienterade och generiska utökningar, funnit sin plats vid utveckling av komplexa program under 1990-talet. Det finns mÃ¥nga andra programsprÃ¥k, till och med äldre behÃ¥ller sin plats. FORTRAN77 och Ada har t.ex. fortfarande sina fästen i numeriska tillämpningar. </para> +</sect1 +> <!-- history --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="unixdev-scripting-languages"> +<title +>Moderna skriptsprÃ¥k</title> +<para +>I skriptomrÃ¥det har det skett ett skifte bort frÃ¥n skalet, som lider av flyttbarhetsproblem, till sprÃ¥k som samlar alla vanliga funktioner i standardbibliotek, medan de fortfarande kan ha gränssnitt mot omvärlden via rörledningar när det behövs. </para> +<para +>Alla skriptsprÃ¥k har gemensamt att de ofta är flyttbara mellan mÃ¥nga &UNIX;-varianter, &Microsoft; &Windows;, &MacOS; eller till och med VMS. Dessutom har de alla implementeringar som kan distribueras fritt. </para> + +<sect2 id="unixdev-SL-Perl"> +<title +>&perl;</title> + +<indexterm zone="unixdev-SL-Perl" +><primary +>Perl</primary +></indexterm> +<indexterm zone="unixdev-SL-Perl"> + <primary +>skriptsprÃ¥k</primary> + <secondary +>Perl</secondary +></indexterm> + +<para +><ulink url="http://www.perl.com" +>&perl;</ulink +> har blivit populärt som textbehandlings- och systemadministrationssprÃ¥k. FrÃ¥n starten av webben användes CGI-skript skrivna i &perl; som ett utbrett sätt att skapa dynamiska webbsidor frÃ¥n databaser. Idag har den metoden ofta ersatts med insticksprogrammet <command +>mod_perl</command +> för webbservern &apache;. Bland &perl;s styrkor är dess inbyggda stöd för avancerade reguljära uttryck, och rika arkiv med fritt distribuerade moduler. </para> +<para +>För mer information se webbplatsen <ulink url="http://cpan.org" +>Comprehensive Perl Archive Network (<acronym +>CPAN</acronym +>)</ulink +>. </para> +</sect2 +> <!-- unixdev-SL-Perl --> + +<sect2 id="unixdev-SL-Python"> +<title +>Python</title> + +<indexterm zone="unixdev-SL-Python" +><primary +>Python</primary +></indexterm> +<indexterm zone="unixdev-SL-Python"> + <primary +>skriptsprÃ¥k</primary> + <secondary +>Python</secondary +></indexterm> + +<para +><ulink url="http://www.python.org" +>&python;</ulink +> glänser med elegansen i sitt klassystem och enkelheten och flexibiliteten som yttre bibliotek kan förpackas, pÃ¥ sÃ¥ sätt att de förefaller vara standardklasser och -funktioner i &python;. I motsats till &perl;, har &python; ett klart och koncist inbäddningsgränssnitt, som gör det till bästa val för att möjliggöra skript för C och C++ program. </para> +</sect2 +> <!-- unixdev-SL-Python --> + +<sect2 id="unixdev-SL-PHP"> +<title +>PHP</title> + +<indexterm zone="unixdev-SL-PHP" +><primary +>PHP</primary +></indexterm> +<indexterm zone="unixdev-SL-PHP"> + <primary +>skriptsprÃ¥k</primary> + <secondary +>PHP</secondary +></indexterm> + +<para +><ulink url="http://www.php.net" +>&php;</ulink +> uppfanns som ett sprÃ¥k för direkt inbäddning pÃ¥ HTML-sidor, och har av den orsaken huvudanvändningen att leverera dynamisk innehÃ¥ll för webben. </para> +</sect2 +> <!-- unixdev-SL-PHP --> +</sect1 +> <!-- unixdev-scripting-languages --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> +<sect1 id="unixdev-hl-script"> +<title +>HögnivÃ¥skript</title> + +<para +>HögnivÃ¥program i &UNIX; saknar ofta snabbheten och flexibiliteten hos de traditionella teckenbaserade skalskriptmekanismerna. Det är särskilt sant i de grafiska gränssnittens värld, som t.ex. &kde;. </para> +<para +>Försök har gjorts att tillhandahÃ¥lla liknande mekanismer som fungerar pÃ¥ en högre programnivÃ¥, bland de mest nämnvärda är <link linkend="unixdev-corba" +>CORBA</link +>, och i &kde;-miljön, <link linkend="unixdev-dcop" +>&DCOP;</link +>. </para> + +<sect2 id="unixdev-corba"> +<title +>CORBA-protokollet</title> + +<indexterm zone="unixdev-corba" +><primary +>CORBA</primary +></indexterm> +<indexterm zone="unixdev-corba"> + <primary +>skriptsprÃ¥k</primary> + <secondary +>CORBA</secondary +></indexterm> +<indexterm zone="unixdev-corba"> + <primary +>kommunikation</primary> + <secondary +>CORBA</secondary +></indexterm> + +<para +><ulink url="http://www.omg.org/gettingstarted/corbafaq.htm" +>CORBA</ulink +> (<emphasis +>Common Object Request Broker Architecture</emphasis +>) är ett försök att lÃ¥ta datorprogram arbeta tillsammans via nätverk. Det togs fram av den privata, leverantörsoberoende kommittén <ulink url="http://www.omg.org" +>OMG</ulink +> (Object Management Group). </para> +<para +>CORBA-baserade program använder IIOP-standardprotokollet för att kommunicera. Implementeringar baserade pÃ¥ IIOP är tillgängliga för ett stort antal operativsystem, programsprÃ¥k och nätverk, och är därför mycket flyttbara. </para> +<para +>Den huvudsakliga nackdelen med CORBA är dess ganska lÃ¥ngsamma hastighet. Även om det kan tolereras i nätverk, är det ett verkligt hinder för kommunikation mellan program i en miljö utan nätverk, sÃ¥som &kde; när det kör pÃ¥ en enda dator. </para> + +</sect2 +> <!-- unixdev-corba --> + +<sect2 id="unixdev-dcop"> +<title +>&DCOP;-gränssnittet</title> + +<indexterm zone="unixdev-dcop" +><primary +>DCOP</primary +></indexterm> +<indexterm zone="unixdev-dcop"> + <primary +>skriptsprÃ¥k</primary> + <secondary +>DCOP</secondary +></indexterm> +<indexterm zone="unixdev-dcop"> + <primary +>kommunikation</primary> + <secondary +>DCOP</secondary +></indexterm> + +<para +>En annan evolution av &UNIX;-liknande skript är <ulink url="http://developer.kde.org/documentation/library/kdeqt/dcop.html" +><emphasis +>DCOP</emphasis +></ulink +>-protokollet, som uppfanns för kommunikation mellan &kde;-program för att bemästra CORBA:s begränsningar. </para> +<para +>&DCOP; betyder <emphasis +>Desktop COmmunikation Protocol</emphasis +> (protokollet för skrivbordskommunikation), och är implementerat som en enkel IPC/RPC-mekanism byggd för att fungera via uttag. Sluteffekten är att erbjuda funktioner som liknar den traditionella rörledningsmekanismen i &UNIX;. </para> +<para +>Traditionella skalskript är baserade pÃ¥ ganska smÃ¥ programverktyg, som konstruerades för att enbart fungera baserade pÃ¥ ren text. &DCOP; tillÃ¥ter att avancerade grafiska program kommunicerar med varandra pÃ¥ ett motsvarande sätt. Det gör det till exempel möjligt för ett &kde;-program att skicka meddelanden till ett annat &kde;-program, eller ta emot data frÃ¥n det för sitt eget syfte. </para> +<para +>Det finns dock nackdelar. För att använda &DCOP;, mÃ¥ste programmet vara konstruerat med ett speciellt &DCOP;-gränssnitt. Dessutom gÃ¥r &DCOP;-kommunikationsprocessen nÃ¥got lÃ¥ngsamt (även om den är mycket snabbare än CORBA). ÄndÃ¥ sÃ¥ Ã¥terger det mycket av styrkan och flexibiliteten i &UNIX;-skript till högnivÃ¥program som är baserade pÃ¥ ett grafiskt användargränssnitt. </para> +<para +>För ytterligare information, se artikeln <ulink url="http://developer.kde.org/documentation/library/kdeqt/dcop.html" +>DCOP: Desktop COmmunications Protocol</ulink +> eller <ulink url="developer.kde.org/documentation/library/cvs-api/dcop/html/index.html" +>The DCOP Desktop Communication Protocol library</ulink +>, dokumentation av användargränssnittet för &kde;:s DCOP-bibliotek. </para> +</sect2 +> <!-- unixdev-dcop --> + +</sect1 +> <!-- unixdev-hl-script --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="unixdev-buildsystems"> +<title +>Byggsystem</title> + +<para +>Utom i mycket enkla fall, kommer ett programmeringsprojekt att bestÃ¥ av mÃ¥nga byggblock med källkod, vart och ett placerat i en enskild fil för enklare underhÃ¥ll. För att fÃ¥ allt att köra, mÃ¥ste man effektivt kunna översätta allt detta till nÃ¥gra fÃ¥ maskinkodsenheter med lämpligt format, som gör att operativsystemet kan ladda och köra programmet. </para> +<para +>För att Ã¥stadkomma detta, är de grundläggande verktyg som behövs: <itemizedlist> + <listitem +><para +>en <emphasis +>texteditor</emphasis +> för att skriva källkodsfilerna, </para +></listitem> + <listitem +><para +>ett översättningsprogram, oftast en <emphasis +>kompilator</emphasis +> för att omvandla källkoden till objektfiler, </para +></listitem> + <listitem +><para +>ett <emphasis +>biblioteksprogram</emphasis +> som samlar objektfiler i bibliotek, som enkelt kan Ã¥teranvändas utan att behöva kompileras om, </para +></listitem> + <listitem +><para +>en <emphasis +>länkare</emphasis +>, som binder ihop flera objektfiler och bibliotek till ett körbart program, </para +></listitem> + <listitem +><para +>ett <emphasis +>byggsystem</emphasis +>, som erbjuder nÃ¥got sätt att hantera allt detta, och inte att förglömma, </para +></listitem> + <listitem +><para +>en <emphasis +>avlusare</emphasis +> för att (förhoppningsvis) hitta alla fel i programmet, och möjligen ytterligare diagnosverktyg för att fÃ¥ allt att köra smidigt. </para +></listitem> +</itemizedlist> +</para> + +<para +>När man har ett stort projekt, som kan bestÃ¥ av upp till hundratals källkodsfiler, kan kompileringsprocessen bli riktigt arbetsintensiv. Man vill inte kompilera om alla filer varje gÃ¥ng nÃ¥gra av dem har ändrats. Istället vill man bara kompilera om de filer som pÃ¥verkas av ändringen. I allmänhet är det inte alltid helt uppenbart vilka av filerna som mÃ¥ste kompileras om. </para> +<para +>När t.ex. en funktionsprototyp i en deklarationsfil ändras, mÃ¥ste alla filer som beror pÃ¥ deklarationsfilen kompileras om. Om projektet innehÃ¥ller mÃ¥nga sÃ¥dana filer kan man enkelt missa en eller tvÃ¥ av dem om arbetet mÃ¥ste göras för hand. Därför behövs nÃ¥gon form av automatisering. </para> + +<sect2 id="unixdev-buildsystems-make"> +<title +>Byggprocessen</title> + +<indexterm zone="unixdev-buildsystems-make"> + <primary +>bygg</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>Makefile</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>regel</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>omkompileringar</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>mÃ¥l</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>beroenden</primary +></indexterm> +<indexterm zone="unixdev-buildsystems-make"> + <primary +>kommandon</primary +></indexterm> + +<para +>Ett verktyg som tar hand om omkompileringar är <command +>make</command +>. Det hÃ¥ller reda pÃ¥ allt arbete med en uppsättning <emphasis +>regler</emphasis +>, som beskriver vad som ska göras i händelse nÃ¥gon viss information (oftast en källkods- eller objektkodsfil) ändrades. Alla regler som hör till ett visst projekt lagras i en sÃ¥ kallad <filename +>Makefile</filename +>, som behandlas av <command +>make</command +> sÃ¥ fort du vill uppdatera arbetet. </para> +<para +>Varje regel bestÃ¥r av flera byggblock, närmare bestämt <itemizedlist> + <listitem +><para +>ett <emphasis +>mÃ¥l</emphasis +>, dvs filen som ska byggas </para +></listitem> + <listitem +><para +>en uppsättning <emphasis +>beroenden</emphasis +>, i grunden namnen pÃ¥ de filer som mÃ¥let beror pÃ¥ (t.ex. namnet pÃ¥ en källkodsfil, när mÃ¥let är namnet pÃ¥ objektfilen som ska byggas) och </para +></listitem> + <listitem +><para +>de <emphasis +>kommandon</emphasis +> som ska köras för att <quote +>bygga</quote +> mÃ¥let (dvs. för att kompilera det eller länka ihop andra objektfiler för att skapa en körbar programfil). </para +></listitem> +</itemizedlist> +</para> +<para +>Enkelt uttryckt, läser kommandot <command +>make</command +> reglerna en i taget, kontrollerar varje fil i beroendelistan för ett givet mÃ¥l, och bygger mÃ¥let igen om nÃ¥gon av filerna har ändrats, med de kommandon som listas i regeln. </para> +<para +>Det finns flera ytterligare möjligheter att styra en sÃ¥dan byggprocess, och en <filename +>Makefile</filename +> kan pÃ¥ sÃ¥ sätt växa sig mycket komplex. Vi kan inte gÃ¥ in pÃ¥ detaljer här. Hur som helst, rekommenderar vi att du gör dig bekant med syntaxen för <command +>make</command +>. Även om du inte normalt använder det direkt, kan en förstÃ¥else för grunderna i byggsystemet vara användbar. Se <ulink url="info://make/Top" +><citetitle +>GNU make manualen</citetitle +></ulink +> för mer information. </para> +<para +>För mer detaljinformation specifik för &tdevelop;, se <link linkend="project-management" +>Bygga och projekthantering</link +> i den här handboken. </para> +<para +>Det finns flera handledningar tillgängliga, se <link linkend="automake-references" +>referenserna</link +> i kapitlet Bygga och projekthantering. </para> +</sect2 +> <!-- unixdev-buildsystems-make --> + +</sect1 +> <!-- unixdev-buildsystems --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="unixdev-guidevelopment"> +<title +>Utveckling av grafiska gränssnitt</title> + +<indexterm zone="unixdev-guidevelopment"> + <primary +>GUI</primary +></indexterm> +<indexterm zone="unixdev-guidevelopment"> + <primary +>grafiskt användargränssnitt</primary +></indexterm> +<indexterm zone="unixdev-guidevelopment"> + <primary +>användargränssnitt</primary> + <secondary +>GUI</secondary +></indexterm> + +<para +>Programutvecklare blir ännu mer belastade genom att de inte bara mÃ¥ste skapa programbibliotek och logiken, men ocksÃ¥ tillhandahÃ¥lla lättanvända egenbyggda användargränssnitt som bÃ¥de är enkla att förstÃ¥ och funktionella. De flesta programmerare fÃ¥r liten eller ingen utbildning i utveckling av grafiska gränssnitt, och som ett resultat är användargränssnitt ofta dÃ¥ligt konstruerade. </para> +<para +>Under mÃ¥nga Ã¥r har nÃ¥gra gemensamma designprinciper utvecklats. Du rekommenderas starkt att hÃ¥lla dig till dem. PÃ¥ sÃ¥ sätt behÃ¥ller ditt användargränssnitt ett gemensamt utseende och känsla, som användare av programmet tacksamt uppskattar. </para> +<para +>För utveckling av grafiska gränssnitt för &kde; finns en stilguide tillgänglig. Den finns som <ulink url="http://developer.kde.org/documentation/standards/kde/style/basics/index.html" +>&kde;:s guide för användargränssnitt</ulink +> pÃ¥ sidan &kde;:s utvecklingshörna. </para> +<para +>En kort introduktion till gemensamma principer för konstruktion av grafiska gränssnitt finns <ulink url="http://axp16.iie.org.mx/Monitor/v01n03/ar_ihc2.htm" +>här</ulink +>. </para> + +</sect1 +> <!-- unixdev-guidevelopment --> + +<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + +<sect1 id="unixdev-ide"> +<title +>Integration av koncept och verktyg: den integrerade utvecklingsmiljön</title> + +<indexterm zone="unixdev-ide"> + <primary +>IDE</primary +></indexterm> +<indexterm zone="unixdev-ide"> + <primary +>integrerad utvecklingsmiljö</primary +></indexterm> +<indexterm zone="unixdev-ide"> + <primary +>utveckling</primary> + <secondary +>IDE</secondary +></indexterm> +<indexterm zone="unixdev-ide"> + <primary +>miljö</primary> + <secondary +>IDE</secondary +></indexterm> + +<para +>Det finns separata verktyg tillgängliga för nästan varje steg i programmeringsprocessen: planering, redigering, processen för att hantera filer och kompilering, avlusning, dokumentation med mera. Men när projekten växer, blir programmeringsprocesserna troligtvis ganska omständliga. </para> +<para +>Mycket repetitivt arbete mÃ¥ste göras vid konstruktion, kompilering och avlusning av ett program. En hel del sÃ¥dant arbete kan sparas genom att använda mallar och skript. Ytterligare arbete kan sparas genom att ha verktygen lätt tillgängliga, och med möjlighet att kommunicera med varandra i ett gemensamt grafiskt gränssnitt. </para> +<para +>Vore det till exempel inte bekvämt om en avlusare kunde öppna källkoden i frÃ¥ga i en editor, och placera markören direkt pÃ¥ platsen för felet som just hittats? </para> +<para +>För att enklare uppnÃ¥ ett sÃ¥dant fall, togs <emphasis +>integrerade utvecklingsmiljöer</emphasis +> (IDE:er) fram. En sÃ¥dan miljö integrerar alla mallar, verktyg och skript som ofta behövs i utvecklingsprocessen i en enda omgivning. </para> +<para +>&tdevelop; är en sÃ¥dan integrerad utvecklingsmiljö för &kde;-plattformen. Den erbjuder ett brett spektrum av verktyg som underlättar programutveckling och underhÃ¥ll, till och med för olika programsprÃ¥k och olika plattformar. </para> + +<sect2 id="unixdev-ide-tdevelop"> +<title +>Grundläggande funktioner i &tdevelop; &kdevrelease;</title> + +<indexterm zone="unixdev-ide-tdevelop"> + <primary +>&tdevelop;</primary> + <secondary +>funktioner</secondary +></indexterm> +<indexterm zone="unixdev-ide-tdevelop"> + <primary +>funktioner</primary +></indexterm> + +<!-- ### copied from web page, needs to be updated --> + +<itemizedlist> + <listitem> + <para +>Hanterar alla <emphasis +>utvecklingsverktyg</emphasis +> som behövs för C++ programmering, som kompilator, länkare, avlusare och byggsystem.</para> + </listitem> + <listitem> + <para +>TillhandahÃ¥ller en <emphasis +>programguide</emphasis +> som skapar fullständiga, körklara exempelprogram.</para> + </listitem> + <listitem> + <para +>LÃ¥ter användaren välja en <emphasis +>integrerad editor</emphasis +> baserad pÃ¥ &kde;:s programmeringseditor &kwrite;, TrollTechs <application +>Qeditor</application +> eller andra.</para> + </listitem> + <listitem> + <para +>En <emphasis +>klassgenerator</emphasis +> för att skapa nya klasser och integrera dem i det nuvarande projektet.</para> + </listitem> + <listitem> + <para +><emphasis +>Filhantering</emphasis +> för källkod, deklarationer, dokumentation, etc. som ska ingÃ¥ i projektet.</para> + </listitem> + <listitem> + <para +>Hjälp med att <emphasis +>skapa en användarhandbok</emphasis +> för programmet skriven med &kde;-verktyg.</para> + </listitem> + <listitem> + <para +>Automatisk HTML-baserad <emphasis +>dokumentation av programmeringsgränssnittet</emphasis +> för projektets klasser med korsreferens till använda bibliotek.</para> + </listitem> + <listitem> + <para +><emphasis +>Översättningsstöd</emphasis +> som gör det möjligt för översättare att enkelt lägga till sitt modersmÃ¥l i projektet, inklusive stöd för &kbabel;.</para> + </listitem> + <listitem> + <para +>Stöd för att hantera ett projekt via ett av flera <emphasis +>versionshanteringssystem</emphasis +> (t.ex. &CVS;), genom att tillhandahÃ¥lla ett lättanvänt gränssnitt till funktionerna som oftast behövs.</para> + </listitem> + <listitem> + <para +>Ett integrerat gränssnitt för <emphasis +>avlusning</emphasis +>.</para> + </listitem> + <listitem> + <para +>En integrerad emulator av en <emphasis +>skalkonsol</emphasis +>.</para> + </listitem> + <listitem> + <para +><emphasis +>Syntaxfärgläggning</emphasis +> i källkodstext.</para> + </listitem> + <listitem> + <para +>En funktion för <emphasis +>automatisk kodkomplettering</emphasis +> för klassvariabler, klassmetoder, funktionsargument med mera.</para> + </listitem> + <listitem> + <para +><emphasis +>Mallar för att skapa diverse projekt</emphasis +> (moduler i inställningscentralen, miniprogram i panelen &kicker;, I/O-slavar, insticksprogram till &konqueror; och skrivbordsstilar).</para> + </listitem> + <listitem> + <para +>Fyra <emphasis +>trädvyer</emphasis +> för att enkelt byta mellan källkodsfiler, deklarationsfiler, klasser och dokumentation, vilket gör det onödigt med en extern filhanterare.</para> + </listitem> + <listitem> + <para +><emphasis +>Stöd för korskompilering</emphasis +>, med möjlighet att ange olika kompilatorer, kompilatorflaggor, mÃ¥larkitektur etc.</para> + </listitem> + <listitem> + <para +>Stöd för projekt med <emphasis +>Qt/Embedded</emphasis +> (som Zaurus och IPAQ).</para> + </listitem> + <listitem> + <para +>Möjlighet att <emphasis +>inkludera vilket annat program</emphasis +> som helst som du behöver för utveckling genom att lägga till det i menyn <guimenuitem +>Verktyg</guimenuitem +>, enligt dina individuella behov.</para> + </listitem> +</itemizedlist> + +</sect2 +> <!-- unixdev-ide-tdevelop --> + +</sect1 +> <!-- unixdev-ide --> + +</appendix +> <!-- unixdev --> + diff --git a/tde-i18n-sv/docs/tdevelop/tip.database b/tde-i18n-sv/docs/tdevelop/tip.database new file mode 100644 index 00000000000..79db5ea50f5 --- /dev/null +++ b/tde-i18n-sv/docs/tdevelop/tip.database @@ -0,0 +1,30 @@ +...att KDevelop ger en Snabbhjälp med höger musknapp?
+...att du kan välja autosparningstid i inställningsdialogen?
+Om du vill lägga till ytterligare kommandorads villkor till ditt 'make' program kan du lägga till dem i inställningsdialogen.
+Om du vill använda funktioner i bibliotek som ej länkas med programmet, kan du lägga till dem i projektets alternativdialog.
+Om du vil ändra versionsnummret på din applikation, kan du ändra den i projektets alternativdialog eller låta KDevelop automatiskt uppdatera ditt projekt.
+Om du vill skapa ett nytt projekt, välj "Projekt"->"Applikation Wizard" från menyn.
+Om du inte har dokumentationen till KDE-biblioteket, skapa en genom att välj "Uppdatera" från dokumentationsdelen i KDevelops inställningsdialog.
+Om du ändrade dina applikations klasser bör du uppdater din API dokumentation genom att välja "Skapa API-Doc" från projektmenyn.
+Du kan spara tid om du väljer att "Kompilera fil" från projektmenyn eller verktygsfältet enbart skall kompilera din aktuella implementationsfil.
+Om du söker efter information om klasser eller klassmedlemmar, välj "Sök hjälp om..." från hjäpmenyn.
+Om du vill ha information om något i KDevelops fönster, välj "Vad är detta ?" knappen i verktygsfältet och tryck på den sak du inte vet något om.
+Tips: Du kan söka i dokumentationen efter ett nyckelord genom att markera ordet och välja "slå upp" i popupmenyn som du får genom att trycka höger musknapp.
+KDevelopteamet önskar dig en trevlig dag !
+Om du hittar ett fel i KDevelop, var då snäll och låt oss veta det. Kontaktadresser finns i KDevelops användarhandbok.
+Om du vill att lägga till ditt egen dokumentation till dokumentationsträdet, tryck höger musknapp eller välj "Andra"-tillägg i trädet. Konfigurera sedan sökvägen och tillägsnamnet.
+...att du kan skapa en ny klass med "ny klass" från projektmenyn ?
+att du kan skriva ut dina filer med antingen a2ps eller enscript inifrån KDevelop ?
+För att öppna ett projekt, välj "Öppna" från projektmenyn.
+Om du kompilerat ditt projekt och fick ett felmeddelande, kan du trycka på felmeddelandet och hoppa till den fil och dess rad där felet uppstod.
+...att du kan använda tangentbordets snabbkommandon för att stänga av / på utdata och trädfönstret ?
+...att du kan felsöka ditt program inifrån KDevelop genom att markera "Felsök" i Projektmenyn eller genom att välja Felsökningsikonen ?
+...att du kan byta mellan klasser genom att välja bland klasslistan i verktygsfältet ?
+...att du kan redigera xmp:er med kiconedit genom att välja dem i filvisarens träd ?
+...att du kan välja bland kompilatorvarningar i projektets alternativdialog ?
+...att du även kan söka efter markerad text inifrån dokumentationsläsaren i popupmenyn som du får genom att trycka höger musknapp ?
+...att du kan kopiera text från dokumentationläsaren till utklippshanteraren med popupmenyn som du får genom att trycka höger musknapp och klistra in dem i din källkod ?
+...att du bör hålla dokumentationen till ditt bibliotek uppdaterad efter att du installerat ett nytt bibliotek?
+...att du kan konfigurera redigerarens syntaxfärgläggningen ?
+...att du kan ångra och göra om dina redigeringskommandon och välja antalet steg i redigerarens dialogruta ?
+
|